feat(MQTT): 协议 V1.13 — initialize extra_info 增加 imei/iccid 可选字段
用户需求 2026-08-31: - 协议 §5.1: extra_info 增加 imei(4G 模块 IMEI)/ iccid(流量卡 ICCID)可选字段 - 语义: 无 4G 模块省略/空串;4G 通道由 Air780 填真实值(§6.2) - 固件 iot_send_initialize: extra_info 补 imei/iccid(空串占位, DBN 无 4G 信息; 待"BLE→Air780 配置同步"实现后可回读填充) - 同步: README 索引 V1.13 + devlog 置顶条目
This commit is contained in:
@@ -59,7 +59,7 @@ DLD960 是一款基于环形线圈检测原理的四通道车辆检测器,支
|
||||
| [DLD960Loop_串口通信协议.md](docs/DLD960Loop_串口通信协议.md) | V1.05 | Loop MCU ↔ DBN MCU | 0x7F 帧、0xC0 传感主动上报、variation 3B 有符号 |
|
||||
| [DLD960_串口通信协议.md](docs/DLD960_串口通信协议.md) | V1.01 | 整机 TTL 串口 | 设备管理、参数配置、数据上报 |
|
||||
| [DLD960_TCP_JSON协议.md](docs/DLD960_TCP_JSON协议.md) | V1.03 | 以太网 TCP :5960 | 鉴权 + 命令 + event_report 客户端必答 + 脱机日志(事件/快照流) |
|
||||
| [DLD960_IoT_MQTT协议.md](docs/DLD960_IoT_MQTT协议.md) | V1.12 | 云平台 MQTT | 双主题 `{sn}/srv`+`{sn}/dev`、initialize、event_report 平台必答、设备时钟同步、脱机日志(事件/快照流)、Loop 远程 OTA(ota_* 命令,先存后刷)、**4G 通道适配(方案 C:Air780 协议转换,标准 JSON 命令面 + link,V1.12)** |
|
||||
| [DLD960_IoT_MQTT协议.md](docs/DLD960_IoT_MQTT协议.md) | V1.13 | 云平台 MQTT | 双主题 `{sn}/srv`+`{sn}/dev`、initialize(extra_info 含 imei/iccid)、event_report 平台必答、设备时钟同步、脱机日志(事件/快照流)、Loop 远程 OTA(ota_* 命令,先存后刷)、**4G 通道适配(方案 C:Air780 协议转换,标准 JSON 命令面 + link,V1.12)** |
|
||||
| [DLD960_BLE协议.md](docs/DLD960_BLE协议.md) | V1.03 | 蓝牙 BLE | 帧格式 + 分包 + 配置命令全表(0x09~0x24/0x31/0x8A/0x92/0xC5,未实现如实标注)+ 脱机日志(OFFLOG_STAT/QUERY/CLEAR)+ 传感快照(SNAP_STAT/QUERY/CLEAR)+ 透传(0x7F/0x9F) |
|
||||
| [DLD960硬件资源.md](docs/DLD960硬件资源.md) | — | 硬件 | 双 MCU IO 分配、继电器、指示灯、拨码 |
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
> 基于《DLD960 串口通信协议》V1.01,将设备管理、参数配置、数据上报映射到 MQTT 协议。
|
||||
> 交互格式:JSON。
|
||||
> 版本:V1.12(2026-08-31,4G 通道适配修订为方案 C:Air780 协议转换)
|
||||
> 版本:V1.13(2026-08-31,initialize extra_info 增加 imei/iccid 可选字段)
|
||||
|
||||
---
|
||||
|
||||
@@ -1142,6 +1142,8 @@ dld960/{dev_serial}/{direction}
|
||||
"loop_hw_ver": "1.0.0",
|
||||
"extra_info": {
|
||||
"code": "869756049404948",
|
||||
"imei": "860012345678901",
|
||||
"iccid": "89860012345678901234",
|
||||
"csq": "21",
|
||||
"location": "113.9237976,022.6400375",
|
||||
}
|
||||
@@ -1158,6 +1160,8 @@ dld960/{dev_serial}/{direction}
|
||||
| `data.loop_ver` | string | **地感 Loop MCU 固件版本**(V1.10),格式 `"主.次.次"`;来自 0x4A 缓存,查询未完成/失败则为空字符串 |
|
||||
| `data.loop_hw_ver` | string | **地感 Loop MCU 硬件版本**(V1.10),格式 `"主.次.次"`;同上可为空 |
|
||||
| `data.extra_info.code` | string | 可选,设备代码如IMSI/ICCID |
|
||||
| `data.extra_info.imei` | string | 可选,4G 模块 IMEI(V1.13;无 4G 模块时省略或空串;4G 通道由 Air780 填真实值,见 §6) |
|
||||
| `data.extra_info.iccid` | string | 可选,流量卡 ICCID(V1.13;无 4G 模块时省略或空串;4G 通道由 Air780 填真实值,见 §6) |
|
||||
| `data.extra_info.csq` | string | 可选,当前信号强度 |
|
||||
| `data.extra_info.location` | string | 可选,经纬度(经度,纬度) |
|
||||
|
||||
@@ -1433,6 +1437,7 @@ dld960/{dev_serial}/{direction}
|
||||
| 4G(Air780 转换) | **标准 JSON**(initialize / loop_data / event_report / heartbeat,Air780 从 0x7F 帧生成)+ 可选 frame_report | **标准 JSON**(Air780 转换为 0x7F 帧下发)+ 可选 frame_cmd |
|
||||
|
||||
- 4G 通道上行 JSON 结构与有线通道**完全一致**(平台按同一解析逻辑处理)
|
||||
- 4G 通道 `initialize` 的 `extra_info` 填真实值:`imei` / `iccid` / `csq`(V1.13;有线通道无 4G 模块时省略或空串)
|
||||
- `frame_report` / `frame_cmd` 保留为**可选兜底**(§6.8):Air780 未实现转换的命令 / 未识别帧,平台可直接发/收原始帧
|
||||
|
||||
## 6.3 Air780 协议转换职责(0x7F 帧 ↔ 标准 JSON)
|
||||
@@ -1516,6 +1521,7 @@ dld960/{dev_serial}/{direction}
|
||||
| V1.05 | 2026-07-15 | 增加**设备时钟同步**(§2.3,方案B):设备无 RTC,`initialize` 上线后平台经 `report_config` 命令下发 Unix `ts`,设备据此校准,之后上行 `ts` 为真实 Unix 时间;校准前为上电秒数 | wangfq |
|
||||
| V1.06 | 2026-08-04 | 增加**脱机事件日志**命令:`log_stat`(统计/分页定位)、`log_query`(按全局序号分页,count≤4)、`log_clear`(清除+审计留痕);§2.3 补充日志双时间戳语义(`ts_ms` 相对 + `unix_ts` 已同步,0=未同步,锚点回算规则) | wangfq |
|
||||
| V1.07 | 2026-08-18 | `log_stat` / `log_query` / `log_clear` 增加**快照流**支持(`stream=snapshot`,与 BLE 0x28/0x29/0x2A 同语义):快照统计 capacity 随芯片动态(48064~449472)、快照分页 count≤1(4 通道记录 JSON ~810B 超发送缓冲,实测修正;BLE 原始通道仍 ≤2)、快照清除审计留痕;`capacity`/`count` 类型修正为 uint32(W25Q256 事件流 130944 超 16bit) | wangfq |
|
||||
| V1.13 | 2026-08-31 | `initialize` 的 `extra_info` 增加可选字段 **`imei`** / **`iccid`**(4G 模块 IMEI / 流量卡 ICCID;无 4G 模块时省略或空串;4G 通道由 Air780 填真实值,§6.2 说明) | wangfq |
|
||||
| V1.12 | 2026-08-31 | **4G 通道适配修订:方案 B(hex 透传)改为方案 C(Air780 协议转换)**——Air780 解析 0x7F 帧并转换为**标准 JSON 命令**(loop_data / event_report / initialize / heartbeat,与有线通道一致),平台零改动;V1.11 的 frame_report / frame_cmd 降级为**可选兜底**;4G 事件面 = **仅线圈事件**(car_enter/car_leave/loop_cut/loop_restore,不含 DBN 内部网络事件);命令响应链路 Air780 单命令状态机(超时回 code=5);link 对象保留;Air780 以 Lua 复刻 iot_event_report 逻辑(沿检测 + ACK + 5s×3 重发 + 16 深队列 + 跨重连同 msg_id),可行性已评估(2026-08-31) | wangfq |
|
||||
| V1.11 | 2026-08-31 | **4G 通道适配(方案 B:原始帧透传 + hex 封装)**:新增 `frame_report`(dev→srv,§6.3)/ `frame_cmd`(srv→dev,§6.4)两命令(4G 通道专用);4G 通道**不使用**有线标准 JSON 业务命令(loop_data/event_report),不适用网络配置类命令(ssc_net_*/iot_net_*/iot_topic_*,4G 通道下发回 code=4);上行附加 `link` 对象(IMEI/ICCID/IMSI/MSISDN/CSQ,§6.6);链路层数据面 0x7F 帧字节流透传(魔数分流在 vd960DBN 侧),0x7D 帧仅 DBN↔Air780 配置同步/握手;平台双通道区分解析 + 新增《DLD960Loop_串口通信协议》解析依赖(§6.7);实施主体:Air8781P(Air780EPM)vd960Air 工程,vd960DBN UART1 通道列入开发计划(固件未实现) | wangfq |
|
||||
| V1.10 | 2026-08-20 | **网络上报携带地感版本**(配合远程 OTA 升级前后版本核对):`dev_info_query` 响应 + `initialize` 上报新增 `loop_ver`/`loop_hw_ver`(地感 Loop MCU 固件/硬件版本,格式 `"主.次.次"`,来自 0x4A 查询缓存,尽力携带可为空);新增命令 `loop_version_query`(§4.25,srv→dev 实时查询,设备经 UART2 0x4A 异步查询后回包,含 `loop_ver`/`loop_hw_ver`/`version_str`);版本语义:`soft_ver`=整机 DBN 固件(`主.次`),`loop_ver`=地感 Loop 固件(`主.次.次`),二者区分 | wangfq |
|
||||
|
||||
@@ -1085,7 +1085,7 @@ static void iot_send_initialize(void) {
|
||||
"\"data\":{\"dev_serial\":\"%s\",\"model\":\"%s\","
|
||||
"\"hard_ver\":\"%s\",\"soft_ver\":\"%s\","
|
||||
"\"loop_ver\":\"%s\",\"loop_hw_ver\":\"%s\","
|
||||
"\"extra_info\":{\"code\":\"0\",\"csq\":\"0\",\"location\":\"\"}}}",
|
||||
"\"extra_info\":{\"code\":\"0\",\"imei\":\"\",\"iccid\":\"\",\"csq\":\"0\",\"location\":\"\"}}}",
|
||||
(unsigned long)(g_iot_msg_id + 1), dev_time_now(),
|
||||
g_iot_dev_serial, PRODUCT_MODEL, HARDWARE_VER, FIRMWARE_VER,
|
||||
loop_ver_str, loop_hw_ver_str);
|
||||
|
||||
@@ -4,6 +4,28 @@
|
||||
>
|
||||
> 项目定位: DLD960 通信板 — BLE 配网、TCP JSON 协议服务、Loop MCU 串口桥接
|
||||
|
||||
## 2026-08-31 — MQTT 协议 V1.13:initialize extra_info 增加 imei/iccid 可选字段
|
||||
|
||||
> 用户需求 2026-08-31:initialize 指令的 `extra_info` 增加可选字段 `imei` / `iccid`(4G 模块 IMEI / 流量卡 ICCID)。
|
||||
|
||||
### 协议变更(V1.12 → V1.13)
|
||||
|
||||
- §5.1 initialize 示例 + 字段表:`extra_info.imei` / `extra_info.iccid` 可选
|
||||
- 语义:无 4G 模块时省略或空串;**4G 通道由 Air780 填真实值**(§6.2 说明)
|
||||
- 用途:平台解析 initialize 即可拿到 4G 模块/流量卡标识(配合 4G 通道设备管理)
|
||||
|
||||
### 固件同步(vd960DBN iot_mqtt_srv.c iot_send_initialize)
|
||||
|
||||
- `extra_info` 增加 `imei`/`iccid` 字段(当前空串占位——DBN 固件无 4G 模块信息)
|
||||
- ⚠ 待 vd960DBN 实现"BLE→Air780 配置同步"后,可考虑从 Air780 回读 4G 信息填充(列入开发计划)
|
||||
|
||||
### 同步
|
||||
|
||||
- `README.md` 文档索引 V1.12 → V1.13
|
||||
- 协议文档 §5.1 + §6.2 + 修订记录 V1.13
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-31 — MQTT 协议 V1.12:4G 通道适配修订为方案 C(Air780 协议转换)
|
||||
|
||||
> **协议先行修订**(同日 V1.11 方案 B 未落地即修订,固件均未实现)。
|
||||
|
||||
Reference in New Issue
Block a user