Commit Graph

19 Commits

Author SHA1 Message Date
wandering1 6531c4a4bc chore(台架): 台架串口默认口改 COM3
日志口迁到 RS232#1/UART5 之后,台架那根线接在 CN1 的 RS-232 端子上,枚举
出来是 COM3;.serialtest/config.json 还写着 COM6,@test / @build /
serial-assistant 不显式指端口时就会去开一个已经没人说话的口,抓到空日志。

- .serialtest/config.json:portName COM6 -> COM3。
- 产品需求 §9.13:物理前置改成已完成口径,写明台架口由 COM6 变 COM3。
- 数据可信:资源图例里的台架串口同步成 COM3。

docs/测试说明/m2_data/README.md 里的 COM6 是 2026-09-22 那次运行记录,按当时
事实保留不改。
2026-10-29 19:04:08 +08:00
wandering1 b46e44d92c docs(采集可信): 数据可信文档台阶化重构并立项故障录波
两份工作互锁(互相引用),故同一笔提交。

数据可信:全文按「五级台阶」重排(§1 全局 → §2 信度现状 → §3 M4 退出判据逐条 →
§4 设计约束 → §5 任务卡 → §6 顺序 → §7 决策 → §8 风险 → §9 边界 → §10 关系)。
恢复 §2.2 量纲错配(该节此前被瘦身删掉,test/host/prot_dim 的两处引用一直悬空);
新增 §2.7 与 §4.6:ADC 只验过直流静态标定,正弦动态波形一次也没采过——用信号发生
器在既有注入点注 ±2 V 以内的正弦即可验全周傅氏、测频、快照与削顶路由,不必往端子
加压、也不需要标准源。§6 手绘框图改 Mermaid。章节编号未重排:§2 / §4 / §7 / §10 被
App 与 test 的头注释当规范引用。

故障录波:用户裁定 2026-10-29 录波先行,三条口径——1 kHz(每周波 20 点)、8 路
电气量全录、一屏只画一路共 8 路可切换。新增设计说明(与产品需求 80 点/周波口径的
偏离显式登记;存原始码值而非工程量,绕开未标定闭锁与测频幅值门;四个所有者的跨
任务边界与三条并发陷阱;段文件字节布局;单通道回放显示契约;约 5.9 KB 静态增量
触发 R6)与卡片登记簿(数据面最小闭环 → 手动与保护启动触发 → 现场单通道回放页,
二期的 4 kHz、突变量启动、COMTRADE、104 文件传输不返工的结构约束写进设计文档)。

两张旧配图与一张新配图改由 tools/arch_diagram/ 的生成器产出,脚本与产物同笔提交。
代码一行未动:本波只交付文档与设计。
2026-10-29 13:18:28 +08:00
wandering1 0e4cc03c2d docs(ADC): 更正注入验证口径——已知电压注入 2026-10-27 台架已闭环
数据可信.md §2.6 原写「ADC 从未采过已知电压」,那是 2026-10-23 挂账
时的现状,与 2026-10-27 的台架实测矛盾——按现状重写:实测 × 判据表 +
④ 段(端子 → AINn 子板变比)缺口 + M4 承诺边界(只到 ADC 引脚电压、
eng = 0);§2.6 节号与「承诺边界」口径保留,代码头注释的引用不断。

同族陈旧现在时一并更正:继电保护规划「引脚级注入验证仍为待做项」、
ADC通道映射 §7.1「不填任何实测数值」、ADC输入层单测说明「板端无信
号源、无法验证读到的是哪只脚」、adc_input.c 与 test/host/adc_input
两份注释「注入验证做不了」→ 统一改成「台架已一次性验过(§8.1),
主机单测与开机自检仍必要」。首帧悬案等历史叙述删除,只留结论。

顺带:ADC 输入层单测计数 101 → 103(runner 报 103/103 与 CHECK 调用
点 103 处双源互证),test/host/README.md 同数同步。

验证:@build 0 错 0 警(Code=236456 RO=28124 RW=1876 ZI=137084);
test/host/adc_input 103/103 rc=0;check_doc_links --all 0 处失效;
该批文件里的变更记录节按同日裁定一并清理。
2026-10-28 22:00:33 +08:00
wandering1 89b6132c1f docs(编号): 瘦身——58 KB/473 行 → 22 KB/222 行,过程记录进归档
用户裁定 A 方案:这份文档的「规范体系」部分已随门禁退役而死,但四件仍活着的东西
只有这里写着——① §1 政策(默认不发号 / 先问三句);② §3.3 语义标识怎么写;
③ §4.1 族总表 + §4.1.1 已停发栏(现行门禁白名单的机器投影源头);
④ §4.4 这些不是编号(防把 YX15 / 元件位号当垃圾清)。再留 §5.5 销项、
§8 门禁现状与 §8.5 退役路线、§10 速查。

