Head.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #if !defined(_INCLUDE_DAIKIN_HEAD_H)
  2. #define _INCLUDE_DAIKIN_HEAD_H
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #include <afxtempl.h>
  7. // Modbus Rtu 设备Dll错误代码定义
  8. enum __ERRO_CODE_DAIKIN
  9. {
  10. ERR_CODE_DAIKIN_COM_FAULT = 21401 , // DAIKIN设备串口通信故障
  11. ERR_CODE_DAIKIN_COM_BUSY , // DAIKIN设备串口通信忙
  12. ERR_CODE_DAIKIN_COM_READ_NO_DATA , // DAIKIN设备没有读到数据
  13. ERR_CODE_DAIKIN_COM_READ_LEN_OVER , // DAIKIN设备读到数据长度超时限制
  14. ERR_CODE_DAIKIN_COM_LRC_LOST , // DAIKIN设备lrc校验失败
  15. EER_CODE_DAIKIN_COM_WRITE_DATA , // DAIKIN设备写串口错误
  16. EER_CODE_DAIKIN_COM_REGNUM , // DAIKIN设备寄存器数
  17. ERR_CODE_DAIKIN_COM_VARLEN , // DAIKIN设备变量长度错误
  18. ERR_CODE_DAIKIN_COM_INVALIDRES , // DAIKIN错误的设置命令
  19. };
  20. #define SET_RUN 1 // 设置空调运转(开/关)
  21. #define SET_RUN_MODE 2 // 设置空调运转模式(0:送风,1:制热,2:制冷,3:自动,4:换气清洗,7:除湿
  22. #define SET_TEMP 3 // 设定温度
  23. #define SET_FAN 4 // 设置风量
  24. #pragma pack(push) //保存对齐状态
  25. #pragma pack(1)//设定为4字节对齐
  26. typedef struct tagPORTPARAM
  27. {
  28. BYTE PortNo; //Com端口
  29. DWORD BaudRate; //波特率
  30. BYTE ByteSize; /* Number of bits/byte, 4-8 */
  31. BYTE Parity; /* 校验位 0-4=None,Odd,Even,Mark,Space */
  32. BYTE StopBits; /* 结束位 0,1,2 = 1, 1.5, 2 */
  33. BYTE StartAddr; //起止地址
  34. int Interval; //间隔时间
  35. tagPORTPARAM()
  36. {
  37. PortNo=3;
  38. BaudRate=CBR_9600;
  39. ByteSize=8;
  40. Parity=NOPARITY;
  41. StopBits=ONESTOPBIT;
  42. StartAddr=1;
  43. Interval=1000;
  44. }
  45. }PORTPARAM,*PPORTPARAM;
  46. typedef struct __CHILD
  47. {
  48. BYTE bySoi;//起始标志位
  49. BYTE byVer[2];//通讯协议版本号
  50. BYTE byAdr[2];//设备地址描述
  51. BYTE byCid1[2];//控制标识码
  52. BYTE byCid2[2];//命令信息
  53. BYTE byLength[4];//INFO字节长度
  54. }CHILD, *pCHILD;
  55. //读寄存器请求
  56. typedef struct __REQUESTPARAM
  57. {
  58. CHILD RequestChild;
  59. //BYTE byCmdType[2];//命令类型
  60. //BYTE byCmdId[2];//命令ID
  61. BYTE byCheckSum[4];//校验码
  62. BYTE byEoi;//结束码
  63. }REQUESTPARAM, *pREQUESTPARAM;
  64. typedef struct __RESPONSE_STRUCT
  65. {
  66. CHILD RequestChild;
  67. BYTE byRtnMsg[200];//返回数据信息
  68. BYTE byCheckSum[4];//校验码
  69. BYTE byEoi;//结束码
  70. }RESPONSE_STRUCT, *PRESPONSE_STRUCT;
  71. //控制空调命令请求
  72. typedef struct __REQUEST_CTRL
  73. {
  74. CHILD RequestChild;
  75. BYTE szCmdType[2]; //控制命令 10H:运转 / 11H:顺次起动运转 / 1FH:停止
  76. BYTE byCheckSum[4]; //校验码
  77. BYTE byEoi; //结束码
  78. }REQUEST_CTRL, *PREQUEST_CTRL;
  79. //设置空调参数请求
  80. typedef struct __REQUESTSETPARAM
  81. {
  82. CHILD RequestChild;
  83. BYTE szCmdType[2]; //80H 空调开机温度, 81H 空调关机温度, 82H 回风温度上限, 83H 回风温度下限, 84H 回风湿度上限, 85H 回风湿度下限
  84. BYTE szCmdInfo[4]; //设定值
  85. BYTE byCheckSum[4];//校验码
  86. BYTE byEoi;//结束码
  87. }REQUESTSETPARAM, *PREQUESTSETPARAM;
  88. //设置空调参数请求
  89. typedef struct __REQUESTREMOTECTRL
  90. {
  91. CHILD RequestChild;
  92. BYTE szCmdType[3]; //'6', '2', '0':运转模式, '6', '3', '0':设定温度, '6', '4', '0':风量
  93. //BYTE szAddr; //地址
  94. // 设置内容,谁szCmdType内容的变化而变化
  95. //BYTE szMsg[n];
  96. BYTE szCmdData[2];
  97. BYTE byCheckSum[4];//校验码
  98. BYTE byEoi;//结束码
  99. }REQUESTREMOTECTRL, *PREQUESTREMOTECTRL;
  100. //下面命令可能需要发送身份密码验证,如果客户不需要,最好不要做,所以现在功能还没有开发
  101. //ATX控制空调命令请求
  102. typedef struct __REQUESTATX
  103. {
  104. BYTE bySoi; //起始标志位 02H
  105. BYTE szCmdType[3]; //'6', '2', '0':运转模式, '6', '3', '0':设定温度, '6', '4', '0':风量
  106. //BYTE szAddr; //地址
  107. // 设置内容,谁szCmdType内容的变化而变化
  108. //BYTE szMsg[n];
  109. BYTE byEoi; //结束码 03H
  110. BYTE szCheckSum; //校验码
  111. }REQUESTATX, *PREQUESTATX;
  112. //ATX控制空调命令响应
  113. typedef struct __RESPONSEATX
  114. {
  115. BYTE bySoi; //起始标志位 02H
  116. BYTE szCmdType[3]; //'6', '2', '0':运转模式, '6', '3', '0':设定温度, '6', '4', '0':风量
  117. BYTE byEoi; //结束码 03H
  118. BYTE szCheckSum; //校验码
  119. }RESPONSEATX, *PRESPONSEATX;
  120. #pragma pack(pop)//恢复对齐状态
  121. #endif //!defined(_INCLUDE_DAIKIN_HEAD_H)