From caef43a6be3eaf280868afa8ca12f0cc737aa498 Mon Sep 17 00:00:00 2001 From: wangfq Date: Mon, 31 Aug 2026 14:34:38 +0800 Subject: [PATCH] =?UTF-8?q?docs(vd960Air):=20=E6=96=B9=E6=A1=88B(=E5=8E=9F?= =?UTF-8?q?=E5=A7=8B=E5=B8=A7=E9=80=8F=E4=BC=A0)=E5=88=97=E5=85=A5=20vd960?= =?UTF-8?q?DBN=20=E5=BC=80=E5=8F=91=E8=AE=A1=E5=88=92=20+=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E7=BB=93=E6=9E=84=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户 2026-08-31 提出方案 B: vd960DBN 做纯转发 - 上行: Loop 0x7F帧(UART2) → DBN 原样转发(UART1) → Air780 → MQTT - 下行: 平台 → Air780 → DBN → 0x7F帧(UART2) → Loop(地感指令零改造) - 魔数分流: 0x7F → UART2 透传 / 0x8F → DBN 本地 - 待确认: 4G上报格式(hex建议)/ 双通道策略 / 0x7D帧去留 修复: §2 编号重排(2.1 透传/2.2 配置链路/2.3 link),补回被吃掉的 §2.2 标题,同步引用 --- .../module/Air780EPM/demo/vd960Air/readme.md | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/luatos/air780epm/module/Air780EPM/demo/vd960Air/readme.md b/luatos/air780epm/module/Air780EPM/demo/vd960Air/readme.md index 88da03b..3006dbf 100644 --- a/luatos/air780epm/module/Air780EPM/demo/vd960Air/readme.md +++ b/luatos/air780epm/module/Air780EPM/demo/vd960Air/readme.md @@ -36,6 +36,35 @@ - UART 链路帧格式(本工程 §3) - 与主协议共享的 JSON 结构,平台侧零改动 +### 2.1 数据透传方案(方案 B,用户 2026-08-31 提出,列入 vd960DBN 计划) + +**核心思路: vd960DBN 做纯转发,不参与 4G 通道的 MQTT 协议解析。** + +``` +上行: vd960Loop --0x7F帧(UART2)--> vd960DBN --原样转发(UART1)--> Air780 --MQTT--> 平台 +下行: 平台 --MQTT--> Air780 --原样(UART1)--> vd960DBN --0x7F帧(UART2)--> vd960Loop +``` + +- **魔数分流(现成规则)**: UART1 收到 `0x7F` 帧 → 转发 UART2(Loop);`0x8F` 帧 → DBN 本地处理 +- **Air780 职责**: 0x7F 帧解析状态机(Lua 版 lup_feed_byte,只切包不懂内容)+ MQTT 收发 + 帧封装 +- **vd960DBN 职责**: UART2↔UART1 双向转发(复用 manage_dbn_ble_transparent 透传模式) +- 地感指令(0x7F 配置命令)下行零改造,协议原样 + +**待确认(影响定稿):** +- [ ] 4G 上报格式: 原始 0x7F 帧 vs hex 封装(建议 hex,平台友好,参照 log_query 风格) +- [ ] 上行双通道策略: 默认 4G / 有线失效才走 4G / 双通道并存(呼应 §6 通道切换讨论) +- [ ] 0x7D 帧去留: 若定稿方案 B,数据面走 0x7F 透传,0x7D 帧仅保留给"配置同步下发/握手" + +**与方案 A(JSON 桥)对比:** + +| 对比项 | 方案 A: JSON 桥(此前设计) | 方案 B: 原始帧透传(本次) | +|---|---|---| +| DBN 侧开发量 | 需 UART1 通道 + JSON 组包/解析 + MQTT 语义 | **纯转发,最小** | +| Air780 侧职责 | MQTT 壳 + JSON 透传 | 0x7F 帧切包 + MQTT + 封装 | +| 平台侧 | 收标准 JSON(与有线一致) | 收 0x7F 帧/hex 封装(需解析《DLD960Loop_串口通信协议》) | +| 地感指令下行 | 经 JSON 命令中转 | **原样透传,零改造** | +| 链路帧 | 0x7D 帧(2B LEN 装 JSON) | 0x7F 帧字节流(不需要 0x7D,或仅配置用) | + ### 2.2 服务器参数配置链路(用户决策 2026-08-31,列入 vd960DBN 开发计划) **服务器参数(地址/端口/ClientID/账号密码/Topic)当前由小程序 BLE 蓝牙设置。** 规划: @@ -49,7 +78,7 @@ - 协议面: 在《DLD960_IoT_MQTT协议》4G 适配章节新增"配置同步下发"命令(方向 srv 语义,经 DBN 透传或 DBN 主动下发) - 好处: 现场换 4G 模块/重新配对时,参数随 BLE 一次配好,不依赖 Air780 单独刷脚本 -### 2.1 4G 特有字段: link 对象(用户决策 2026-08-31) +### 2.3 4G 特有字段: link 对象(用户决策 2026-08-31) 上行 JSON(initialize / loop_data / event_report / heartbeat / 命令响应)注入: @@ -146,7 +175,7 @@ vd960Air/ - [x] **波特率**: UART1 默认 **115200**,后续如需再调(config.lua) - [x] **dev_serial**: 采用与有线通道**同一序列号**(Topic 族一致,平台认同一台设备);config.lua 配置,部署时与 vd960DBN 保持一致 -- [x] **4G 特有字段**: 上行注入 `link` 对象(IMEI/ICCID/IMSI/MSISDN/CSQ),平台按 §2.1 解析 +- [x] **4G 特有字段**: 上行注入 `link` 对象(IMEI/ICCID/IMSI/MSISDN/CSQ),平台按 §2.3 解析 - [x] **协议并入主协议**: 4G 适配作为《DLD960_IoT_MQTT协议》章节,4G 特有部分(link 字段/不支持命令/4G 状态命令)单独标注 - [x] **服务器参数配置链路**: 当前由小程序 BLE 设置;vd960DBN 后续版本(列入计划)将 BLE 设置的服务器/topic 参数**同步经 UART1 下发 Air780**,Air780 存储更新配置(§2.2) - [x] **通道切换策略(暂定)**: **默认 4G 无线**作为上报通道 @@ -179,7 +208,8 @@ vd960Air/ | P3 | 4G 状态上报 + 通道切换(策略待讨论)+ 脱机日志/OTA 走 4G | ⏳ 规划 | **vd960DBN 侧开发计划(2026-08-31 用户确认列入):** -- [ ] UART1(PB6/PB7)通道: 帧收发 + JSON 组包/解析(复用 lup_feed_byte 骨架,0x7D 帧) +- [ ] UART1(PB6/PB7)通道: 帧收发 + 0x7F 帧魔数分流(0x7F → UART2 透传 / 0x8F → 本地) +- [ ] **UART2↔UART1 双向透传(方案 B)**: Loop 传感数据(0xC0)转发 Air780;4G 下行地感指令转发 Loop(复用 manage_dbn_ble_transparent 模式) - [ ] BLE 设置服务器/topic 参数时(0x13/0x15 等),同步经 UART1 下发 Air780 配置 - [ ] 通道切换策略(待讨论: 动态自动 vs 人工设置;暂定默认 4G)