feat(vd960DBN)+fix(DBNMQTTool): log_query 改 hex 原始字节上报 (2026-08-18)
背景: MQTT 快照流实测 MQTTSerialize_publish failed — JSON 化快照记录 ~810B/条 超 800B 发送缓冲
方案(用户拍板): 对齐 BLE 通道, 原始字节 hex 上报
固件 (V4.3):
- offlog.c/h: 新增 offlog_evt_to_hex() (32B→64 hex)
- snapshot.c/h: 新增 snap_rec_to_hex() (64B→128 hex); 删 SNAP_MAX_QUERY_JSON, 恢复 count=2
- tcp_json_srv.c / iot_mqtt_srv.c: log_query 改 {"seq":N,"hex":"..."}; SEND_BUF 保持 800
- 2 条快照 hex 响应 406B < 800B
文档: TCP JSON V1.03 / MQTT V1.07 §4.17 records 改 hex + 解析表引用 BLE §6.4/§7
工具: parse_offlog_hex/parse_snap_hex/offlog_payload_desc + hex 展示; 验证: gcc 9 断言 + 工具解析全过 + offscreen UI
This commit is contained in:
@@ -4,6 +4,41 @@
|
||||
>
|
||||
> 项目定位: DLD960 通信板 — BLE 配网、TCP JSON 协议服务、Loop MCU 串口桥接
|
||||
|
||||
## 2026-08-18 — log_query 改为 hex 原始字节上报(协议 V1.03/V1.07 修订)
|
||||
|
||||
### 背景
|
||||
|
||||
板级实测:MQTT 快照流 `log_query(stream=snapshot)` `fetched=2` 但 **`MQTTSerialize_publish failed`**——JSON 化快照记录(4ch×12 字段 ≈ 810B/条)超 `IOT_MQTT_SEND_BUF_LEN=800B`,事件流 4 条 ~600B 可发,快照 1 条都发不出。
|
||||
|
||||
### 方案(用户拍板):对齐 BLE 通道——原始字节 hex 上报
|
||||
|
||||
- 事件记录 **OfflogEvt 32B → 64 hex 字符**;快照记录 **SnapRec 64B → 128 hex 字符**(flash 存储字节原样小端)
|
||||
- 上位机按《DLD960 BLE 协议》§6.4/§7 字段表解析,与 BLE 通道同语义、解析逻辑复用
|
||||
- 体积实测:**2 条快照 hex 响应 406B < 800B**——无需扩容缓冲、无需砍 count
|
||||
|
||||
### 变更
|
||||
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `offlog.c/h` | 新增 `offlog_evt_to_hex()`(32B→64 hex) |
|
||||
| `snapshot.c/h` | 新增 `snap_rec_to_hex()`(64B→128 hex);删 `SNAP_MAX_QUERY_JSON` 宏,恢复 `SNAP_MAX_QUERY_RECORDS=2` 全通道统一 |
|
||||
| `tcp_json_srv.c` | `log_query` event/snapshot 分支改 `{"seq":N,"hex":"..."}` 上报 |
|
||||
| `iot_mqtt_srv.c` | 同上;`IOT_MQTT_SEND_BUF_LEN` 保持 800(hex 方案体积可控,此前 1024 变更撤销) |
|
||||
| 协议文档 | TCP JSON V1.03 / MQTT V1.07 §4.17:records 改 hex + 解析表引用 BLE 字段表;快照 count 恢复 2 |
|
||||
|
||||
### 验证
|
||||
|
||||
- gcc 单测 `tests/test_snap_to_hex.c`:**9 断言全过**(128 hex、全小写、字段字节序、缓冲截断安全)
|
||||
- 工具 hex 解析器:boot(POR/SFT)/coil/evt_retry payload + 快照 4ch 解析全过;2 条快照 hex 响应 406B
|
||||
- offscreen UI:事件流/快照流 hex 展示 + 翻页正常
|
||||
- 保留 `offlog_evt_to_json`/`snap_rec_to_json`(旧方案,未来可能用于调试导出)
|
||||
|
||||
### 遗留
|
||||
|
||||
- 待板级:MRS 编译 + 真机 MQTT/TCP `log_query(stream=snapshot)` 2 条拉取
|
||||
|
||||
---
|
||||
|
||||
## 2026-08-18 — MQTT 命令集补齐:ssc_net_query / iot_net_query / iot_topic_query
|
||||
|
||||
### 背景
|
||||
@@ -1335,6 +1370,7 @@ TCP 超时要等 ~2 分钟才触发 `SINT_STAT_TIM_OUT`,
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V4.3 | 2026-08-18 | log_query 改 hex 原始字节上报 (协议 V1.03/V1.07 修订): offlog_evt_to_hex/snap_rec_to_hex, 2 条快照 406B<800B, 快照 count 恢复 2 |
|
||||
| V4.2 | 2026-08-18 | MQTT 命令集补齐: ssc_net_query/iot_net_query/iot_topic_query 只读组包 (协议 V1.02 对齐), 工具禁用未实现按钮 |
|
||||
| V4.1 | 2026-08-18 | TCP/MQTT 脱机日志快照流: log_stat/log_query/log_clear 支持 stream=snapshot (协议 V1.03/V1.07), snap_rec_to_json 序列化, 事件流 count=0 按上限 |
|
||||
| V4.0 | 2026-08-10 | BLE 脱机日志接口: OFFLOG_STAT/QUERY/CLEAR (0x25/0x26/0x27), 32B OfflogEvt 二进制直传, 缓冲扩容 132B, 隔离测试 7 例 + 协议文档 V1.00 |
|
||||
|
||||
Reference in New Issue
Block a user