用户裁定两条:① 剩余裸写端口的地方加「工厂默认」限定词,不改固件行为; ② 生效语义按需求口径「保存即生效」定,现实现(端口下次重 bind 才生效)是 要改的一侧 → 建任务登记,本笔不动代码行为。 限定词(24 处 / 17 文件):AGENTS 数据主线、App/protocol/README、根 README 文档索引、Src/freertos.c 三处任务注释、docs/README、项目启动顺序管理、存储 架构说明、软件架构与运行时规格(2)、RAM 使用分析、产品需求设计文档(5)、 项目架构总览(3)、test/host/README、iec104_master 流程注释、IEC104 上行设 计说明、继电保护功能复现规划。配图两张同批重跑:gen_arch_svg.py 与 gen_memory_svg.py(脚本与产物同一笔)。 两处陈旧计数(都做过双源核证): - 测试开发标准流程 像素层「60 内容页」→ 内容页黄金参考 66 张(64 页); 双源 = simulator/tests/ref/shot_*.bin 实数 66 与 check_content_pages.py 的 PAGES 66 条(含两个 _p2)。 - .pre-commit-config.yaml 的 uinav-selftest 注释「18 张黄金参考」→ 写成 「接线当时 18 张、现 66 张」:git log -S 定到 6a904c1b(2026-10-25),那 天 ref 目录确实 18 张,写时为真,但它描述的是钩子现有行为,属当前态。 口径修正与登记: - 页面扩充详细方案「通讯设置 = 无配置模型(端口与 CA 都是 #define)」→ 标 「当时」,并写明现已在 /config.ini 的 [comm] 段可配、UI 通讯设置页可改。 - 产品需求 §通讯配置:删掉「改后需重启生效」这句把两件事混为一谈的话,改成 需求要求「保存即生效」+ 现实现(公共地址重启、端口下次重 bind)+ 指向登记簿。 - docs/任务规划/登记簿.md §1 新增「104 端口改后立刻重 bind」:含隐性耦合 —— .serialtest/config.json 的必检锚点写死 listening on 2404,端口一改串口 回归必假失败;改行为时要么锚点只查 listening on,要么由脚本注入端口。 复扫(旧形态归零判据)剩 20 处未带限定词,逐条定性为刻意不改:默认值定义处、 出厂模板与断言、usage 与 argparse default、UI 黄金参考显示值、台架主站地址 (同数不同义)、串口锚点、叙事句、引用关系图坐标。逐条理由见一次性台账。 门禁:check_doc_links --sections-strict 对 16 篇改动 .md 逐个 rc=0; check_mermaid --all 31 文件 62 围栏新发 0;check_nested_comment --all 449 文件新发 0;check_bom_drift --all 99 个名单内文件无漂移; check_generated_fresh PASS(25 生成器 / 21 一致 / 4 只减不增基线);字节体检 无新增 BOM / CR / U+FFFD / 行尾空格(三连空行与 HEAD 逐项相同 = 存量)。 /keil-build 0 错 0 警,Program Size Code=246720 RO=29836 RW=2052 ZI=149708 与凭证同码:本笔只碰注释与配图文字,无固件行为变更。
任务规划
UI 补齐执行清单已于 2026-10-28 清空(记录 5 页 + 运行报告页落地)。 下一顺位 = net 层跨上下文收口,开工待用户点头;顺序权威见 docs/任务规划/README.md §2.0。 详细任务与验收见
UI补齐.md;UI 完成后的第一项是 net 层跨上下文收口。
怎么用这份规划
| 你想知道什么 | 只看哪个文件 |
|---|---|
| 现在做什么、接下来做什么 | 本文件 |
| 当前任务怎么做、怎样算完成 | UI补齐.md |
| UI 之后还有什么、哪些事在等条件 | 登记簿.md |
| ADC 标定为什么没做、保护为什么不动作 | 数据可信.md |
| RS-485 为什么冻结、重启要满足什么 | 暂缓-RS485.md |
一件事只有一个归属。 本文件只负责导航与顺序,不复制各任务的验收明细;
登记簿.md 不再复制当前 UI 任务,数据可信.md 的其余章节是被代码引用的设计约束,
不是额外待办。
0. 条目与引用规则
- 新条目使用语义短语,一行直接说清是什么事,不再新增字母加数字编号。
- 旧编号只用于追溯历史,不复用、不重新发号;编号族与冻结规则见
docs/编号规范.md。 - 引用条目时写清所在文档和语义名,例如:
docs/任务规划/登记簿.md的 「net 层跨上下文收口」。不要只写一个短号让读者猜。 - 任务状态只维护在任务所属文件;本文件不另建一套状态表。
1. UI 补齐(执行清单已于 2026-10-28 清空)
菜单树共 34 叶(节点行合计 43):按行内 #page= 实测已绑 30 叶、未绑 4 叶(2026-10-29 复扫, 判定规则与重跑命令见 docs/任务规划/UI补齐.md §1「叶数判定与复核」)。未绑的 4 叶因缺少开入硬件 或 SNTP 产品定义而不做(原因与重开条件见 docs/任务规划/UI补齐.md §5)——手动录波与录波回放两叶 已随录波道绑页,「不做」清单里的录波那一项已销。 口径闭合:未绑 4 = 待做 0(§1 清单已清空)+ 不做 4(遥信 3 / SNTP 1);43 是节点行数、不是叶数(= 9 个菜单节点 + 34 叶)。 已绑叶数以生成物 UI_PAGE_MAP_COUNT 为准:不剔 ui_menu_tree.txt 文件头的注释示例行时,按 #page= 文本计数会得 31(= 30 + 1 行示例)。
UI 补齐执行清单已于 2026-10-28 清空:记录 5 页(事故 / 操作 / 保护告警 / 保护启动 / 遥控)与 运行报告页同日落地并绑页,内容页黄金参考 53 → 60 张(runreport 分 2 页,第 2 页单独拍一张;判据 = simulator/tests/ref/ 入库 shot_*.bin 实数,张数 = 页面个数 + 分页多拍的那一张;该集合 2026-10-29 已扩至 66 张,多出的是录波回放页 6 态)。 上板判据(真记录翻页、掉电保持、清除后归零、boot_count 自增、RESTARTED、rst_cause=IWDG、conn_up +1) 已登记登记簿 §7「UI 六页真机判据」,六页文件头各留「台架待补」段;模拟器差距见 docs/测试说明/专项验证/模拟器差距清单.md §2.3「开机账本 boot_stats」一行。
执行纪律:单道串行。 菜单树与页面注册表是生成物,字库也是整文件生成物; 不要同时开多条 UI 页面分支。上板验证可累积成一批,但保存、重启、主站读回等判据不能删除。
2. 全项目推进顺序
本节是全项目唯一的顺序权威。模块文档只描述局部设计,不另排一套路线图。
2.0 顺序表
| 顺序 | 工作 | 当前状态 | 开始或切换条件 |
|---|---|---|---|
| 1 | UI 补齐 | 清单已清空(2026-10-28) | 记录 5 页与运行报告页已落地并绑页;余下 5 叶属 §5「当前不做」,重开条件见 docs/任务规划/UI补齐.md §5;上板判据见 docs/任务规划/登记簿.md §7 |
| 2 | net 层跨上下文收口 | 下一顺位(未开工) | UI 清单已清空,切换条件已满足;开工需用户点头——换主线是产品决策,不由本批顺带做掉 |
| 3 | 其余结构与可靠性评估 | 排队 | net 收口后;逐项见 登记簿.md,观察项不为了“清清单”而强做 |
| 4 | 数据可信(采集数据可信度) | 动态波形验证手边可做;变比确认与两点标定等外部资源 | 信号发生器动态波形验证(不依赖外部资源)→ 端子/子板变比确认 → 标准源两点标定;排序调整(2026-10-29):动态验证让位给故障录波数据面,段文件落地后判据升级为 PC 独立重算对表(docs/子系统设计/故障录波设计说明.md §11)(已知电压注入已于 2026-10-27 台架闭环并销项);外部资源到位可插入优先处理 |
| 5 | 标准源送检与第三方 104 主站验收 | 等待标定完成 | 两点标定完成且保护 VALID 已置位;送检窗口前 2 日冻结特性 |
| 6 | 保护元件与采集增强 | 等待标准源或硬件改版 | 保护先解除未标定闭锁;三相同时刻类功能等 V0.2 硬件 |
| 7 | 验证窗口事项 | 逢条件顺带 | CI runner、PC peer、CH340、负向故障注入条件到位时执行 |
| 8 | 独立模块与暂缓项 | 当前不排 | 开入开出、SNTP、104 文件传输单独立项;RS-485 与内存优化按各自重启条件 |
| 独立 | 故障录波(1 kHz · 8 路原始码值 · 单通道回放) | 代码面已交付(板级判据一轮未跑) | 用户裁定 2026-10-29 录波先行:数据面最小闭环 → 手动与保护启动触发 → 回放页。三张卡的代码侧判据已收口(主机单测 100 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);没跑的是板级那一轮(注 1 V / 50 Hz、FTP 拉回、与 meas: 行和 104 浮点遥测对表、段文件 CRC 不符必须拒收、回放页看真段)。卡片判据见 docs/任务规划/故障录波.md,口径与设计见 docs/子系统设计/故障录波设计说明.md §10;与 UI 道互斥(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 |
2.1 关键依赖
- UI:写路径、整定 4 页、装置维护 3 页与遥测死区/系数 2 页已收口(含上板判据与真机回读); 菜单树、页面注册表与字库都是生成物,同刻只允许一条道写。
- 送检:已知电压注入(✅ 2026-10-27 闭环)→〔信号发生器动态波形验证 —— 手边可做,与后两关并行、不阻塞送检〕 → 端子/子板变比确认 → 标准源两点标定 → 保护解除闭锁 → 送检。
- 保护扩展:标准源未到位前不新增无法验证的判据;跨转换器相位、功率、对称分量类 功能必须等 V0.2 硬件。
- 结构债:UI 完成后先做 net 收口;RS-485 白名单、内存优化、仓库体积等观察项不抢占 当前编码道。
3. 维护约定
- 完成即删除待办条目,同时清理其他文档对它的引用;结论和证据写入模块文档,
历史由
git log保留。 - 当前任务只改
UI补齐.md,后续事项只改登记簿.md;顺序变化才改本文件 §2。 数据可信.md的 §2、§4、§7~§10 仍被代码头注释引用为设计依据,不能按“已完成” 删掉;其待办只认 §5 的任务卡表(标识列用语义短语,卡片增减不改本条口径)。- 专项文档只放还没闭环的约束;已落地事项的规格正文归代码头注释或模块文档,
销项即删文件并把引用改指现行出处(先例:
测试与架构专项.md已删除 2026-10-28, 唯一未闭环的「采集链路测试可验证性约束」并入暂缓-RS485.md)。 - 任务分支不直接修改
docs/任务规划/**;状态更新与销项由主工作树统一处理。 - 并行开发机制、工作树和锁的使用见
docs/环境与部署/并行任务工作树方案.md。 本文件夹不再另维护一份分道、批次和写域方案。 - 暂缓不是完成:条目必须保留重启条件;没有重启条件的“以后再说”应写成观察项或删除。