Commit Graph

6 Commits

Author SHA1 Message Date
wandering1 94b0d79026 feat(ui)+chore(docs): UI 补齐清单清空;数据可信销项与「卡」号清退
本笔含两组收尾工作(同一工作区内交错在 6 个共享文档/门禁配置里,
拆开会产生"文档声称的页数与树里黄金数不一致"的中间提交,故合为一笔):

一、UI 补齐(清单清空)
- 新建 6 个内容页模块:ui_page_accident / oper / alarm / start / yk
  复用 ui_w_records 共享组件(分页、空态"无记录"、按实例读盘缓存),
  记录层与五个写入点已由道F task-10 / 道G task-12 落地,本批只补页面;
  ui_page_runreport 为 13 行 2 页只读统计,四个数逐个挂范围标签
  (自电池周期 / 本次开机),boot_ready=0 显 "--" 不显 0。
- 数据面:ui_data_info_t 尾部追加 9 字段,ui_data_feed 用
  boot_stats_get() + iec104_serv_get_stats() 纯搬运;模拟器填确定值假数据
  (差异登记 docs/测试说明/模拟器差距清单.md §2.3 两行)。
- 接线:菜单树 6 叶绑 #page=,绑定叶 22→28、UI_PAGE_MAP_COUNT=28;
  字库 185→218 字 / 280→313 字形;双端注册 uvprojx +30、CMakeLists +6。
- 回归:内容页黄金 53→60(含 runreport_p2 真拍第 2 页),文本断言
  425 正向 / 36 反向;存量 53 张逐字节零漂移;记录 5 页各用独立空目录
  (模拟器把操作留痕写进 cwd 的 sim_oper.log,共用 tmp 会让空态拍不到)。

二、数据可信销项 + 「数据可信」任务卡号整族清退
- 删除已闭环的"已知电压注入验证"行与闭环结论块(证据在
  docs/硬件平台/ADC通道映射说明.md §8.1 与
  docs/测试说明/ADC前端注入验证流程.md §5~§7),§5 标识列改语义短语。
- 卡 0/0b/1~12 共 14 个号全仓 288 站点 / 56 文件清退成语义短语,
  代码注释、测试、门禁配置与文档一并改;换算表入 docs/编号规范.md §9.3。
  这一族是中文前缀,不进 check_ids 语料,刻意不入 id_aliases.json。

验证(实测)
- @build 0 错 0 警:Code=236456 RO=28124 RW=1876 ZI=137084;
  RAM +464 B(RW +304 / ZI +160),RW_IRAM1 62.2% / RW_CCM 87.9%,
  体积同码凭证与 RAM 台账已回填。
- check_menu_rows 8 状态 rc=0(池 5368/5448 常量未动);
  check_content_pages 60 页 rc=0;check_font_charset / registration /
  coding-standard / bom-drift / mojibake / doc-links --all / layer-deps /
  nested-comment 全 rc=0;check_ids --strict 无错误;主机单测
  ui_data 295 / boot_stats 21 / sys_log_mcu 141 / soe 32 / soe_store 27。

未做(不是遗漏)
- 六页真机判据(真记录翻页、掉电保持、清除后归零、boot_count 自增、
  拔 RTC 电池落 RESTARTED、IWDG 复位落 rst_cause、主站连一次 conn_up+1)
  已登记 docs/任务规划/登记簿.md §7;模拟器结构上照不到。
- docs/产品需求/产品需求设计文档.md 属另一条在飞改动,本笔不含;
  其中我已同步 6 处现状数字(28 叶 / 60 页 / 218 字),随该笔入库。
2026-10-28 07:23:16 +08:00
wandering1 0f8b88337e docs(门禁): 主机侧单测覆盖面改写成口径陈述,第三处计数不同源一并修
「22 根专属钩子」是**口径**不是缺口:test/host 实测 42 个目录去掉 common/__pycache__
= 40 套带 run_unit_test.py,配置里带 -unit-test 后缀的只有 22 根 ⇒ 其余 18 套
(含 ui_sink、console_log、net_socket、lftpd 三兄弟、sys_log_mcu、iec104_serv、
task_prof…)没有独立 files: 触发面,但每次提交都被 test-coverage 总闸全量真跑,
失败照样拦——执行面无洞的证据核到源码:check_test_coverage.py:134 用 rglob 发现
全部 40 套,:44-46 的退出码语义写死「有单测失败即 1」。缺的只是秒级归因。

