2025-01-09 20:00:34 +08:00
|
|
|
|
#ifndef CMT_PROTOCOL_HPP_
|
|
|
|
|
|
#define CMT_PROTOCOL_HPP_
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
//1 tcp server可以参考本安有线中的代码,侦听端口10000
|
|
|
|
|
|
//2 定义无线网关与传感器用到的结构
|
|
|
|
|
|
//3 包头为
|
2025-01-13 20:11:40 +08:00
|
|
|
|
|
|
|
|
|
|
#pragma pack(1)
|
2025-01-09 20:00:34 +08:00
|
|
|
|
struct PackgeHead{
|
|
|
|
|
|
uint8_t head[3]; // 固定值:0xAA55AA
|
|
|
|
|
|
uint8_t cmd;
|
|
|
|
|
|
uint16_t len;
|
|
|
|
|
|
char data[0];
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//网关版本和状态信息cmd 80
|
|
|
|
|
|
struct GatewayVersion{
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int version; // 写1
|
2025-01-09 20:00:34 +08:00
|
|
|
|
char web_ver[12];
|
|
|
|
|
|
char system_ver[12];
|
|
|
|
|
|
char gateway_ver[12];
|
2025-01-13 20:11:40 +08:00
|
|
|
|
char ip[16];
|
2025-01-09 20:00:34 +08:00
|
|
|
|
char gateway_type[12];
|
2025-01-13 20:11:40 +08:00
|
|
|
|
char gateway_hw_ver[12];
|
|
|
|
|
|
char terminal_name[32]; // 终端名称,如果为空,填写Default
|
2025-01-09 20:00:34 +08:00
|
|
|
|
int cpu_use;
|
|
|
|
|
|
int memory_use;
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int disk_remain;
|
2025-01-09 20:00:34 +08:00
|
|
|
|
int temperature;
|
2025-01-13 20:11:40 +08:00
|
|
|
|
char comm_mode[10];
|
2025-01-09 20:00:34 +08:00
|
|
|
|
char mac[20];
|
|
|
|
|
|
};
|
2025-01-13 20:11:40 +08:00
|
|
|
|
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
|
|
|
|
|
|
};
|
2025-01-09 20:00:34 +08:00
|
|
|
|
//传感器信息cmd 81
|
|
|
|
|
|
struct SensorInfo{
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int version;
|
|
|
|
|
|
char measurement_id[20];
|
|
|
|
|
|
int short_addr;
|
2025-01-09 20:00:34 +08:00
|
|
|
|
char hw_ver[12];
|
|
|
|
|
|
char soft_ver[12];
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int gateway_rssi;
|
|
|
|
|
|
int sensor_rssi;
|
|
|
|
|
|
int battry;
|
|
|
|
|
|
int loose_status; //参考 LooseStatus
|
2025-01-09 20:00:34 +08:00
|
|
|
|
int temperature_bot;
|
|
|
|
|
|
int temperature_top;
|
2025-01-13 20:11:40 +08:00
|
|
|
|
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];
|
2025-01-09 20:00:34 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
2025-01-13 20:11:40 +08:00
|
|
|
|
enum ChannelType{
|
|
|
|
|
|
X = 1,
|
|
|
|
|
|
Y = 2,
|
|
|
|
|
|
Z = 3
|
|
|
|
|
|
};
|
2025-01-09 20:00:34 +08:00
|
|
|
|
//波形cmd 82
|
|
|
|
|
|
struct WaveReq{
|
2025-01-13 20:11:40 +08:00
|
|
|
|
char measurement_id[20];
|
|
|
|
|
|
int channel;//参考 ChannelType
|
2025-01-09 20:00:34 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct WaveRes{
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int version;
|
2025-01-09 20:00:34 +08:00
|
|
|
|
int sampling_rate;
|
|
|
|
|
|
int sampling_time;
|
|
|
|
|
|
char wave[0];
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-01-13 20:11:40 +08:00
|
|
|
|
//下载配置 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{
|
|
|
|
|
|
char filename[32];
|
|
|
|
|
|
};
|
|
|
|
|
|
struct DownloadConfig{
|
|
|
|
|
|
int version;
|
|
|
|
|
|
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 UploadConfig{
|
|
|
|
|
|
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;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2025-01-09 20:00:34 +08:00
|
|
|
|
// 搜索应答 cmd 1
|
|
|
|
|
|
struct Search {
|
2025-01-13 20:11:40 +08:00
|
|
|
|
int version;
|
2025-01-09 20:00:34 +08:00
|
|
|
|
char mac[20];
|
|
|
|
|
|
int gw_type; // GatewayType
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|