feat(vd960Air): 方案 C MVP — 0x7F 帧解析 + 标准 JSON 上报(2026-08-31)
协议依据:《DLD960_IoT_MQTT协议》V1.13(4G 通道适配方案 C) 新增模块: - frame_parser.lua: 0x7F 帧解析状态机(Lua 版 lup_feed_byte, XOR+SUM 校验) - proto_conv.lua: 0xC0 传感帧 → loop_data + car_state/loop_state 沿检测(4 类线圈事件) - evt_queue.lua: event_report 队列 + ACK 状态机(16深/5s×3/跨重连同 msg_id,对齐 DBN) - clock.lua: report_config 时钟校准(协议 §2.3) - app_iot.lua: initialize(extra_info imei/iccid + link)/ heartbeat / poll 驱动 - tools/sim_frame_test.py: 帧协议参考验证(56B 帧/4 路解析/沿检测/JSON 格式,全过) 改造: - uart_app.lua: 0x7D 帧 → 0x7F 帧驱动;loop_data/event_report 组包 + link 注入 - mqtt_receiver.lua: 下行分发(ACK 路由 + 时钟校准) - mqtt_main.lua: 连接成功 → initialize + 未决事件重发 - config.lua/main.lua: 方案 C 配置与入口 MVP 范围: 上行(initialize/loop_data/event_report/heartbeat)+ report_config; 下行命令转换与 0x7D 配置同步列入 P1。
This commit is contained in:
@@ -193,16 +193,23 @@ vd960DBN 与地感 MCU 的串口逻辑(loop_uart_proto.c,UART2,0x7F 帧):
|
||||
|
||||
```
|
||||
vd960Air/
|
||||
├── main.lua # 入口: 加载 config/看门狗/4G网卡/uart_app/mqtt_main
|
||||
├── config.lua # 配置: MQTT 服务器/序列号/主题/UART/帧参数/link 注入开关
|
||||
├── uart_app.lua # UART1 <-> vd960DBN 帧协议(接收状态机 + 下行组帧 + link 注入)
|
||||
├── main.lua # 入口: 加载 config/看门狗/4G网卡/uart_app/app_iot/mqtt_main
|
||||
├── config.lua # 配置: MQTT 服务器/序列号/主题/UART/上报节奏/link 开关
|
||||
├── frame_parser.lua # ★ 0x7F 帧解析状态机(Lua 版 lup_feed_byte,IDLE→HEADER→VALUE→CHECK)
|
||||
├── proto_conv.lua # ★ 0xC0 传感帧 → loop_data + car_state/loop_state 沿检测
|
||||
├── evt_queue.lua # ★ event_report 队列 + ACK 状态机(16深/5s×3/跨重连同 msg_id)
|
||||
├── clock.lua # 设备时钟: report_config 校准 → 真实 Unix 秒(协议 §2.3)
|
||||
├── app_iot.lua # initialize(extra_info imei/iccid + link)/ heartbeat / poll 驱动
|
||||
├── uart_app.lua # UART1 接收 → frame_parser → 上行 JSON 发布;ACK 路由
|
||||
├── link_info.lua # 4G 链路信息采集(IMEI/ICCID/IMSI/MSISDN/CSQ)
|
||||
├── netdrv_device.lua # 网卡: 仅 4G(官方 netdrv_4g)
|
||||
├── network_watchdog.lua # 网络看门狗(官方原样)
|
||||
├── tools/
|
||||
│ └── sim_frame_test.py # 帧协议参考验证(Python 1:1 复刻解析公式,字节级断言)
|
||||
└── mqtt/
|
||||
├── mqtt_main.lua # MQTT 客户端(单路, 主题改 dld960/{sn}/srv + dev)
|
||||
├── mqtt_receiver.lua # 下行 → RECV_DATA_FROM_SERVER(去掉演示前缀)
|
||||
└── mqtt_sender.lua # 上行队列 + publish(去掉演示前缀)
|
||||
├── mqtt_main.lua # MQTT 客户端(连接成功 → initialize + 未决事件重发)
|
||||
├── mqtt_receiver.lua # 下行分发: event_report ACK 路由 + report_config 时钟校准
|
||||
└── mqtt_sender.lua # 上行队列 + publish(官方改造)
|
||||
```
|
||||
|
||||
## 5 vd960DBN 对接要点
|
||||
@@ -246,10 +253,11 @@ vd960Air/
|
||||
|
||||
| 阶段 | 内容 | 状态 |
|
||||
|------|------|------|
|
||||
| P0 | 工程骨架 + 帧协议 + MQTT 单路桥接 + link 字段注入 | ✅ 完成 |
|
||||
| P1 | 协议适配文档(4G 章节)+ vd960DBN 侧 UART1 通道 + **配置同步下发(Air780 存储更新)** | ⏳ 待文档/待 vd960DBN 版本 |
|
||||
| P0 | 工程骨架 + 帧协议 + MQTT 桥接 + link 注入 | ✅ 完成 |
|
||||
| **P0.5** | **方案 C MVP: 0x7F 帧解析 + 0xC0→loop_data + 沿检测→event_report + ACK 状态机 + initialize/heartbeat + 时钟校准**(2026-08-31) | ✅ 代码完成,待板级 |
|
||||
| P1 | 下行命令转换(loop_param_*/log_*/ota_* 转 0x7F)+ 0x7D 配置同步下发 + vd960DBN UART1 通道联调 | ⏳ 待板/待 vd960DBN 版本 |
|
||||
| P2 | 板级联调: 帧校验、背压、掉线重连、看门狗 | ⏳ 待板 |
|
||||
| P3 | 4G 状态上报 + 通道切换(策略待讨论)+ 脱机日志/OTA 走 4G | ⏳ 规划 |
|
||||
| P3 | 通道切换(策略待讨论)+ 脱机日志/OTA 走 4G | ⏳ 规划 |
|
||||
|
||||
**vd960DBN 侧开发计划(2026-08-31 用户确认列入):**
|
||||
- [ ] UART1(PB6/PB7)通道: 帧收发 + 0x7F 帧魔数分流(0x7F → UART2 透传 / 0x8F → 本地)
|
||||
|
||||
Reference in New Issue
Block a user