Head.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. // Sms Dll错误代码定义
  8. enum __ERROR_CODE_SMS
  9. {
  10. ERR_CODE_SMS_OPEN_COMM = 80201 , // 打开短信猫串口失败
  11. ERR_CODE_SMS_GSM_NO_RESPONSE = 80202 , // 短信猫没有响应
  12. ERR_CODE_SMS_GSM_ERROR_RESPONSE = 80203 , // 发送失败可能是卡里没钱
  13. ERR_CODE_SMS_GSM_UNKOWN_RESPONSE = 80204 , // 未知响应,也有可能发送成功
  14. };
  15. //--------------------------------------------------------------------------------
  16. // FOR gsm sms
  17. #define GSM_MAX_WAIT_TIME 12000 //发送短消息时的最长等待时间
  18. #define GSM_RESPONSE_NORESPONSE 0 //无响应
  19. #define GSM_RESPONSE_OK 1 //正确返回
  20. #define GSM_RESPONSE_ERROR 2 //返回错误信息,含错误代码
  21. #define GSM_RESPONSE_UNKNOWN 3 //返回无法确定的信息
  22. #define GSM_CMS_ERROR 0 //CMS Error -- Message service error
  23. #define GSM_CME_ERROR 1 //CME Error
  24. #define NOP 183 //非可见字符
  25. const int MAX_SIZE = 512;
  26. #define NUM_NAT 0x81 // 非国际号码前缀 phone number type for non- '+'(national) numbers
  27. #define NUM_INT 0x91 // 国际号码前缀 phone number type for numbers prefixed by '+'(international)
  28. #define MAX_WRITE_STR_LEN 3840
  29. #define MAX_READ_STR_LEN 512//256
  30. #define MIN_READ_STR_LEN 6
  31. #define MAX_TMPSTR_LEN 512//256
  32. #define PDU_MAXNUMLEN 70 // 最大号码长度
  33. #define PDU_MAXUNICODELEN 70 // pdu Unicode的最大长度
  34. #pragma pack(push) //保存对齐状态
  35. #pragma pack(1)//设定为4字节对齐
  36. typedef struct tagPORTPARAM
  37. {
  38. BYTE PortNo; //Com端口
  39. DWORD BaudRate; //波特率
  40. BYTE ByteSize; /* Number of bits/byte, 4-8 */
  41. BYTE Parity; /* 校验位 0-4=None,Odd,Even,Mark,Space */
  42. BYTE StopBits; /* 结束位 0,1,2 = 1, 1.5, 2 */
  43. BYTE StartAddr; //起止地址
  44. int Interval; //间隔时间
  45. tagPORTPARAM()
  46. {
  47. PortNo=3;
  48. BaudRate=CBR_9600;
  49. ByteSize=8;
  50. Parity=NOPARITY;
  51. StopBits=ONESTOPBIT;
  52. StartAddr=1;
  53. Interval=1000;
  54. }
  55. }PORTPARAM,*PPORTPARAM;
  56. //写寄存器请求
  57. typedef struct __REQUESTPARAM
  58. {
  59. BYTE Start; //起始位
  60. BYTE AddrCode[2]; //地址码
  61. BYTE FuncCode[2]; //功能码
  62. BYTE StartAddr[4]; //起始地址
  63. BYTE RequestRegNum[4]; //读取的寄存器个数
  64. BYTE Lrc[2]; //校验码位
  65. BYTE End[2]; //结束符
  66. }REQUESTPARAM, *pREQUESTPARAM;
  67. typedef struct __REQUESTWRPARAM
  68. {
  69. BYTE Start; //起始位
  70. BYTE AddrCode[2]; //地址码
  71. BYTE FuncCode[2]; //功能码
  72. BYTE StartAddr[4]; //起始地址
  73. BYTE RequestRegNum[4]; //读取的寄存器个数
  74. BYTE Data[8]; //设置的数据
  75. BYTE Lrc[2]; //校验码位
  76. BYTE End[2]; //结束符
  77. }REQUESTWRPARAM, *pREQUESTWRPARAM;
  78. //设置的通讯协议基本参数
  79. typedef struct __SETBASEPARAM
  80. {
  81. int nAddr;//地址码
  82. int nStartAddr;//起始地址
  83. int nRegNum;//读取的寄存器个数
  84. BYTE FuncCode;//功能码
  85. }SETBASEPARAM, *pSETBASEPARAM;
  86. //读应答数据结构
  87. typedef struct __STATUS_STRUCT
  88. {
  89. BYTE Start; //起始位(都是:号开头)
  90. BYTE AddrCode[2]; //地址码
  91. BYTE FuncCode[2]; //功能码
  92. BYTE RtnByteNum[2]; //返回字节个数
  93. }STATUS_STRUCT, *PSTATUSSTRUCT;
  94. typedef struct __RESPONSE_STRUCT
  95. {
  96. STATUS_STRUCT StatusStruct;
  97. char StrRtnMsg[80]; //返回字符串
  98. BYTE Lrc[2]; //校验码位
  99. BYTE End[2]; //结束码 0x0d、0x0a(回车、换行符)
  100. }RESPONSE_STRUCT, *PRESPONSE_STRUCT;
  101. #pragma pack(pop)//恢复对齐状态
  102. #endif //!defined(_INCLUDE_HEAD_H)