#ifndef PSPUBLIC_H #define PSPUBLIC_H #pragma pack(push) #pragma pack(1) /********************************************************* 网管数据来源 **********************************************************/ #define PS_SOURCE_CENTER 0X00 // 监控中心 #define PS_SOURCE_GUI 0X01 // 本地网管 #define PS_SOURCE_ALARM 0x02 // 告警模块 /********************************************************* 定义AP层协议 **********************************************************/ //定义AP层协议头 #define PS_FRAME_MIN_LEN 17 //AP层最小帧长,协议框架17字节 #define PS_FRAME_MCPA_PAYLOAD_LEN 260//MCPA,数据载荷256字节 #define PS_FRAME_MCPB_PAYLOAD_LEN 264 //MCPB,数据载荷256字节 #define PS_FRAME_MAX_LEN 562 // AP层最大帧长 #define PS_MCP_A_DATA_LEN 64 //MCP-A监控对象数据单元最大长度 #define PS_MCP_B_DATA_LEN 256 //MCP-B监控对象数据单元最大长度,帧号4个字节,数据256字节 #define PS_AP_HEAD_FLAG 0x7E //开始标志符,小端模式 #define PS_AP_TAIL_FLAG 0x7E//结束标识符,小端模式 //AP头,4字节 typedef struct AP_HEAD_S { quint8 byStartFlag; }AP_HEAD_T; /********************************************************* 定义VP层协议 **********************************************************/ //VP头,15个字节 typedef struct VP_HEAD_S { quint32 dwProjectId;//项目编号,省市各1个字节,项目编号2个字节 quint8 byPacketNo;//通信包号,由发送端产生,接收端原值返回 quint32 dwDeviceId; // 设备编号 quint8 byVpFlag; // vp层交互标志 quint8 byMcpType; // 监控应用层协议标识 } VP_HEAD_T; //VP层交互标志 typedef enum { VP_RESP = 0x01, // 应答 VP_CMMD = 0x80,// 命令 }PT_VP_FLAG_E; /********************************************************* 定义MCP层协议 **********************************************************/ //MCP头,2个字节 typedef struct MCP_HEAD_S { quint8 byComd; // 命令单元 quint8 byResp; // 应答单元 } MCP_HEAD_T; //定义MCP 协议类型 #define MCP_A 0x01 // MCP-A #define MCP_B 0x02 // MCP-B //定义MCP-A命令单元 typedef enum { MCP_A_REPORT = 0x01, // 告警上报 MCP_A_QUERY = 0x02, // 查询命令 MCP_A_CONFIGURE = 0x03, // 设置命令 }MCP_A_COMD_E; //定义MCP-B命令单元 typedef enum { MCP_B_CONTROL = 0x80, // 升级控制命令 MCP_B_FILE_TRANSFER = 0x81, // 文件传输命令 } MCP_B_COMD_E; //定义MCP应答单元 typedef enum { MCP_RESP_SUCC = 0x01, // 表示命令执行成功 MCP_RESP_ERR = 0x02, // 监控对象命令错误 MCP_CMD = 0xFF // 表示该消息为命令 }MCP_RESP_E; //MCP-A监控对象结构 typedef struct { quint16 wLen; //监控对象长度 quint16 wTag; //监控对象标号 quint8 abyData[PS_MCP_A_DATA_LEN];//监控数据 } LTV_T; //MCP-B监控对象结构,用于软件升级 typedef struct { quint16 wLen; //监控对象长度 quint16 wTag; //监控对象标号 quint8 abyData[PS_MCP_B_DATA_LEN]; } LTV_B_T; /********************************************************* 定义协议栈头 **********************************************************/ //头 typedef struct PS_HEAD_S { AP_HEAD_T stApHead; // AP协议头 VP_HEAD_T stVpHead; // VP标准协议头 MCP_HEAD_T stMcpHead; // MCP协议头 } PS_HEAD_T; //尾 typedef struct PS_TAIL_S { quint16 wCRC; // CRC16校验值 quint8 byStopFlag; // 结束标识符号 } PS_TAIL_T; #pragma pack(pop) #endif // PSPUBLIC_H