wandering1
1634088bd7
docs(screenlink): 屏板链路档去「说明」并瘦身,控制台档收编台架日志口
...
屏板链路设计说明.md -> 屏板链路设计.md(去档名「说明」,与 ADC 节拍 /
运行与自检记录两篇口径一致);控制台单写者日志设计说明.md 同改。
两档并存期间旧名引用 0 残留。
- 屏板链路 §3.2 台架日志口(RS232#1 / CN1 端子 / COM3)移入控制台档
§3.4:日志口的接线属 UART5 控制台通道,不属屏板链路;屏板档只留
「别去 CN1 找 USART1 端子」这句接线防错提示。
- 屏板链路 §7.1 由「根因账本 + 修复前后对比」改写为现状描述:延迟
应答机制表 + 耗时分解表 + 两个计数口径 + 已知边界,40 行压到 24 行。
顺带修正 §8 的错引:原指 `网络自愈架构设计.md` §8(实为「延后项」,
不含 uiTask 内容)改为 §4.1 `net_reconcile_tick`。
- §9.1 增补长稳行(串口日志 2026-11-13 18:31 -> 2026-11-15 21:43,
单次上电 51.2 h:rx=658262 ok=658262、crc/len/fmt/err 全 0、
drop=7 仅启动期、kerr/abor/bad=0、全程 off=0);§9.2 销项三条
(仪器项、2 h 长稳、len=7 观察项),新增「按键通路」一条——51.2 h
日志 keys=0 kq=0 dfok=0 dfold=0,延迟应答在真机上从未执行过。
- 删除 sb_frame_b_build_logo() 及 SB_LOGO_MAGIC_* / SB_SCREEN_W/H
与对应单测(TC-SBPROTO-022/023 全组、024c/024d),组帧入口只剩
sb_frame_b_build_image()。sb_proto 单测 59 -> 45 条,45/45 通过。
- cfg_file.c 出厂模板三条中文字面量改 \uXXXX 转义:消除全量重编时的
4 条 #870-D invalid multibyte character sequence,运行期字节不变,
源码回到纯 ASCII(符合「字符串字面量必须纯 ASCII」)。
验证:keil-build 0 Error 0 Warning;sb_proto 45/45、sb_link 164/164;
pre-commit 48 钩子全 Passed;check_doc_links --sections-strict 通过。
2026-11-15 21:51:24 +08:00
wandering1
f5902bcc21
docs(design): 运行/自检记录与 ADC 节拍两篇改为现状设计并去掉档名"说明"
...
两篇规划期文档改成对当前系统的描述,档名统一去掉"设计说明"的"说明"。
运行与自检记录:
- 旧档重写为现状版(10 节:概览 / 记录布局 / 写入路径 / 读取与呈现 /
事件分类 / 控制台日志 / 双端差异 / 内存 / 异常恢复 / 自测要点),
删掉需求表、调研摘要、模块清单动作列、实施步骤与开放问题。
- 按代码纠正:七类记录齐备(原文只写了两类)、自检描述串换成实际
落盘的 28 条、待机阈值以 ui_tokens.h 为准、记录页已走 ui_w_records
共享组件、容量满只删该文件而非整卷清空。
- 待机屏移出本篇:它不属于日志,归 UI 侧;内容页架构补"待机屏
(覆盖层)"一节,产品需求 FR-LOG-3 拆成单纯的上电/重启分类,
待机显示归口已有的 FR-UI-3。
ADC 采样节拍:
- §4.5 从 45 行压到 24 行,只留规则 / 违反的代价 / 为什么 / 兜底与
档案指针;九路置换实测表、A/B 对照、探针计数等取证归
ADC_Trap_Records.md 的 TRAP-ADC-01(那里已有完整档案)。
- adc1_gap 字段去掉"2026-10-21 起、此前固件为次数"的修订记录式括号。
- app_main.c 的注释改为指向 TRAP-ADC-01 取证、§4.5 设计口径。
引用同步:两个旧档名全仓替换(含代码注释、角色档、归档 id 表),
旧名残留 0;对 ADC 篇的 § 引用逐条复核落在真实章节上。
验证:48 个提交期钩子全通过,check_doc_links --sections-strict 通过。
2026-11-15 21:30:07 +08:00
wandering1
de6d5d863a
docs(cfg): 配置设计档补示例文件一章,写作规范补单篇自洽原则
...
配置文件设计.md 增加第 2 章「一份完整示例文件」:给出首启模板全文
(8 段 46 键,值全部对照工厂默认宏核对),再按段拆成 2.1~2.6 六张
键表(键 / 类型 / 出厂值 / 含义 + 生效时机),读者不必再翻别的文档
才能知道每个段的键是什么意思。
为保持文档自洽顺带收敛:
- 删掉文件格式章里重复的文件头代码块,改为指向第 2 章
- 删掉段表下「默认值见网络配置说明」的跳转,默认值现就在本篇
- 相关文档里把网络配置说明降级为对外使用手册
- 后续章号整体后移一位,交叉引用同步校准
doc-writer 角色补写作原则:原「同一事实只写一次」只覆盖跨篇去重,
照字面执行会逼出一篇到处跳转的文档。改为明确两条的分工——同一篇内
求完整、篇与篇之间求唯一,并给出判断标准(读者会不会被逼着另开一篇
才能读懂)与常见取舍。反模式表同步加一行。
验证:48 个提交期钩子全通过;check_doc_links / check_mermaid 通过。
2026-11-15 21:10:21 +08:00
wandering1
007f6a0e2f
docs(cfg): 配置设计档重写为现状版,删除旧二进制档叙述
...
原「配置文件设计说明.md」是 2026-09 的规划文档(P1~P8 实施计划、D1~D15
决策表、差距调研、模块清单动作列、已终结的开放问题),与现在跑的系统
已有明显出入。改写成只描述当前状态的「配置文件设计.md」。
新文档 9 节:概览 / 文件格式(路径与容量、语法、出厂模板原文、值类型)/
运行时机制(上电加载、外科手术式保存、2s 轮询与沉降、视图一致性守卫、
写者归属)/ 段与键表(8 段全满、注册顺序、接入新段模板、段回调)/
接口(引擎 API、平台后端)/ 内存占用(编译期钉死的 9217B 暂存)/
异常与恢复 / 双端差异 / 已知限制。
顺带修正一处事实错误:旧文档称 FTP STOR 是「写 .TMP 再 rename 原子更新」,
实际 lftpd receive_file 是原地覆写,已按代码现状改写。
旧二进制档(NCFG)的叙述按裁定从全仓移除:文档只描述当前状态,不再
交代旧版本兼容性。删掉网络配置说明 §3.2 整节(后续小节重排为 3.2~3.5),
并清理 README / 架构总览 / 产品需求 / 部署环境等 11 处同类叙述。
同步:
- 8 段注册、FTP 原地覆写、2s FAT mtime 粒度等数据更新进配置分层架构图,
重跑后与生成器逐字节一致,check_generated_fresh 里这条存量基线下架
- 全仓 24 处引用改用新文档名,旧节号逐条映射到新节号
- 文档规范 §7.1 变更记录例外名单 4 篇减为 3 篇(该档实际无变更记录表)
验证:48 个提交期钩子全通过;Keil 构建 0 错误 0 警告;
check_doc_links / check_mermaid / check_generated_fresh 均通过。
2026-11-15 20:55:04 +08:00
wandering1
26293f5054
docs(hw): 能力边界表收敛为 H1~H3,删除 H4/H5 与量纲引语块
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m11s
CI / 主机侧单测 (MSVC) (push) Successful in 31s
V0.1 能力边界只留真正约束固件与产品决策的三条(双转换器无共同触发、
STM32 侧无中点偏置、无出口继电器与开入回路)。H4「无本地屏与按键」与
H5「无 SDIO」属产品形态而非能力欠缺,不再单列。
删除后把三处还指着旧内容的引用收口,避免悬空:
- 本文档自身的口径行 H1~H5 → H1~H3
- docs/README.md 索引条目的「能力边界 H1~H5 与量纲口径」→「H1~H3」
- 产品需求文档的两处 H1~H5,以及一处指向已删「§5 量纲口径」的引用
2026-11-15 20:11:45 +08:00
wandering1
df6e75a50d
docs(env): 部署环境要求通篇校正 + 体积快照回填至 2026-11-15
...
四处来源不同的漂移一次性收口。
- 钩子数:原有三个互不相符的说法(48/47/49),实测 config 内 53 个、
一次提交实跑 50 个(pre-commit 49 + commit-msg gitlint),manual 三根
不进提交期,四处统一
- 单测数:看门狗 39/39 实为 47/47;ci_local 主机侧「278 条」实为
48 个 runner / 4341 条断言
- 第 6 步原写 uv tool install pre-commit 再裸 pre-commit install,与
§2.4/§2.7 相冲突(pre-commit 随 .venv 装、INSTALL_PYTHON 指向 .venv),
改为 .venv 解释器调用;标题收为「cppcheck」
- 体积快照 2026-10-22 → 2026-11-15 实跑:Flash 232,536→288,628 B
(22.2%→27.5%),SRAM1 75,264→97,248 B(57.4%→74.2%,余量仅剩
33,824 B),CCM 不变;「余量集中在 SRAM1」的结论随之改口
- FTP 客户端三处统一为 MobaXterm(§4.2 / §4.4 / §5)
同时跟上文两句过时实测:.venv 已是干净 CPython 3.11(原写 Anaconda
3.12.4);CMake/Graphviz/cppcheck 的「本机实测」版本断言删除,改为
运行时核对。
2026-11-15 20:09:09 +08:00
wandering1
16cc064385
refactor(board-ui-nav): 台架存证迁入技能目录 artifacts/,ci-artifacts 清零
...
存证目录从仓库根的 ci-artifacts/ 搬进技能自己名下,规则更直观:谁的
证据跟谁走,不再堆在杂物区。
- board_ui_nav.py 新增 STORAGE_ROOT 常量,WALK_DIR 与 --walk 的默认
落点改指 .dsh/skills/board-ui-nav/artifacts/uinav/walk
- --outdir 的反向拒绝判据同步改口径:允许区从此前只认 ci-artifacts
字样,改为认存证根或 ci-artifacts 两处,避免新位置被直接拒跑
- 新增技能级 .gitignore(artifacts/),沿用 serial-assistant 等技能
内忽略运行时产物的先例;208 个存证文件均不入库
- 手册与流程文档的归档路径同步;wavebench 与 uinav、uiwalk 同属一套
台架流程产物,随导航器一并归位
2026-11-15 19:49:51 +08:00
wandering1
96a3d15efc
chore(gate): 门禁钩子改走 gate_python 启动器,worktree 统一插件模型
...
门禁解释器解耦
44 条 language: system 钩子此前把解释器写成仓库检出的绝对路径,换机、
换克隆目录都要重写。改为 entry 只写 scripts/gate_python.py + 脚本名,
由启动器按候选链解析:$DTU_GATE_PYTHON > <仓库>/.venv >
<仓库>/.gate/python > PATH。启动器用 execve 替换自身,并把选中的
解释器经 DTU_GATE_PYTHON 传给子进程,保证脚本内再调 Python 时一致。
实测 pre-commit 4.6.2 不展开 ${VAR};language: script 的 shebang 只做
纯 PATH 改写,会把决定权交给 PATH 首个 python,故不采用。
ci_local.py 预检识别启动器并报出解析结果。
并行工作树统一
task-worktree 新增 bench-gate(强制台架验收)与 merge(编排式合并),
删除 new/abort,done 标 DEPRECATED;台架通过记录改存
.agents/worktrees/.bench-pass-log。keil_build.py 的 plugin_tree_owner
识别 .agents/worktrees/<name> 并返回 pw:<name>。
check_doc_links / gen_refgraph / check_layer_deps 的扫描排除面补上
.agents;并行任务工作树方案重写为单一模型(7 节),取消工作树数量上限,
删历史实测记录节,两处 §7.3 悬空引用改为按语义引用。
文档与约定
本地工具路径环境变量方案 §5 重写为四节:谁跑在哪个 Python 上、写新钩子、
预检对号入座、动环境五步。文档规范的变更记录例外名单由 5 篇减为 4 篇
(本篇实际没有该节)。AGENTS.md 补委派验收口径三条。
验证:pre_commit run --all-files 48 钩子全 Passed;ci_local.py
--preflight-only 报 44 条经启动器 -> 仓库 .venv;keil-build 0 errors
0 warnings;check_doc_links --sections-strict 全通过。
2026-11-15 19:39:56 +08:00
wandering1
9f68b7bc03
feat(dsh): spawn_teammate 角色 persona 自动注入 + 测频带外饱和边界登记
...
CI / 静态门禁 (pre-commit) (push) Failing after 3m46s
CI / 主机侧单测 (MSVC) (push) Successful in 30s
一、子 Agent 角色自动注入(本批主线)
dsh-plugin-subagent-roles fork(仓库 .dsh/plugins/)新增事件路径注入:
spawn_teammate 的 prompt 首行写 @role:<角色id>,插件在子会话首轮模型
请求组装之前把 .dsh/roles/<id>.md 的 persona 注入其系统提示词,并应用
工具白名单。此前只有 subagent_role 路径自动注入,team 路径需 Lead 手工
拼接 persona,本批把两条路径拉齐。
实现要点(细节见 docs/环境与部署/子Agent角色自动注入实现说明.md):
- 在 lead 会话的 tool/call(spawn_teammate) 截获 @role 标记,在
subagent/catalog 拿 childId 后经 agents.get(childId) 注入——子会话侧
user/message 必然晚于首轮 system/message,只能在 lead 侧接力。
- tools.restrict() 只校验全局工具名,ops_* 等作用域工具混入会整批抛错;
降级为解析报错尾部 known global tools 求交集后重试。
- 保留子会话 @role 标记兜底路径(第 2 步起生效)+ 双去重集合。
- 诊断日志 ~/.dsh/role-inject-diag.log,一次健康注入 4 行。
配套文档与口径:
- 新增 docs/环境与部署/子Agent角色自动注入实现说明.md(实现参考 +
排障速查,9 章),docs/README.md 索引挂载。
- AGENTS.md 委派策略改为自动注入口径(无需手工拼接)。
- .dsh/roles/README.md 删去"调用预算"列:budget.js 的 arm() 只由
subagent_role 委派路径调用,teammate 路径不挂账,原列是假上限承诺;
改加脚注指向实现说明 §1.1。
二、测频幅值门放宽至 5 V + 带外饱和边界登记(freq.h)
- FREQ_AMP_MIN 50 V -> 5 V(用户裁定 2026-11-13):台架低端注入(标定
用 5~25 V 档)与低负荷工况也能测频;浮空二次域噪声几十 mV,仍差两个
数量级,噪声不测频的本意不变。
- 注释同步登记:IA 回退候选同拿 5.0 比较,二次电流 0.5~2 A 够不到
"5 A",只注电流实际不回退测频(电流域门限另裁);窗环钳位区间
[72,96] 只对 41.7~55.6 Hz 满足整倍条件,带外读数饱和钉沿。
- docs/算法/采集与算法层设计说明.md 新增 §7.3 准确测频带与带外饱和
(60 Hz 实证钉 ~55;用户裁定不改参数,只登记边界)。
验证:/keil-build 0 错误 0 警告(Code=256592 RO=32036 RW=2088
ZI=152584);pre-commit 52 钩子全绿(含 3 根 manual 阶段:cppcheck、
test-cppcheck、test-coverage)。
2026-11-14 10:07:27 +08:00
wandering1
e00531999d
merge: dsh-1741f418-0c10 合入 master(task-worktree 10项改进)
2026-11-13 17:00:13 +08:00
wandering1
5efb58eb45
refactor(task-worktree): 10项改进+清理旧版兼容
...
- 默认基线 v2-on-ui → master
- regen() 新增 ram_baseline.py --update/--write
- run_gates() 先 build 再 ci_local(修顺序错误)
- done 门禁失败时自动调 postmerge 补绿
- audit_residue 增加 git 冲突标记检测(JSON/TSV/CSV)
- plugin_trees() 同时扫描 .dsh-worktrees + .agents/worktrees
- harvest_memory() 只保留 dsh-mnemon,移除 workbuddy-ai 兼容
- done --dry-run 新增台账文件碰撞预检
- done 统一补绿链:regen→build→ci→postmerge
- SKILL.md 同步更新
2026-11-13 17:00:01 +08:00
wandering1
e544366b35
merge: dsh-1741f418-0c10 合入 master(FTP 控制通道超时改字节间隔语义,RAM 台账回填)
2026-11-13 16:24:47 +08:00
wandering1
8e1cc26c5d
fix(ftp): 控制通道超时改字节间隔语义,保活 NOOP 可续命会话
...
- lftpd_inet_read_line 预算原为「整行总时长」:t0 只在入口置一次,
保活型客户端的零散短行会被 30s 总预算误掐,会话周期被关闭
- 改为任何字节到达即重置 t0(字节间隔超时);空闲回收语义不变,
零字节静默满预算仍判超时释放
- 台架 2026-11-13:FileZilla 下载失败三方互证闭环——MobaXterm
单连接成功、本地探针服务器捕获 FileZilla 第二条控制连接行为、
ftplib 主机侧下载/上传全过
- 编译 0 错误 0 警告(keil_build)
2026-11-13 16:20:30 +08:00
wandering1
72779cab00
merge: 099a50a4 合入 master(cppcheck 两项风格提示修正)
...
来源:合并后主树全量 ci_local 复跑,manual 阶段 cppcheck 抓出
两处风格项(未用变量 / 可缩作用域),已按 ui-verify 链验证。
2026-11-13 16:03:20 +08:00
wandering1
099a50a49e
chore(ui/sim): 修 cppcheck 两项风格提示(未用变量 / 可缩作用域)
...
来源:合并后主树全量 ci_local 复跑,manual 阶段 cppcheck(提交期
不跑)抓出两处——sim_publish_data_frames 遗留未用变量 i;待机屏
sb_value_str 变量 n 作用域可缩进挂单位 if 块内。
验证:cppcheck 定向两文件 Passed;双端构建同码同数
(Code=256588 RO=32036 RW=2088 ZI=152584);菜单 8 态与内容页
74 张(含 rtlive A≠B 30 字节差)全过。
2026-11-13 16:03:01 +08:00
wandering1
bb7cea51da
merge: dsh-95f12db9-ba22 合入 master(待机页六路实时值 + 实时页自动刷新)
...
包含三笔提交:
- 待机显示页接入 UA/UB/UC/IA/IB/IC 六路实时值(v1.1)
- 内容页框架新增自动失效机制,交流量页 300ms 启用
- 其余五个实时页按内容变化节拍接入(dc/yx/clock/
device_info/runreport,info 页切通道二新鲜源)
验证:双端构建 0 错 0 警;菜单 8 态 + 内容页 74 张 +
rtlive 断言 PASS;三笔提交 52 钩子全绿;台账与体积
凭证随笔回填。
合并后在主树复跑全量门禁补齐合并提交期钩子盲区。
2026-11-13 15:01:18 +08:00
wandering1
a98d4e06e8
UI 其余五个实时页接入框架自动失效(按内容变化节拍分档取值)
...
- 描述符各加一行(机制 task-2 已建,本轮零框架代码改动):dc 300ms(电气量与
ac 同账);yx 500ms(遥信变位按 1s 内上屏到位,比 300 档少 40% 稳态重绘);
clock 1000ms(快变项只有墙钟秒尾);device_info / runreport 1000ms 并把新鲜度
源换到通道二 .auto_seq = ui_data_info_seq(info 与 rt 同拍 200ms 发布)
——各页取值账目在该页描述符注释
- docs/UI设计:供给说明 §5.5 改六页全接终态(用户裁定 2026-11-13);内容页架构
字段表/内存表/变更记录同步;自动化测试流程补 rtlive 覆盖行;页面扩充方案
追加 74 张现势注(带日期史实行冻结不动)
- .dsh/skills/lvgl-simulator:开关表加 --rtlive 行、黄金参考计数 66→74 同步
验证:模拟器 0错0警;菜单 8 状态 + 内容页 74 张 + rtlive PASS(lead 独立复跑
RC=0,池水位 5368/5448B 均不漂移——timer 开页创建关页销毁、分配归还);
Keil 0错0警且 Code/RO/RW/ZI 与 task-2 基线逐字节一致(只改常量值);BOM 全补回。
2026-11-13 14:51:49 +08:00
wandering1
a5142c6d9d
UI 内容页框架加实时页自动刷新机制(交流量页启用,300ms)
...
- ui_content_page:描述符尾部追加 auto_ms/auto_seq 可选字段(缺省=0/NULL=
旧行为逐位不变);页打开期间框架持一只 lv_timer,仅当发布序号变过才整页
失效(零空转失效),关页即销;新 API ui_content_page_auto_poll
- ui_page_ac.c:.auto_ms=300(≥200ms 发布节拍、避 400=2×200 锁相、300=
15×20ms LVGL 整刷周期;最坏屏上滞后 500ms;完整取值账目在代码注释)
- simulator:rt 帧装配收口 sim_fill_rt_frame(n=0 冻结帧保 74 张黄金逐字节
一致,n≥1 确定性斜坡);新增 --rtlive 两态自检 + 窗口模式 200ms 节拍发布;
check_content_pages.py 增 [rtlive] 零按键 A≠B 落屏断言
- docs/UI设计:供给说明新增 §5.5 自动刷新口径;内容页架构 §3.1/§四/§九 同步
(并修正 s_open 判定旧描述)
- 台账:Keil 构建后按固定顺序回填(Code=256,588 / RW_IRAM1 +8B / UI +8B)
验证:模拟器 0错0警;菜单 8 状态 + 内容页 74 张 + rtlive(A≠B 30 字节)PASS
(lead 独立复跑 RC=0);Keil 0错0警;mem-budget --gate / mem-numbers --scan 绿。
2026-11-13 14:23:06 +08:00
wandering1
5bab248dee
UI 待机显示页接入 UA/UB/UC/IA/IB/IC 六路实时值(v1.1)
...
- ui_standby.c:v1 占位(6 行恒 0.00A)→ ui_data 通道一按 seq 门控取帧,
yc 语义下标 {0,1,2,4,5,6}(跳 UN/IN);无首帧/坏质显 --;定点格式化复用
ui_w_editor_fmt_scaled;单位随 eng(引脚档不挂),口径逐字对齐 ui_page_ac.c
- ui_standby.h:头注与修改记录同步
- 文档 §5.2 按新口径改写;§1 R2 改为新需求口径(不再引 mockup);§9 对应
开放问题销项删行;版本 v1.4
验证:模拟器 0 错 0 警 + 菜单行/内容页/编码规范门禁 PASS + Keil 0 错 0 警;
--standby 截图双分支实证(UA/IA 显值、UB/UC/IB/IC 显 --)。
2026-11-13 13:11:42 +08:00
wandering1
40a2816a99
feat(adc): UN 标定完成、标定脚本归集到 test/host/cal/
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m15s
CI / 主机侧单测 (MSVC) (push) Failing after 1m41s
- UN 通道 5 点最小二乘标定完成:r=555.382141, b=-1, 残差 0.038%, R²=0.99999967
- UA/IA/UN 三路 VALID 置位,保护解卡
- ROM 默认值更新为当前标定值(ADC_CAL_R_Q16_VOLT=555.144958)
- UB/UC/UN 通过 104 写入 ROM 默认值,config.ini 同步
- cal_fit.py 新增 ROLD 表自动读取,不再需要手传 --r-old
- 执行卡精简至 126 行,新增 cal_collect.py 采集脚本与 ROLD 填表
- 标定脚本(cal_fit/cal_write/cal_collect)归集到 test/host/cal/
- 全库文档路径引用同步更新(8 文件)
- UN 当前态文档改写:明确零序电压 U0 语义、本台架未接线状态
- 删除已失效的外部知识底座文档链接
2026-11-13 11:26:36 +08:00
wandering1
7c505b2457
refactor(adc): 最小二乘拟合移出固件,只留 PC 侧唯一实现
...
用户裁定(2026-11-13):设备本体只需要校正后的参数,不需要自己拟合
标定曲线,故固件侧最小二乘拟合整体移出,拟合的唯一实现留在 PC 侧
test/host/cal_fit.py。
删除的死代码(生产零调用、上一轮 map 里已被 linker 标 Removing):
- adc_cal.h:adc_cal_fit() 声明、8 个拒绝码、5 个常量
- adc_cal.c:s_div_round() / s_fit_accum() / adc_cal_fit() 共 224 行
- adc_cal_test.c:tc_00b_fit 226 行(184 -> 150 条)
原样保留的设备侧安全闸:
- adc_cal_apply() 折算、adc_cal_set() / adc_cal_set_ratio() 参数合法
带拦截(防工具写坏参数)、adc_cal_flags() / adc_cal_prot_blocked() /
adc_cal_rail_ths()。设备不「算」,但必须「用」和「验」。
测试面:
- cal_fit.py 转为唯一实现,新增 --selftest:承接原 C 侧金标向量
(r_q16=39322000 / b=12)与 4 条拒绝路径,共 11 条断言;已做变异
测试证明它会红(改坏圆整口径 -> 2 条 FAIL)
- cal_two_point.py 删除,两点工具由多点拟合取代
文档口径统一为「求参在 PC、设备只做折算与合法带校验」,6 篇 docs 同步;
执行卡改名 ADC多点标定执行流程.md(正文同步 5 点最小二乘口径)。
cfg 热重载吞段缺陷的解析器契约与 TC-CONFIG-063 机器钉一并入库。
Program Size 不变(Code=256196):删掉的是从未链接进镜像的死代码。
验证:Keil 0 errors 0 warnings;adc_cal 150/150;selftest 11/11;
ci_local.py RC=0(static 48/48、manual 三根、size-gate、host-unit
4341/4341);doc-links / mermaid / mojibake 全 0。
2026-11-13 08:09:09 +08:00
wandering1
1355dbe1b1
fix(cfg): 配置热重载吞段缺陷修复 + 两点标定工具链与台架实测落档
...
修复运行期改配置被打回出厂值的缺陷:cfg_file_poll() 按段循环复用同一
份读缓冲,而 s_parse() 通过 s_split_line()/s_key_value() 就地改写缓冲
(把换行与等号换成 NUL)。第一个段解析完,缓冲里已没有键值行,后续 7
个段静默保持出厂值;随后 run_par_store_save() 又把这份出厂值写回
config.ini,用户的标定值被永久覆盖。开机路径 cfg_file_load() 只解析一
轮,所以该缺陷长期不可见,只在运行中改配置时发作。
- s_parse() 改为非破坏性:入参 const char *,逐行 memcpy 到栈缓冲
(CFG_LINE_TEST_MAX + 1)后再交给会破坏缓冲的解析子函数;超长行跳
过(保存侧已拒绝落盘超长受管键行)。
- 新增 TC-CONFIG-063:同时改两段内容,断言第二个注册段也重载成功、
含负值 INT 键存活,把「热重载吞段」钉成机器面。
新增两点标定台架工具链(test/host/):
- cal_two_point.py:整数算术镜像 adc_cal_two_point(),支持单路模式与
从执行卡 CALDATA 表批量求解(--from-doc),带合法带与零点自检拦截。
- cal_write.py:复用 iec104_master 作库,经 104 定值段写 r 后写 b 并
读回校验,是所有写入的唯一入口。
adc_task 的 meas: 心跳行精度提到 4 位小数,标定读数需要。
文档:新增《采样数据校正全流程》(端到端导航)与《ADC 两点标定执行
流程》(台架执行卡,含 CALDATA 可填表);ADC通道映射说明新增 §7.3 台
架实测结果(UA 554.687914、IA 29.634259,出厂默认值保持不变);配置
文件设计说明新增解析器契约 v1.19;采集与算法层设计说明 §13 系列与
README 索引同步。
台架实测:UA r=554.687914(出厂 1000.0 偏大 1.80 倍,根因是接线分压
使 PT 一次侧只拿到一半电压,实测与参数算定 606.06 只差 8.5%)、IA
r=29.634259(与出厂 29.4118 只差 0.76%,反证链路未算错)。UN 按用户
裁定本轮不标定,保护闭锁(vl=0x11)是预期行为,未伪造 VALID。
同时入库 .dsh/roles 角色定义(原被 .gitignore 挡住)。
2026-11-13 01:35:58 +08:00
wandering1
18c087500a
fix(gates): doc-links 全库扫描排除 .agents 插件工作树
...
主树根跑 --all 时 rglob 会把仓内 .agents/worktrees/* 的整份仓库
副本一并索引,裸文件名解析出 3~4 份导致章节引用假红(本次合并
后复核实测 2 处失效引用 + 4 处芯片手册命名问题)。SKIP_PARTS
已排除同类 .dsh-worktrees,补上 .agents 一项即对齐。
只改 scripts/check_doc_links.py 一行;不改 pre-commit 的 exclude
(该处只喂 git tracked 文件,.agents 已被 .gitignore 挡住)。
修后 --all-files 48 钩子全绿、doc-links --all --sections-strict
全库 214 篇文档 rc=0。
2026-11-11 12:15:35 +08:00
wandering1
206dcf7f01
Merge branch 'dsh-98ce65ba-6235': 变比维三维折算 + 录波 v2
...
将采样板读数偏小修复合入主干:折算从二维 (code+b)×k 改为
三维 (code+b)×k×r,r 为端子二次值变比(int32 Q16);
新开单段 [adc_cal_sec](cfg 达 8/8 上限);录波段格式升 v2
(通道表加 r_q16,整段 5250→5282);文档与 13 套主机单测同步。
/keil-build 0 错误 0 警告;RAM 实测回填内存内容分配策略 §6.1。
2026-11-11 11:32:31 +08:00
wandering1
3675b89e8e
feat(adc): 新增变比维 r 三维折算,录波段格式升 v2
...
采样板注入 Ua=5V/Ia=0.5A 读数偏小,根因是固件只输出引脚电压、
缺「端子→引脚」变比。折算改三维:
工程量 = (code + b) × k[µV/码] × 1e-6 × r
k 保持 ROM 引脚 LSB,b 为零点,r 为端子变比(int32 Q16)。
变比不能并进 k:UA 端子域 k 达 1.5e5 µV/码、Q16 溢出 int32;
r 单独存 Q16 不溢出。两点标定改标 r,k 仍是板级事实。
- 新开单段 [adc_cal_sec](8 键 r_ua..r_in),cfg 段数达 8/8 上限
- 一次变比复用 prot_set 四项,不新开段;r=0 表示本路不折算
- ROM 默认带台架实测变比(电压族 1000、电流族 29.4118),
烧进固件即显二次值;VALID 仍须两点标定,两者互不派生
- eng 判据改「每路要么已配变比、要么削顶不显示」,不再看 VALID
- 104 地址 0x8050~0x8057 写 r,run_par_cal_r_set 写值与置脏同函数
- 录波 v2:通道表加 int32 r_q16,头 128→160、整段 5250→5282;
code_to_milli 用余数分解换等价单次圆整,20 万组大整数对拍 0 不符
- 文档同步:采集与算法层/通道映射/故障录波/网络配置/配置文件/
产品需求/内存台账,历史带日期实测数字按冻结口径不改
- 单测 13 套全绿,/keil-build 0 错误 0 警告(256024/31760/
2080/152368),RAM 实测回填内存内容分配策略 §6.1
2026-11-11 11:31:34 +08:00
wandering1
8115fb9a87
Merge branch 'dsh-447a9a36-1c96'
CI / 静态门禁 (pre-commit) (push) Failing after 5m1s
CI / 主机侧单测 (MSVC) (push) Failing after 42s
2026-11-11 01:06:17 +08:00
wandering1
b772117ed3
fix(wave): 落盘道改覆盖写,修回放页全板「该段不可读」
...
段名是 100 个槽位的轮转复用,而写者用 FA_OPEN_APPEND 打开:槽位复用时撞上
同名旧文件,新段接在旧段尾巴上,文件长成 5250 的整数倍。回放页读侧按单段
判 size == total,于是逐件落进 UI_WAVE_REJ_LEN(reject=2),全板没有一段
放得出来。
板级取证(100 件全部归档到 ci-artifacts/wave_append_backup_20261110/):
/wave 共 1868 段、9,807,000 B,尺寸全为 5250 的整数倍,恰好等于 5250 的
文件数为 0;逐段过 wave_read 校验全部合法、零损坏——数据一直是好的,只是
容器尺寸与写者语义相抵。
修法(用户裁定取写者截断,否掉读侧多段感知):打开模式改为
FA_WRITE|FA_CREATE_ALWAYS。本移植的覆盖分支会 remove_chain 并清零目录项
FileSize,是真截断;FA_CREATE_ALWAYS 单独用不含 FA_WRITE,两个位必须同给。
日志七本与 soe.log 仍用追加(靠历史累积,语义正确),读侧口径不动。
板端验收:新段尺寸恰好 5250 B;对已有 28 段的 WAVE00.BIN(147,000 B)录
一次当场变 5250 B,全目录总字节减 141,750 = 147,000 - 5,250。回放页从
bad 态(与黄金参考 shot_wave_play_bad 逐比特相同)转为正常态,页眉 24/24
行、页脚 20/20 行与 shot_wave_play 逐字节一致。
文档:故障录波设计说明 §5.2 陷阱表改打开模式完整口径,§10 新增收口记录;
带日期戳的 11-07 取证归档正文按当时口径冻结,只加一条口径已被推翻的指向。
2026-11-11 01:06:04 +08:00
wandering1
7b05d7bfd4
docs: 任务规划目录收缩——只留推进顺序与硬件缺陷,其余待办归模块文档
...
按用户裁定(2026-11-10)把 docs/任务规划/ 从"全量待办表"收成两个文件:
1. 登记簿.md 只记 V0.1 硬件缺陷 → V0.2 改版要求(双转换器无共同采样触发、
IA 前端差分滤波限制谐波带宽)。原 §1/§2/§4/§5/§6/§7/§8/§9 的待办按
"待办跟着所属模块走"清空,四类事实在删除前先落到新归属:
- 两点标定开工前要先拍板的三件事 → 算法层设计说明 §13.13(新节)
- 通讯设置页真机判据 → 网络配置说明 §3.6 内联
- 缩堆迁 CCM 后半、开入开出重开条件 → 原本各模块文档即唯一权威
2. 暂缓-RS485.md 删除,其唯一不可丢的"采集链路测试可验证性约束"三条与
完成判据并入 产品需求设计文档 §5.10。
3. 任务规划/README.md 去掉全部历史叙述(UI 补齐销项流水、net 收口过程、
故障录波近千字台账),只留:怎么用、条目规则、生成物单写者纪律、
推进顺序表(每行只写当前状态与卡点)、维护约定。
同步改写全库引用(约 60 处):AGENTS.md、docs/README.md、产品需求、UI、
子系统设计、内存管理、环境与部署、算法、测试说明、门禁说明、问题记录,
以及 App/ 与 Drivers/BSP/ 的头注释、脚本与 .pre-commit-config.yaml 注释。
顺带修掉三处已失效的引用目标:链路延迟测试的队列往返重验项改指实机测试
实施指南 §7.3;并行工作树的 <ID> 行去掉已退役的 N-x/S-x/T-x 编号族;
任务规划 README 的 §1 旧编号在技能示例里的引用。
门禁:check_doc_links --all --sections-strict 214 篇通过、无法判定 0;
pre-commit 全 Passed(doc-links / mermaid / 任务表 / 内存数字 / BOM /
UI 像素回归 / generated-fresh / layer-deps / bsp-err / skill-size);
keil-build 0 错误 0 警告(Code=255160 RO=31204 RW=2080 ZI=152152),
RAM 预算门禁 PASS(RW_IRAM1 73.9%、RW_CCM 87.9%)。
2026-11-10 20:33:30 +08:00
wandering1
ae09c5737a
docs: 删任务规划两份已完成文档,数据可信内容迁入算法层/硬件平台/登记簿
...
任务规划目录从 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。
2026-11-09 16:13:57 +08:00
wandering1
7027718dcd
Merge remote-tracking branch 'origin/master'
...
CI / 静态门禁 (pre-commit) (push) Failing after 31s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
冲突三处,全部按「保留我方去废话后的结构,吸收远端新增事实」解:
- docs/硬件平台/ADC通道映射说明.md
远端新增 §7.2 ④ 段变比登记(电压族 606.06:1、电流族 29.4118 A/V)与
§8 逐通道验证四步;我方上一笔把该文改成只留现状。合并后 §7.1 四段表
的 ④ 行改为「已定死(参数算定)」并指向 §7.2,§8 保留四步验证(去掉
已完成标记与历史挂账叙述),§8.1 静态记录与 §8.2 交流动态记录并存。
- docs/内存管理/RAM使用分析与优化方案.md、RAM预算台账.md
受管内存快照区取远端数值,随后按合并后真实 .map 重跑
check_mem_numbers.py --write 与 ram_baseline.py --write 同步(构建
Program Size: Code=255160 RO=31204 RW=2080 ZI=152152,0 错误 0 警告)。
顺带修 §7.2 末尾一处指向 docs/任务规划/数据可信.md §8 的失效章节引用
(该文档已删 §8),改成陈述句。
门禁:check_doc_links --all --sections-strict 223 篇全通过、无法判定 0;
pre-commit 全 Passed。
2026-11-09 10:59:45 +08:00
wandering1
acf9f0d7e5
增加元器件说明
2026-11-09 10:27:22 +08:00
wandering1
ed1fe221e9
Merge pull request 'docs(wave): #93 修复板级验收轮证据与文档回填(续 #94)' ( #98 ) from docs-94-evidence into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m29s
CI / 主机侧单测 (MSVC) (push) Successful in 36s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/98
2026-11-08 10:56:47 +08:00
super_agent_bot
1dbead5177
docs(wave): #93 修复板级验收轮证据与设计面回填(PR #94 第二提交)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 3m59s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 40s
- 证据目录 docs/测试说明/测试数据/wave_fix_20261107/:Before(旧固件烧录前实测
oldN_P0..P3)/ After(新固件 19:10:36 构建,F1 五条 + F2 五条全过)逐帧 raw3200+PNG、
serial 摘录与 sha 台账、boot_new2/3 启动报告、restore_verify(100 件逐字节还原 OK)、
samples 三件与 README(含复现口令与 i104 环境条件如实记录)。
- 设计说明 §10 修复记录:板级验收结果行回填 + 台架环境新事实(拼接盘态口径相抵记账)+
两条 i104 观察项(软复位首绑必失败 / 重试成功静默)建议各自开票。
- 手册 §4 步 7 判废行判读表 + 开页作废纪律、§8 [ERR] 停幕例外的坏段轮点名放行;
ui_task.c 注释指向改 §4 步 7 与 §8(纯注释,Code=254960 复建一致)。
- 任务规划 README 独立行:#93 修复与板级验收里程碑。
2026-11-07 23:42:10 +08:00
wandering1
fe84a80912
Merge pull request 'ftl: add P0 bench verification probes ( #85 )' ( #96 ) from dig-volume-view-283370226187 into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 46s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/96
2026-11-07 22:20:58 +08:00
wandering1
ebb64f6df2
Merge branch 'master' into dig-volume-view-283370226187
CI / 静态门禁 (pre-commit) (pull_request) Failing after 29s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 44s
2026-11-07 22:20:40 +08:00
wandering1
01fde986ee
Merge pull request 'docs(wave): 触发源字母汉字化注记——手册补 src 速查表,人读文案改「保护触发(P)」式(#83)' ( #97 ) from docs-trig-legend-83-6f432acbeab7 into master
...
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/97
2026-11-07 22:12:29 +08:00
super_agent_bot
82a84a4264
docs(wave): 触发源字母汉字化注记——手册补 src 速查表,人读文案改「保护触发(P)」式(#83)
...
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 42s
用户反馈「P 触发」这类字母看不懂(#83 评论 755)。
- 手册开头补「触发源字母速查」:M=手动录波 / P=保护启动触发 /
T=定时自抓(bench)/ -=本次上电未触发;注明四字母是串口与台架
脚本的 grep 契约、不改汉字,契约定义属主仍指设计说明 §9;
- 手册 §1/§5/§9、docs/README、任务规划 README §2.0 的人读文案把
裸字母改成「保护触发对时刻(src=P)」式汉字在前的写法;
- 串口字段 src=P / src=T 与测试数据目录下的抓帧原件逐字保留。
2026-11-07 22:09:39 +08:00
wandering1
2aa4561af6
Merge branch 'master' into dig-volume-view-283370226187
CI / 静态门禁 (pre-commit) (push) Failing after 46s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 46s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 44s
2026-11-07 22:06:44 +08:00
wandering1
33b52410f9
Merge pull request 'fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)' ( #95 ) from exec-issue-84-1f621ac1c3ce into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/95
2026-11-07 22:05:57 +08:00
wandering1
c6043af6c0
Merge pull request 'fix(wave): 回放页开页作废钉表重扫 + 判废串口逐次留痕(#93 F1/F2)' ( #94 ) from fix-wave-findings-b8c190da2e56 into master
...
CI / 静态门禁 (pre-commit) (push) Has been cancelled
CI / 主机侧单测 (MSVC) (push) Has been cancelled
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/94
2026-11-07 22:02:06 +08:00
super_agent_bot
aa831968ea
ftl: add P0 bench verification probes ( #85 )
...
CI / 主机侧单测 (MSVC) (push) Has been cancelled
CI / 静态门禁 (pre-commit) (pull_request) Has been cancelled
CI / 主机侧单测 (MSVC) (pull_request) Has been cancelled
CI / 静态门禁 (pre-commit) (push) Has been cancelled
Add two bench empirical verification probes for the whole-volume stale
view investigation:
1. Write-commit readback probe in dhara_nand_prog(): after a successful
program, immediately read back the same physical page and compare
byte-by-byte. Log ECC errors and data mismatches with a counter.
2. Map state logging in ftl_flush_cache(): after each successful
dhara_map_write, log the journal root/head/tail/epoch/count to
correlate with bench stale-view events.
Both probes are marked as bench-only and should be removed before
production release.
2026-11-07 21:57:46 +08:00
super_agent_bot
1df02c4658
fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m54s
CI / 主机侧单测 (MSVC) (push) Successful in 51s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 4m29s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 41s
F0(唯一代码改动,#if DTU_BENCH 闸内,产品影像零漂移):
adc_task.c 原无符号判据 (uint32_t)(now-next)>=PERIOD 在 next=now+PERIOD
挂出后立刻成立(now<next 差值回绕成巨数),台架实证 1 kHz 连发请求:
ovf 每秒 +1000、段节奏被去重钳到 ~1.5 s/段,违背 ON 行承诺
「1 seg / 2000 ms」。改有符号比较(半程内回绕安全)。修复后实测
seg 恰 +5/10 s;bench Code=255284 vs 产品 254820(差 464 B)证门控。
第四幕三判据板级实证(手册 §6 步骤 3 逐条对上):
- 临界占卷命中唯一 [ERR] seg drop: ring abandoned(idx=36),心跳
err 恰 +1,段号不推进、同号 5250 B 重写(P1/P2/P3 + sha256 固化);
- 长占卷 72.6 s 静默自弃 err 1→15 零留痕(不是每拍刷屏最严形态);
- 占卷期间 104 STARTDT 实测应答 + UI 主菜单照常(丢录波不丢采集)。
现场发现 F1(单发未复现软件复位,只记不断)/F2(lftpd 放锁早于
DOWNLOAD 落账 ~0.13 s,临界命中方法钥匙)/F3(pack_next 留痕板级
首见,同族分支)入设计说明 §10 闭环记录。
文档销项:设计说明 §5.2 L163 / §10 留痕名清单 / 板级行 / 未跑清单
四处标记闭环 + 新增「bench 定时自抓与占卷弃段观察闭环记录」小节;
到场轮手册 §1 第四幕行标已完成 + §6 收工状态注记。
收工:FILLER/FILL2/FILL3 删净,产品构建 21:32:52 已烧(除 #53 i104
首绑 FAIL 行外 8/9 required 全过、端口 STARTDT 实测活,沿用 11-06
先例定性);UI 主菜单;证据目录 docs/测试说明/测试数据/
wave_bench_20261107/(README 判据对照 + 原始/复原串口摘录 + 各轮
JSON + 启动锚点两跑日志)。
2026-11-07 21:55:06 +08:00
super_agent_bot
36e309576f
fix(wave): 回放页开页作废钉表重扫 + 判废串口逐次留痕(#93 F1/F2)
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m49s
CI / 主机侧单测 (MSVC) (push) Successful in 48s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 3m37s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 29s
F1 开机后 FTP 新 STOR 段不进回放页钉住段表(#68 轮现场发现):
注入表新增第七件 wave_enter 作废钩子(纯内存零 I/O),页面
pg_init(方案 A)与空态左右键再探(方案 B)各调一次;重扫仍懒
在首帧绘制,开页链零 I/O 不破;页内普通按键不作废,2026-11-02
钉表防抖纪律零改动。manual_req 同族同纪律:段表与段头缓存一起
作废,同号覆盖不拿旧尺子量新段。
F2 数据 CRC 判废串口静默(同轮发现):ui_task_wave_load_head()
五类 BAD 出口(头解析/长度等式/窗读/尾读/CRC 不符)收敛为一条
`ui wave head idx=%u reject=%u stored=0x%04X calc=0x%04X`;
reject=5 带 stored/calc 值对,与 PC 侧 wave_read REJECT 行同名
同值互证;reject 1..4 两字段 0 占位。ERROR 级、不判重(判废是
低频人工动作,逐次留痕),裁定与判读表随第二笔提交入手册 §3。
验证:keil 0 err 0 warn(ER_IROM1 285940 B,+224 B,内存两份
台账 --write 同步随本笔入库);ui-golden 菜单 8 态 + 内容页 74
张全过、录波回放三态像素零刷(模拟器假桩 no-op 即行为不变);
宿主 ui_data 295 / ui_sink 17 / wave_ring 113 / wave_store 170 /
wave_trig 110 全绿。板级五项验收进行中,设计说明 §10 / 手册
§3-§4 修订与台账销项随第二笔。
2026-11-07 19:16:21 +08:00
wandering1
06baf7a531
Merge pull request 'docs(hw): ④ 段变比定死入通道映射——电压族 606.06:1、电流族 29.4118 A/V,eng 保持 0(#41)' ( #92 ) from write-ratio-41-fba44d301c82 into master
...
Reviewed-on: #92
2026-11-06 19:41:56 +08:00
wandering1
8a24c7ac85
Merge branch 'master' into write-ratio-41-fba44d301c82
2026-11-06 19:41:42 +08:00
wandering1
2ed715f6d5
Merge pull request 'docs(故障录波): 第二幕尾步坏段/空态画面板级闭环入档(#68)' ( #91 ) from remote-shoot-68-274d2d56da74 into master
...
Reviewed-on: #91
2026-11-06 19:40:06 +08:00
super_agent_bot
2e4c167bfb
docs(hw): ④ 段变比定死入通道映射——电压族 606.06:1、电流族 29.4118 A/V,eng 保持 0
...
用户在 Issue #41 现场报子板参数:PT 2mA/2mA、输入侧 200 kΩ、输出侧 330 Ω;
CT 5A/2.5mA、输出侧负担 68 Ω。先复核算术后入库:
- 200000 ÷ 330 = 606.060606… V/V ✓;5 ÷ (2.5mA × 68Ω) = 5 ÷ 0.17 =
29.41176470… A/V(= 匝比 2000 ÷ 68)✓,两数与报参口径一致,未发现算误。
- 电流族"变比"实为带单位的 A/V(I端子 ÷ UAINn),与 V/V 不可混写,文档分注。
改动全在 docs/硬件平台/ADC通道映射说明.md(#41 口径:本卡不动代码、
ROM、登记簿):
- §7.1 链路分段表 ④ 行由"仍待实测确认"改"定死(参数算定)",给出两族数值;
引文与可评审结论 1/3/4 同步收口。
- 新增 §7.2 登记:算式与额定点(400 V→0.66 V、5 A→0.17 V)、②×③×④ 端到端
标称系数表(92.48 / 488.28 mV/码、4.488 / 23.70 mA/码)、复核口径——铭牌
参数非本板实测,数值确认归两点标定;`eng` 判定:④ 到手满足第一条件,
电气 8 路 ADC_CAL_F_VALID 未置位,eng 保持 0,两点标定转为可开工。
- 移交两点标定卡的两道存储题:电压族端子域标称 k 越 int32 Q16 µV/码上限
32767,且合法带基准读 ROM 出厂表(引脚域)——写入端子域系数前存储单位
与出厂表须一并换血。
验证:check_doc_links.py --all 与 no-mojibake 实跑通过;docs-only,
/keil-build 不适用。
2026-11-06 19:10:21 +08:00
super_agent_bot
c40fd24c1a
docs(故障录波): 第二幕尾步坏段/空态画面板级闭环入档(#68)
...
同号翻位覆盖列内段 WAVE06 → 回放页显式「该段不可读」(零波形元素,
判据「绝不许画直线」过);全删段 → 「无录波段」空态 + 串口
open fail fr=4 互证。证据目录 wave_shot_20261106:三态 PNG 与原始
帧、坏样本与原件、PC 侧 wave_read REJECT 实录、串口摘录、sha256
清单。收工:板上九件原件逐件 sha 复验恢复、坏样本不留板(§7 二
选一取删除),UI 停 STANDBY。发现 F1(STOR 新文件不进钉表,需同
号顶当前段或手动录波触发重扫)与 F2(数据 CRC 判废串口静默、画
面自证)记 §10。同步销项:手册第二幕状态与现场记录表第 3 行、
设计说明 §10「回放页坏段/空态画面闭环记录」、任务规划 README
§2.0 独立行。本轮不改代码。关联 #68 #38。
2026-11-06 18:35:40 +08:00
wandering1
ad87f979b1
docs(规约): 删除编号规范.md,生效规则并入文档规范 §7.1
...
用户裁定:docs/编号规范.md 在项目里已无意义,删除。
依据:该文 253 行里真正仍生效的只有两条规则(新条目一律不发编号、
人读文档存量编号继续清退)和一张存量族表;其余内容早有归属——两道
编号门禁的退役记录在 docs/门禁说明/id-check.md 与 id-check-new.md,
手工普查与恢复机器面在 scripts/archive/id_gate/README.md。留着就是
第二真相源,同一事实写在两处迟早漂移。
处理:
- docs/文档规范.md 新增 §7.1「条目与编号:一律不发」,承接规则、
场景表、三条硬规矩、存量族表、已停发旧号族清单、不是编号的清单、
清理动作与「没有机器门禁兜底」四段。
- 活跃引用 62 处逐条改指 §7.1 或归档 README:AGENTS.md 2 处、
门禁说明三篇 18 处、其余文档 11 篇、代码与脚本 10 处、rename_maps
七个 record 字段、.dsh/skills 四个文件 8 处。
- 归档区 107 处去掉 docs/ 前缀当纯文本提及;编号治理历史.md 45 处
改为「原编号规范 §N」,避免被 doc-links 当自引用解析。
- 顺带修正 scripts/archive/id_gate/README.md 里仍称旧文为现行规范
的表述。
门禁:check_doc_links --all --sections-strict 220 篇全通过、无法判定 0;
pre-commit 全 Passed。
2026-11-06 18:32:04 +08:00
wandering1
c7c0125982
docs: 增加硬件平台关键元器件笔记(压敏电阻 10D102K)
...
docs/硬件平台/关键元器件.md:记 10D102K 氧化锌压敏电阻的工作
原理(正常高阻、瞬态击穿钳位、浪涌后恢复)与典型应用场景,
供选型与防护设计查阅。
2026-11-06 17:43:55 +08:00