# 修改记录 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 ` 单条查询保留)。 - 固件新增维护命令(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 输出完整、无重复拼接。