docs: 记录 BLE RS485 配置读写 + 功能码细分 开发日志
This commit is contained in:
@@ -4,6 +4,63 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-22 — BLE 新增 RS485 地址/波特率读写 + 空闲关蓝牙超时 + 功能码细分
|
||||
|
||||
### 新增 BLE 命令
|
||||
|
||||
**`CMD_DBN_RW_UART_BAUD (0x31)`** — 读写 RS485 通信参数:
|
||||
|
||||
| 字节偏移 | 字段 | 说明 |
|
||||
|---------|------|------|
|
||||
| [4] | RW | 0=读, 1=写 |
|
||||
| [5] | BT_close_min | 蓝牙空闲超时关闭时间 (分钟), 0=不关闭 |
|
||||
| [6:8] | baud_rate | RS485 波特率 (3 字节, little-endian) |
|
||||
| [9] | rs485_id | RS485 从机地址 (1-247) |
|
||||
| [10:12] | reserved | 预留 |
|
||||
|
||||
- 读:返回当前存储值 + status=0
|
||||
- 写:写入 RAM 并持久化到 DataFlash (`ADDR_BT_Close_TIMEOUT_Offset` 起 5 字节)
|
||||
|
||||
### Flash 存储布局
|
||||
|
||||
```
|
||||
0x10 ADDR_BT_Close_TIMEOUT_Offset 1B 蓝牙空闲超时 (分钟)
|
||||
0x11 Addr_RS485_Baud_Offset 3B RS485 波特率 (LE32)
|
||||
0x14 Addr_RS485_ID_Offset 1B RS485 从机地址
|
||||
```
|
||||
|
||||
出厂默认:RS485 ID=1, 波特率=9600, 蓝牙超时=0(不关闭)
|
||||
|
||||
### 功能码细分 (g_function_mode)
|
||||
|
||||
`g_function_mode` 取自 `direction_mode` 高 4 位,低 2 位细分:
|
||||
|
||||
| bit | 字段 | 0 | 1 |
|
||||
|-----|------|---|---|
|
||||
| bit0 | `g_fm_700bs_disable` | **700BS 协议** | Modbus 协议 |
|
||||
| bit1 | `g_fm_radar_input_disable` | **光耦输入使能** | 光耦输入复位 |
|
||||
|
||||
> RS485 将支持两种协议:700BS(后续上传)和 Modbus。通过小程序设置 `direction_mode` 高 4 位的 bit0 切换。
|
||||
|
||||
### 文件变更
|
||||
|
||||
| 文件 | 变更 |
|
||||
|------|------|
|
||||
| `dbn_ble_srv.h` | +`CMD_DBN_RW_UART_BAUD 0x31` |
|
||||
| `cmcng.h` | +extern 声明: `fm_700bs_disable`, `fm_radar_input_disable`, uart/bt 配置 |
|
||||
| `storage.h` | +Flash 地址宏: BT_timeout, RS485_baud, RS485_ID |
|
||||
| `peripheral_main.c` | +全局变量定义, factory_dev 默认值, para_store_init 恢复 |
|
||||
| `dbn_ble_srv.c` | +`CMD_DBN_RW_UART_BAUD` handler, unpack 中解析 function_mode bits |
|
||||
|
||||
### 待办
|
||||
|
||||
- [ ] RS485 700BS 协议定义
|
||||
- [ ] RS485 Modbus 协议定义
|
||||
- [ ] RS485 串口中断收发实现 (UART0)
|
||||
- [ ] 蓝牙空闲超时自动关闭逻辑
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-21 — 灵敏度等级与 ΔL/L 的物理关系分析
|
||||
|
||||
### 参数表
|
||||
|
||||
Reference in New Issue
Block a user