其余 16 节逐字搬进 scripts/archive/id_gate/编号治理历史.md(40 KB):
1.2 / 2 八条原则 / 4.2 / 4.5 / 6 模块码表 / 7+7.1~7.3 / 8.1 基线 / 8.3 批次 /
8.4 台账 / 9+9.1~9.3(含「数据可信」任务卡号换算表),以及原变更记录 17 行流水。
归档文件带「这不是现行口径」横幅 + 归档目录,写清哪些节对应哪段历史。

两处刻意的选择:
- 节号沿用旧编号、不重排——外部文档与脚本引的是 §4.1 / §8.5 这些号,重排等于
  制造一批假链接;文首加「本文范围」说明跳号去哪了。
- 文首那段「机器面才是事实源」改写:现行机器面是 check_ids_new.py 的两张
  前缀级白名单(KNOWN_DASH / KNOWN_BARE),旧的 registry / 别名表 / 八项校验脚本
  已随全库审计退役进归档,只在手工复查存量时才用。

引用重修(6 份文档、10 处):AGENTS 的 §9.3 换算表、数据可信 §9.3 ×2、
门禁说明 id-check 与 host-unit-tests、docs/README 的 §4.5、技能手册的 §9、
以及正文里 §4.2 / §4.5 / §8.1 / §8.3 / §8.4 / §1.2 的裸引用。

验证:doc-links --all --sections-strict 通过(195 文档);mojibake / bom-guard /
git diff --check 全 rc=0;新门禁 --worktree 自查通过;钩子数仍 51。
2026-10-28 12:51:17 +08:00
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 8f7c141a0b docs(data-trust): 卡 0 注入验证闭环——标 ✅ 保留行,不按"完成即删"
卡 0(已知电压注入验证)2026-10-27 台架六项判据全 PASS,但**不删行**。
`数据可信.md` 卷首明文规定:卡 0 被 `App/task/adc_task.c` 的 v3.3 修订行与
`adc:` 行注释引用为口径出处("「数据可信」卡 0 注入验证的唯一连续读出口"),
删行会让代码头注释失去出处——这是"完成即删"在该文件的既定例外。

- 状态图例新增 ✅ 已闭环,限定"仅限被代码头注释指称的卡,保留行不删";
  §5 标题同步注明例外。
- 卷首"只剩三项"改为"只剩两项"(0b / 12),并说明卡 0 为何保留。
- §5 表:卡 0 状态 ⬜ → ✅;表下补"闭环结论"块(零点 0~5 码、R²=0.9999997、
  斜率 6544.2 码/V 偏差 −0.14 %、映射一一对应、极性对称性 ≤0.34 %、
  frames 1000 Hz),并记两项残差(最小二乘残差与 IB 零点贴上限)。
- §3 M4 行:① 已达成(原"① 与 ⑤ 待卡 0"),只剩 ⑤ 的台架面待卡 12。
- §2.6 首帧 ~1000 码的疑问结案:实测零点 0~5 码,首帧是上电瞬态,
  且 TPAFE ~11450 / STM32 ~1000 是两个转换器各自的零位。
- §6 顺序图与斜率规则:卡 0 标 ✅;补记实测偏差 −0.14 % 未触发规则,
  并说明该规则此次的真实价值是反向排除 2:1 分压(若分压斜率会掉到 ~3277)。
- §7 已定案:注入点修正为**串联电阻子板侧(`AINn` / `U5` 排针,③ 段的端子侧)**,
  原"在 ADC 引脚侧"作废——`U5` 排针才是可安全接触的最低一级。
- §8 风险表:ROM 默认系数风险解除(理论 LSB 被实测支持),
  加压烧板行改为"卡 0 已按 ≤2 V 执行完毕,端子级额定值仍须等 0b"。
- `ADC前端注入验证流程.md` §5.6 第 3 条:把"删行不留记录"改为记录实际处置。
2026-10-27 21:35:46 +08:00
wandering1 859be6975c docs(adc): TPAFE 零点判据由 ≤10 放宽到 ≤30 码,并附实测依据
首次实测(2026-10-27)TPAFE 三路短接 AGND 后残差 UA -14 / UN -15 /
IA -13 码,约 2 mV,已超出原判据 <=10 码(约 1.5 mV)。

