#ifndef _DN_4G_H_ #define _DN_4G_H_ #include "../Hardware/boardinit.h" typedef struct _dn_update_cmd_0x1001_{ // 获取设备版本 uint16_t devType; uint32_t devSn; uint16_t taskId; // 任务号 uint32_t reserve; // 预留 }__attribute__((packed))dnUpdateCmd0x1001; typedef struct _dn_update_cmd_0x1002_{ uint16_t devType; // 升级目标设备类型 uint32_t devSn; // 升级目标设备SN uint8_t firmType; // 升级固件类型 uint16_t taskId; // 升级任务号 uint16_t losePage; // 最大丢包个数的百分比,最小为10%, 最大为60% uint8_t urllen; // URL最大长度 uint8_t url[256]; // URL地址 }__attribute__((packed))dnUpdateCmd0x1002; typedef struct _dn_update_cmd_0x1004_{ //未安装升级 uint16_t devType; // 设备类型 uint32_t devSn; // 设备SN uint16_t rcvDevType; // 接收设备类型 uint32_t rcvDevSn; // 接收设备 SN uint16_t desDevType; // 升级目标设备类型 uint32_t desDevSn; // 升级目标设备 SN uint16_t taskId; // 任务号 uint8_t firmType; // 升级固件类型 uint8_t urllen; // URL最大长度 uint8_t url[256]; // URL地址 }__attribute__((packed))dnUpdateCmd0x1004; typedef struct _dn_sys_cmd_0x1003_{ // mqtt服务器配置 uint16_t devTypeM; uint32_t devSnM; uint32_t reserve; uint8_t iplen; // 服务器地址长度 uint8_t portlen; // 端口长度 uint8_t userlen; // 用户名长度 uint8_t pwdlen; // 密码长度 uint8_t str[64]; // mqqtt的信息,顺序:ip port username pwd }__attribute__((packed))dnSysCmd0x1003; typedef struct _dn_sys_cmd_0x1021_{ // 系统重启 uint16_t devTypeM; uint32_t devSnM; uint16_t devTypeS; uint32_t devSnS; uint8_t object; // 重启对象 uint32_t reserve; }__attribute__((packed))dnSysCmd0x1021; typedef struct _dn_sys_cmd_0x1015_{ // 时间同步 uint16_t devTypeM; uint32_t devSnM; uint16_t devTypeS; uint32_t devSnS; uint32_t timer; // 时间戳 uint32_t reserve; }__attribute__((packed))dnSysCmd0x1015; typedef struct _dn_sys_cmd_0x1041_{ // 身份应答 uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 从设备类型 uint8_t relation; // 身份 1:从 2:主 uint32_t reserve; // 预留 }__attribute__((packed))dnSysCmd0x1041; typedef struct _dn_sys_cmd_0x1024_{ // 路由表下发 uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint8_t buff[128]; // 从设备数量 从设备类型 从设备SN 预留 总预留 }__attribute__((packed))dnSysCmd0x1024; typedef struct _dn_sys_cmd_0x1025_{ // 路由表询问 uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 从设备类型 uint16_t targetType; // 询问目标设备类型 uint32_t targetSn; // 询问目标设备SN uint32_t reserve; // 预留 }__attribute__((packed))dnSysCmd0x1025; typedef struct _sys_cmd_1026_{ uint8_t priceInuseCout; // 对于单价屏是否探针板接线 uint8_t confFileNum[8]; //配置文件编号 uint16_t appointDevModel; // 配置文件适配设备类型 uint8_t portStatus; // 端口是否启用 uint8_t portNum[4]; // 每个端口连接针脚的个数 uint8_t comGroup; // com端的级数 uint8_t param[8][4]; // 一共4组,每组4个参数 }__attribute__((packed))sysCmd1026; typedef struct _dn_sys_cmd_0x1026_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint32_t reserve; // 预留 uint16_t expireTime; // 过期时间 sysCmd1026 da1026; }__attribute__((packed))DnSysCmd0x1026; typedef struct _sys_cmd_1027_{ uint8_t confFileNum[8]; //配置文件编号 uint16_t appointDevModel; // 配置文件适配设备类型 uint8_t groupNum; // 组数 uint8_t table[300][2]; // 表的说明 }__attribute__((packed))sysCmd1027; typedef struct _dn_sys_cmd_0x1027_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint32_t reserve; // 预留 uint16_t expireTime; // 过期时间 uint8_t framNo; // 帧号 sysCmd1027 da1027; }__attribute__((packed))DnSysCmd0x1027; typedef struct _dn_sys_cmd_0x1028_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint32_t time; // 开启时常 }__attribute__((packed))DnSysCmd0x1028; typedef struct _dn_sys_cmd_0x1029_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint8_t status; // 保存状态 1:保存 2:放弃 }__attribute__((packed))DnSysCmd0x1029; typedef struct _dn_data_cmd_0x1061_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint32_t recordId; // 记录ID uint32_t reserve; // 预留 }__attribute__((packed))DnDataCmd0x1061; typedef struct _dn_log_cmd_0x1062_{ uint16_t devTypeM; // 主设备类型 uint32_t devSnM; // 主设备SN uint16_t devTypeS; // 从设备类型 uint32_t devSnS; // 从设备SN uint8_t logType; // 日志类型 uint32_t time; // 开启日志的时间 uint32_t reserve; // 预留 }__attribute__((packed))DnLogCmd0x1062; typedef struct _dn_log_0x1063_{ uint16_t devTypeM; uint32_t devSnM; uint16_t devTypeS; uint32_t devSnS; uint8_t logType; // 日志类型 1: 去重七段码上报 2:lg日志 3: 信号采集率调试 uint32_t time; // 开启日志的时间(秒) 0: 关闭 非0:开始时长 uint8_t interval; // 间隔上报 秒 uint32_t reserve; // 预留 }__attribute__((packed))DnLogCmd0x1063; extern void anlaysis_0x1027(uint8_t *data,uint8_t framNo,uint16_t time); extern void dn_4g_system_cmd(uint16_t cmd, uint8_t *data, uint8_t len); extern void dn_4g_data_cmd(uint16_t cmd, uint8_t *data, uint8_t len); extern void dn_4g_update_cmd(uint16_t cmd, uint8_t *data, uint8_t len); extern void dn_4g_log_cmd(uint16_t cmd, uint8_t *data, uint8_t len); #endif