补钩子的判据也现成:pre-commit 4.x 移除了 always: true,没有 files: 触发面就等于
永不跑,所以**不能**靠"补第 23 根"解决,要补就得先给该模块划触发面。

顺带查出同类的第三处不同源(也在 docs/门禁说明/ 内):host-unit-tests.md 自己还写
着「16 个钩子 / 另有 12 套 / 总闸跑 28 套」,三个数全部过期,已改成 22 / 18 / 40,
§1 表补齐 2026-10-25 增补的六行,§6 第 4 条重写成覆盖面台账,§9 留变更记录。
另用 git log -S 核实原句「23 个 / 含 ui-sink 七个」是双重错:ui-sink-unit-test、
iec104-serv-unit-test、console-log-unit-test 在配置历史里**从未存在**过。
页数不变(26 篇),钩子数不变(声明 50 / 实跑 50 / 专属单测钩子 22)。
2026-10-26 19:27:01 +08:00
wandering1 411594bf67 feat(采集标定): 卡1 TPAFE 量程口径定死 + 卡3 cfg_file 补 CFG_VAL_INT
卡 1(文档口径;卡 0/12 实测类按用户指示跳过,只落口径与占位):
- ADC通道映射说明.md 文首摘要行的 ±10 V 更正为 ±5 V 双极性:板上 RANGE
  接 GND,±5 V 满量程 = 10 V 跨度,LSB ≈ 152.59 µV/码(@引脚)
- §7 TPAFE 量程行重写并括注 ±10 V 是芯片可选档(RANGE=HIGH,跨度 20 V、
  LSB 305.18 µV)、本板未用;§1 缺陷实质 2 补「满量程 = 10 V 跨度」
- 新增 §7.1 端到端量纲链路分段口径:②引脚侧 LSB 系数定死(TPAFE 152.59 /
  STM32 805.66 µV/码,纯转换器事实、与前端网络无关,卡 2 的 ROM 默认按此
  冻结);③1k+1k 网络「2:1 分压 vs 源阻抗匹配」两读法待卡 0 注入斜率判别;
  ④端子→AINn 变比为仓库缺口待卡 0b;305.18/1611.3 定性为读法 A 的条件值、
  判别前禁入代码;§9 变更记录编号不动(继保规划有指向本文件 §9 的跨文档
  引用),新增行追加于其后
- 全仓其余 ±10 V 仅剩芯片手册转写与 tpafe5160 RANGE 枚举可选档注释
  (芯片能力描述,非本板口径);数据可信.md §2.1 冲突挂账归 lead 销项

卡 3(代码;cfg_file.c 带 BOM,编辑后核 EF BB BF 完好):
- 新增值类型 CFG_VAL_INT(枚举尾部追加、既有值不变;len 1/2/4 小端补码):
  s_decode_int() = strtol + ERANGE + 宽度上下界双校验(两端 long 均 32 位,
  超范围文本饱和成 LONG_MAX 仅比界抓不住,ERANGE 必查);s_encode() 带负号
  %ld 输出;cfg_file_register() 拒 INT 非法 len
- 单测新增 TC-CONFIG-006/007/008:-1 / INT32_MIN / INT32_MAX / 越界拒绝
  (含饱和带 2147483648)/ 编码带负号 / [sys] 段 load-save-load 往返一致 /
  注册拒绝 INT len=3 —— cfg_file 套件 200/200 PASS
- 回归:net_cfg 45/45、ftp_cfg 16/16 PASS,既有 network/ftp 段行为不变
- 越界改动说明:TC-CONFIG-006~008 定义行登记进属主文档
  docs/测试说明/配置文件单元测试说明.md(id-check 增量拦截要求在属主登记处
  补定义,该文件不在本卡写范围但为门禁唯一修复路径,仅追加 3 行用例 + 1 行
  变更记录,lead 评审时留意)