原 <=10 是定判据时按经验拍的,没有实测依据,比实测噪声还紧,
按它判必然失败。按 16 位 / 10 V 跨度算,2 mV 只有 0.02% FS,
属正常零点残余,故 TPAFE 档放宽到 <=30 码(约 4.6 mV)。

保留兜底:残差若继续增大(>30 码)说明前端确有真实失调
(R32 侧接地断、TPAFE 失调),那时必须回前端查,不得再放宽。
STM32 档 <=5 码不变(其短接列尚未取得可归属的实测值)。

同步四处:
- 测试说明/ADC前端注入验证流程.md 第 4 节判据说明(写明放宽理由
  与不可再放宽的边界)
- 同文档 5.2 节记录表 UA / UN / IA 三行判据列
- 同文档第 6 节判据汇总
- 任务规划/数据可信.md 卡 0 判据 3

固件里没有硬编码该判据(ADC_CAL_B_MAX=8192 是标定接受上限,无关),
故本次只改文档,不涉构建。
2026-10-27 20:49:23 +08:00
wandering1 9163a92d3b docs(adc): 前端拓扑改 SVG,③ 段定死 1:1(本板不是分压器)
ASCII 拓扑图把 C44 / R32 画成挂在 ADC7 下的一根竖线,读起来像 2:1 分压,
恰是文档要否掉的结论。改为两个节点分开画的 SVG,并加 STM32 侧对照面板。

- 新增 tools/arch_diagram/gen_adc_frontend_svg.py →
  docs/images/ADC前端电路.svg(纯标准库 + 文字溢出预检 + 幂等重跑)
- docs/测试说明/ADC前端注入验证流程.md §2、docs/硬件平台/
  ADC通道映射说明.md §7.1 的 ASCII 图换成该 SVG
- ③ 段(AINn ↔ 转换器引脚)定死变比 1:1:ADCn 节点只有
  {串阻.2, 滤波 C, 转换器引脚},无对地元件;"1k 到地"接在差分负端
- 305.18 / 1611.3 µV/码(读法 A)作废;数据可信.md §2.1 表改为
  引脚侧系数 152.59 / 805.66,卡 0 判据从"判别两种读法"降为
  "确认转换器 LSB 与逐通道映射"
- 顺带修 ADC通道映射说明.md §8 步骤 1 的 §5.1 自引用误判
  (文档名以 V0.0 开头被前缀规则误认,改写成全路径形式)

门禁:Keil 无关(纯文档 + 生成器);check_ids --strict、
check_doc_links --all --sections-strict、pre-commit 全过。
2026-10-27 17:08:56 +08:00
wandering1 343305b433 feat(adc): 心跳新增 adc: 行输出 9 路原始码值,并补卡 0 台架注入验证流程
背景:ADC 采集的软件链路已全部打通(节拍、语义取数、折算、相量、
200 ms 快照、104/UI 消费),但"读数对不对"从未验证过——卡 0 的
已知电压注入一直挂账。挂账的直接原因之一是读数出口不够用:
固件只有 cal: 行(UA/UN/IA 三路,mV)与 first: 行(9 路码值,仅
开机一次),验 8 个通道 × 3 个注入点要复位二十余次。

改动一(App/task/adc_task.c,v3.3)
- 心跳新增 adc: 行,每 10 s 输出 9 路原始码值,与 first: 行同序
  同格式,台架"改电压 → 读一行"即可对表,全程免复位。
- 不并入 cal: 行:9 个码值会把该行推到 168 字符,撞
  DBG_CON_LINE_MAX(192) 的静默截断边界(截断不报错,只会少打几路,
  是最难发现的台架假数据来源)。
- 无新增跨任务状态、无新增外设访问;栈 +36 B(局部码值数组),
  adcTask 静态最坏 1400 B / 余量 1160 B(底线 1024 B),stack_report
  PASS;静态 RAM 不变,Flash +188 B。

改动二(新增 docs/测试说明/ADC前端注入验证流程.md)
- 卡 0 的执行侧:注入点清单、期望码值表、零点/线性/映射/极性/节奏
  五步、现场记录表、安全红线、已知坑。
