WLG/localserver/cmt_protocol.h

157 lines
3.1 KiB
C
Raw Normal View History

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]; // DN101DN102
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{
2025-01-14 14:27:20 +08:00
int version;
char filename[64];
2025-01-13 20:11:40 +08:00
};
struct DownloadConfig{
char gw_mac[20];
char product[6]; // DN101DN102
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
2025-01-14 14:27:20 +08:00
struct UploadConfigReq{
2025-01-13 20:11:40 +08:00
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