diff -r 98924d2efce9 -r 6c7007136f84 htiui/HtiAdminQt/chtiadminengine.cpp --- a/htiui/HtiAdminQt/chtiadminengine.cpp Tue Jul 06 14:17:03 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,903 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of HtiAdmin main. -* -*/ - -#include -#include -#include - -#include -#include // for KHTICommInterfaceUid - - -#include "htienginewrapper.h" -#include "chtiadminengine.h" - - -#ifdef __ENABLE_LOGGING__ - -#include - -_LIT(KLogFolder, "hti"); -_LIT(KLogFile, "htiadmin.txt"); -#define HTI_LOG_TEXT(a1) {_LIT(temp, a1); RFileLogger::Write(KLogFolder, KLogFile, EFileLoggingModeAppend, temp);} -#define HTI_LOG_FORMAT(a1,a2) {_LIT(temp, a1); RFileLogger::WriteFormat(KLogFolder, KLogFile, EFileLoggingModeAppend, temp, (a2));} -#define HTI_LOG_DES(a1) {RFileLogger::Write(KLogFolder, KLogFile, EFileLoggingModeAppend, (a1));} - -#else // __ENABLE_LOGGING__ - -#define HTI_LOG_TEXT(a1) -#define HTI_LOG_FORMAT(a1,a2) -#define HTI_LOG_DES(a1) - -#endif // __ENABLE_LOGGING__ - -// CONSTANTS -_LIT( KHtiWatchDogMatchPattern, "HtiWatchDog*" ); -_LIT( KHtiFrameworkExe, "HtiFramework.exe" ); -_LIT( KHtiMatchPattern, "HtiFramework*" ); -_LIT( KHtiFrameworkCaption, "HTI status: " ); -_LIT( KHtiAutoStartCaption, "AutoStart: " ); -_LIT( KHtiVersionCaption, "Version: " ); -_LIT( KHtiSelectedCommCaption, "Communication: " ); -_LIT( KHtiAdminStartParameter, "admin" ); -_LIT( KHtiAdminVersionFormat, "%u.%u.%u (%uwk%02u)" ); -_LIT( KHtiAdminAboutVersionFormat, "Version %u.%u.%u - " ); -const static TInt KTerminateReason = 1; - -const TInt32 KHTIImplUidIsaComm = {0x1020DEBD}; -const TInt32 KHTIImplUidSerial = {0x10210CCA}; -const TInt32 KHTIImplUidBluetooth = {0x200212CC}; -const TInt32 KHTIImplUidIPComm = {0x200212CE}; -const TInt32 KHTIImplUidUsbSerialComm = {0x200212D0}; -const TInt32 KHTIImplUidTraceComm = {0x200212D8}; - -// configuration file constants -_LIT( KCfgFilePath, "\\"); -_LIT( KHtiCfg, "hti.cfg" ); -_LIT( KHtiBtCommCfg, "HTIBtComm.cfg" ); -_LIT( KHtiSerialCommCfg , "HTISerialComm.cfg" ); -_LIT( KHtiIPCommCfg, "HTIIPComm.cfg" ); -// hti.cfg -_LIT8( KCommPlugin, "CommPlugin" ); -_LIT8( KPriority, "Priority" ); -_LIT8( KShowConsole, "ShowConsole" ); -_LIT8( KEnableHtiWatchDog, "EnableHtiWatchDog" ); -_LIT8( KEnableHtiAutoStart, "EnableHtiAutoStart" ); -_LIT8( KShowErrorDialogs, "ShowErrorDialogs" ); -// HtiBtComm.cfg -_LIT8( KBtDeviceAddress, "BtDeviceAddress" ); -_LIT8( KBtDeviceName, "BtDeviceName" ); -// HtiSerialComm.cfg -_LIT8( KCommPortNumber, "CommPort" ); -// HTIIPComm.cfg -_LIT8( KLocalPort, "LocalPort" ); -_LIT8( KRemoteHost, "RemoteHost" ); -_LIT8( KRemotePort, "RemotePort" ); -_LIT8( KIAPName, "IAPName"); - - -// --------------------------------------------------------------------------- - -CHtiAdminEngine::CHtiAdminEngine() -{ - iIAPsArray = NULL; -} - -// --------------------------------------------------------------------------- -CHtiAdminEngine* CHtiAdminEngine::NewLC(HtiEngineWrapper *aEngineWrapper) - { - CHtiAdminEngine* self = new (ELeave) CHtiAdminEngine(); - CleanupStack::PushL(self); - self->ConstructL(aEngineWrapper); - return self; - } - -// --------------------------------------------------------------------------- -CHtiAdminEngine* CHtiAdminEngine::NewL(HtiEngineWrapper *aEngineWrapper) - { - CHtiAdminEngine* self = CHtiAdminEngine::NewLC(aEngineWrapper); - CleanupStack::Pop(); // self; - return self; - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::ConstructL(HtiEngineWrapper *aEngineWrapper) - { - iEngineWrapper = aEngineWrapper; - iHtiCfg = CHtiCfg::NewL(); - - CheckStatusesL(); - StartTimer(); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::CheckStatusesL() - { - UpdateConsoleStatus(); - UpdateWatchDogStatus(); - UpdateAutoStartStatus(); - UpdateSelectedComm(); - UpdateStatusL(); - } - - -// --------------------------------------------------------------------------- -CHtiAdminEngine::~CHtiAdminEngine() -{ - KillTimer(); - delete iHtiCfg; - delete iPluginNameArray; - delete iPluginDataTypeArray; -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::StartHtiL() -{ - - RProcess prs; - TInt err; - TBool isRunning = EFalse; - if ( OpenHtiProcess( prs ) ) - { - if ( prs.ExitType() == EExitPending ) - { - isRunning = ETrue; - iEngineWrapper->updateStatus(HtiEngineWrapper::Running); - } - prs.Close(); - } - - if ( !isRunning ) - { - HTI_LOG_TEXT( "create process" ); - err = prs.Create( KHtiFrameworkExe, KHtiAdminStartParameter ); - if ( err == KErrNone ) - { - prs.Resume(); - prs.Close(); - UpdateStatusL(); - HTI_LOG_TEXT("create done"); - } - else - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Error); - HTI_LOG_TEXT("create error"); - } - } - -} - - -// --------------------------------------------------------------------------- - -void CHtiAdminEngine::StopHtiL() -{ - HTI_LOG_TEXT("Stop"); - - // kill the watchdog to prevent it from restarting HTI again - KillHtiWatchDogL(); - - RProcess prs; - if ( OpenHtiProcess( prs ) ) - { - if ( prs.ExitType() == EExitPending ) - { - HTI_LOG_TEXT("try to kill"); - prs.Kill( KTerminateReason ); - UpdateStatusL(); - } - else - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Stopped); - } - prs.Close(); - } - -} - -// --------------------------------------------------------------------------- - -void CHtiAdminEngine::EnableBtByAddressL(const TDesC& aAddress) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8( "BTSERIAL" ) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiBtCommCfg ) ); - iHtiCfg->RemoveParameterL( KBtDeviceName ); - iHtiCfg->RemoveParameterL( KBtDeviceAddress ); - - TBuf8 value; - value.Copy(aAddress); - iHtiCfg->SetParameterL( KBtDeviceAddress, value); - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiBtCommCfg); - UpdateSelectedComm(); - -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::EnableBtByNameL(const TDesC& aAddress) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8( "BTSERIAL" ) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiBtCommCfg ) ); - iHtiCfg->RemoveParameterL( KBtDeviceName ); - iHtiCfg->RemoveParameterL( KBtDeviceAddress ); - - TBuf8 value; - value.Copy(aAddress); - iHtiCfg->SetParameterL( KBtDeviceName, value); - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiBtCommCfg ); - UpdateSelectedComm(); -} - - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::BtSearchL() -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8( "BTSERIAL" ) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiBtCommCfg ) ); - iHtiCfg->RemoveParameterL( KBtDeviceName ); - iHtiCfg->RemoveParameterL( KBtDeviceAddress ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiBtCommCfg ); - UpdateSelectedComm(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::IPListenL(const TDesC& aPort, const TDesC& aIAP) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8("IPCOMM")); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiIPCommCfg ) ); - - TBuf8 port; - port.Copy(aPort); - iHtiCfg->SetParameterL( KLocalPort, port); - - TBuf8 iap; - iap.Copy(aIAP); - iHtiCfg->SetParameterL(KIAPName, iap); - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiIPCommCfg ); - UpdateSelectedComm(); - -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::IPConnectL(const TDesC& aHost, const TDesC& aPort, const TDesC& aIAP) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8( "IPCOMM" ) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiIPCommCfg ) ); - iHtiCfg->RemoveParameterL( KLocalPort ); - - TBuf8 value; - value.Copy(aHost); - iHtiCfg->SetParameterL( KRemoteHost, value); - - TBuf8 port; - port.Copy(aPort); - iHtiCfg->SetParameterL(KRemotePort, port); - - TBuf8 iap; - iap.Copy(aIAP); - iHtiCfg->SetParameterL(KIAPName, iap); - - iHtiCfg->SaveCfgL(KCfgFilePath, KHtiIPCommCfg); - UpdateSelectedComm(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::EnableSerialL(const TDesC& aComPortNumber) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KCommPlugin, _L8( "SERIAL" ) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - - TBuf8 value; - value.Copy(aComPortNumber); - iHtiCfg->SetParameterL( KCommPortNumber, value ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiSerialCommCfg ); - UpdateSelectedComm(); -} - - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::EnableOtherCommL(const TDesC& aSelectedPluginName) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - - TInt namePosition; - iPluginNameArray->Find(aSelectedPluginName, namePosition); - - //Save correct data type for selected plugin - iHtiCfg->SetParameterL( KCommPlugin, iPluginDataTypeArray->MdcaPoint(namePosition) ); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - UpdateSelectedComm(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetPriorityBackgroundL() -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KPriority, _L8("1")); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetPriorityForegroundL() -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KPriority, _L8("2")); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetPriorityHighL() -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KPriority, _L8("3")); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetPriorityAbsoluteHighL() -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - iHtiCfg->SetParameterL( KPriority, _L8("4")); - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::AutoStartEnableL(TBool aEnableAutoStart) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if(aEnableAutoStart) - { - iHtiCfg->SetParameterL( KEnableHtiAutoStart, _L8("1")); - } - else - { - iHtiCfg->SetParameterL( KEnableHtiAutoStart, _L8("0")); - } - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - UpdateAutoStartStatus(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::WatchDogEnableL(TBool aEnableWDog) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - - if(aEnableWDog) - { - iHtiCfg->SetParameterL( KEnableHtiWatchDog, _L8("1")); - } - else - { - iHtiCfg->SetParameterL( KEnableHtiWatchDog, _L8("0")); - } - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - UpdateWatchDogStatus(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::ConsoleEnableL(TBool aEnableConsole) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - - if(aEnableConsole) - { - iHtiCfg->SetParameterL( KShowConsole, _L8("1")); - } - else - { - iHtiCfg->SetParameterL( KShowConsole, _L8("0")); - } - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); - UpdateConsoleStatus(); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::ErrorDialogsEnableL(TBool aEnableErrorDialogs) -{ - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - - if(aEnableErrorDialogs) - { - iHtiCfg->SetParameterL( KShowErrorDialogs, _L8("1")); - } - else - { - iHtiCfg->SetParameterL( KShowErrorDialogs, _L8("0")); - } - - iHtiCfg->SaveCfgL( KCfgFilePath, KHtiCfg ); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetHtiCfgParamL(const TDesC& aParamName, const TDesC& aParamValue) -{ - SetCfgParamL(aParamName, aParamValue, KHtiCfg); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetBtCfgParamL(const TDesC& aParamName, const TDesC& aParamValue) -{ - SetCfgParamL(aParamName, aParamValue, KHtiBtCommCfg); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetSerialCfgParamL(const TDesC& aParamName, const TDesC& aParamValue) -{ - SetCfgParamL(aParamName, aParamValue, KHtiSerialCommCfg); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetIPCfgParamL(const TDesC& aParamName, const TDesC& aParamValue) -{ - SetCfgParamL(aParamName, aParamValue, KHtiIPCommCfg); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::SetCfgParamL(const TDesC& aParamName, const TDesC& aParamValue, const TDesC& aFileName) -{ - TBuf8 name; - name.Copy(aParamName); - - TBuf8 value; - value.Copy(aParamValue); - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, aFileName ) ); - - iHtiCfg->SetParameterL( name, value ); - iHtiCfg->SaveCfgL( KCfgFilePath, aFileName); -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetHtiCfgParamL(const TDesC& aParamName, TDes& aParamValue) - { - GetCfgParamL(aParamName, aParamValue, KHtiCfg); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetBtCfgParamL(const TDesC& aParamName, TDes& aParamValue) - { - GetCfgParamL(aParamName, aParamValue, KHtiBtCommCfg); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetSerialCfgParamL(const TDesC& aParamName, TDes& aParamValue) - { - GetCfgParamL(aParamName, aParamValue, KHtiSerialCommCfg); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetIPCfgParamL(const TDesC& aParamName, TDes& aParamValue) - { - GetCfgParamL(aParamName, aParamValue, KHtiIPCommCfg); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetCfgParamL(const TDesC& aParamName, TDes& aParamValue, const TDesC& aFileName) - { - TBuf8 name; - name.Copy(aParamName); - - TBuf value; - - TRAP_IGNORE( iHtiCfg->LoadCfgL( KCfgFilePath, aFileName ) ); - aParamValue.Copy(iHtiCfg->GetParameterL(name)); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::GetSelectedComm(TDes& aPluginName) - { - TBuf8 commValue; - TRAPD( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if ( !err ) - { - TRAP( err, commValue = iHtiCfg->GetParameterL( KCommPlugin ) ); - } - // Use default if not found from config - if ( commValue.Length() == 0 ) - { - commValue.Copy(KCommDefaultImplementation ); - } - TInt typePosition; - iPluginDataTypeArray->Find(commValue, typePosition); - aPluginName.Copy(iPluginNameArray->MdcaPoint(typePosition)); - } - -// --------------------------------------------------------------------------- -TBool CHtiAdminEngine::OpenHtiProcess( RProcess& aPrs ) -{ - HTI_LOG_TEXT( "OpenHtiProcess" ); - - TFullName processName; - TInt err; - - TFindProcess finder( KHtiMatchPattern ); - err = finder.Next( processName ); - if ( err == KErrNone ) - { - HTI_LOG_TEXT( "try to open..." ); - err = aPrs.Open( finder ); - HTI_LOG_TEXT( "opened" ); - - if ( err == KErrNone ) - { - HTI_LOG_TEXT( "OpenHtiProcess OK" ); - return ETrue; - } - else - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Error); - } - } - else if ( err == KErrNotFound ) - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Stopped); - } - else - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Error); - } - - HTI_LOG_TEXT( "OpenHtiProcess NOK" ); - - return EFalse; -} - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::UpdateStatusL() - { - HTI_LOG_TEXT( "UpdateStatusL" ); - RProcess prs; - if ( OpenHtiProcess( prs ) ) - { - HTI_LOG_TEXT( "Update display" ); - TExitType exT = prs.ExitType(); - - switch ( exT ) - { - case EExitPending: - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Running); - } - break; - - case EExitKill: - case EExitTerminate: - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Stopped); - } - break; - - case EExitPanic: - { - iEngineWrapper->updateStatus(HtiEngineWrapper::Panic); - } - break; - }; - prs.Close(); - } - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::KillHtiWatchDogL() - { - TFullName processName; - TFindProcess finder( KHtiWatchDogMatchPattern ); - TInt err = finder.Next( processName ); - if ( err == KErrNone ) - { - HTI_LOG_TEXT( "HTI watchdog process found. Trying to open and kill it..." ); - RProcess prs; - User::LeaveIfError( prs.Open( finder ) ); - prs.Kill( KTerminateReason ); - prs.Close(); - HTI_LOG_TEXT( "HTI watchdog killed" ); - } - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::StartTimer() - { - // start timer to watch the status - if ( !iPeriodic ) - { - iPeriodic = CPeriodic::NewL( CActive::EPriorityIdle ); - iPeriodic->Start( 1 * 1000 * 1000, - 10 * 1000 * 1000, - TCallBack( TimerCallBackL, this ) ); - } - } -// --------------------------------------------------------------------------- -void CHtiAdminEngine::KillTimer() - { - if ( iPeriodic ) - { - iPeriodic->Cancel(); - delete iPeriodic; - iPeriodic = NULL; - } - } - -// --------------------------------------------------------------------------- -TInt CHtiAdminEngine::TimerCallBackL( TAny* aPtr ) - { - ( (CHtiAdminEngine*)aPtr )->UpdateStatusL(); - return ETrue; - } - - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::UpdateAutoStartStatus() - { - HTI_LOG_TEXT( "UpdateAutoStartStatus" ); - TInt value = KErrNotFound; - TRAPD( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if ( !err ) - { - TRAP( err, value = iHtiCfg->GetParameterIntL(KEnableHtiAutoStart) ); - } - - if ( value == KErrNotFound ) - { - // Use default values if not found from config. -#ifdef __WINS__ - value = 0; -#else - value = 1; -#endif - } - - if ( value == 0 ) - { - iEngineWrapper->updateAutostartStatus( HtiEngineWrapper::AutoStartDisabled ); - } - else if ( value == 1 ) - { - iEngineWrapper->updateAutostartStatus( HtiEngineWrapper::AutoStartEnabled ); - } - else - { - iEngineWrapper->updateAutostartStatus( HtiEngineWrapper::AutoStartUnknown ); - } - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::UpdateConsoleStatus() - { - HTI_LOG_TEXT( "UpdateConsoleStatus" ); - TInt value = KErrNotFound; - TRAPD( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if(!err) - { - TRAP( err, value = iHtiCfg->GetParameterIntL(KShowConsole) ); - } - - if ( value == KErrNotFound ) - { - value = 0; - } - - iEngineWrapper->updateConsoleStatus(value); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::UpdateWatchDogStatus() - { - HTI_LOG_TEXT( "UpdateWatchDogStatus" ); - TInt value = KErrNotFound; - TRAPD( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if(!err) - { - TRAP( err, value = iHtiCfg->GetParameterIntL(KEnableHtiWatchDog) ); - } - - if ( value == KErrNotFound ) - { - value = 0; - } - - iEngineWrapper->updateWatchDogStatus(value); - } - -// --------------------------------------------------------------------------- -void CHtiAdminEngine::UpdateSelectedComm() - { - HTI_LOG_TEXT( "UpdateSelectedComm" ); - TBuf<64> commPlugin; - TRAPD( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiCfg ) ); - if ( !err ) - { - TBuf8 commValue; - TRAP( err, commValue = iHtiCfg->GetParameterL( KCommPlugin ) ); - if ( err == KErrNone ) - { - commPlugin.Copy( commValue ); - } - } - // Use default if not found from config - if ( commPlugin.Length() == 0 ) - { - commPlugin.Copy(KCommDefaultImplementation ); - } - iEngineWrapper->updateSelectedComm( commPlugin ); - - if ( commPlugin.Compare( _L( "SERIAL" ) ) == 0 ) - { - TInt portNum = 0; - TRAP( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiSerialCommCfg ) ); - if ( err == KErrNone ) - { - TRAP( err, portNum = iHtiCfg->GetParameterIntL( KCommPortNumber ) ); - } - TBuf<16> portBuf; - portBuf.Copy( _L( "Port: " ) ); - portBuf.AppendNum( portNum ); - iEngineWrapper->updateCommDetails( portBuf ); - } - - else if ( commPlugin.Compare( _L( "BTSERIAL" ) ) == 0 ) - { - TBuf<64> hostBuf; - TRAP( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiBtCommCfg ) ); - if ( err == KErrNone ) - { - TBuf8 hostValue; - TRAP( err, hostValue = iHtiCfg->GetParameterL( KBtDeviceAddress ) ); - if ( err != KErrNone ) - { - TRAP( err, hostValue = iHtiCfg->GetParameterL( KBtDeviceName ) ); - } - if ( err == KErrNone ) - { - hostBuf.Copy( hostValue ); - } - } - if ( hostBuf.Length() > 0 ) - { - hostBuf.Insert( 0, _L( "Host: " ) ); - } - iEngineWrapper->updateCommDetails(hostBuf); - } - - else if ( commPlugin.Compare( _L( "IPCOMM" ) ) == 0 ) - { - TBuf<128> hostBuf; - TRAP( err, iHtiCfg->LoadCfgL( KCfgFilePath, KHtiIPCommCfg ) ); - if ( err == KErrNone ) - { - TInt localPort = 0; - TRAP( err, localPort = iHtiCfg->GetParameterIntL( KLocalPort ) ); - if ( err == KErrNone && localPort > 0 ) - { - hostBuf.Copy( _L( "Listen: " ) ); - hostBuf.AppendNum( localPort ); - } - else - { - TBuf8 remoteHost; - TInt remotePort = 0; - TRAP( err, remoteHost = iHtiCfg->GetParameterL( KRemoteHost ) ); - if ( err == KErrNone ) - { - TRAP( err, remotePort = iHtiCfg->GetParameterIntL( - KRemotePort ) ); - } - if ( err == KErrNone ) - { - hostBuf.Copy( remoteHost ); - hostBuf.Insert( 0, _L("Connect: " ) ); - hostBuf.Append( ':' ); - hostBuf.AppendNum( remotePort ); - } - else - { - hostBuf.Copy( _L( "Invalid config!" ) ); - } - } - } - iEngineWrapper->updateCommDetails(hostBuf); - } - - else - { - iEngineWrapper->updateCommDetails(KNullDesC); - } - } - -// --------------------------------------------------------------------------- -void CleanupRArray( TAny* object ) - { - ( ( RImplInfoPtrArray* ) object )->ResetAndDestroy(); - } - -// --------------------------------------------------------------------------- -CDesCArray* CHtiAdminEngine::SearchCommPluginsL() - { - const TInt pluginNameArrayGranularity (15); - iPluginNameArray = new (ELeave) CDesCArrayFlat(pluginNameArrayGranularity); - iPluginDataTypeArray = new (ELeave) CDesC8ArrayFlat(pluginNameArrayGranularity); - - RImplInfoPtrArray implInfoArray; - CleanupStack::PushL( TCleanupItem( CleanupRArray, &implInfoArray ) ); - - REComSession::ListImplementationsL( KHTICommInterfaceUid, implInfoArray ); - - for ( TInt i = 0; i < implInfoArray.Count(); ++i ) - { - iPluginNameArray->AppendL(implInfoArray[i]->DisplayName()); - iPluginDataTypeArray->AppendL(implInfoArray[i]->DataType()); - } - - CleanupStack::PopAndDestroy(); //implInfoArray - - return iPluginNameArray; - } - -// --------------------------------------------------------------------------- -CDesCArray* CHtiAdminEngine::SearchIAPsL() - { - if(iIAPsArray) - { - return iIAPsArray; - } - - TBuf name; - const TInt arrayGranularity (10); - iIAPsArray = new (ELeave) CDesCArrayFlat(arrayGranularity); - - // Get IAP names from the database - CCommsDatabase* db = CCommsDatabase::NewL(EDatabaseTypeIAP);; - CleanupStack::PushL(db); - db->ShowHiddenRecords(); - CCommsDbTableView* view = db->OpenTableLC(TPtrC(IAP)); - TInt res = view->GotoFirstRecord(); - - while(res == KErrNone) - { - view->ReadTextL(TPtrC(COMMDB_NAME), name); - iIAPsArray->InsertL(0, name); - res = view->GotoNextRecord(); - } - - CleanupStack::PopAndDestroy(view); //view - CleanupStack::PopAndDestroy(db); //db - - return iIAPsArray; - }