From cb94429ee90dbc27350574b16a2c926e9b082052 Mon Sep 17 00:00:00 2001 From: wangfq Date: Wed, 26 Aug 2026 18:02:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(DLD110S):=200x24=E5=81=8F=E7=A7=BB7?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5direction=5Fmode=E5=AE=8C=E6=95=B4=E5=AD=97?= =?UTF-8?q?=E8=8A=82(=E4=B8=8EDLD154Pro=E8=AF=AD=E4=B9=89=E5=AF=B9?= =?UTF-8?q?=E9=BD=90)=20+=20=E4=BF=AE=E5=8F=8C=E5=88=86=E5=8F=B7=20+=20?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=96=87=E6=A1=A3=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c | 2 +- docs/ble-protocol.md | 4 ++-- docs/devlog.md | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c b/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c index 0bb4ca2..870f9b5 100644 --- a/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c +++ b/BLE/DLD110S_Peripheral_28K/APP/dbn_ble_srv.c @@ -631,7 +631,7 @@ void manage_dbn_ble_default(uint8_t *pkg, uint8_t len) tmp_ble_buf[i++] = g_loop_sens_list.total << 4; tmp_ble_buf[i++] = (g_loop_power_up_state == 0) ? 1 : ((uint8_t)(g_loop_cut_total)); tmp_ble_buf[i++] = (uint8_t)(g_loop_cut_total >> 8); - tmp_ble_buf[i++] = g_function_mode; + tmp_ble_buf[i++] = g_loop_cng_unit.direction_mode; /* V1.1: 追加归一化基数 LOOP_MEASURE_BASE (2^19=524288, LE), 供第三方 variation 换算 dL/L */ tmp_ble_buf[i++] = (uint8_t)(LOOP_MEASURE_BASE); tmp_ble_buf[i++] = (uint8_t)(LOOP_MEASURE_BASE >> 8); diff --git a/docs/ble-protocol.md b/docs/ble-protocol.md index 88c14f5..572d372 100644 --- a/docs/ble-protocol.md +++ b/docs/ble-protocol.md @@ -143,7 +143,7 @@ g_hold_time = exist_mode * 30 * 20 (600 tick ≈ 30s × exist_mode, @50ms | 4 | `sens_list.total << 4`(= 3,高 4 位) | | 5 | 线圈断开次数低字节(**上电后持续累计**,不截断) | | 6 | 线圈断开次数高字节 | -| 7 | **g_function_mode**(注意:DLD154Pro 此处是 direction_mode) | +| 7 | **direction_mode**(完整字节;高 4 位 = g_function_mode,**V4.31 与 DLD154Pro 语义对齐**) | | 8-10 | **归一化基数 LOOP_MEASURE_BASE(3B LE,= 524288)**(V1.1 追加) | > ⚠ **偏移 8-10 用途(协议 V1.1,2026-08-26 追加)**:variation 换算 ΔL/L 的归一化基数。 @@ -204,7 +204,7 @@ Data:`[enable] [interval] [timeout_min]` 6. **0xC0 frequent +360 补偿**:经验值,示波器标定用 7. **0x1F/0x92 无响应帧**:复位/出厂类命令执行后设备重启 8. **notify 超限静默丢弃**:`len > (peripheralMTU-3)` 返回 FAIL 不重发,长响应必须分包 -9. **0x24 偏移 7 是 g_function_mode**(非 direction_mode)——与 DLD154Pro 不同,解析别混 +9. **0x24 偏移 7 = direction_mode 完整字节**(V4.31 起;高 4 位 = g_function_mode,与 DLD154Pro 语义对齐)——解析别混:低 4 位是方向/触发模式 10. **g_hold_time 换算差异**:`exist_mode × 600 tick`(≈30s/单位,DLD154Pro 为 ×100 tick ≈5s/单位)——产品差异,协议层语义一致 --- diff --git a/docs/devlog.md b/docs/devlog.md index b0f64e3..f4c0b2b 100644 --- a/docs/devlog.md +++ b/docs/devlog.md @@ -2,6 +2,20 @@ > MCU: CH591R (RISC-V, BLE) @60MHz | 通道: 1 路线圈 | 调试口: UART0 (DEBUG 编译, 230400) +## 2026-08-26 — 0x24 偏移 7 语义对齐 DLD154Pro(direction_mode 完整字节) + +### 改动 + +王工调整 `dbn_ble_srv.c` 一行:0x24 响应偏移 7 从 `g_function_mode`(= direction_mode>>4)改为 `g_loop_cng_unit.direction_mode` **完整字节**,与 DLD154Pro 语义对齐。顺手修掉双分号 `direction_mode;;`。 + +### 影响 + +- **协议语义变化**:小程序读偏移 7 从"功能模式高 4 位"变为"完整方向/触发模式字节"——**解析逻辑必须按新语义**(低 4 位 = 方向/触发模式,高 4 位 = g_function_mode) +- 协议文档同步:§5.4 表格 + 坑清单第 9 条(原"与 DLD154Pro 不同"已改为"语义对齐") +- 0x23 写路径不受影响(unpack_pkg_set_cjq_param 仍存完整 direction_mode 字节) + +--- + ## 2026-08-26 — V4.31:断开次数双变量拆分(LED 3次上限 vs BLE 持续累计) ### 背景