123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- #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
|