Files
STM32F4-Base/docs/任务规划/README.md
T
super_agent_bot 3a2f9b21fb
CI / 静态门禁 (pre-commit) (push) Failing after 43s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 45s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 45s
refactor(time_sync)!: 退役 TCP :8888 对时任务,timeSyncTask 转纯 SNTP 校时节拍宿主(#78)
SNTP 客户端已随 #73/PR #77 上线合入(merge 2b848c4a),用户裁定
8888 对时任务退出历史舞台(gitea:77 线程原话,跟踪 Issue #78)。

生产侧(App/sync/time_sync.c v2.0,任务入口名不变,freertos.c 零改动):
- 删除 :8888 监听、TIME 包重组、sys_clock 写入、OPER 落痕、
  net_drop_conn 队头自救整条链(TIME_SYNC_PORT 宏随退役删除)
- 任务体收敛为:就绪屏障(100ms 分片、osFlagsNoClear)→
  200ms 校时节拍 task_wd_beat → time_sntp_run(net_get_generation())
  → 分片延时;喂狗节奏(TASK_WD_TIMESYNC=5,required_mask)不变
- 时钟写入口自此 = SNTP / UI 手工 / 104 C_CS,双写竞态(后写者赢)
  随之消失(墙钟说明 §15 退役公告、§16 现势口径)

工具与测试:
- 删除 test/host/time_sync_server.py(对时源)与 e02_probe.py
  (队头阻塞探针,载体随监听退役;判据脚本 v5_log_gap_report.py
  保留供旧日志解读)
- time_sync 主机单测重写 v2.0:33 断言覆盖分片延时 / 屏障 /
  SNTP 节拍与网络代次当轮交接 / 未出网守门;stub 的
  net_socket.h 裁剪至 net_get_generation 作编译期绊线
- 覆盖率基线 --update-baseline 收口(time_sync.c 101→20 行为刻意
  缩减,全仓 48/48 套绿)

文档与图:墙钟说明 §15 改退役公告(教训保留:CH395F FIN 丢未读
缓冲)、§16 单一网络来源;产品需求 FR-TIME-2 退役注记、§6.3 重写;
架构总览 / 软件架构规格 / 网络配置 / 网络自愈 §9.3 / BSD 指南 /
看门狗说明心跳与白名单行 / 实机测试指南 / 部署环境 / 继保规划 /
UI补齐时基口径 / 页面补齐规划 SNTP 页行 / 任务规划 README 叶数与
暂缓项行(SNTP 叶已绑、UI_PAGE_MAP_COUNT=31 口径)等约 30 处现势
口径同步;arch / net_stack 两图生成器与 SVG 同笔重跑。

台账:ram_baseline --update + check_mem_numbers --write + 体积凭证
(Code 254,648→253,428,−1,220 B)。静态链复测发现 timeSyncTask
1,904 B / iec104Task 1,600 B 低于 ISR 硬线:master 2b848c4a 同判据
timeSyncTask 即 2,056 B(本 PR 只减不增,−152 B 旧任务自身帧),
双 FAIL 为 #74/#77 后既有债;抬栈属 Ask-first 未擅自执行,登记簿
新增「静态链硬线双 FAIL」待台架复采,复测快照入 docs/内存管理/data。

验证:keil-build 0 错 0 警;time_sync/sntp 主机单测绿;
ci_local 全绿;doc-links --all 0。
2026-11-04 18:07:03 +08:00

9.1 KiB
Raw Blame History

任务规划

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= 实测已绑 31 叶、未绑 3 叶(2026-11-04 SNTP 设置 叶随 #73 立项转绑 +1,判定规则与重跑命令见 docs/任务规划/UI补齐.md §1「叶数判定与复核」)。未绑的 3 叶 因缺少开入硬件不做(原因与重开条件见 docs/任务规划/UI补齐.md §5)——手动录波与录波回放两叶 已随录波道绑页,「不做」清单里的录波那一项已销。 口径闭合:未绑 3 = 待做 0(§1 清单已清空)+ 不做 3(遥信 3);43 是节点行数、不是叶数(= 9 个菜单节点 + 34 叶)。 已绑叶数以生成物 UI_PAGE_MAP_COUNT 为准:不剔 ui_menu_tree.txt 文件头的注释示例行时,按 #page= 文本计数会得 32(= 31 + 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 独立模块与暂缓项 当前不排 开入开出、104 文件传输单独立项(SNTP 已单独立项并于 2026-11-04 落地 #73,:8888 随 #78 退役);RS-485 与内存优化按各自重启条件
独立 故障录波(1 kHz · 8 路原始码值 · 单通道回放) 代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环,余注量对表与人到场项 用户裁定 2026-10-29 录波先行:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的代码侧判据已收口(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);2026-10-31 远程半轮已过六项(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」已于 2026-11-02 远程修复并板级闭环(根因 = 读侧 wave_store_seg_path() 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);没跑的是注量对表那半轮(注 1 V / 50 Hz、与 meas: 行和 104 浮点遥测对表、回放页放坏段与空态画面)加 P 触发 / bench T 源,全部结果与清单见 docs/子系统设计/故障录波设计说明.md §10「板级远程半轮记录」。板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10(原卡片登记簿 2026-10-30 随销项并入后删除);与 UI 道互斥(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物

2.1 关键依赖

  • UI:写路径、整定 4 页、装置维护 3 页与遥测死区/系数 2 页已收口(含上板判据与真机回读); 菜单树、页面注册表与字库都是生成物,同刻只允许一条道写。
  • 送检:已知电压注入(✅ 2026-10-27 闭环)→〔信号发生器动态波形验证 —— 手边可做,与后两关并行、不阻塞送检〕 → 端子/子板变比确认 → 标准源两点标定 → 保护解除闭锁 → 送检。
  • 保护扩展:标准源未到位前不新增无法验证的判据;跨转换器相位、功率、对称分量类 功能必须等 V0.2 硬件。
  • 结构债:UI 完成后先做 net 收口;RS-485 白名单、内存优化、仓库体积等观察项不抢占 当前编码道。

3. 维护约定

  1. 完成即删除待办条目,同时清理其他文档对它的引用;结论和证据写入模块文档, 历史由 git log 保留。
  2. 当前任务只改 UI补齐.md,后续事项只改 登记簿.md;顺序变化才改本文件 §2。
  3. 数据可信.md 的 §2、§4、§7~§10 仍被代码头注释引用为设计依据,不能按“已完成” 删掉;其待办只认 §5 的任务卡表(标识列用语义短语,卡片增减不改本条口径)。
  4. 专项文档只放还没闭环的约束;已落地事项的规格正文归代码头注释或模块文档, 销项即删文件并把引用改指现行出处(先例:测试与架构专项.md 已删除 2026-10-28, 唯一未闭环的「采集链路测试可验证性约束」并入 暂缓-RS485.md)。
  5. 任务分支不直接修改 docs/任务规划/**;状态更新与销项由主工作树统一处理。
  6. 并行开发机制、工作树和锁的使用见 docs/环境与部署/并行任务工作树方案.md。 本文件夹不再另维护一份分道、批次和写域方案。
  7. 暂缓不是完成:条目必须保留重启条件;没有重启条件的“以后再说”应写成观察项或删除。