docs(UI): 内容页黄金参考当前态改报「60 张」,三数按双源实测同步

三数实测真值(每项两个独立来源互证):
- 张数 60:simulator/tests/ref/ 入库 shot_*.bin 实数 60 =
  check_content_pages.py 的 PAGES 条目数 60(id 逐一对齐)。
- 已绑 28 叶 / 未绑 5 叶:ui_page_registry.h 的 UI_PAGE_MAP_COUNT 28 =
  ui_menu_tree.txt 剔掉文件头注释示例行后的 #page= 实数(不剔是 29)。
- 字体 218 唯一字 / 313 字形:ui_cn_chars.txt 唯一码点 218(ASCII 区 0
  个,ASCII 0x20~0x7E 由生成器子集参数另计、不算进字数);
  ui_font_cn_12.c 的 .bitmap_index 条目 314 条含 notdef,剔掉 notdef →
  313 = 218 + ASCII 95。

口径更正(数字一律不动):当前态计数单位由「页」改报「张」——张数 =
页面个数 + 分页页多拍的第 2 屏(runreport_p2 / sparam_p2 两张),两个数
不许互相冒充。同日先前那行「53 → 59 页」是页面个数口径、与判据本体
不同源,原文冻结不回改,只在各文件变更记录末行追加当日更正。

历史一律冻结:变更记录里的 27 / 40 / 47 / 53→60 / 59 与字库 122/217、
179/274、185/280、183/278 都是当日快照,只追加、不回改。

夹带说明:.pre-commit-config.yaml 一并入本笔——pre-commit 要求配置本身
已 staged 才允许提交;该文件的改动是 ui-golden 显示名(60 页→60 张)与
一条钩子计数口径注释(同日 51 → 52 → 51 净零,属另一类,已在此点名)。
This commit is contained in:
2026-10-28 15:33:42 +08:00
parent a75bc03ab5
commit dc214e1426
21 changed files with 40 additions and 30 deletions
@@ -186,7 +186,7 @@ MCU 端 `Drivers/BSP/dbg_log.h` 会引用 `sys_clock.h`(RTC 时间戳),PC
- `LV_USE_THEME_MONO` 是否 = 1 且在 `sim_port_init` 中调了 `lv_theme_mono_init`(1bpp 无主题 = 黑底黑字)
- 主循环是否调用 `lv_refr_now(NULL)` 强制首帧输出(PARTIAL 模式下保证)
- 是否重复设置 tick:SDL 驱动内部 `lv_tick_set_cb(SDL_GetTicks)`,**不要**再 `SDL_AddTimer` + `lv_tick_inc`
2. **中文字体缺字**:`ui_font_cn_12` 只覆盖 83 个汉字(ASCII + 指定符号集),完整菜单需要 186 个唯一汉字。**当前菜单部分文字会显示为空白**,需重新生成字体(见下文 6.3)。
2. **中文字体缺字**:`ui_font_cn_12` 是子集字体(当前 218 汉字/符号 + ASCII 0x20~0x7E,共 313 字形;2026-10-28 实测)。**缺字才会显示为空白**——新增汉字必须重生成字体(见下文 6.3)。早期只有 83 字、当时菜单需要 186 字,那是 2026-09-03 的历史快照,不是现状。
3. **`LV_SDL_RENDER_MODE` 必须为 `PARTIAL`**:1bpp + SDL 若非 PARTIAL,`lv_sdl_window.c` 会 `#error` 编译失败。
### 6.3 字体生成(如需补全中文字符)
@@ -234,7 +234,7 @@ A: `LV_CONF_DIR` 变量未在 `add_subdirectory(lvgl)` 前定义,检查 `simul
A: 按 6.2 黑屏排查顺序检查:mono 主题 → `lv_refr_now` → tick 不重复。
### Q4: 菜单某些中文显示空白?
A: 中文字体缺字(覆盖 83 字,需要 186 字),见 6.3 重新生成字体。
A: 子集字体未含该字(当前字符集 218 汉字/符号 + ASCII 0x20~0x7E,共 313 字形;2026-10-28 实测),见 6.3 重新生成字体。
### Q5: 修改了 UI 代码但模拟器没变化?
A: 确认修改的是 `Drivers/BSP/UI/ui_menu.c` 而非 `simulator/` 内的副本(本工程无副本);然后重新 `cmake --build`。