hti/PC_Tools/HTIGateway/HtiGateway/inc/SerialCommPlugin.h
branchRCL_3
changeset 40 07b41fa8d1dd
parent 39 3406c99bc375
child 43 ca8a1b6995f6
--- a/hti/PC_Tools/HTIGateway/HtiGateway/inc/SerialCommPlugin.h	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/*
-* Copyright (c) 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:
-*   This file contains headers of SerialComm communication channel plugin objects. 
-*   These classes are SerialComm, SerialCommPlugin and SerialCommIoThread classes.
-*/
-
-#ifndef SERIALCOMMPLUGIN_H
-#define SERIALCOMMPLUGIN_H
-
-#pragma warning ( disable : 4786 )
-#include <iostream>
-#include <process.h>
-#include <string>
-#include <map>
-#include <comdef.h>
-
-#include "common.h"
-#include "plugin.h"
-#include "safequeue.h"
-#include "thread.h"
-
-using namespace std;
-
-#define SERIAL_INI_FILE_NAME             "serialplugin.ini"
-
-#define SERIAL_INI_INIT_PARAM            "INIT_STRING"
-#define PARAM_SWITCH_INIT_PARAM          "-INIT_STRING"
-#define SERIAL_INI_COMPORT_PARAM         "COMPORT"
-#define PARAM_SWITCH_COMPORT_PARAM       "-COMPORT"
-#define SERIAL_INI_COMPORT_TIMEOUT       "TIMEOUT"
-#define PARAM_SWITCH_COMPORT_TIMEOUT     "-TIMEOUT"
-#define SERIAL_INI_USE_HW_FLOW_CONTROL   "HW_FLOWCONTROL"
-#define PARAM_SWITCH_USE_HW_FLOW_CONTROL "-HW_FLOWCONTROL"
-#define SERIAL_INI_SEND_SLEEP_PAUSE      "SEND_PAUSE"
-#define PARAM_SWITCH_SEND_SLEEP_PAUSE    "-SEND_PAUSE"
-#define SERIAL_INI_SEND_SIZE             "SEND_SIZE"
-#define PARAM_SWITCH_SEND_SIZE           "-SEND_SIZE"
-
-#define SERIAL_DEFAULT_INIT_STRING       "115200,n,8,1"
-#define SERIAL_DEFAULT_COMPORT           "COM2"
-
-const DWORD g_SerialCommDefaultTimeout    = 40000; //ms
-const DWORD g_SerialPluginTimeout         = 10000; //not used
-const long  g_SerialCommDefaultSendPause  = 0;
-
-// Maximum time to wait
-extern long g_MaximumShutdownWaitTime;
-
-//**********************************************************************************
-// Class SerialComm
-//
-// This class implements the actual serial communication
-//**********************************************************************************
-
-class SerialComm
-{
-public:
-	SerialComm();
-	~SerialComm();
-	/*
-	 * This method opens a communication device that uses serial communication and
-	 * configures it according initialization parameters
-	 */	
-	WORD Open( const string& commPort, const string& initParameters, long timeout,
-				bool hwFlowControl, long sendPause, long sendMaxSize);
-	DWORD Close();
-	/*
-	 * This method is used to send Data object using serial communication
-	 */		
-	DWORD Send(const Data& data_in);
-	/*
-	 * This method reads all available data from communication media 
-	 * and returns it in the Data object given as parameter
-	 */	
-	DWORD Receive(Data* data_out);
-	/*
-	 * This method returns number of bytes available in incoming queue or
-	 * -1 if communication error has occurred
-	 */	
-	LONG GetRxBytesAvailable();
-private:
-	//handle to communication resource
-	HANDLE m_Com;
-	bool m_Open;
-	long m_SendPause;
-	long m_SendMaxSize;
-};
-
-//**********************************************************************************
-// Class SerialCommIoThread
-//
-// This thread is used to send data from outgoing queue to serial port
-// and read bytes from serial port and push it to incoming queue 
-//**********************************************************************************
-
-class SerialCommIoThread : public Thread<SerialCommIoThread>
-{
-public:
-	SerialCommIoThread(SafeQueue<Data*>* in, SafeQueue<Data*>* out,
-						const string& init, const string& commPort, long timeout,
-						bool hwFlowControl, long sendPause, long sendMaxSize);
-	/*
-	 * Main execution loop which is used to send Data from outgoing queue to serial port
-	 * and read bytes from serial port, encapsulate it to Data objects and push them to incoming queue 
-	 */		
-	void Run();
-	void Stop();
-	void SetTimeout(long timeout);
-	long GetTimeout() const;
-	Event GetOpenedEvent();
-private:
-	//incoming queue
-	SafeQueue<Data*>* m_InQueue;
-	//outgoing queue
-	SafeQueue<Data*>* m_OutQueue;
-	Event m_OpenedEvent;
-	bool m_Running;
-	long m_PropertySerialCommTimeout;
-	const string& m_InitString;
-	const string& m_CommPort;
-	long m_ProperySerialSendPause;
-	bool m_PropertySerialHwFlowControl;
-	long m_PropertySerialMaxSendSize;
-};
-
-//**********************************************************************************
-// Class SerialCommPlugin
-//
-// This class implements a CommChannelPlugin used in serial communication with device
-//**********************************************************************************
-
-class SerialCommPlugin : public CommChannelPlugin
-{
-public:
-	/*
-	 * This method initializes SerialCommPlugin and starts SerialCommPluginIoThread
-	 */
-	DWORD Init();
-	/*
-	 * This method is used to:
-	 * -push given data to outgoing queue
-	 * -wait for data to become available in incoming queue
-	 * -pop the first Data object from queue and store it to the Data object given as parameter
-	 */		
-	DWORD SendReceive(Data* data_in, Data** data_out, long timeout = g_SerialPluginTimeout);
-	/*
-	 * This method pushes the given Data object(of type Data::EData) to outgoing queue
-	 */		
-	DWORD Send(Data* data_in, long timeout = g_SerialPluginTimeout);
-	/*
-	 * This method is used to pop the first data object from incoming queue and store it to data object given as parameter
-	 */		
-	DWORD Receive(Data** data_out, long timeout = g_SerialPluginTimeout);
-	/*
-	 * This method is used to wait for data to become available in incoming queue 
-	 * and then pop the first Data object from the queue and and store it to Data object given as parameter.
-	 */		
-	DWORD ReceiveWait(Data** data_out, long timeout = g_SerialPluginTimeout);
-	/*
-	 * This method checks if data is available on incoming queue
-	 */		
-	bool IsDataAvailable();
-	DWORD Open();
-	/*
-	 * This method stops SerialCommIoThread and waits for it to be in signaled state
-	 */		
-	DWORD Close();
-	SerialCommPlugin(const CommChannelPluginObserver* observer = NULL);
-	~SerialCommPlugin();
-private:
-	void CheckProperties(map<string, string>& props);
-private:
-    //outgoing queue
-	SafeQueue<Data*> m_TxQueue;
-	//incoming queue	
-	SafeQueue<Data*> m_RxQueue;
-	SerialCommIoThread* m_IoThread;
-	//map that properties are read to from ini file
-	map<string, string> m_SerialCommPluginProperties;
-	long m_PropertySerialCommTimeout;
-	string m_PropertySerialCommInitString;
-	string m_PropertySerialCommPort;
-	long m_ProperySerialSendPause;
-	bool m_PropertySerialHwFlowControl;
-	long m_PropertySerialMaxSendSize;
-};
-
-#endif
-
-// End of the file
\ No newline at end of file