- 固化 2026-10-27 的网表结论:逐通道追 V0.1.tel 确认 ADCn 节点上
  只有"串阻 2 脚 + 滤波电容 + 转换器引脚",没有对地分流电阻;所谓
  "1k 到地"是 TPAFE 负输入脚 AIN_nGND 经 1k 拴到 AGND 的差分滤波。
  故本板不存在 2:1 分压,端子侧斜率 = 引脚侧斜率 = 6553.6 / 1241.2
  码/V。数据可信.md §2.1 的 305.18 / 1611.3 µV/码 确认不成立。
- 不验交流:台架无信号源,且五路单极性削顶。

改动三(索引与指针)
- docs/README.md 测试说明索引、测试文档模板规范.md 的 ADC 缩写行
  (原"待立")同步。
- 数据可信.md 卡 0 增加指向该流程的指针(本表只写判据,不写怎么
  接表笔)。

门禁:Keil 构建 0 错误 0 警告;check_ids --strict 通过;
check_doc_links --all --sections-strict 通过(193 文档 / 2871 处引用);
pre-commit 全过(含 cppcheck、编码规范、体积档、标定层与量纲回归
单测);两处内存台账已按 --write / --update 刷新。
2026-10-27 15:14:07 +08:00
wandering1 4c74cfa825 refactor(编号·批次二): 文档侧 194 处保护功能号改成功能名,定义表 7 张首格改语义标识
批次二文档半(道 gate-docs 执行)。先纠三个数的口径账,别再拿任何旧数当准:**234 处是准数** —— 卡片写
52(Lead 用了门禁 Checker 的引用集合,它**刻意排除属主文档内部的定义位**)、道里先报 265(裸正则把
`SDL2-2.32.10` 里的 `L2-2` 当成功能号,误报 10 处)。最终边界口径 = 带左边界 + 跳过反引号代码段。

· 19 只文件 HEAD 共 234 处 → 现 40 处,**40 处 100% 落在变更记录行**(冻结历史,按 Q3 一条没动),
  非变更记录残留 **0**;改写 163 行 / 16 只文档。站点最多:规划文档 110→37、相量层单测说明 25→1、
  采集与数据处理短板评测 21→0、App/algo/README 26→0。
  (`App/algo/README.md` 由上一笔代码提交带上车,路径归属已在该笔正文注明,内容是本批改写)
· **定义表首列由编号改成语义标识**(编号规范 §3.3「表首格就是短语」的完全形态):首列原为编号的表
  共 **7 张**(不是 5 张),删掉与之重复的「语义名」列;表头标签按域词区分——三张 L3 保护**元件**表
  保留 `| 元件 |`,四张 L1/L2 表用 `| 功能名 |`(把「元件」统一洗成功能名会丢掉领域信息)。
  七张表逐张核:表头竖线数 == 分隔行 == 首条数据行 == 列数+1;与 HEAD 逐块对拍**净新增不一致块 0**,
  并且正是这个对拍抓到第一版「三张表数据行已删列、表头没删」的破表。
· 7 处删号留下的残词/重复解释括号人工收口(如「L1-5(通道标定)」→「通道标定(一次系数 + 零漂)」),
  复扫待收口站点 0;措辞逐字取自映射表,无第二种说法。
· tools/arch_diagram 三只生成器 4 处(3 处 docstring + 1 处图形文案)与产物同批:重跑后**只有位图那张
  变 2 个 text 节点的换行位置**,画布 1580x740 与总行数不变,另两张逐字节未变;改前先干跑对照证明三张
  svg 原本与生成器一致(不在 stale 基线里)——`check_generated_fresh --only docs-svg` PASS。

本笔另含 **F-* 半批的文档面**(同一轮 `git add docs tools/arch_diagram AGENTS.md` 一并收进
,非误伤):BSD
函数调用关系里 9 处反引号紧邻指针、属主文档 §7 的停发句与导读行(**12 条定义行原样保留、不删登记族**)、
以及 `gen_net_instability_svg.py` 与它的产物 `网络不稳根因总览.svg`(「唯一读者红线」那条的框宽自适应
526 → 551,右缘 1411 未越界,画布 1560x1468 不变)——该半批的**代码注释面**在下一笔。

