diff -r 000000000000 -r 3da2a79470a7 testexecmgmt/ucc/Source/UCCSDeviceControl/CSerialTransport.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecmgmt/ucc/Source/UCCSDeviceControl/CSerialTransport.h Mon Mar 08 15:04:18 2010 +0800 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2005-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: +* Serial Transport +* +*/ + + + +#ifndef __SERIAL_H__ +#define __SERIAL_H__ + +/******************************************************************************** + * + * System Includes + * + *******************************************************************************/ +#include +#include + +#include "MUCCTransport.h" + +/******************************************************************************** + * + * Definitions + * + *******************************************************************************/ +#define KMaxPacketSize 64 +#define KModuleSize 8 +#define KReadTimeout 30000000 + +const char OPT_DELIMITER = '|'; + +#ifndef _TCOMMSTATUS +#define _TCOMMSTATUS +enum TCommStatus { + EIdle, + EInitialising, + EInitialised, + EConnecting, + EConnected, + EDisconnecting, + EDisconnected, + EReleasing, + ESendPending, + EReceivePending, + ELast +}; +#endif + +/******************************************************************************** + * + * Class + * + *******************************************************************************/ +class CSerialTransport : public MUCCTransport +{ +public: + CSerialTransport(); + static CSerialTransport* NewL( TPtrC16 aModule ); + virtual ~CSerialTransport(); + + TInt InitialiseL(); + TInt ConnectL( TDesC *aRemoteHost ); + TInt RequestSend( TDesC8 *aCommandData, const TUint aDataLength ); + TInt RequestReceive( TPtr8 *aRecvBufferPtr, TUint aByteCount ); + TInt Disconnect( void ); + TInt Release( void ); + TText8 *Error( void ); + +private: + void ConstructL( TPtrC16 aModule ); + void SetStatus( TCommStatus aNewStatus ); + void ExtractOptions( TDesC *aRemoteHost, TInt& aPortNumber, TInt& aBaudCap, TBps& aBaudRate ); + +private: + enum TReadWriteStatus { ENoRW, EWritePending, EReadPending }; + +private: + TCommStatus iSerialStatus; + TBuf16 iModule; + TInt iRetries; + + RCommServ iCommServer; + RComm iCommPort; + TCommConfig iPortSettings, iOldPortSettings; + + TInt iCommPortOpen, iCommOldSettingsValid; + TRequestStatus iStatus; +}; + +#endif