1.9 KiB
1.9 KiB
修改记录 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 输出完整、无重复拼接。