新增 Python 串口助手 serial_tool(常驻 daemon+全量日志文件即接口)取代 serial-mcp-server:@test 采集链改写 + 全库文档迁移
This commit is contained in:
@@ -113,20 +113,23 @@ Src/main.c → CubeMX 外设初始化 → app_main_init → osKernelStart
|
||||
- `docs/问题记录/SD2506_Trap_Records.md` — SD2506 RTC 已知陷阱
|
||||
- `docs/测试说明/CH395F_Test_Guide.md` — 网络测试说明(含构建模式与执行顺序)
|
||||
|
||||
## 串口调试(serial-mcp-server MCP/CLI)
|
||||
## 串口调试(Python 串口助手 serial_tool)
|
||||
|
||||
通过 **Adancurusul/serial-mcp-server** 自主读取/控制 **USART1 串口**(PA9 TX / PA10 RX,115200bps)的打印流。
|
||||
通过仓库内置 **Python 串口助手**(`tools/serial_tool/serial_tool.py`,常驻 daemon + 薄 CLI)自主读取/控制 **USART1 串口**(PA9 TX / PA10 RX,115200bps)的打印流。
|
||||
|
||||
- **统一入口**:`& '.venv\Scripts\python.exe' 'tools/serial_tool/serial_tool.py' <命令> [参数]`(daemon 未运行自动拉起;全部命令带硬超时 5s,JSON 输出,exit 0/1/2/3)
|
||||
- **全量历史 = 日志文件** `tools/serial_tool/state/serial.log`(RX/TX/SYS 时间戳行;Agent 直接 Read/Grep 读文件,无采集窗口仪式);20MB 上限自动截头保尾 10MB
|
||||
- **常用命令**:`ports`(枚举+配置口标注)/ `open`(幂等,不存在/占用 ≤1s 报错)/ `send`(位置参数文本 或 `--hex 0D0A`,`--nl` 加 CRLF)/ `status`(全状态)/ `log --tail N --grep P` / `clear`(代际+1)/ `wait-idle --settle-ms 8000 --max-ms 30000` / `close` / `start|stop|restart` / `selftest`(无头自检)
|
||||
- **串口端口单一配置源:`.opencode/serial_config.json`**(当前本机为 `COM6`)。端口变化只改这个文件。
|
||||
- 用法、采集窗口模式、已知陷阱等详见 **`docs/测试说明/serial-mcp-server_串口调试.md`**
|
||||
- 命令契约、日志行格式、daemon 行为、已知陷阱详见 **`docs/测试说明/串口助手设计说明.md`**
|
||||
|
||||
## 自动化测试(AI 迭代闭环)
|
||||
|
||||
改完代码后运行 **`@test`** 可自动执行完整闭环:**构建验证 → 串口捕获武装(serial-mcp-server 采集窗口)→ 烧录(`MDK-ARM/download.bat`,下载后 Reset & Run)→ 解析捕获 JSON → `test/verify_log.ps1` 标记校验 → PASS/FAIL 判定并迭代**。
|
||||
改完代码后运行 **`@test`** 可自动执行完整闭环:**构建验证 → 开串口 + 清空日志(serial_tool,daemon 常驻,全程不关端口)→ 烧录(`MDK-ARM/download.bat`,下载后 Reset & Run)→ `wait-idle`(等 RX 静默 8s 或超时 30s)→ 提取 `[RX]` 行 → `test/verify_log.ps1` 标记校验 → PASS/FAIL 判定并迭代**。
|
||||
|
||||
- **推荐一键命令**:`test/run_boot_test.ps1` = 采集(含 EOF 重试)→ 烧录 → 提取日志 → verify 全流程,退出码 0=PASS / 1=FAIL / 2=采集或烧录错误 / 3=日志文件错误
|
||||
- **推荐一键命令**:`test/run_boot_test.ps1` = open → clear → 烧录 → wait-idle → 提取日志 → verify 全流程,退出码 0=PASS / 1=FAIL / 2=采集或烧录错误 / 3=用法/预检错误
|
||||
- 判定标准:`@test` 内部先 `@build`(0 错误 0 警告),再 `@download`(退出码 0),日志用 `verify_log.ps1` 校验(默认 Required:`App init OK`/`Network Init`/`net init: OK`;Forbidden:`FAIL`/`ERROR`/`HardFault`)
|
||||
- **采集必须在烧录前武装**(采集进程先打开 COM 等 first-byte,烧录触发复位后才抓得到开机日志);`run_boot_test.ps1` 的 `-FlashCmd` 分支已保证顺序
|
||||
- daemon 常驻全量日志文件:开串口 + clear 必须在烧录**前**完成(`run_boot_test.ps1` 已保证顺序);旧 serial-mcp-server 的"采集窗口/first-byte/EOF 重试"仪式已整体移除
|
||||
- 每次按模块定制标记(网络/存储/RTC/ADC/RS485)见 `docs/测试说明/自动化测试流程.md`
|
||||
- UI 已有 DBG 打印(`UI port init: OK` / `UI menu init: OK` / `UI net sink: started`),可用 `-Required "UI port init: OK;UI menu init: OK"` 自动回归 UI 初始化;屏幕内容仍需人工目检
|
||||
|
||||
|
||||
Reference in New Issue
Block a user