⚠ 因 `docs/任务规划/登记簿.md` 与 `docs/任务规划/UI补齐.md` 正被另一张卡(UI 叶数复核)改动,本笔**不含
那两只文件**,批次二的 §9 存量收尾与它们同批提交。
2026-10-27 09:05:24 +08:00
wandering1 0f7b5a87fb chore(编号): 存量编号全量转语义短语,门禁识别面与语料同批重打
登记簿、文档与代码注释里的存量字母加数字编号(N-x / S-x / T-x / E-x / A-x / 卡号)
一律改写为语义短语,净删 2,028 处引用;删除基线与待确认、并行分道方案、排期详述、
采集保护收尾 4 篇(内容已并入 docs/任务规划/README 与登记簿)。

门禁机器与三张账同批重打:check_ids.py 新增变更记录行豁免与第二根护栏
undecidable_total_ceiling;check_test_traceability.py 只加 stdout/stderr UTF-8
reconfigure(TC_RE 未动);check_cubemx_survival.py 的 --write 固定 newline=LF;
id_registry / id_aliases(+19 条 retired-to-phrase)/ id_known_backlog 重打。

test/ 56 个文件同步 TC 标签语义化,其中 18 个 TU 改了 CHECK / printf 里的标签文字,
是本批唯一改变构建产物的文件集合。

为什么合成一笔、不拆四笔(实测撞闸,非偏好):pre-commit 跑钩子前会 stash 未 staged
部分,拆开后中间提交必然是「新规则 + 旧语料」——实跑可判定 85.15% < 基线 86.00%、
不可判定 1,453 > 上限 1,166,编号门禁直接拦下。编号识别面与它描述的语料只能同码移动。

实跑基线(工作区全量):754 文件 / 8,230 处编号字面量 / 可判定 7,079 = 86.01%
(基线 86.0%,容差 0.1pp)/ 不可判定绝对数 1,151(上限 1,166)/ 校验 1-6 错误级 0 /
告警 = 悬空 2(App/algo/freq.c 的 S2,属 §4.4 同号不同义)+ 孤儿 50。

基线从 84.0 抬到 86.0 的理由见 docs/门禁说明/id-check.md §7.6:本批真删了 2,028 处
引用,可判定面随真实内容上升,不是把分母做小。同批新增排除 docs/硬件平台/ 语料,使
识别面少 264 处——芯片手册位号与网表料号不属编号空间(registry 有 excluded_paths_note)。

⚠ 余量只剩 0.11pp(约 10 处)与绝对数 15 处:把「可判定的引用」改成散文会立刻撞第二
根护栏。另遗留一项:id_aliases 里 retired 的 N / S / T / A 别名没有 scope(U1~U5 有),
今后有人新写一个 A-4,校验 3 不会响,只能靠人,建议下批补 scope。

固件不变证据:115 个 .c/.h 剥注释并归一字符串后与 HEAD 逐字节全等,残留代码差异 0;
App / Src / Drivers 的字符串字面量零改动。@build 0 错误 0 警告;40/40 主机套件、2,889
断言全通过;覆盖率 line 89.2% / func 92.6%;pre-commit 48 钩子 --all-files 全绿;
check_doc_links --all 通过(176 文档,章节引用无法判定 0);逐字节卫生核过:14 个带
BOM 文件与 HEAD 一致、0 个 CR、0 个 U+FFFD,字符串字面量纯 ASCII。

.cubemx_survival_baseline.json 的 watchdog-module 哈希 56bf27 变 2bb051 属合法:
Src/freertos.c 的 USER CODE 区内只有注释文字随编号改写,代码未变。

同批带上体积同码凭证与 RAM 台账行(@build 之后盖戳):RW_IRAM1 79,008 B / 60.3%,
RW_CCM 57,376 B / 87.9%,阈值 92%。
2026-10-26 12:28:14 +08:00
wandering1 7635480e06 docs(任务规划): 清掉删卡后残留的悬空卡号引用
上一提交删掉数据可信.md 的卡 1~11 行后,遗留四处指向已删卡号的引用,
按「销项即清理跨文档引用」补掉:

- 卡 0 硬依赖列原是「1」(卡 1 量程口径定死,已闭环)→ 改 —
- §6 顺序图「0 ─→ 5 闭锁验证」→「0 ─→ 闭锁验证」,去掉裸卡号
- §7 已定案行三处「(卡 5 实现)/(卡 3)/(卡 8)」→ 去掉卡号,
  保留结论本身(cfg_file.c 引用的「§7 决策 3」锚点是 CFG_VAL_INT 文本,不受影响)