gate:@build 0 错误 0 警告(Code=214104 RO=18860 RW=1204 ZI=131852);
RAM 增量 0 B(RW/ZI 与 ram_baseline 2026-10-24 行完全一致,IRAM1 57.7%、
CCM 87.9% 不变),Flash +324 B;uvprojx 零挂载变化、未入库。
staged 门禁全绿,唯 mem-numbers / mem-budget 因 Flash 增量需台账回填
(--write 目标 docs/内存管理/** 属单写者文件,本道不得触碰):
gate: only mem-budget/mem-numbers pending lead ledger backfill
(--all-files 全量自查确认失败面仅此两条;BOM/CR/U+FFFD/字面量 ASCII 已
手工自查)
2026-10-25 03:13:32 +08:00
wandering1 bda7ab2b50 refactor(编号): 16 个测试模块码单词化 + 门禁识别面连带放宽
批 2(用户授权改名 + 「新名要一眼看懂」裁定)
- 16 个有歧义模块码单词化,共 1,146 处随 scripts/rename_ids.py 改写:
  AI→ADCIN、AH→ADCHEALTH、PS→PROTSET、PE→PROTELEM、PH→PHASOR、
  TS→TIMESYNC、VL→VOLLOCK、NP→NANDPORT、CFG→CONFIG、CLK→SYSCLK、
  WD→WATCHDOG、STO→STORAGE、SH→SHA256、FA→FTPAUTH、FR→FREQ、104→IEC104
- 不动 NET/GD5F/RTC/SOE/UI/ADC/LOG/RS485/TOOL(已是单词、芯片名或业界通用词,
  改了纯属 churn)
- 别名按全局登记:这批字面量已完全限定(TC-<码>-<nnn>),不存在裸形多义
- 映射表存档 scripts/rename_maps/batch2.json 作审计轨迹;§6 模块码表同步

连带修门禁(关键教训)
- 模块码涨到 9 位(ADCHEALTH/WATCHDOG)后,候选正则与族正则的 {0,4} 上界
  会让改名后的号**整批从门禁眼里消失**:实测编号字面量从 8271 掉到 7315、
  悬空假降 490 处。已放宽到 {0,9} 并写进 §6 注记
- 结论:改名批次必须连带复核识别面,只改数据不改判据 = 静默放行;
  这次是靠「可判定比例跌破基线即失败」那条线拦下来的

现状与遗留
- 校验 1 未登记前缀 0 处;可判定比例 82.71%(基线 82.6%,只涨不跌成立)
- 遗留:7 个模块的「单元测试说明.md」仍缺(PROTSET 116、NANDPORT 109、
  PROTELEM 65、FREQ 48、FTPAUTH 45、SHA256 25、SOE 14 处悬空)——改名不解决
  缺文档,处置方式待议
- 遗留:T-2/T-3/T-4/T-6 历史任务号悬空(别名表未收全,属本工具批次漏项)
- 未改任何 C/H 可编译语义(仅注释与宏名内的编号),故不需 @build
2026-10-21 09:53:28 +08:00
wandering1 7f393956cc 测试与架构改进建议:删除已落地条目,只保留待办
- 12/14 条建议已落地,按"只保留待办"约定重写本文件
- 保留:S12 断言宏、S1-c 可选单测、A-4 采集链路测试约束
- 保留:A-5 残余(CI 体积门禁盲区)
- 保留:错误码通道四要素(设计基线,供后续驱动接入沿用)
- 删除:S1-a/S1-b、S2~S11、S13、S14;T-1~T-5;A-1~A-3/A-6/A-7
- 删除:评价表/盘点表、路线图、总结、变更记录
- 同步修正 6 个外部文档对本文件章节的死引用
- 新增"编号约定":S/T/A 编号不随条目删除而回收
2026-10-04 02:12:41 +08:00
wandering1 fe963e7d91 测试:新增 cfg_file 主机侧单测并修复外科手术保存死码缺陷(S1-b+S2)
CI / L0 静态门禁 (pre-commit) (push) Successful in 49s
CI / L0.5 主机侧单测 (MSVC) (push) Successful in 17s
2026-10-02 13:00:54 +08:00