Head.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #if !defined(_INCLUDE_HEAD_H)
  2. #define _INCLUDE_HEAD_H
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. #include <afxtempl.h>
  7. // ICPDAS 设备Dll错误代码定义
  8. enum __ERRO_CODE_ICPDAS
  9. {
  10. ERR_CODE_ICPDAS_COM_FAULT = 20801 , //ICPDAS设备串口通信故障
  11. ERR_CODE_ICPDAS_COM_BUSY , // ICPDAS设备串口通信忙
  12. ERR_CODE_ICPDAS_COM_READ_NO_DATA , // ICPDAS设备没有读到数据
  13. ERR_CODE_ICPDAS_COM_READ_LEN_OVER , // ICPDAS设备读到数据长度超时限制
  14. ERR_CODE_ICPDAS_COM_LRC_LOST , // ICPDAS设备lrc校验失败
  15. EER_CODE_ICPDAS_COM_WRITE_DATA , // ICPDAS设备写串口错误
  16. EER_CODE_ICPDAS_COM_REGNUM , //ICPDAS设备寄存器数
  17. ERR_CODE_ICPDAS_COM_VARLEN , //ICPDAS设备变量长度非法
  18. ERR_CODE_ICPDAS_COM_INVALIDRES , //ICPDAS设备无效应答
  19. };
  20. #pragma pack(push) //保存对齐状态
  21. #pragma pack(1)//设定为4字节对齐
  22. typedef struct tagPORTPARAM
  23. {
  24. BYTE PortNo; //Com端口
  25. DWORD BaudRate; //波特率
  26. BYTE ByteSize; /* Number of bits/byte, 4-8 */
  27. BYTE Parity; /* 校验位 0-4=None,Odd,Even,Mark,Space */
  28. BYTE StopBits; /* 结束位 0,1,2 = 1, 1.5, 2 */
  29. BYTE StartAddr; //起止地址
  30. int Interval; //间隔时间
  31. tagPORTPARAM()
  32. {
  33. PortNo=3;
  34. BaudRate=CBR_9600;
  35. ByteSize=8;
  36. Parity=NOPARITY;
  37. StopBits=ONESTOPBIT;
  38. StartAddr=1;
  39. Interval=1000;
  40. }
  41. }PORTPARAM,*PPORTPARAM;
  42. //寄存器请求
  43. typedef struct __REQUESTPARAM //$012
  44. {
  45. BYTE Start; //Leading Character '$'
  46. BYTE StartAddr[2]; //Module Address '0','1'
  47. BYTE FuncCode[2]; //Command '2'
  48. BYTE Lrc[2]; //校验码位 '?' = 0xB7,暂时不考虑校验位
  49. BYTE END; //结束符0x0D
  50. }REQUESTPARAM, *pREQUESTPARAM;
  51. //设置的通讯协议基本参数
  52. typedef struct __SETBASEPARAM
  53. {
  54. int nAddr;//地址码
  55. BYTE Start;//地址码
  56. BYTE StartAddr[2];//起始地址
  57. int nRegNum;//读取的寄存器个数
  58. BYTE FuncCode[2];//功能码
  59. }SETBASEPARAM, *pSETBASEPARAM;
  60. //读应答数据结构
  61. typedef struct __STATUS_STRUCT
  62. {
  63. BYTE Start; //起始位
  64. BYTE AddrCode[2]; //地址码
  65. BYTE RtnByteNum; //返回字节个数
  66. }STATUS_STRUCT, *PSTATUSSTRUCT;
  67. typedef struct __RESPONSE_STRUCT
  68. {
  69. STATUS_STRUCT StatusStruct;
  70. char StrRtnMsg[80]; //返回字符串
  71. //BYTE Lrc[2]; //校验码位
  72. BYTE End; //结束码 0x0d(回车)
  73. }RESPONSE_STRUCT, *PRESPONSE_STRUCT;
  74. #pragma pack(pop)//恢复对齐状态
  75. #endif //!defined(_INCLUDE_HEAD_H)