- §8 风险表「卡 8 明确唯一发布者」→「设计约定」;「卡 0 设为卡 4 的硬
  前置」改写为「ROM 默认系数已冻结、卡 0 仍未跑」的既成事实表述

剩余卡号引用只有 卡 0 / 0b / 12 三种,均与 §5 任务卡表对得上。
代码注释与 App/algo/README.md 里的「数据可信」卡 N 属实现溯源,按惯例保留。

门禁:check_ids --strict 增量拦截通过(84.73%,基线 84.0%);
check_doc_links --all --sections-strict 通过;pre-commit 关键钩子全过。
2026-10-25 22:53:35 +08:00
wandering1 50e5877882 docs(任务规划): 只留待办——删除已完成条目与变更记录
「只保留待办」此前只落了一半:UI补齐 / 排期详述 / 测试专项已瘦身,并行分道
方案与数据可信还留着批 1/批 2 的收口说明、销项括注与里程碑达成记录。本次按
README.md §3 清干净。

并行分道方案.md(353→238 行):
- 删「批 1/批 2/批 2.5 全部收口」块、道A~道D 表行、11 张已销项数据可信卡
- 删 L1-5 通道标定 / L5-2 码值越界两条已落项、§5 批 1 三道详解(5.1~5.5)
- 删 §6.1 冲突矩阵;章节重编号 9→8,并修 §9→§8 自引用
- §4.3 删「ui_data 为什么当初排批 2」历史插叙

数据可信.md(384→290 行):
- 删 §1「为什么是这一波」、§2.2 量纲错配、§2.4 点表现状、§2.5 引擎约束
- §5 任务卡表只剩 0 / 0b / 12;§3 里程碑只剩 M4 未收口行,M5/M6 压成一行口径
- §6 顺序图只留剩余三张;§8 删两张已销风险行;§4.4 落地注改为现状口径
- §2.1/§2.3/§2.6/§4.1~§4.5/§7/§8/§9/§10 与卡 0/0b/12 全部保留:它们是
  adc_cal.* / meas.* / cfg_file.* / protect_task.c / ui_data* 头注释引用的
  口径出处,不是"已完成记录"
- §2 编号不连续是刻意的(被代码引用故不重排),已在节首加注说明

README.md / docs/README.md:
- 文件地图去掉「卡 1~11 已销项」「八条道」等历史表述
- §1 网络行删掉三处 merge 号与批 1/批 2 销项经过
- 道A~道H 改为道E~道H,与并行分道方案一致

排期详述.md / 采集保护收尾.md / 登记簿.md / UI补齐.md:
- 删 N-2/N-17/N-22 销项注、M1/M2 已达成括注、批 1/批 2 道名
- 修 E-27/28「批 3」与「批 4」自相矛盾;B10 硬依赖改指卡 12

未动:测试与架构专项.md——S12 / A-5 / P1-10 三节分别是 net_socket.c、
check_size_gate.py、ch395f_test.h 与门禁说明引用的锚点,删了会断校验 6。

门禁:check_ids --strict 通过(可判定 84.73%,基线 84.0%);
check_doc_links --all --sections-strict 通过(180 文档 / 2691 处章节引用)。
2026-10-25 22:47:54 +08:00
wandering1 68cbf8ea75 docs(任务规划): 按现状重排波次——UI 补齐转为当前波次,数据可信转收口态
用户要求按现状重新规划。盘点后现状与文档已有实质偏差,本次一并纠正。

一、盘点结论(2026-10-25)
- 批 1 / 批 2 / 批 2.5 全部收口,工作树清零、两锁空闲。
- 数据可信:软件侧 100%(卡 1~11 全销项;M4 ②③④⑥、M5 ①②③、M6 全达成),
  只剩卡 0(万用表)/ 0b(子板变比)/ 12(标准源)三张台架与外部卡。
- UI:33 叶已绑 12、剩 21。原口径「余批 5 = 整定 4 页」按页面批次统计,
  漏了批 1 剩的 3 页(时钟/复归/清除记录)与批 3 的 12 页,实际差 17 叶。
- 结构债:剩 net 收口、白名单、性能簇、dhara、卷锁、USART1 六项。
- 工具链 S12 / A-5 / P1-10 / S1-c 全销项。

二、关键发现:保护整条链现在是闭锁态
protect_task.c:98 要求 UA/UN/IA 的 ADC_CAL_F_VALID 全置位才走判据,而 VALID 只在
两点标定写入 [adc_cal] valid 后才置位(adc_cal.c:338)。产品构建(非 DTU_BENCH)
下保护不动作——这是卡 5 的有意设计,但意味着核心功能当前关闭,解锁只有
卡 0 -> 0b -> 12 一条路。已写进 README §1.1、数据可信 §3、采集保护收尾、AGENTS.md。

