pspublic.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. #ifndef PSPUBLIC_H
  2. #define PSPUBLIC_H
  3. #pragma pack(push)
  4. #pragma pack(1)
  5. /*********************************************************
  6. 网管数据来源
  7. **********************************************************/
  8. #define PS_SOURCE_CENTER 0X00 // 监控中心
  9. #define PS_SOURCE_GUI 0X01 // 本地网管
  10. #define PS_SOURCE_ALARM 0x02 // 告警模块
  11. /*********************************************************
  12. 定义AP层协议
  13. **********************************************************/
  14. //定义AP层协议头
  15. #define PS_FRAME_MIN_LEN 17 //AP层最小帧长,协议框架17字节
  16. #define PS_FRAME_MCPA_PAYLOAD_LEN 260//MCPA,数据载荷256字节
  17. #define PS_FRAME_MCPB_PAYLOAD_LEN 264 //MCPB,数据载荷256字节
  18. #define PS_FRAME_MAX_LEN 562 // AP层最大帧长
  19. #define PS_MCP_A_DATA_LEN 64 //MCP-A监控对象数据单元最大长度
  20. #define PS_MCP_B_DATA_LEN 256 //MCP-B监控对象数据单元最大长度,帧号4个字节,数据256字节
  21. #define PS_AP_HEAD_FLAG 0x7E //开始标志符,小端模式
  22. #define PS_AP_TAIL_FLAG 0x7E//结束标识符,小端模式
  23. //AP头,4字节
  24. typedef struct AP_HEAD_S
  25. {
  26. quint8 byStartFlag;
  27. }AP_HEAD_T;
  28. /*********************************************************
  29. 定义VP层协议
  30. **********************************************************/
  31. //VP头,15个字节
  32. typedef struct VP_HEAD_S
  33. {
  34. quint32 dwProjectId;//项目编号,省市各1个字节,项目编号2个字节
  35. quint8 byPacketNo;//通信包号,由发送端产生,接收端原值返回
  36. quint32 dwDeviceId; // 设备编号
  37. quint8 byVpFlag; // vp层交互标志
  38. quint8 byMcpType; // 监控应用层协议标识
  39. } VP_HEAD_T;
  40. //VP层交互标志
  41. typedef enum
  42. {
  43. VP_RESP = 0x01, // 应答
  44. VP_CMMD = 0x80,// 命令
  45. }PT_VP_FLAG_E;
  46. /*********************************************************
  47. 定义MCP层协议
  48. **********************************************************/
  49. //MCP头,2个字节
  50. typedef struct MCP_HEAD_S
  51. {
  52. quint8 byComd; // 命令单元
  53. quint8 byResp; // 应答单元
  54. } MCP_HEAD_T;
  55. //定义MCP 协议类型
  56. #define MCP_A 0x01 // MCP-A
  57. #define MCP_B 0x02 // MCP-B
  58. //定义MCP-A命令单元
  59. typedef enum
  60. {
  61. MCP_A_REPORT = 0x01, // 告警上报
  62. MCP_A_QUERY = 0x02, // 查询命令
  63. MCP_A_CONFIGURE = 0x03, // 设置命令
  64. }MCP_A_COMD_E;
  65. //定义MCP-B命令单元
  66. typedef enum
  67. {
  68. MCP_B_CONTROL = 0x80, // 升级控制命令
  69. MCP_B_FILE_TRANSFER = 0x81, // 文件传输命令
  70. } MCP_B_COMD_E;
  71. //定义MCP应答单元
  72. typedef enum
  73. {
  74. MCP_RESP_SUCC = 0x01, // 表示命令执行成功
  75. MCP_RESP_ERR = 0x02, // 监控对象命令错误
  76. MCP_CMD = 0xFF // 表示该消息为命令
  77. }MCP_RESP_E;
  78. //MCP-A监控对象结构
  79. typedef struct
  80. {
  81. quint16 wLen; //监控对象长度
  82. quint16 wTag; //监控对象标号
  83. quint8 abyData[PS_MCP_A_DATA_LEN];//监控数据
  84. } LTV_T;
  85. //MCP-B监控对象结构,用于软件升级
  86. typedef struct
  87. {
  88. quint16 wLen; //监控对象长度
  89. quint16 wTag; //监控对象标号
  90. quint8 abyData[PS_MCP_B_DATA_LEN];
  91. } LTV_B_T;
  92. /*********************************************************
  93. 定义协议栈头
  94. **********************************************************/
  95. //头
  96. typedef struct PS_HEAD_S
  97. {
  98. AP_HEAD_T stApHead; // AP协议头
  99. VP_HEAD_T stVpHead; // VP标准协议头
  100. MCP_HEAD_T stMcpHead; // MCP协议头
  101. } PS_HEAD_T;
  102. //尾
  103. typedef struct PS_TAIL_S
  104. {
  105. quint16 wCRC; // CRC16校验值
  106. quint8 byStopFlag; // 结束标识符号
  107. } PS_TAIL_T;
  108. #pragma pack(pop)
  109. #endif // PSPUBLIC_H