SerialProcess.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef _SERIALPROCESS_H_
  2. #define _SERIALPROCESS_H_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #include "Struct_Def.h"
  7. class CSerialProcess
  8. {
  9. public:
  10. CSerialProcess( );
  11. virtual ~CSerialProcess();
  12. BOOL OpenComm(
  13. const int &iCommPort, // 1.采集串口;
  14. const int &iRate, // 2.串口波特率;
  15. const int &iDataBit, // 3.数据位;
  16. const int &iStopBit, // 4.停止位;
  17. const int &iParity, // 5.校验码;
  18. const int &iResponsetime, // 6.响应时间;
  19. const int &iInterval); // 7.采集频率;
  20. BOOL CloseComm();
  21. void SetSize(const int &nSize);
  22. void RaiseSize();
  23. void DealSpecialCmd();
  24. int InsertCommand(const BYTE *szCommand,int iLen, int iAddr,const char *szMark, const char *szCheck, int iSNum, bool bRecv);
  25. int RemoveCommand(const BYTE *szCommand);
  26. void RemoveDeivce(const int &addr);
  27. int GetCommandsCount();
  28. int AutoCollect();
  29. int StopCollect();
  30. BOOL SetCommand(const BYTE *szCommand,int iLen, int iAddr);
  31. public:
  32. // 这两个值可以供外部修改,动态的更改线程频率和响应时间;
  33. unsigned int m_nResponseTime; // Response time(设备响应时间);
  34. unsigned int m_nAFrequency; // Acquisition frequency(设备采集频率);
  35. private:
  36. BOOL m_bOpen;
  37. int m_iPort;
  38. HANDLE m_hCom;
  39. DWORD inQue, outQue;
  40. virtual int Write(const BYTE *pBuf, int len);
  41. virtual int Read(BYTE *pBuf, int len);
  42. protected:
  43. DWORD m_dwThreadID; // 采集线程的ID;
  44. HANDLE m_hThreaObj; // 采集线程对象;
  45. HANDLE m_hRunCtrl ; // 线程控制;
  46. HANDLE m_hCollectCtrl ; // 采集控制;
  47. HANDLE m_hFrequencyCtrl; // 采集频率控制事件;
  48. HANDLE m_hResponsetime; // 响应时间控制事件;
  49. int m_iSLSize; // vector size;
  50. vector <STSendCommand> m_sendlist;
  51. void RemoveAllSendCommand();
  52. void RemoveAllRecvCommand();
  53. BOOL m_bCollected;//是否启动线程;
  54. static DWORD WINAPI CollectThreadProc(LPVOID lpParamter);
  55. };
  56. #endif