三、三条用户判断(2026-10-25)
1. 台架不在手边 -> 卡 0 顺延,本波整体不占编码道。
2. 保护保持未标定闭锁到标准源到位,不用万用表标定走捷径。
3. 下一波只做 UI 补齐,结构债押后。

四、新波次顺序(README §2.0)
采集保护收尾 -> 数据可信(收口态)-> UI 补齐(当前)-> 结构债(押后)->
预算与内存(暂缓)-> 验证常态 -> 仓库决策 -> 暂缓 -> 硬件改版。
排序原则补一条元规则:优先级只在「能开工」的项之间比较——高优先级波次全被
外部资源或硬件代次卡住时,按「现在能整波闭环」重排,阻塞原因写进「为什么在这」列。

五、新增 UI补齐.md(当前波次任务卡)
21 叶按数据源就绪度分三梯队:第一梯队 9 叶零依赖(整定 4 + 维护 3 + 遥测 2)、
第二梯队 4 叶需新配置段(通讯设置 + 遥信 3,后者无开入硬件不立卡)、
第三梯队 6 叶需写入方或计数器(记录 5 + 运行报告);不排 2 叶(手动录波 / SNTP)。
共 7 张任务卡,单道串行——ui_menu_tree.txt 与 ui_page_registry.c 是单写者生成物。

六、顺带清掉的文档漂移
- 排期详述 §1/§2 还挂着 3 条已销项条目(日志管线 N-2、写回 flush N-22、
  探针心跳 N-17),与 README §2 自相矛盾 -> 删除并补销项说明。
- 测试与架构专项:§1 P1-10 与 §2.1 S12、§2.3 A-5 已销项却仍留详述 -> 压缩成证据指针。
- README §1「网络 4」只列 3 条(漏 N-30)-> 补齐。
- docs/README 文件夹地图与登记簿卷首仍称「数据可信 = 当前波次」-> 改指 UI补齐.md。
- 页面补齐规划的就绪度表:遥测死区/系数随卡 10/卡 2 已具备数据层、SOE 页已落地,
  三行状态更正;统计口径改为「27 叶中 6 叶已落地,剩 21 叶」。

七、踩到的坑(写进日志备查)
测试与架构专项卷首那段「已完成事项的证据沉淀」清单是 S4/S5/S7/S9/S11 的**定义出处**,
压缩时一并删掉会让校验 2 在 6 个文件上爆 14 类新账(实机测试实施指南 S4x7/S5x5、
check_test_traceability.py S4x5 等)。清单已原样恢复——它看着像历史,实际是门禁的锚点。

八、门禁
check_ids --strict 通过(可判定 9306/11003 = 84.58%,基线 84.0%);
check_doc_links --all --sections-strict 通过(180 文档 / 2684 处章节引用)。
2026-10-25 22:07:29 +08:00
wandering1 26a236a597 docs(数据可信): M5/M6 后补记批 2 裁定——方和根与 4 点平均不进退出判据
道D 票转述的用户口径落账:谐波方和根真有效值轨挂继电保护功能复现规划
L2-8 随立项做,快照 4 点平均平滑同样延期;批 2 快照维持基波有效值直取
口径不变。仅补记一段,判据表未动。
2026-10-25 19:34:18 +08:00
wandering1 ceb753bd44 docs(波次): 批 2 道D 销项四卡 + F2/F3 修复态与台架待判 + AGENTS 采集链补快照层
- 数据可信 §5:卡 8~11 销项删行(meas 9c2653c / pts+freq 969fc5c / run_par
  7bbcc9c / 快照消费 969fc5c),台架钉证汇总(大窗 S1/S1b 24 项 + 验收窗
  walk 10/12、SOE 真时标、PN 守卫、持久化);README 数据可信行 7→3 卡在途
- 网络行:F2 按位分账已合入 66f862e、F3 sink 往返喂位已合入 9d90e00,
  两条语义标识改为"修复已合入、待台架两轮 30min 双零才销"
- UI 行:批 1~4 落地摘要(黄金 18 页),余批 5 = 整定 4 页 + 写路径
- AGENTS 数据主线采集行:L2.5 遥测快照(meas 200ms 双区)入链,
  消费者标注 104 与 UI 同源
