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

36 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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