36 lines
1.9 KiB
Markdown
36 lines
1.9 KiB
Markdown
# 修改记录 2026-09-04:CLI 读写特征应答改分包读
|
||
|
||
CLI 特征 `...c72e0003` 的应答读取从「单读 ≤512B」改为「分包循环读,读到
|
||
0 长度包为止」,解除命令输出 512B 截断(14 条命令的 help 全表约 840B)。
|
||
|
||
## 固件侧(mcm-ddc-ble V1.00.13)
|
||
|
||
- `app_ble_proto.c`:应答缓冲 512B→1024B;新增读游标 `s_cliRspOff`,每次
|
||
ATT 读返回下一片,片长 = 协商 MTU−2(MTU 247 时 245B/片;默认 23 时 21B/片)。
|
||
单片恒为短读,对端协议栈不会发起 Read Blob(blob 偏移不下发应用层,
|
||
会切错窗口,详见 docs/开发日志.md §33)。
|
||
- 写入新命令或断连时游标归零;读到 0 长度包 = 应答结束。
|
||
- `help` 恢复完整帮助表(`help <cmd>` 单条查询保留)。
|
||
- 固件新增维护命令(V1.00.11):`reset` 复位单板、`factory` 恢复出厂设置
|
||
(参数区缺省+落盘+复位)、`uartrst` 复位串口、`uartinfo` 查询串口参数。
|
||
|
||
## App 侧修改
|
||
|
||
- `src/mcm/McmCli.ts`:`doExecCli` 读应答改为循环读 `Ble.readChar`,
|
||
拼接各片直到读到 0 长度包(64 片兜底);文件头注释同步更新。
|
||
|
||
## 兼容性
|
||
|
||
- **App 与固件需配套升级**:旧固件(≤V1.00.12)重复读返回同一静态缓冲,
|
||
循环读会重复拼接直至兜底次数上限;旧 App 单读新固件只能拿到第一片
|
||
(MTU 247 时 245B)。
|
||
- PC 工具 `tools/ble_cli_test.py`(`-rw` 模式)已同步改循环读。
|
||
|
||
## 验证
|
||
|
||
- 固件 `UV4 -r` 全量重建 0 Error / 0 Warning;`tools/out/caiic_ble_full.hex`
|
||
出包,OTA 清单 version=0x0001000D(_ota.bin 45056B,crc32=0xB2469318)。
|
||
- PC 侧验证(烧录后):`tools\ble_cli.bat help` 应完整输出 14 条命令
|
||
(多片拼接),`tools\ble_cli.bat devinfo`/`uartinfo` 等回归。
|
||
- 真机回归:CLI 终端页执行 help/sysinfo 输出完整、无重复拼接。
|