#ifndef CMT_PROTOCOL_HPP_ #define CMT_PROTOCOL_HPP_ #include //1 tcp server可以参考本安有线中的代码,侦听端口10000 //2 定义无线网关与传感器用到的结构 //3 包头为 #pragma pack(1) struct PackgeHead{ uint8_t head[3]; // 固定值:0xAA55AA uint8_t cmd; uint16_t len; char data[0]; }; //网关版本和状态信息cmd 80 struct GatewayVersion{ int version; // 写1 char web_ver[12]; char system_ver[12]; char gateway_ver[12]; char ip[16]; char gateway_type[12]; char gateway_hw_ver[12]; char terminal_name[32]; // 终端名称,如果为空,填写Default int cpu_use; int memory_use; int disk_remain; int temperature; char comm_mode[10]; char mac[20]; }; enum SensorStatus{ OFFLINE = 0, ONLINE = 1 }; enum SensorUpgradeStatus{ UPGRADE_NORMAL = 0, UPGRADING = 1, UPGRADE_SUCCESS = 2, UPGRADE_FALIED = 3 }; enum LooseStatus{ NORMAL = 0, LOOSE = 1 }; //传感器信息cmd 81 struct SensorInfo{ int version; char measurement_id[20]; int short_addr; char hw_ver[12]; char soft_ver[12]; int gateway_rssi; int sensor_rssi; int battry; int loose_status; //参考 LooseStatus int temperature_bot; int temperature_top; char product[6]; // DN101;DN102 int status; // 参考 SensorStatus int eigen_value_reporting_rate; int wave_x_reporting_rate; int wave_y_reporting_rate; int wave_z_reporting_rate; char velocity_rms[10]; int upgrade_status; // 参考 SensorUpgradeStatus char upgrade_time[20]; }; enum ChannelType{ X = 1, Y = 2, Z = 3 }; //波形cmd 82 struct WaveReq{ char measurement_id[20]; int channel;//参考 ChannelType }; struct WaveRes{ int version; int sampling_rate; int sampling_time; char wave[0]; }; //下载配置 cmd 83 struct DownloadConfigReq{ char measurement_id[20]; }; enum Range{ RANGE_8G = 0, RANGE_16G = 1, RANGE_32G = 2, RANGE_64G = 3, RANGE_50G = 4 }; struct DownloadConfigRes{ int version; char filename[64]; }; struct DownloadConfig{ char gw_mac[20]; char product[6]; // DN101;DN102 char ip[16]; int panid; int signal_channle; char terminal_name[32]; char sn[10]; char sensor_mac[20]; char measurement_id[20]; int short_addr; char sensor_name[64]; char update_date[20]; int gateway_rssi; int sensor_rssi; char hw_ver[12]; char soft_ver[12]; int sampling_rate; int range; //量程 参考 Range int sampling_time; int viff; //速度积分起始频率 int power; //zigbee发射功率 int retry_time; //zigbee重发次数 }; //上传配置 cmd 84 struct UploadConfigReq{ char filename[32]; }; //网关更新 cmd 85 //传感器更新 cmd 86 struct UpgradeSensorReq{ char filename[32]; int upgrade_short_addr[32]; }; //获取特征值 cmd 87 //停止更新传感器 cmd 88 struct UpgradeStopReq{ int short_addr; }; // 搜索应答 cmd 1 struct Search { int version; char mac[20]; int gw_type; // GatewayType }; #endif