#pragma once #pragma pack(1) #include "kdefine.h" __NAMESPACE_BEGIN__(HJ) #define FRAME_HEADER_LENGTH (5) #define FRAME_TAILE_LENGTH (4) typedef enum tagErrorCode : unsigned char { ERR_OK = 0X00, ERR_INVALID_LEN = 0X01, ERR_INVALID_UTF8 = 0X02, ERR_INVALID_BUF_LEN = 0X03, ERR_INVALID_JSON_FMT = 0X04, ERR_INVALID_FSUCODE = 0X05, ERR_INVALID_CFG_CONTENT = 0X06, // 文件内容错误 ERR_RETRANS_CONTENT = 0X07, // 重传文件内容 ERR_PERMISSION_DENIED = 0X08, //写文件权限不够 ERR_UNKOWN = 0XFF } ErrorCode; typedef enum tagFrameType : unsigned char { Frame_Response = 0x00, //返回帧 Frame_Request = 0x01, //请求帧 Frame_Echo_Request = 0x02, //测试请求帧 Frame_DeviceData_Request = 0x03, //来自采集程序的数据请求包,将数据保存到数据库中 Frame_Configure_DB_Request = 0x04, //上传配置文件 } FrameType; typedef struct tagFrameTail { unsigned char frame_delimiter[4] = { 0xEE,0xFF,0xEE,0xFF }; } FrameTail; #define FRAME_HEADER_LENGTH (5) // frame_type(1) + frame_len(4) typedef struct tagFrame { FrameType frame_type; //帧类型 unsigned int frame_len; //帧数据长度 unsigned char frame_content[1]; //帧的内容,实际应为json字符串,由json内容自解释 tagFrame() { frame_type = Frame_Response; frame_len = 1; frame_content[0] = ERR_OK; } void setErrorFrame(ErrorCode err = ERR_OK) { frame_len = 1; frame_content[0] = err; } } MessageFrame; __NAMESPACE_END__(HJ) #pragma pack()