telephonyserverplugins/multimodetsy/Multimode/Mbattery.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/multimodetsy/Multimode/Mbattery.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/multimodetsy/Multimode/Mbattery.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,214 +1,214 @@
-// Copyright (c) 1997-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:
-// GBATTERY.CPP
-// Queries the ME battery. Retrieves charge level and battery status
-// 
-//
-
-#include <et_phone.h>
-#include "Mbattery.h"
-#include "mSLOGGER.H"
-#include "ATIO.H"
-#include "Matstd.h"
-
-CATGetBattery* CATGetBattery::NewL(CATIO* aIo,CTelObject* aTelObject,CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
-	{
-	CATGetBattery* battery = new(ELeave) CATGetBattery(aIo, aTelObject, aInit, aPhoneGlobals);
-	CleanupStack::PushL(battery);
-	battery->ConstructL();
-	CleanupStack::Pop();
-	return battery;
-	}
-
-CATGetBattery::CATGetBattery(CATIO* aIo, CTelObject* aTelObject, CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
-: CATCommands(aIo,aTelObject,aInit,aPhoneGlobals),iPhoneGlobals(aPhoneGlobals)
-{}
-
-void CATGetBattery::ConstructL()
-	{
-	CATCommands::ConstructL();
-	}
-
-CATGetBattery::~CATGetBattery()
-	{
-	iIo->RemoveExpectStrings(this);
-	iOKExpectString=NULL;
-	iErrorExpectString=NULL;
-	}
-
-void CATGetBattery::Start(TTsyReqHandle aTsyReqHandle,TAny* aParams)
-	{
-	LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tStarting ME Battery query."));
-	iReqHandle = aTsyReqHandle;
-	iBatteryInfo = (RMobilePhone::TMobilePhoneBatteryInfoV1*) aParams;
-	iTxBuffer.Format(KGetBatteryChargeCommand);
-	iIo->Write(this, iTxBuffer);
-	iIo->SetTimeOut(this, 5000);
-	iState=EATBatteryWaitForWriteComplete;
-	}
-
-void CATGetBattery::EventSignal(TEventSource aSource)
-	{
-	if (aSource==ETimeOutCompletion)
-		{
-		LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tTimeout Error during battery-strength query"));
-		RemoveStdExpectStrings();
-		Complete(KErrTimedOut,aSource);
-		return;
-		}
-
-	switch(iState)
-		{
-		case EATBatteryWaitForWriteComplete:
-		__ASSERT_ALWAYS(aSource==EWriteCompletion,Panic(EATCommand_IllegalCompletionWriteExpected));
-			{
-			iIo->WriteAndTimerCancel(this);
-			StandardWriteCompletionHandler(aSource, 5);
-			iState=EATBatteryReadComplete;
-			}
-		break;
-
-		case EATBatteryReadComplete:
-		__ASSERT_ALWAYS(aSource==EReadCompletion,Panic(EATCommand_IllegalCompletionReadExpected));
-			{	
-			iIo->WriteAndTimerCancel(this);
-			TInt ret(ValidateExpectString());
-			RemoveStdExpectStrings();
-			if (ret)
-				{
-				iBatteryInfo->iStatus = RMobilePhone::EPowerStatusUnknown;
-				Complete(ret,aSource);
-				return;
-				}
-			TRAP(ret,ParseBatteryResponseL());
-			Complete(ret,aSource);
-			}
-		break;
-
-		default:
-		break;
-		}//switch
-	}//EventSignal
-
-void CATGetBattery::Stop(TTsyReqHandle aTsyReqHandle)
-	{
-	__ASSERT_ALWAYS(aTsyReqHandle == iReqHandle, Panic(EIllegalTsyReqHandle));
-	LOGTEXT2(_L8("CATGetBattery::Stop - Cancelling from state %d"), iState);
-	
-	if (iState==EATBatteryWaitForWriteComplete)
-		{
-		Complete(KErrCancel, EReadCompletion);
-		}
-	// else do nothing because we have already sent the AT command
-	// or have not actually started doing anything!
-	}
-
-void CATGetBattery::Complete(TInt aError,TEventSource aSource)
-	{
-	iIo->WriteAndTimerCancel(this);
-	iIo->RemoveExpectStrings(this);
-	iOKExpectString = NULL;
-	iErrorExpectString = NULL;
-
-	CATCommands::Complete(aError,aSource);
-	iTelObject->ReqCompleted(iReqHandle, aError);
-
-	LOGTEXT2(_L8("MMTsy:CATGetBattery:\tCATGetBattery completed with error code : %d"), aError);
-	iState = EATNotInProgress;
-	}
-
-void CATGetBattery::CompleteWithIOError(TEventSource /*aSource*/,TInt aStatus)
-	{
-	if (iState!=EATNotInProgress)
-		{
-		iIo->WriteAndTimerCancel(this);
-		iTelObject->ReqCompleted(iReqHandle, aStatus);
-		iState = EATNotInProgress;
-		}
-	}
-
-void CATGetBattery::ParseBatteryResponseL()
-	{
-	ParseBufferLC();
-	CATParamListEntry* entry;
-	TDblQueIter<CATParamListEntry> iter(iRxResults);
-	TBool first = ETrue;
-	TUint iCounter = 0;
-	TInt ret;
-
-	while (entry = iter++, entry != NULL)
-		{
-		if (first)
-			{
-			first = EFalse;
-			while (entry->iResultPtr != KCBCResponseString)
-				{
-				entry->Deque();
-				delete entry;
-				entry = iter++;
-				if (entry == NULL)
-					{
-					CleanupStack::PopAndDestroy();
-					User::Leave(KErrNotFound);
-					}
-				} //while
-			LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tFound +CBC string!"));
-			iCounter = 1;
-			}
-		else
-			{
-			TLex8 aLex((entry->iResultPtr).Ptr());
-			if (iCounter == 1)
-				{	
-				TInt batteryStatus;
-				ret = aLex.Val(batteryStatus);
-				if (ret == KErrNone)
-					// Have to convert the answer from the AT command format
-					// to multimode representation.
-					iBatteryInfo->iStatus = ConvertBatteryStatus(batteryStatus);
-
-				}
-			else if (iCounter == 2)
-				ret = aLex.Val(iBatteryInfo->iChargeLevel);
-			iCounter++;
-			}//else
-		entry->Deque();
-		delete entry;
-		}//while
-	CleanupStack::PopAndDestroy();
-	}//ParseBatteryResponseL
-
-RMobilePhone::TMobilePhoneBatteryStatus CATGetBattery::ConvertBatteryStatus(TInt aBatteryStatus)
-
-/** * Converts the batterey status from ETSI standard to multimode representation *
- * This method returns the proper multimode representation for the battery status. 
- * @param aBatteryStatus points to a value representing the battery status the ETSI way(0 - 3, ).
- * @return  Returns the battery status in multimode representation.
-*/
-
-	{
-	switch (aBatteryStatus)
-		{		
-	case 0:
-		return RMobilePhone::EPoweredByBattery; // equal to 1
-	case 1:
-		return RMobilePhone::EBatteryConnectedButExternallyPowered; // equal to 2
-	case 2:
-		return RMobilePhone::ENoBatteryConnected; // equal to 3
-	case 3:
-		return RMobilePhone::EPowerFault; // equal to 4
-	default:
-		return RMobilePhone::EPowerStatusUnknown; //equal to 0
-		}
-	}
+// Copyright (c) 1997-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:
+// GBATTERY.CPP
+// Queries the ME battery. Retrieves charge level and battery status
+// 
+//
+
+#include <et_phone.h>
+#include "Mbattery.h"
+#include "mSLOGGER.H"
+#include "ATIO.H"
+#include "Matstd.h"
+
+CATGetBattery* CATGetBattery::NewL(CATIO* aIo,CTelObject* aTelObject,CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
+	{
+	CATGetBattery* battery = new(ELeave) CATGetBattery(aIo, aTelObject, aInit, aPhoneGlobals);
+	CleanupStack::PushL(battery);
+	battery->ConstructL();
+	CleanupStack::Pop();
+	return battery;
+	}
+
+CATGetBattery::CATGetBattery(CATIO* aIo, CTelObject* aTelObject, CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
+: CATCommands(aIo,aTelObject,aInit,aPhoneGlobals),iPhoneGlobals(aPhoneGlobals)
+{}
+
+void CATGetBattery::ConstructL()
+	{
+	CATCommands::ConstructL();
+	}
+
+CATGetBattery::~CATGetBattery()
+	{
+	iIo->RemoveExpectStrings(this);
+	iOKExpectString=NULL;
+	iErrorExpectString=NULL;
+	}
+
+void CATGetBattery::Start(TTsyReqHandle aTsyReqHandle,TAny* aParams)
+	{
+	LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tStarting ME Battery query."));
+	iReqHandle = aTsyReqHandle;
+	iBatteryInfo = (RMobilePhone::TMobilePhoneBatteryInfoV1*) aParams;
+	iTxBuffer.Format(KGetBatteryChargeCommand);
+	iIo->Write(this, iTxBuffer);
+	iIo->SetTimeOut(this, 5000);
+	iState=EATBatteryWaitForWriteComplete;
+	}
+
+void CATGetBattery::EventSignal(TEventSource aSource)
+	{
+	if (aSource==ETimeOutCompletion)
+		{
+		LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tTimeout Error during battery-strength query"));
+		RemoveStdExpectStrings();
+		Complete(KErrTimedOut,aSource);
+		return;
+		}
+
+	switch(iState)
+		{
+		case EATBatteryWaitForWriteComplete:
+		__ASSERT_ALWAYS(aSource==EWriteCompletion,Panic(EATCommand_IllegalCompletionWriteExpected));
+			{
+			iIo->WriteAndTimerCancel(this);
+			StandardWriteCompletionHandler(aSource, 5);
+			iState=EATBatteryReadComplete;
+			}
+		break;
+
+		case EATBatteryReadComplete:
+		__ASSERT_ALWAYS(aSource==EReadCompletion,Panic(EATCommand_IllegalCompletionReadExpected));
+			{	
+			iIo->WriteAndTimerCancel(this);
+			TInt ret(ValidateExpectString());
+			RemoveStdExpectStrings();
+			if (ret)
+				{
+				iBatteryInfo->iStatus = RMobilePhone::EPowerStatusUnknown;
+				Complete(ret,aSource);
+				return;
+				}
+			TRAP(ret,ParseBatteryResponseL());
+			Complete(ret,aSource);
+			}
+		break;
+
+		default:
+		break;
+		}//switch
+	}//EventSignal
+
+void CATGetBattery::Stop(TTsyReqHandle aTsyReqHandle)
+	{
+	__ASSERT_ALWAYS(aTsyReqHandle == iReqHandle, Panic(EIllegalTsyReqHandle));
+	LOGTEXT2(_L8("CATGetBattery::Stop - Cancelling from state %d"), iState);
+	
+	if (iState==EATBatteryWaitForWriteComplete)
+		{
+		Complete(KErrCancel, EReadCompletion);
+		}
+	// else do nothing because we have already sent the AT command
+	// or have not actually started doing anything!
+	}
+
+void CATGetBattery::Complete(TInt aError,TEventSource aSource)
+	{
+	iIo->WriteAndTimerCancel(this);
+	iIo->RemoveExpectStrings(this);
+	iOKExpectString = NULL;
+	iErrorExpectString = NULL;
+
+	CATCommands::Complete(aError,aSource);
+	iTelObject->ReqCompleted(iReqHandle, aError);
+
+	LOGTEXT2(_L8("MMTsy:CATGetBattery:\tCATGetBattery completed with error code : %d"), aError);
+	iState = EATNotInProgress;
+	}
+
+void CATGetBattery::CompleteWithIOError(TEventSource /*aSource*/,TInt aStatus)
+	{
+	if (iState!=EATNotInProgress)
+		{
+		iIo->WriteAndTimerCancel(this);
+		iTelObject->ReqCompleted(iReqHandle, aStatus);
+		iState = EATNotInProgress;
+		}
+	}
+
+void CATGetBattery::ParseBatteryResponseL()
+	{
+	ParseBufferLC();
+	CATParamListEntry* entry;
+	TDblQueIter<CATParamListEntry> iter(iRxResults);
+	TBool first = ETrue;
+	TUint iCounter = 0;
+	TInt ret;
+
+	while (entry = iter++, entry != NULL)
+		{
+		if (first)
+			{
+			first = EFalse;
+			while (entry->iResultPtr != KCBCResponseString)
+				{
+				entry->Deque();
+				delete entry;
+				entry = iter++;
+				if (entry == NULL)
+					{
+					CleanupStack::PopAndDestroy();
+					User::Leave(KErrNotFound);
+					}
+				} //while
+			LOGTEXT(_L8("MMTsy:\tCATGetBattery:\tFound +CBC string!"));
+			iCounter = 1;
+			}
+		else
+			{
+			TLex8 aLex((entry->iResultPtr).Ptr());
+			if (iCounter == 1)
+				{	
+				TInt batteryStatus;
+				ret = aLex.Val(batteryStatus);
+				if (ret == KErrNone)
+					// Have to convert the answer from the AT command format
+					// to multimode representation.
+					iBatteryInfo->iStatus = ConvertBatteryStatus(batteryStatus);
+
+				}
+			else if (iCounter == 2)
+				ret = aLex.Val(iBatteryInfo->iChargeLevel);
+			iCounter++;
+			}//else
+		entry->Deque();
+		delete entry;
+		}//while
+	CleanupStack::PopAndDestroy();
+	}//ParseBatteryResponseL
+
+RMobilePhone::TMobilePhoneBatteryStatus CATGetBattery::ConvertBatteryStatus(TInt aBatteryStatus)
+
+/** * Converts the batterey status from ETSI standard to multimode representation *
+ * This method returns the proper multimode representation for the battery status. 
+ * @param aBatteryStatus points to a value representing the battery status the ETSI way(0 - 3, ).
+ * @return  Returns the battery status in multimode representation.
+*/
+
+	{
+	switch (aBatteryStatus)
+		{		
+	case 0:
+		return RMobilePhone::EPoweredByBattery; // equal to 1
+	case 1:
+		return RMobilePhone::EBatteryConnectedButExternallyPowered; // equal to 2
+	case 2:
+		return RMobilePhone::ENoBatteryConnected; // equal to 3
+	case 3:
+		return RMobilePhone::EPowerFault; // equal to 4
+	default:
+		return RMobilePhone::EPowerStatusUnknown; //equal to 0
+		}
+	}