2026-10-25 19:00:51 +08:00
wandering1 4777ed2373 docs(登记): 大窗销项三条 + 新签名两条 + §4.4 落地注
台架大窗(2026-10-25 15:51-17:00,V5 复跑 + 104 读回 + UI 取图)判读落账:
- 登记簿删 N-2(附录 A 结论 6f18f8d + 大窗静默零段)、N-17(修复 a3c6e89:
  9 条 stall 行 NET 位全程在场,44/44 旧签名归零;证据 §4.6 + 日志留档)、
  N-22(vol_idle_sync 484d068 + V5 全程 0 idle sync FAIL)
- 网络表新增两条语义标识(lane-f 定名):「复合连击串窗」(看门狗全局连击
  把多任务各自亚秒抖动误累计成 800ms 停喂,🟦批2.5 修复=按位分账)与
  「重建窗内回执排队把 net 等待者拖过 800ms」(UI 睡 portMAX_DELAY 回执,
  距 IWDG 最坏余量仅 0.1-0.3s,🟦批2.5 有界化;根治 E-27/28 批 3)
- README 网络行改写(4→N-3/N-16 + 两条新)、结构行 4→3、结构债波次线
  删已销两项
- 数据可信 §4.4 落地注:CFG_VAL_INT/[run_par] 已实现、5/8 段、系数真源
  仍 [adc_cal]、p_cb 未用口径不变
2026-10-25 17:29:16 +08:00
wandering1 13ef0715bb docs(销项): 批 1 登记簿收口 + A-5 口径联动到三处门禁文档
销项(登记簿删行 + 结论沉淀指针):
- 数据可信.md:卡 1~7 行删除,表下补销项记录(merge 231dc81/d39e5c9/
  59da40b);§2.1 口径冲突注改 ✅ 已定死;§6 顺序图与失效预警改写为
  "批1 已销项 + 批2 在途"现状;卡 0/0b/12 与 M4①⑤台架面保留待跑
- 测试与架构专项.md:未闭环一览删 S12 / A-5 两行;§1 标题 1 项→0 项,
  P1-10 剩余两条改已销项记录(5 档构建 + f3 PASS,数字正文在
  test/board/ch395f_test.h);§2.1 S12、§2.3 A-5 标题 ⬜→✅ 带落点
- README.md:一览删 P1 收步行;网络/结构/UI 行加 🟦批2 在途标记;
  测试基础设施 5→3;数据可信行改"在途 7 卡";验证常态两处删
  P1-10/S12/A-5
口径联动(A-5 已落地,文档追平):
- CI 远程CI完整指南.md §0.0 整节重写(盲区→同码凭证强制 + 三项仍
  守不住 + 变更记录行);CI README 索引行同步
- 门禁说明/mem-numbers.md §1/§6、mem-budget.md §6 第 4 条:远端缺口
  已由 check_size_gate.py 关闭,唯一正文 = 其 docstring
2026-10-25 08:36:44 +08:00
wandering1 1e6996ecd0 docs(任务规划): 波次号 W1~W8 改为语义名,两个任务卡文件改名
用户裁定:W4 这类字母+数字让人难以理解。W 号看着像执行顺序,实际 W8 排在
W3/W4 之前,读者必须先查表才知道谁先谁后;去掉编号后执行顺序就是 §2.0 表
从上到下,少一层映射。

- 波次改语义名:采集保护收尾 / 数据可信 / 预算与内存 / 结构债 / 验证常态 /
  UI 扩展 / 仓库决策
- 文件改名(git mv):W1-采集保护收尾.md → 采集保护收尾.md,
  W8-数据可信.md → 数据可信.md
- 删掉只为编号存在而写的两条注记(W2/W3 槽位保留、W3 不重编号)
- 并行分道方案的分支 ID 同步:task/W8-scale-doc → task/cal-scale-doc 等
- 编号登记表:WAVE 族标为废止并关闭悬空检查(属主文档已不再定义 W 号),
  C-WAVE / D-WAVE 两族 title 补废止说明
- 同步 15 处跨文档引用(README 文件夹地图、产品需求 §9.2、编号规范 §4.1、
  报告 §0.3 波次表、RAM 台账、保护规划变更记录等)
- 不动的同形异义:网表 W4.0 封装宽度、芯片手册 W1 载带尺寸、MSVC /W4
2026-10-25 01:44:25 +08:00