testexecmgmt/ucc/Source/UCCSDeviceControl/CSerialTransport.h
changeset 0 3da2a79470a7
--- /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 <c32comm.h>
+#include <f32file.h>
+
+#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<KModuleSize> iModule;
+	TInt iRetries;
+
+	RCommServ iCommServer;
+	RComm iCommPort;
+	TCommConfig iPortSettings, iOldPortSettings;
+
+	TInt iCommPortOpen, iCommOldSettingsValid;
+	TRequestStatus iStatus;	 
+};
+
+#endif