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:
@@ -890,7 +890,7 @@ sequenceDiagram
|
||||
上电次数 + 本次复位原因快照)与 iec104_serv 的四个只读观测计数,经 info 帧下发
|
||||
(口径 docs/UI设计/UI_数据供给设计说明.md §4.4)。
|
||||
- 判据:五类记录各有写入点、可翻最近 20 条、空记录明确显示"无记录"、共用 reader——**软件面已满足**
|
||||
(空态与四个范围标签由 60 页像素黄金钉住;模拟器侧这些文件没有写入方,只拍到空态)。
|
||||
(空态与四个范围标签由 60 张像素黄金钉住;模拟器侧这些文件没有写入方,只拍到空态)。
|
||||
真记录翻页、掉电后保持、清除记录后归零、boot_count 自增与四态判定**待台架复核**
|
||||
(docs/任务规划/登记簿.md §7)。
|
||||
|
||||
@@ -1878,7 +1878,7 @@ docs/任务规划/UI补齐.md §5);原「当前执行 6 项」(记录 5
|
||||
- 菜单导航状态**不压层**,返回即原样还原;同一时刻至多一个内容页打开。
|
||||
- 节点→页映射在逻辑层 `menu_content_page_for(node)`;未绑叶子进入空白终点框(不伪造数据)。
|
||||
- 数据供给走**注入通道**(rt / par / info / 遥测死区与系数第四表),页面不直接触算法层;
|
||||
像素黄金用例当前 **60 页**(菜单 8 状态另计;2026-10-28 记录 5 页与运行报告 2 页落地,+7 张)。
|
||||
像素黄金用例当前 **60 张**(菜单 8 状态另计;2026-10-28 记录 5 页与运行报告 2 页落地,+7 张)。
|
||||
|
||||
### 8.4 密码与权限
|
||||
|
||||
@@ -2715,3 +2715,4 @@ docs/任务规划/UI补齐.md §5);原「当前执行 6 项」(记录 5
|
||||
| 2026-10-28 | **v1.7 单色口径:删除多色协议,INIT 由 29 B 改 16 B** | 用户裁定"屏幕板都是单色的,多色协议可以删除、不必对齐"。**核查后确认这不是让步,而是删死字段**:① **三处源码证据**——`RemoDispBus.h:46` `CN_RDISP_TYPE_MONO = TRUE` → `CN_RDISP_LCD_TYPE = CN_MODE_GREY_MONO`、`CN_RDISP_MEMSIZE = (X>>3)*Y`(链路显存本就是 1 bpp);`RDisp_Form_InitInf` 里 `CN_RGB_RED/GREEN/BLUE` 是**编译期常量**而非逐帧数据;`RDisp_LcdColor_To_Mono()` 对 `CN_MODE_GREY_MONO` **直接 `return TRUE` 不转换**,真正干活的 `RDisp_Lcd16B_To_Mono()`(RGB565→单色)挂在 `CN_MODE_COLOR_16B` 下**本构建永不进入**(死代码);② **§5.16.5 INIT 应答表由 29 B 重写为 16 B**(宽 2 + 高 2 + 显存 4 + 8 键值表),删掉 1 B 颜色位 + 12 B RGB,并补"为什么是 16 B"的证据块;③ **§6.2 命令集 INIT 行**同步改 16 B 并加"单色口径"注(颜色位与 RGB 整段删除、`RDisp_LcdColor_To_Mono()` 不存在);④ **§5.16.6 第 6 条注**改为"该函数在参考单色构建下就是空转",避免误以为本产品漏了一步转换;⑤ **§5.16.9 第 1 行**由"补 21 B"改为"**补 8 B 键值表 → 16 B**,颜色 13 B 不对齐";"新增约束"补"单色"一条;末尾警示改为 **16 B vs 29 B 不可互换**(从偏移 4 起含义即不同,客户端不得复用参考 29 B 解析器截前 16 B);⑥ **§5.16.10 判据第 1 条**改 16 B 且"不得出现颜色位或 RGB";⑦ **§9.13 第 2 条**改"INIT 应答补足 **16** 字节 / 不加颜色位与 RGB"、第 9 条客户端按 16 B 解析、破坏性变更警示改 16 B(后 8 B 而非后 21 B)并补"不可与参考 29 B 互换";⑧ **§2.4.1 补"多色显示不在本表内"**——参考与本产品都是单色链路,删的是死字段,**不属于"决定不做"的能力**;§2.5.2 第 20 项、§9.1.2、§9.12、§10.3 第 13 项同步;⑨ **§8.1 色深行**补"无灰度、无彩色,7003 INIT 颜色字段已删",渲染行改为"串口屏板通道(主)+ TCP 7003(镜像)双出口"。**本次只改本文件** |
|
||||
| 2026-10-28 | **v1.8 端口重排:屏板占 USART1,日志迁 RS-232 通道** | 用户裁定"把现在的日志 UART 让给屏幕,RS-232 通道后面用来输出日志"。**这条裁定把 v1.6/v1.7 的头号阻塞直接消掉了**:① **§5.16.2 新增「端口裁定」块**——屏板改走 **USART1(PA9/PA10,MCU 直出 TTL、不经任何收发器)**,因此 `U15 = TP8485E-SR` 只有 250 kbps 这件事**对屏板链路不再构成约束**;日志迁 **RS-232 通道**(V0.1 板上 RS232#3 = USART2 PD5/PD6 为默认,RS232#1 = UART5 PC12/PD2 为备选,两者都经隔离器 → U13 TPT3232E → CN1);② **纠正分频算法**——旧文写"`42 000 000 / 700 000 = 60` → `USARTDIV = 60.0`、`BRR = 0x3C0`"**漏了 16 倍过采样**,照此写实际波特率只有 43 750;正确值:USART1(APB2 84 MHz)`USARTDIV = 7.5` → **`BRR = 0x0078`**,APB1 实例(42 MHz)`USARTDIV = 3.75` → **`BRR = 0x003C`**,两者误差均为 0;③ **§5.16.2「主机侧端口选型」整表重写为「主机侧端口重排」**,按 `docs/硬件平台/V0.1_网表详细分析报告.md` §4.2 的三对 UART 轮换列明 RS485#4 = UART4(DE = PA15)、RS232#1 = UART5、RS232#3 = USART2,并补两条实现约束(`console_log.c` 里 `huart1` 5 处 + 自愈函数直写 `USART1_IRQn` / `MX_USART1_UART_Init()` 需收口成一处端口宏;新日志口必须 `UART_MODE_TX`,否则重演 ORE 锁存);④ **DE 口径改为「TTL 直连无 DE」**,仅"经外部 485 模块接 A/B"时才需处理,且极性由该模块决定;⑤ **主机 RX 口径**由"吃下 4208 B"改为"只需 6 B(16 B 缓冲够)",并说明 TTL 直连无自发自收;⑥ **§4.2 外设接口表**:USART1 行补"端口重排后改作屏板链路 + PA10 目前未接线",新增 USART2(RS-232 #3,日志口)与 UART5(RS-232 #1,备选)两行,UART4 行注明 V0.1 轮换依据;⑦ **§5.16.9「新增约束」**与 **§9.12** 的 700000 行同步为"USART1 TTL 直连、无 DE";⑧ **§9.13 新增第 16 条「日志口迁移」**并置于第三批首位,批次表注明 **16 必须排在 10 之前**(两者共用 `USART1->DR`);第 10 条改为 `BRR = 0x0078`、无 DE、`DMA2_Stream7/2` 现成;**前置阻塞**补两条物理前置(PA10 接线、台架串口线从 USART1 挪到 CN1)。**本次只改本文件** |
|
||||
| 2026-10-28 | **v1.9 撤销"PA10 未接线",ORE 机理改正** | 用户反馈"PA10 这个端口我接线了,当时分析出这个问题来,我怀疑是错误的"。核查后确认:**`App/log/console_log.c`(文件头与 `con_uart_reinit()` 注释)与 `docs/子系统设计/控制台单写者日志设计说明.md` §12 里的"PA10 悬空 / 未接线"是 2026-10-02 的归因推断,不是实测**,且与用户确认的接线状态相反。改动:① **§4.2 外设接口表** USART1 行删掉"PA10 目前未接线、作屏板链路前必须接上",改为"PA10 双向均已接线";② **§5.16.2** 原"USART1 的 RX 目前没有接线"警示块整段重写为「旧结论已撤销 + ORE 真正机理」——ORE 的充分条件是**RX 使能却从不读 `DR`**(任意一个字节或噪声沿使 `RXNE` 置位后无人读,下一个事件即锁存 ORE,且只能靠"读 SR 再读 DR"清除 ⇒ **永不自愈**),与引脚悬空无关;据此补两条硬要求(屏板链路必须真的消费 `DR` 并在 `HAL_UART_ErrorCallback` 里清 ORE 后重挂接收;新日志口设 `UART_MODE_TX` 仍正确,因为那是从机制上摘掉 RX);③ **§9.13 前置阻塞**由"两条物理前置"改为"一条物理前置(台架串口线挪位)+ 一条实现纪律(RX 要真读、ORE 要真清)",并写明原"PA10 接线"结论已撤销;第 11 条的验收隐含"拔插 TX 线制造噪声后能自动恢复"。**当年那场 ORE 风暴的真因仍待定**——接线正常时更常见的是对端波特率不匹配或适配器 TX 在 USB 掉线时浮空,下次复现先量空闲电平与波特率,不要再默认"引脚悬空"。**本次只改本文件** |
|
||||
| 2026-10-28 | **像素黄金口径更正(不 bump 版本号)** | 正文两处当前态由「60 页」改报「60 张」:判据本体 = `simulator/tests/ref/` 入库 `shot_*.bin` 实数 60 = `check_content_pages.py` 的 `PAGES` 条目数 60,其中 2 张是分页页多拍的第 2 屏 ⇒ 张数 ≠ 页数(同一句里「+7 张」与「60 页」并存就是口径混用的后果)。历史行 53 → 60 与更早的 27 / 40 / 47 一律按当日事实冻结,本行只追加。 |
|
||||
|
||||
Reference in New Issue
Block a user