feat(DLD110S): 0x24偏移7上报direction_mode完整字节(与DLD154Pro语义对齐) + 修双分号 + 协议文档同步

This commit is contained in:
wangfq
2026-08-26 18:02:51 +08:00
parent 60d3543858
commit cb94429ee9
3 changed files with 17 additions and 3 deletions
+1 -1
View File
@@ -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_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++] = (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++] = (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 */ /* 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);
tmp_ble_buf[i++] = (uint8_t)(LOOP_MEASURE_BASE >> 8); tmp_ble_buf[i++] = (uint8_t)(LOOP_MEASURE_BASE >> 8);
+2 -2
View File
@@ -143,7 +143,7 @@ g_hold_time = exist_mode * 30 * 20 (600 tick ≈ 30s × exist_mode, @50ms
| 4 | `sens_list.total << 4`= 3,高 4 位) | | 4 | `sens_list.total << 4`= 3,高 4 位) |
| 5 | 线圈断开次数低字节(**上电后持续累计**,不截断) | | 5 | 线圈断开次数低字节(**上电后持续累计**,不截断) |
| 6 | 线圈断开次数高字节 | | 6 | 线圈断开次数高字节 |
| 7 | **g_function_mode**注意:DLD154Pro 此处是 direction_mode | | 7 | **direction_mode**完整字节;高 4 位 = g_function_mode**V4.31 与 DLD154Pro 语义对齐** |
| 8-10 | **归一化基数 LOOP_MEASURE_BASE3B LE= 524288**V1.1 追加) | | 8-10 | **归一化基数 LOOP_MEASURE_BASE3B LE= 524288**V1.1 追加) |
> ⚠ **偏移 8-10 用途(协议 V1.12026-08-26 追加)**variation 换算 ΔL/L 的归一化基数。 > ⚠ **偏移 8-10 用途(协议 V1.12026-08-26 追加)**variation 换算 ΔL/L 的归一化基数。
@@ -204,7 +204,7 @@ Data`[enable] [interval] [timeout_min]`
6. **0xC0 frequent +360 补偿**:经验值,示波器标定用 6. **0xC0 frequent +360 补偿**:经验值,示波器标定用
7. **0x1F/0x92 无响应帧**:复位/出厂类命令执行后设备重启 7. **0x1F/0x92 无响应帧**:复位/出厂类命令执行后设备重启
8. **notify 超限静默丢弃**`len > (peripheralMTU-3)` 返回 FAIL 不重发,长响应必须分包 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/单位)——产品差异,协议层语义一致 10. **g_hold_time 换算差异**`exist_mode × 600 tick`(≈30s/单位,DLD154Pro 为 ×100 tick ≈5s/单位)——产品差异,协议层语义一致
--- ---
+14
View File
@@ -2,6 +2,20 @@
> MCU: CH591R (RISC-V, BLE) @60MHz | 通道: 1 路线圈 | 调试口: UART0 (DEBUG 编译, 230400) > MCU: CH591R (RISC-V, BLE) @60MHz | 通道: 1 路线圈 | 调试口: UART0 (DEBUG 编译, 230400)
## 2026-08-26 — 0x24 偏移 7 语义对齐 DLD154Prodirection_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 持续累计) ## 2026-08-26 — V4.31:断开次数双变量拆分(LED 3次上限 vs BLE 持续累计)
### 背景 ### 背景