networkingtestandutils/networkingintegrationtest/NTRas/COMMUTIL.CPP
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkingtestandutils/networkingintegrationtest/NTRas/COMMUTIL.CPP	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,213 @@
+// 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:
+//
+
+#include "rasdef.h"
+
+TInt Util::GetCommaSepToken(TLex& aLex, TPtrC& aPtr)
+	{
+	aPtr.Set(NULL,0);
+	
+	TChar ch;
+	while(!aLex.Eos() && (ch = aLex.Peek(), ch==','))
+		aLex.Inc();
+
+	if(aLex.Eos())
+		return KErrNone;
+
+	aLex.Mark();		
+	while (!aLex.Eos() && (ch = aLex.Peek(), ch!=','))
+		aLex.Inc();
+	aPtr.Set(aLex.MarkedToken());
+	return KErrNone;
+	}
+
+TInt Util::GetCommHandshake(const TDesC& aDes, TUint& aHandshake)
+	{
+	TLex lex(aDes);	
+	TPtrC des;
+	TUint hs = 0;	
+	for (;;)
+		{
+		TInt ret = GetCommaSepToken(lex, des);
+		if (ret!=KErrNone)
+			return ret;
+		if (des.Length()>0)
+			{
+         _LIT(KXonXoff, "XON/XOFF");
+         _LIT(KRtsCts,  "RTS/CTS");
+         _LIT(KDtrDsr,  "DTR/DSR");
+         _LIT(KDcd,  "DCD");
+
+			if (!des.CompareF(KXonXoff))
+				hs |= (KConfigObeyXoff | KConfigSendXoff);
+			else if (!des.CompareF(KRtsCts))
+				hs |= (KConfigObeyCTS);
+			else if (!des.CompareF(KDtrDsr))
+				hs |= (KConfigObeyDSR | KConfigFailDSR);
+			else if (!des.CompareF(KDcd))
+				hs |= (KConfigObeyDCD);
+			else
+				return KErrArgument;
+			}
+		else
+			break;
+		}
+	aHandshake = hs;
+	return KErrNone;
+	}
+
+TInt Util::GetCommFormat(const TDesC& aDes, TDataBits& aDataBits, TStopBits& aStopBits, TParity& aParity)
+	{
+	switch (aDes[0])
+		{
+	case '5':
+		aDataBits = EData5;
+		break;
+	case '6':
+		aDataBits = EData6;
+		break;
+	case '7':
+		aDataBits = EData7;
+		break;
+	case '8':
+		aDataBits = EData8;
+		break;
+	default:
+		return KErrArgument;
+		}
+	switch (aDes[1])
+		{
+	case 'N':
+		aParity = EParityNone;
+		break;
+	case 'E':
+		aParity = EParityEven;
+		break;
+	case 'O':
+		aParity = EParityOdd;
+		break;
+	case 'M':
+		aParity = EParityMark;
+		break;
+	case 'S':
+		aParity = EParitySpace;
+		break;
+	default:
+		return KErrArgument;
+		}
+	switch (aDes[2])
+		{
+	case '1':
+		aStopBits = EStop1;
+		break;
+	case '2':
+		aStopBits = EStop2;
+		break;
+	default:
+		return KErrArgument;
+		}
+	return KErrNone;
+	}
+
+
+TInt Util::GetCommSpeed(TInt aSpeed, TBps& aBps)
+	{
+	switch (aSpeed)
+		{
+	case 50:
+		aBps = EBps50;
+		break;
+	case 75:
+		aBps = EBps75;
+		break;
+	case 110:
+		aBps = EBps110;
+		break;
+	case 134:
+		aBps = EBps134;
+		break;
+	case 150:
+		aBps = EBps150;
+		break;
+	case 300:
+		aBps = EBps300;
+		break;
+	case 600:
+		aBps = EBps600;
+		break;
+	case 1200:
+		aBps = EBps1200;
+		break;
+	case 1800:
+		aBps = EBps1800;
+		break;
+	case 2000:
+		aBps = EBps2000;
+		break;
+	case 2400:
+		aBps = EBps2400;
+		break;
+	case 3600:
+		aBps = EBps3600;
+		break;
+	case 4800:
+		aBps = EBps4800;
+		break;
+	case 7200:
+		aBps = EBps7200;
+		break;
+	case 9600:
+		aBps = EBps9600;
+		break;
+	case 19200:
+		aBps = EBps19200;
+		break;
+	case 38400:
+		aBps = EBps38400;
+		break;
+	case 57600:
+		aBps = EBps57600;
+		break;
+	case 115200:
+		aBps = EBps115200;
+		break;
+	default:
+		return KErrArgument;
+		}
+	return KErrNone;
+	}
+
+#if defined (__WINS__)
+_LIT(PDD_NAME,"ECDRV");
+_LIT(LDD_NAME,"ECOMM");
+#else
+_LIT(PDD_NAME,"EUART1");
+_LIT(PDD2_NAME,"EUART2");
+_LIT(LDD_NAME,"ECOMM");
+#endif
+
+void Util::CommInit()
+	{
+
+	User::LoadPhysicalDevice(PDD_NAME);
+#ifdef PDD2_NAME
+	User::LoadPhysicalDevice(PDD2_NAME);
+#endif
+	User::LoadLogicalDevice(LDD_NAME);
+ 	// When bootstrapping C32 we have to avoid the PhBkSyncServer being started, since
+ 	// it needs a different CommDB
+ 	_LIT(KPhbkSyncCMI, "phbsync.cmi");
+    StartC32WithCMISuppressions(KPhbkSyncCMI);
+	}