CGH_Relays.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef __CGH_Relays_H_
  2. #define __CGH_Relays_H_
  3. #include <Windows.h>
  4. #include <string>
  5. using namespace std;
  6. class CGH_Relays
  7. {
  8. private:
  9. /* data */
  10. HANDLE hCom;
  11. string last_error;
  12. public:
  13. CGH_Relays();
  14. ~CGH_Relays();
  15. public:
  16. //同步方式打开串口,并配置默认信息
  17. bool openSyn(string serial_name, unsigned char baud_rate, unsigned char parity, unsigned char byte_size, unsigned char stop_bits);
  18. //同步方式打开串口(需自己配置串口参数)
  19. bool openSyn(string serial_name);
  20. //设置推荐的缓冲大小
  21. bool setBufferSize(DWORD inputBuff, DWORD outBuffer);
  22. //设置超时
  23. bool setTimeouts(COMMTIMEOUTS& timeouts);
  24. //设置串口信息
  25. bool setDCB(DCB& dcb);
  26. //刷新缓冲区
  27. bool purgeBuff(DWORD flags);
  28. //刷新缓冲区
  29. bool flushBuff();
  30. //写数据
  31. DWORD writeData(char* buffer, int length);
  32. //读数据
  33. DWORD readData(char* buffer, int length);
  34. //写字符串
  35. DWORD writeStr(string str);
  36. //关闭串口
  37. void closeComm();
  38. //判断串口是否打开
  39. bool isOpened();
  40. //得到最后一次失败的错误信息
  41. string getSerialLastError();
  42. // 打开第一路USB开关
  43. bool OpenUSB1();
  44. // 关闭第一路USB开关
  45. bool CloseUSB1();
  46. // 打开第二路USB开关
  47. bool OpenUSB2();
  48. // 关闭第二路USB开关
  49. bool CloseUSB2();
  50. private:
  51. //设置最后一次的错误信息
  52. void setSerialLastError(string error_msg);
  53. //清chu最后一次的错误信息
  54. void clearSerialLastError();
  55. };
  56. #endif /*__CGH_Relays_H_*/