--- /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);
+ }