mothercup/SmartAssiter/docs/修改记录_2026-09-04_CLI读写特征分包读.md

1.9 KiB
Raw Blame History

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