diff -r 000000000000 -r af10295192d8 networkingtestandutils/networkingintegrationtest/NTRas/COMMUTIL.CPP --- /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); + }