12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef _SERIALPROCESS_H_
- #define _SERIALPROCESS_H_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "Struct_Def.h"
- class CSerialProcess
- {
- public:
- CSerialProcess( );
- virtual ~CSerialProcess();
- BOOL OpenComm(
- const int &iCommPort, // 1.采集串口;
- const int &iRate, // 2.串口波特率;
- const int &iDataBit, // 3.数据位;
- const int &iStopBit, // 4.停止位;
- const int &iParity, // 5.校验码;
- const int &iResponsetime, // 6.响应时间;
- const int &iInterval); // 7.采集频率;
- BOOL CloseComm();
- void SetSize(const int &nSize);
- void RaiseSize();
- void DealSpecialCmd();
- int InsertCommand(const BYTE *szCommand,int iLen, int iAddr,const char *szMark, const char *szCheck, int iSNum, bool bRecv);
- int RemoveCommand(const BYTE *szCommand);
- void RemoveDeivce(const int &addr);
- int GetCommandsCount();
- int AutoCollect();
- int StopCollect();
- BOOL SetCommand(const BYTE *szCommand,int iLen, int iAddr);
- public:
- // 这两个值可以供外部修改,动态的更改线程频率和响应时间;
- unsigned int m_nResponseTime; // Response time(设备响应时间);
- unsigned int m_nAFrequency; // Acquisition frequency(设备采集频率);
- private:
- BOOL m_bOpen;
- int m_iPort;
- HANDLE m_hCom;
- DWORD inQue, outQue;
- virtual int Write(const BYTE *pBuf, int len);
- virtual int Read(BYTE *pBuf, int len);
- protected:
- DWORD m_dwThreadID; // 采集线程的ID;
- HANDLE m_hThreaObj; // 采集线程对象;
- HANDLE m_hRunCtrl ; // 线程控制;
- HANDLE m_hCollectCtrl ; // 采集控制;
- HANDLE m_hFrequencyCtrl; // 采集频率控制事件;
- HANDLE m_hResponsetime; // 响应时间控制事件;
- int m_iSLSize; // vector size;
- vector <STSendCommand> m_sendlist;
- void RemoveAllSendCommand();
- void RemoveAllRecvCommand();
- BOOL m_bCollected;//是否启动线程;
- static DWORD WINAPI CollectThreadProc(LPVOID lpParamter);
- };
- #endif
|