ae09c5737a
任务规划目录从 5 个文件收敛到 3 个:只留导航(README)、待办(登记簿)、 暂缓专项(暂缓-RS485)。 删除的两个文件都不再有现行读者: - UI补齐.md 执行清单 2026-10-28 清空、上板判据 2026-11-06 台架轮已复核; 叶数口径迁 docs/UI设计/菜单页面设计.md §3.9,三条内容页硬规矩迁 docs/UI设计/内容页架构.md §7.1,两条未闭环待办迁登记簿 §7/§8。 - 数据可信.md 不是完成记录,而是被约 130 处代码头注释引用的设计约束, 因此按内容分三处落位后删除,不整篇丢弃。 数据可信内容的新归属(旧节号 → 新家): - §2/§4 设计口径 → docs/算法/采集与算法层设计说明.md 新增 §13(13 小节), §7 前置决策表 → §13.12 已定案的前置决策。 - §3 台阶与波次退出判据 → docs/硬件平台/ADC通道映射说明.md 新增 §9。 - §5 任务卡 → docs/任务规划/登记簿.md §7(拆成变比确认 / 两点标定两行)。 引用改写 34 文件 77 处路径引用 + 14 文件 24 处昵称引用 + 双重节号 35 处, 覆盖代码头注释、测试、生成器与文档;归档区历史路径改纯文本提及。 四个 SVG 生成器文案同步并重跑,产物随脚本同批提交。 同批处理两件事: - 9 个 UTF-16 LE 证据文件转 UTF-8。end-of-file-fixer 按字节判末尾换行, UTF-16 的换行是 0A 00、末字节 00,钩子会追加裸 0x0a 使文件变奇数长度, 8 个已实际损坏。转码后逐文件比对 HEAD 原文验证正文零丢失。 - 修回 App/cfg/cfg_file.c 被剥掉的 UTF-8 BOM(补 3 字节,未整文件重写)。 验证:/keil-build 0 错误 0 警告(Code=255160);check_doc_links --all --sections-strict 221 篇全通过、无法判定 0;pre-commit 全量全 Passed。
51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""通道标定层(标定折算,adc_cal)主机侧纯逻辑单元测试运行器(纯标准库)。
|
||
|
||
做什么:
|
||
用本机 MSVC 编译 test/host/adc_cal/adc_cal_test.c(它以 #include 纳入
|
||
**生产源文件** App/algo/adc_cal.c 与 App/cfg/cfg_file.c),在 PC 上离线跑
|
||
Q16 系数折算 / 三态 flags / 合法带哨兵回退 / 两点标定公式 / 两段 cfg
|
||
落盘契约(含段损坏回退),失败即非 0 退出。零硬件、零烧录、毫秒级。
|
||
工具链探测 / 编译运行全部委托 test/host/common/unit_test_harness.py。
|
||
|
||
为什么要主机侧单测(而不是只用板端套件):
|
||
标定折算的判据是"读数 = 系数 × 码值"——板端**无标准源**(docs/算法/采集与算法层设计说明.md §13.5),
|
||
系数错、Q16 舍入错、哨兵漏放、负零点落盘错,在台架上全都看不出来;
|
||
主机侧用独立推导的期望值 + 坏文件注入把它们一次性钉死。
|
||
|
||
用法(仓库根目录):
|
||
python test/host/adc_cal/run_unit_test.py
|
||
|
||
退出码:0=PASS / 1=测试失败 / 2=环境错误。
|
||
设计依据:docs/算法/采集与算法层设计说明.md §13 标定折算与落盘整定(道A);
|
||
创建日期:2026-10-25
|
||
"""
|
||
import os
|
||
import sys
|
||
|
||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||
ROOT = os.path.dirname(os.path.dirname(os.path.dirname(HERE)))
|
||
sys.path.insert(0, os.path.join(ROOT, "test", "host", "common"))
|
||
|
||
from unit_test_harness import TestBuild, run_host_unit_test # noqa: E402
|
||
|
||
# 顺序敏感:stub 先于生产目录(覆盖 dbg_log.h)。cfg_file.h / cfg_file_store.h /
|
||
# adc_input.h / sys_log.h 用真实头;adc_input_desc 与 syslog_post 由测试单元给
|
||
# 强符号桩(后者供 cfg_file.c 的错误留痕路径)。
|
||
BUILD = TestBuild(
|
||
name="ADC Cal Layer Tests",
|
||
src=os.path.join(HERE, "adc_cal_test.c"),
|
||
include_dirs=[
|
||
os.path.join(HERE, "stub"),
|
||
os.path.join(ROOT, "App", "algo"),
|
||
os.path.join(ROOT, "App", "cfg"),
|
||
os.path.join(ROOT, "App", "log"),
|
||
HERE,
|
||
],
|
||
summary_marker="=== ADC Cal Layer Tests:",
|
||
)
|
||
|
||
if __name__ == "__main__":
|
||
sys.exit(run_host_unit_test(BUILD))
|