telephonyserverplugins/multimodetsy/Multimode/Msignal.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/multimodetsy/Multimode/Msignal.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/multimodetsy/Multimode/Msignal.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,257 +1,257 @@
-// 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:
-// Queries the ME signal quality. Retrieves signal level and BitErrorRate (ber)
-// 
-//
-
-#include <et_phone.h>
-#include "Msignal.h"
-#include "mSLOGGER.H"
-#include "ATIO.H"
-#include "Matstd.h"
-
-CATGetSignal* CATGetSignal::NewL(CATIO* aIo,CTelObject* aTelObject,CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
-	{
-	CATGetSignal* signal = new(ELeave) CATGetSignal(aIo, aTelObject, aInit, aPhoneGlobals);
-	CleanupStack::PushL(signal);
-	signal->ConstructL();
-	CleanupStack::Pop();
-	return signal;
-	}
-
-CATGetSignal::CATGetSignal(CATIO* aIo, CTelObject* aTelObject, CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
-: CATCommands(aIo,aTelObject,aInit,aPhoneGlobals)
-{}
-
-void CATGetSignal::ConstructL()
-	{
-	CATCommands::ConstructL();
-	}
-
-CATGetSignal::~CATGetSignal()
-	{
-	iIo->RemoveExpectStrings(this);
-	}
-
-
-void CATGetSignal::Start(TTsyReqHandle aTsyReqHandle,TAny* aParams) 
-	{
-	LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tStarting ME signal quality query."));
-	iReqHandle = aTsyReqHandle;
-
-	//
-	// Validate the arguments
-	TTsySignalInfo* signal = static_cast<TTsySignalInfo*>(aParams);
-	__ASSERT_DEBUG(signal!=NULL,Panic(EATGetSignalNullParameter));
-	__ASSERT_DEBUG(signal->iBar!=NULL,Panic(EATGetSignalNullParameter));
-	__ASSERT_DEBUG(signal->iSignalStrength!=NULL,Panic(EATGetSignalNullParameter));
-
-	//
-	// Store the arguments
-	iSignalInfo.iSignalStrength = signal->iSignalStrength;
-	iSignalInfo.iBar = signal->iBar;
-
-	iTxBuffer.Format(KGetSignalQualityCommand);
-	iIo->Write(this, iTxBuffer);
-	iIo->SetTimeOut(this, 5000);
-	iState=EATSignalWaitForWriteComplete;
-	}
-
-
-void CATGetSignal::EventSignal(TEventSource aSource)
-	{
-	if (aSource==ETimeOutCompletion)
-		{
-		LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tTimeout Error during signal quality query"));
-		RemoveStdExpectStrings();
-		Complete(KErrTimedOut,aSource);
-		return;
-		}
-
-	switch(iState)
-		{
-		case EATSignalWaitForWriteComplete:
-		__ASSERT_ALWAYS(aSource==EWriteCompletion,Panic(EATCommand_IllegalCompletionWriteExpected));
-			{
-			iIo->WriteAndTimerCancel(this);
-			StandardWriteCompletionHandler(aSource, 5);
-			iState=EATSignalReadComplete;
-			}
-		break;
-
-		case EATSignalReadComplete:
-		__ASSERT_ALWAYS(aSource==EReadCompletion,Panic(EATCommand_IllegalCompletionReadExpected));
-			{	
-			iIo->WriteAndTimerCancel(this);
-			TInt ret(ValidateExpectString());
-			RemoveStdExpectStrings();
-			if (ret)
-				{
-				Complete(ret,aSource);
-				return;
-				}
-			TRAP(ret,ParseSignalResponseL());
-			Complete(ret,aSource);
-			}
-		break;
-
-		default:
-		break;
-		}//switch
-	}//EventSignal
-
-
-void CATGetSignal::Stop(TTsyReqHandle aTsyReqHandle)
-	{
-	__ASSERT_ALWAYS(aTsyReqHandle == iReqHandle, Panic(EIllegalTsyReqHandle));
-	LOGTEXT2(_L8("CATGetSignal::Stop - Cancelling from state %d"), iState);
-	
-	if (iState==EATSignalWaitForWriteComplete)
-		{
-		Complete(KErrCancel, EReadCompletion);
-		}
-	// else do nothing because we have already sent the AT command
-	// or have not actually started doing anything!
-	}
-
-
-void CATGetSignal::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:CATGetSignal:\tCATGetSignal completed with error code : %d"), aError);
-	iState = EATNotInProgress;
-	}
-
-
-void CATGetSignal::CompleteWithIOError(TEventSource /*aSource*/,TInt aStatus)
-	{
-	if (iState!=EATNotInProgress)
-		{
-		iIo->WriteAndTimerCancel(this);
-		iTelObject->ReqCompleted(iReqHandle, aStatus);
-		iState = EATNotInProgress;
-		}
-	}
-
-void CATGetSignal::ParseSignalResponseL()
-	{
-	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 != KCSQResponseString)
-				{
-				entry->Deque();
-				delete entry;
-				entry = iter++;
-				if (entry == NULL)
-					{
-					CleanupStack::PopAndDestroy();
-					User::Leave(KErrNotFound);
-					}
-				} //while
-			LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tFound +CSQ string!"));
-			}
-		else
-			{
-			TLex8 aLex((entry->iResultPtr).Ptr());
-			if (icounter++ == 0)
-				{	
-				TInt32 signalStrength; 
-				ret = aLex.Val(signalStrength);
-				if (ret == KErrNone)
-					{
-					//Calculate the number of signal bars 
-					TInt8 numberOfBars;
-					numberOfBars = NumberOfSignalBars(signalStrength);
-
-					// Convert the the 0 to 31 range(in aSignalStrength) which the AT 
-					// command returns to the corresponding dBm values(-113dBm to -51dBm).
-					signalStrength = (-113 + (2 * signalStrength));
-					
-					if((iSignalInfo.iBar))					// Ensure we do not cause an access violation
-						*(iSignalInfo.iBar) = numberOfBars;		
-
-					if((iSignalInfo.iSignalStrength))	// Ensure we do not cause an access violation
-						*(iSignalInfo.iSignalStrength) = signalStrength;
-					}
-				}
-			}//else
-		entry->Deque();
-		delete entry;
-		}//while
-
-	CleanupStack::PopAndDestroy();
-	}//ParsesignalResponseL
-
-
-TInt8 CATGetSignal::NumberOfSignalBars(TInt32 aSignalStrength)
-
-/** * Number of signalbars *
- * This method returns the number of signal bars that the phone should show on the display. 
- * @param aSignalStrength points to the signalstrength given in the range 0 to 31. 0 to 31 is returned by the phone(ETSI standard) and represents -113dB to -51dB.
- * @return number of bars. Can take the values (-1) to 5 (-1 represents KErrNotFound)
- */
-	{
-	TInt8 bars; 
-
-	if(aSignalStrength == KSignalStrengthMinus113dBm)
-		{
-		bars = 0;
-		}
-	else if (aSignalStrength <= KSignalStrengthMinus101dBm)
-		{
-		bars = 1;
-		}
-	else if (aSignalStrength <= KSignalStrengthMinus89dBm)
-		{
-		bars = 2;
-		}
-	else if (aSignalStrength <= KSignalStrengthMinus77dBm)
-		{
-		bars = 3;
-		}
-	else if (aSignalStrength <= KSignalStrengthMinus53dBm)
-		{
-		bars = 4;
-		}
-
-	else if(aSignalStrength == KSignalStrengthMinus51dBm)
-		{
-		bars = 5;
-		}
-	else
-		{
-		bars=KErrNotFound; 
-		}
-
-	return bars;
-
-	} //End of NumberOfSignalBars
-
+// 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:
+// Queries the ME signal quality. Retrieves signal level and BitErrorRate (ber)
+// 
+//
+
+#include <et_phone.h>
+#include "Msignal.h"
+#include "mSLOGGER.H"
+#include "ATIO.H"
+#include "Matstd.h"
+
+CATGetSignal* CATGetSignal::NewL(CATIO* aIo,CTelObject* aTelObject,CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
+	{
+	CATGetSignal* signal = new(ELeave) CATGetSignal(aIo, aTelObject, aInit, aPhoneGlobals);
+	CleanupStack::PushL(signal);
+	signal->ConstructL();
+	CleanupStack::Pop();
+	return signal;
+	}
+
+CATGetSignal::CATGetSignal(CATIO* aIo, CTelObject* aTelObject, CATInit* aInit,CPhoneGlobals* aPhoneGlobals)
+: CATCommands(aIo,aTelObject,aInit,aPhoneGlobals)
+{}
+
+void CATGetSignal::ConstructL()
+	{
+	CATCommands::ConstructL();
+	}
+
+CATGetSignal::~CATGetSignal()
+	{
+	iIo->RemoveExpectStrings(this);
+	}
+
+
+void CATGetSignal::Start(TTsyReqHandle aTsyReqHandle,TAny* aParams) 
+	{
+	LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tStarting ME signal quality query."));
+	iReqHandle = aTsyReqHandle;
+
+	//
+	// Validate the arguments
+	TTsySignalInfo* signal = static_cast<TTsySignalInfo*>(aParams);
+	__ASSERT_DEBUG(signal!=NULL,Panic(EATGetSignalNullParameter));
+	__ASSERT_DEBUG(signal->iBar!=NULL,Panic(EATGetSignalNullParameter));
+	__ASSERT_DEBUG(signal->iSignalStrength!=NULL,Panic(EATGetSignalNullParameter));
+
+	//
+	// Store the arguments
+	iSignalInfo.iSignalStrength = signal->iSignalStrength;
+	iSignalInfo.iBar = signal->iBar;
+
+	iTxBuffer.Format(KGetSignalQualityCommand);
+	iIo->Write(this, iTxBuffer);
+	iIo->SetTimeOut(this, 5000);
+	iState=EATSignalWaitForWriteComplete;
+	}
+
+
+void CATGetSignal::EventSignal(TEventSource aSource)
+	{
+	if (aSource==ETimeOutCompletion)
+		{
+		LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tTimeout Error during signal quality query"));
+		RemoveStdExpectStrings();
+		Complete(KErrTimedOut,aSource);
+		return;
+		}
+
+	switch(iState)
+		{
+		case EATSignalWaitForWriteComplete:
+		__ASSERT_ALWAYS(aSource==EWriteCompletion,Panic(EATCommand_IllegalCompletionWriteExpected));
+			{
+			iIo->WriteAndTimerCancel(this);
+			StandardWriteCompletionHandler(aSource, 5);
+			iState=EATSignalReadComplete;
+			}
+		break;
+
+		case EATSignalReadComplete:
+		__ASSERT_ALWAYS(aSource==EReadCompletion,Panic(EATCommand_IllegalCompletionReadExpected));
+			{	
+			iIo->WriteAndTimerCancel(this);
+			TInt ret(ValidateExpectString());
+			RemoveStdExpectStrings();
+			if (ret)
+				{
+				Complete(ret,aSource);
+				return;
+				}
+			TRAP(ret,ParseSignalResponseL());
+			Complete(ret,aSource);
+			}
+		break;
+
+		default:
+		break;
+		}//switch
+	}//EventSignal
+
+
+void CATGetSignal::Stop(TTsyReqHandle aTsyReqHandle)
+	{
+	__ASSERT_ALWAYS(aTsyReqHandle == iReqHandle, Panic(EIllegalTsyReqHandle));
+	LOGTEXT2(_L8("CATGetSignal::Stop - Cancelling from state %d"), iState);
+	
+	if (iState==EATSignalWaitForWriteComplete)
+		{
+		Complete(KErrCancel, EReadCompletion);
+		}
+	// else do nothing because we have already sent the AT command
+	// or have not actually started doing anything!
+	}
+
+
+void CATGetSignal::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:CATGetSignal:\tCATGetSignal completed with error code : %d"), aError);
+	iState = EATNotInProgress;
+	}
+
+
+void CATGetSignal::CompleteWithIOError(TEventSource /*aSource*/,TInt aStatus)
+	{
+	if (iState!=EATNotInProgress)
+		{
+		iIo->WriteAndTimerCancel(this);
+		iTelObject->ReqCompleted(iReqHandle, aStatus);
+		iState = EATNotInProgress;
+		}
+	}
+
+void CATGetSignal::ParseSignalResponseL()
+	{
+	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 != KCSQResponseString)
+				{
+				entry->Deque();
+				delete entry;
+				entry = iter++;
+				if (entry == NULL)
+					{
+					CleanupStack::PopAndDestroy();
+					User::Leave(KErrNotFound);
+					}
+				} //while
+			LOGTEXT(_L8("MMTsy:\tCATGetSignal:\tFound +CSQ string!"));
+			}
+		else
+			{
+			TLex8 aLex((entry->iResultPtr).Ptr());
+			if (icounter++ == 0)
+				{	
+				TInt32 signalStrength; 
+				ret = aLex.Val(signalStrength);
+				if (ret == KErrNone)
+					{
+					//Calculate the number of signal bars 
+					TInt8 numberOfBars;
+					numberOfBars = NumberOfSignalBars(signalStrength);
+
+					// Convert the the 0 to 31 range(in aSignalStrength) which the AT 
+					// command returns to the corresponding dBm values(-113dBm to -51dBm).
+					signalStrength = (-113 + (2 * signalStrength));
+					
+					if((iSignalInfo.iBar))					// Ensure we do not cause an access violation
+						*(iSignalInfo.iBar) = numberOfBars;		
+
+					if((iSignalInfo.iSignalStrength))	// Ensure we do not cause an access violation
+						*(iSignalInfo.iSignalStrength) = signalStrength;
+					}
+				}
+			}//else
+		entry->Deque();
+		delete entry;
+		}//while
+
+	CleanupStack::PopAndDestroy();
+	}//ParsesignalResponseL
+
+
+TInt8 CATGetSignal::NumberOfSignalBars(TInt32 aSignalStrength)
+
+/** * Number of signalbars *
+ * This method returns the number of signal bars that the phone should show on the display. 
+ * @param aSignalStrength points to the signalstrength given in the range 0 to 31. 0 to 31 is returned by the phone(ETSI standard) and represents -113dB to -51dB.
+ * @return number of bars. Can take the values (-1) to 5 (-1 represents KErrNotFound)
+ */
+	{
+	TInt8 bars; 
+
+	if(aSignalStrength == KSignalStrengthMinus113dBm)
+		{
+		bars = 0;
+		}
+	else if (aSignalStrength <= KSignalStrengthMinus101dBm)
+		{
+		bars = 1;
+		}
+	else if (aSignalStrength <= KSignalStrengthMinus89dBm)
+		{
+		bars = 2;
+		}
+	else if (aSignalStrength <= KSignalStrengthMinus77dBm)
+		{
+		bars = 3;
+		}
+	else if (aSignalStrength <= KSignalStrengthMinus53dBm)
+		{
+		bars = 4;
+		}
+
+	else if(aSignalStrength == KSignalStrengthMinus51dBm)
+		{
+		bars = 5;
+		}
+	else
+		{
+		bars=KErrNotFound; 
+		}
+
+	return bars;
+
+	} //End of NumberOfSignalBars
+