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 字),随该笔入库。
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 模块名称:通道标定层(L1.5,adc_cal)主机侧单元测试
|
||||
* 被测对象:真实源文件 App/algo/adc_cal.c + App/cfg/cfg_file.c(均 #include
|
||||
* 原样纳入——卡 4 的落盘契约必须用真引擎测,不造轮子替身)。
|
||||
* 原样纳入——标定落盘与整定入口的持久化契约必须用真引擎测,不造轮子替身)。
|
||||
* 平台依赖桩:dbg_log.h(stub/ 计数宏)、cfg_store_*(本文件内存
|
||||
* 虚拟盘,同 cfg_file 套件先例)、syslog_post(计数)、
|
||||
* adc_input_desc()(按 ADC通道映射说明.md 权威表给 V0.1 来源映射)。
|
||||
@@ -14,7 +14,7 @@
|
||||
* TC-ADCCAL-001 init 注册两段:名称/键数/data_size/无回调/默认表指向
|
||||
* TC-ADCCAL-002 UA(TPAFE)折算:0 / 8192 / 32767 / -32768 对 10V/65536 独立推导
|
||||
* TC-ADCCAL-003 UB(STM32)折算:0 / 2048 / 4095 对 3.3V/4096
|
||||
* TC-ADCCAL-004 其余 6 路各 1 点(合计 8 通道 × ≥3 码值点,卡 2 DoD)
|
||||
* TC-ADCCAL-004 其余 6 路各 1 点(合计 8 通道 × ≥3 码值点,标定折算落地 DoD)
|
||||
* TC-ADCCAL-005 TEMP 透传 + flags/k_uv 恒 0;sem 越界守卫
|
||||
* TC-ADCCAL-006 默认 flags 三态:VALID 全 0;CLIPPED = UB/UC/IB/IC/IN(0xE6)
|
||||
* TC-ADCCAL-007 k_uv 精确值:152.587890625 / 805.6640625(Q16 无舍入验证)
|
||||
@@ -23,14 +23,14 @@
|
||||
* flags 不报 VALID(即便位图置位)+ init 重置观测窗
|
||||
* TC-ADCCAL-014 零点 b 生效(set 路径):(code+b)×k 逐项可算
|
||||
* TC-ADCCAL-015 两点标定公式:合成数据还原 k/b + 写回往返 + 参数/斜率/
|
||||
* 零点越界(-2)守卫(卡 12 的算术核,台架注入待跑)
|
||||
* 零点越界(-2)守卫(两点标定的算术核,台架注入待跑)
|
||||
* TC-ADCCAL-016 rail_ths 门限:TPAFE ±32112 / STM32 4013·81 / TEMP 不监视
|
||||
* TC-ADCCAL-017 init 幂等:重复调用 RAM 复位默认 + 重新注册
|
||||
* —— 以下走真实 cfg_file 引擎(卡 4 DoD)——
|
||||
* —— 以下走真实 cfg_file 引擎(标定落盘与整定入口 DoD)——
|
||||
* TC-ADCCAL-010 文件值生效:k_ua/b_ua 经 load 改变折算结果,VALID 置位
|
||||
* TC-ADCCAL-011 越界文件值:k=999 / k=-999 被引擎收下后由哨兵兜住:
|
||||
* 折算 = ROM、VALID 不报(位图置位也不报)、[ERR] 留痕
|
||||
* TC-ADCCAL-012 段损坏(超长文件)→ 回退 ROM 且 flags 无 VALID(卡 4 DoD)
|
||||
* TC-ADCCAL-012 段损坏(超长文件)→ 回退 ROM 且 flags 无 VALID(标定落盘与整定入口 DoD)
|
||||
* TC-ADCCAL-013 段缺失(文件无本段)→ ROM 默认、VALID 全 0
|
||||
* TC-ADCCAL-018 未标定闭锁单点 adc_cal_prot_blocked()(道F task-16):开机态必须
|
||||
* 闭锁 / 两路齐第三路缺仍闭锁(全或无)/ 三路齐放行且 UB 仍无 VALID
|
||||
@@ -46,7 +46,7 @@
|
||||
* TC-ADCCAL-023 空转回执不倒挂:水位永不越过 set_ok(uint32 相减一绕回就是巨大的假差额)
|
||||
*
|
||||
* 通过:全部 TC PASS(main 返回 0)。
|
||||
* 创建日期:2026-10-25(道A 卡 2/卡 4)
|
||||
* 创建日期:2026-10-25(道A 标定折算与落盘整定)
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
@@ -176,7 +176,7 @@ static int s_total = 0, s_passed = 0, s_failed = 0;
|
||||
|
||||
/* ===================== 独立推导的期望值 ===================== */
|
||||
/* 期望一律用 **double 直接除**(10/65536、3.3/4096),不引用被测的 Q16 常量,
|
||||
* 满足卡 2 DoD「期望值由 LSB 常数独立算得(不是抄实现)」;容差只需盖住
|
||||
* 满足标定折算落地 DoD「期望值由 LSB 常数独立算得(不是抄实现)」;容差只需盖住
|
||||
* float32 中间积舍入(相对 ~1e-7)与打印粒度。 */
|
||||
static double exp_tpafe(int32_t code) { return (double)code * (10.0 / 65536.0); }
|
||||
static double exp_stm32(int32_t code) { return (double)code * (3.3 / 4096.0); }
|
||||
@@ -239,7 +239,7 @@ static void tc_001_init_registers(void) {
|
||||
CHECK(s_sections[2].used == 0u, "only two sections registered");
|
||||
}
|
||||
|
||||
/* TC-ADCCAL-002/003/004:8 通道 × ≥3 码值点折算,期望独立推导(卡 2 DoD) */
|
||||
/* TC-ADCCAL-002/003/004:8 通道 × ≥3 码值点折算,期望独立推导(标定折算落地 DoD) */
|
||||
static void tc_002_004_apply(void) {
|
||||
printf("[TC-ADCCAL-002] UA (TPAFE) apply\n");
|
||||
reset_all();
|
||||
@@ -430,7 +430,7 @@ static void tc_00d_idempotent(void) {
|
||||
CHECK(adc_cal_flags(ADC_SEM_UA) == 0u, "re-init clears VALID too");
|
||||
}
|
||||
|
||||
/* ===================== 用例(引擎集成组,卡 4 DoD) ===================== */
|
||||
/* ===================== 用例(引擎集成组,标定落盘与整定入口 DoD) ===================== */
|
||||
|
||||
/* TC-ADCCAL-010:文件值经 load 生效 + VALID */
|
||||
static void tc_010_file_apply(void) {
|
||||
@@ -464,7 +464,7 @@ static void tc_011_file_bad(void) {
|
||||
CHECK(g_caltest_err_count >= 2, "both sanitizations logged");
|
||||
}
|
||||
|
||||
/* TC-ADCCAL-012:段损坏(超长文件)→ 回退默认且 flags 无 VALID(卡 4 DoD 原句) */
|
||||
/* TC-ADCCAL-012:段损坏(超长文件)→ 回退默认且 flags 无 VALID(标定落盘与整定入口 DoD 原句) */
|
||||
static void tc_012_file_corrupt(void) {
|
||||
char big[CFG_FILE_MAX_LEN + 64];
|
||||
size_t i;
|
||||
@@ -496,7 +496,7 @@ static void tc_013_section_missing(void) {
|
||||
CHECK(adc_cal_flags(ADC_SEM_IA) == 0u, "no VALID with missing sections");
|
||||
}
|
||||
|
||||
/* TC-ADCCAL-018:未标定闭锁判定单点(「数据可信」卡 5 / 道F task-16)
|
||||
/* TC-ADCCAL-018:未标定闭锁判定单点(「数据可信」未标定即闭锁 / 道F task-16)
|
||||
* 为什么值得单独钉:这条谓词此前在 App/task/protect_task.c 与
|
||||
* App/app/ui_data_feed.c 各写一份,**没有任何一份被主机测到**(ui_data 套件只编
|
||||
* 快照层,不编组装器)。收敛到本层后它跟着被测源文件一起进来,第一次拿到
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
python test/host/adc_cal/run_unit_test.py
|
||||
|
||||
退出码:0=PASS / 1=测试失败 / 2=环境错误。
|
||||
设计依据:docs/任务规划/数据可信.md 卡 2 / 卡 4(道A);
|
||||
设计依据:docs/任务规划/数据可信.md 标定折算与落盘整定(道A);
|
||||
创建日期:2026-10-25
|
||||
"""
|
||||
import os
|
||||
|
||||
Reference in New Issue
Block a user