007f6a0e2f
原「配置文件设计说明.md」是 2026-09 的规划文档(P1~P8 实施计划、D1~D15 决策表、差距调研、模块清单动作列、已终结的开放问题),与现在跑的系统 已有明显出入。改写成只描述当前状态的「配置文件设计.md」。 新文档 9 节:概览 / 文件格式(路径与容量、语法、出厂模板原文、值类型)/ 运行时机制(上电加载、外科手术式保存、2s 轮询与沉降、视图一致性守卫、 写者归属)/ 段与键表(8 段全满、注册顺序、接入新段模板、段回调)/ 接口(引擎 API、平台后端)/ 内存占用(编译期钉死的 9217B 暂存)/ 异常与恢复 / 双端差异 / 已知限制。 顺带修正一处事实错误:旧文档称 FTP STOR 是「写 .TMP 再 rename 原子更新」, 实际 lftpd receive_file 是原地覆写,已按代码现状改写。 旧二进制档(NCFG)的叙述按裁定从全仓移除:文档只描述当前状态,不再 交代旧版本兼容性。删掉网络配置说明 §3.2 整节(后续小节重排为 3.2~3.5), 并清理 README / 架构总览 / 产品需求 / 部署环境等 11 处同类叙述。 同步: - 8 段注册、FTP 原地覆写、2s FAT mtime 粒度等数据更新进配置分层架构图, 重跑后与生成器逐字节一致,check_generated_fresh 里这条存量基线下架 - 全仓 24 处引用改用新文档名,旧节号逐条映射到新节号 - 文档规范 §7.1 变更记录例外名单 4 篇减为 3 篇(该档实际无变更记录表) 验证:48 个提交期钩子全通过;Keil 构建 0 错误 0 警告; check_doc_links / check_mermaid / check_generated_fresh 均通过。
simulator/tests/ — UI 模拟器无头回归测试
PC 端无头(headless)UI 像素回归测试:在模拟器中渲染各页面,与黄金参考图比对, 检测 UI 改动是否引入像素级回归。属于
ui-verifyskill 五步门禁的一部分。
文件一览
| 文件 | 作用 |
|---|---|
check_menu_rows.py |
菜单像素回归:渲染菜单行 → 与黄金参考比对 |
check_content_pages.py |
内容页回归:各内容页渲染比对 |
check_remo_sink.py |
推流(RemoDispBus)回归:接收端渲染比对 |
regen_ref_png.py |
由 ref/*.bin 批量出目检 PNG(不产生基准;基准由 check_content_pages.py --update 刷) |
ref/*.bin |
像素黄金参考(入库):74 张 × 3200 B,160×160 单色打包(2026-10-29 录波 UI 道 +6 张;2026-11-04 SNTP 设置页 +8 张) |
使用方式
# 跑回归(按 ui-verify skill 流程)
& '.venv\Scripts\python.exe' simulator/tests/check_menu_rows.py
& '.venv\Scripts\python.exe' simulator/tests/check_content_pages.py
# UI 有意变更、确认无误后重建基准
& '.venv\Scripts\python.exe' simulator/tests/regen_ref_png.py
⚠️ 注意
- 重建黄金参考前必须确认变更是有意的——否则会把 bug 固化成"基准"
ref/*.bin已入库:刷参考 = 改基准,git diff里会显形,提交正文必须写明为什么变ref/*.png只是给人看的派生物(已忽略),刷完.bin要重跑regen_ref_png.py才对得上- UI 改动一律走
ui-verifyskill 五步门禁(regression 是其中一步) - 依赖模拟器已构建(
simulator/build_sim.bat)
相关文档
docs/UI设计/UI_自动化测试流程.md— ui-verify 五步门禁docs/UI设计/LVGL模拟器部署与使用说明.md