diff --git a/scripts/id_aliases.json b/scripts/id_aliases.json index 0b947535..99356045 100644 --- a/scripts/id_aliases.json +++ b/scripts/id_aliases.json @@ -45,8 +45,8 @@ }, "N-30": { "to": null, - "status": "retired-to-phrase", - "note": "2026-10-26 方案 B:登记簿 # 列改短语「relisten 沉降段原语化受阻」;原 resolved-in-place 条目由本条取代;旧号不得再指" + "status": "resolved-in-place", + "note": "sock_reset 原语收口受阻项:登记簿行仍在(2026-10-14 建档),编号规范 §4.1 误记为已销项 → 以登记簿为准" }, "S-3": { "to": null, @@ -170,11 +170,6 @@ "status": "void", "note": "栈余量收口条目已随 M1 台架闭环销项(2026-10-12),登记簿行已删,结论在 docs/内存管理/RAM使用分析与优化方案.md §4.0.6(原 §1.4,2026-10-22 层级编号)" }, - "N-30": { - "to": null, - "status": "resolved-in-place", - "note": "sock_reset 原语收口受阻项:登记簿行仍在(2026-10-14 建档),编号规范 §4.1 误记为已销项 → 以登记簿为准" - }, "Trap 19": [ { "to": null, @@ -3322,6 +3317,71 @@ "to": null, "status": "void", "note": "审查报告并轨号(报告 N-14),2026-10-25 随其条目 N-22 销项一并作废(映射记录见 docs/编号规范.md §4;修复本体沿革见 N-22 别名注)。旧号勿复用" + }, + "F-NET-2": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「静默回收无人认领」。" + }, + "F-NET-3": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「冗余监听 API 面」。" + }, + "F-NET-4": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「iec104 过期门控」。" + }, + "F-NET-7": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「全局读即清搁浅事件」。" + }, + "F-NET-15": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「沉降门放大器」。" + }, + "F-NET-17": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「风暴态三机制」。" + }, + "F-DRV-1": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「七处独立回读」。" + }, + "F-DRV-4": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「close 序列两套变体」。" + }, + "F-DRV-8": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「命令完成阻塞原语」。" + }, + "F-DRV-13": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「链路事件无人消费」。" + }, + "F-MS-8": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「有损镜像决策窗口」。" + }, + "F-MS-9": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。条目名「去抖冷却自偿成本」。" + }, + "F-DRV-9": { + "to": null, + "status": "retired-to-phrase", + "note": "2026-10-27 批次一(网络设计 F-* 条目号转语义,docs/编号规范.md §9.1):现行指代 = docs/网络/网络自愈架构设计.md §7「条目名」列短语;§7 编号列仅作历史对照(定义行不算引用),旧号此后不得再指。映射 scripts/rename_maps/batch7-f-net-semantic.json。该号在 §7 从来没有定义行(孤儿引用)→ 按 §4.1.1「删号留事实」就地删除引用,**不得补定义**。" } }, "id_aliases": {} diff --git a/scripts/rename_maps/batch-lprot-semantic.json b/scripts/rename_maps/batch-lprot-semantic.json new file mode 100644 index 00000000..e4d0eca1 --- /dev/null +++ b/scripts/rename_maps/batch-lprot-semantic.json @@ -0,0 +1,580 @@ +{ + "batches": [ + { + "family": "L-PROT", + "old": "\\bL1\\-1(?P)\\b", + "new": "周期 CONVST 重触发", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-1 转语义短语「周期 CONVST 重触发」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-2(?P)\\b", + "new": "TPAFE 快照消费", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-2 转语义短语「TPAFE 快照消费」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-3(?P)\\b", + "new": "STM32 ADC1 启动与扫描", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-3 转语义短语「STM32 ADC1 启动与扫描」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-4(?P)\\b", + "new": "通道语义映射", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-4 转语义短语「通道语义映射」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-5(?P)\\b", + "new": "通道标定(一次系数 + 零漂)", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-5 转语义短语「通道标定(一次系数 + 零漂)」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-6(?P)\\b", + "new": "采样有效性校验", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-6 转语义短语「采样有效性校验」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-7(?P)\\b", + "new": "等周波采样(软件测频 + 调频闭环)", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-7 转语义短语「等周波采样(软件测频 + 调频闭环)」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL1\\-9(?P)\\b", + "new": "二次谐波/五次谐波提取入口", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L1-9 转语义短语「二次谐波/五次谐波提取入口」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-1(?P)\\b", + "new": "全周傅氏系数表", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-1 转语义短语「全周傅氏系数表」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-2(?P)\\b", + "new": "基波相量实例", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-2 转语义短语「基波相量实例」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-3(?P)\\b", + "new": "相量有效值输出", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-3 转语义短语「相量有效值输出」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-4(?P)\\b", + "new": "相位输出", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-4 转语义短语「相位输出」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-5(?P)\\b", + "new": "线/负序/零序合成", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-5 转语义短语「线/负序/零序合成」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-6(?P)\\b", + "new": "每 1 ms 滑动窗刷新", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-6 转语义短语「每 1 ms 滑动窗刷新」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL2\\-7(?P)\\b", + "new": "双区指针原子交换", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L2-7 转语义短语「双区指针原子交换」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL3\\-1(?P)\\b", + "new": "三段式相间过流", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L3-1 转语义短语「三段式相间过流」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL3\\-2(?P)\\b", + "new": "三段式零序过流", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L3-2 转语义短语「三段式零序过流」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL3\\-5(?P)\\b", + "new": "过频 / 低频", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L3-5 转语义短语「过频 / 低频」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL4\\-1(?P)\\b", + "new": "跳闸出口(KO)", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L4-1 转语义短语「跳闸出口(KO)」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL4\\-3(?P)\\b", + "new": "出口自检", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L4-3 转语义短语「出口自检」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL4\\-4(?P)\\b", + "new": "SOE 记录", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L4-4 转语义短语「SOE 记录」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL4\\-5(?P)\\b", + "new": "动作记录", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L4-5 转语义短语「动作记录」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL5\\-1(?P)\\b", + "new": "定值校验和", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L5-1 转语义短语「定值校验和」(用户 2026-10-27 裁定)" + }, + { + "family": "L-PROT", + "old": "\\bL5\\-4(?P)\\b", + "new": "自检失败闭锁", + "files": [ + "docs/算法/继电保护功能复现规划.md", + "docs/测试说明/boot_log_data/README.md", + "docs/测试说明/相量层单元测试说明.md", + "docs/硬件平台/ADC通道映射说明.md", + "App/algo/*.c", + "App/algo/*.h", + "App/task/*.c", + "Src/*.c", + "test/host/*/*.py", + "test/host/*/*.c", + "scripts/*.py", + "tools/**/*.py", + "docs/算法/*.md", + "docs/门禁说明/*.md", + ".pre-commit-config.yaml", + "AGENTS.md" + ], + "note": "批次八:保护功能号 L5-4 转语义短语「自检失败闭锁」(用户 2026-10-27 裁定)" + } + ] +} diff --git a/scripts/rename_maps/batch7-f-net-semantic.json b/scripts/rename_maps/batch7-f-net-semantic.json new file mode 100644 index 00000000..4fd6d918 --- /dev/null +++ b/scripts/rename_maps/batch7-f-net-semantic.json @@ -0,0 +1,99 @@ +{ + "schema": 1, + "batch": "批次一 F-* 收口(2026-10-27):网络设计条目号转语义短语", + "applied_by": "scripts/rename_ids.py", + "record": "docs/编号规范.md §9.1(F-* 行)", + "note": "§7 表保留 12 条编号仅作历史对照;正文/代码注释改用「§7 + 条目名」。作用域刻意只列 2 个文件,不写 glob:docs/硬件平台/ 的 T1/T2/T3 位号与 docs/芯片手册/ 的时序记号同属裸形高发区,而各文档 Mermaid 图里有单字母节点名(F/EV/LN…),故 old 一律带上下文、限定完整三段形态。变更记录行(BSD_Socket_API_使用指南.md:1488)由 SKIP_LINE 豁免、不改写(§8.1 历史快照)。", + "batches": [ + { + "family": "FEAT", + "old": "决策窗口((?PF-MS-8))", + "new": "决策窗口(§7「有损镜像决策窗口」)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "I1 后果列" + }, + { + "family": "FEAT", + "old": "又一层补丁((?PF-DRV-9))", + "new": "又一层补丁(原引用号在 §7 无定义行,删号留事实)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "孤儿引用:I6 本身即结论" + }, + { + "family": "FEAT", + "old": "((?PF-NET-7);测试/台架代码同样禁自行读取", + "new": "(§7「全局读即清搁浅事件」;测试/台架代码同样禁自行读取", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "I7 不变量列" + }, + { + "family": "FEAT", + "old": "自偿成本((?PF-MS-9))", + "new": "自偿成本(§7「去抖冷却自偿成本」)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "§2 去抖冷却段" + }, + { + "family": "FEAT", + "old": "(静默回收,(?PF-NET-2))", + "new": "(静默回收;§7「静默回收无人认领」)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "形态⑤ 表行" + }, + { + "family": "FEAT", + "old": "(M1,(?PF-NET-15))", + "new": "(M1;§7「沉降门放大器」)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "§4.3 沉降无条件化" + }, + { + "family": "FEAT", + "old": "放大 (?PF-NET-7) 供给面", + "new": "放大「全局读即清」的搁浅面", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "§4.3 M1/M4-lite 同批纪律" + }, + { + "family": "FEAT", + "old": "\\*\\*M1 单独上会放大 (?PF-NET-7)\\*\\*", + "new": "**M1 单独上会放大全局读即清的搁浅面(§7)**", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "§5.2 E7 结论列" + }, + { + "family": "FEAT", + "old": "三机制((?PF-NET-17))", + "new": "三机制(§7「风暴态三机制」)", + "files": [ + "docs/网络/网络自愈架构设计.md" + ], + "note": "§5.2 E8 结论列" + }, + { + "family": "FEAT", + "old": "(B3/(?PF-NET-7))", + "new": "(B3;全局读即清会搁浅其它 Socket 事件,docs/网络/网络自愈架构设计.md §7)", + "files": [ + "test/host/net_socket/net_socket_test.c" + ], + "note": "主机侧单测注释:改注释不动断言,不涉 @build 之外的语义" + } + ] +} diff --git a/scripts/rename_maps/batch8-s-review-dead.json b/scripts/rename_maps/batch8-s-review-dead.json new file mode 100644 index 00000000..d4f75087 --- /dev/null +++ b/scripts/rename_maps/batch8-s-review-dead.json @@ -0,0 +1,198 @@ +{ + "schema": 1, + "batch": "批次四(2026-10-27 实测清点):复审残号 S-REVIEW + 两条无主死号的残留引用收口(删号留事实)", + "applied_by": "scripts/rename_ids.py --no-alias", + "record": "docs/编号规范.md §4.1.1(复审残号 S1~S14 / E-xx → 写条目本身)、§4.5、§7.3", + "note": "只清「号当标识用」的标注与待办用法;别名表**故意不写**:这些裸形(S1/S4/S5/S7/S9/S11)在 .c/.h 注释、.pre-commit-config.yaml 与在飞的 docs/测试说明/自动化测试流程.md 里还有活引用,写进别名表等于把那些残留一起洗成「已解析」(§4.1.1:部分死号故意不进别名表,好让门禁继续咬残留引用)。刻意不碰:① 属主登记处 docs/任务规划/测试与架构专项.md(§2.1 S12 定义行 + 首行指针;删行销项属 Ask-first);② 变更记录行与「原复审项 S4,已闭环」这类显式历史标注;③ 任何 .c/.h(改注释也要重跑 @build,本批零代码);④ 工作区里别人在飞的脏文件;⑤ 实机测试实施指南.md:5「(S7、A1~A4)」——A1~A4 与本文 A 表(前置检查 A2~A6)同形、语义待属主确认,按 §7.3 第 3 条不猜。", + "batches": [ + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "基线行为;可选优化 (?PS7)(poll 前置 \\+ while 排空),低优先", + "new": "基线行为;可选优化(poll 前置 + while 排空),低优先", + "note": "§10.1 表行 D5:S7 是 uiTask 排空待办的死号" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "其余待办 (?PS9)(按键后立即取帧", + "new": "其余待办(按键后立即取帧", + "note": "§10.1 表行 D8:客户端待办死号" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "^4\\. \\*\\*(?PS1)\\*\\* 超时参数分档", + "new": "4. 超时参数分档", + "note": "§10.2 待办列表项 4" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "^6\\. \\*\\*(?PS4)\\*\\* 发送块配额与 MSS", + "new": "6. 发送块配额与 MSS", + "note": "§10.2 待办列表项 6" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "^7\\. \\*\\*(?PS5)\\*\\* 去掉一次 3200B 拷贝", + "new": "7. 去掉一次 3200B 拷贝", + "note": "§10.2 待办列表项 7" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/链路延迟测试说明.md" + ], + "old": "^8\\. \\*\\*(?PS7)\\*\\* uiTask:", + "new": "8. uiTask:", + "note": "§10.2 待办列表项 8" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/实机测试实施指南.md" + ], + "old": "堆低水位告警实测(P1-B / (?PS11))", + "new": "堆低水位告警实测(P1-B)", + "note": "步骤表:保留 P1-B 档位词,去掉复审死号" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/实机测试实施指南.md" + ], + "old": "GD5F 错误通道回归(P2-A / (?PS9))", + "new": "GD5F 错误通道回归(P2-A)", + "note": "步骤表:同上" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/实机测试实施指南.md" + ], + "old": "工程卫生(P3 / (?PS5) \\+ S4 \\+ 待核实项)", + "new": "工程卫生(P3 + 待核实项)", + "note": "步骤表:S5+S4 两个死号同批去掉" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/实机测试实施指南.md" + ], + "old": "含新增 (?PS5) `test-cppcheck`", + "new": "含新增 `test-cppcheck`", + "note": "步骤 7 出口判据里的钩子来源标注" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/子系统设计/看门狗设计说明.md" + ], + "old": "——原计划的 (?PS1) 已降级", + "new": "——原计划的模拟器侧看门狗自检已降级", + "note": "§4.7:句子本身已写明是什么(模拟器不编译本模块)" + }, + { + "family": "S-REVIEW", + "files": [ + "docs/测试说明/存储维护与容量恢复.md" + ], + "old": "自检台账清零,重建 (?PS7) 审计基线", + "new": "自检台账清零,重建联合判定审计基线", + "note": "§4.2 标题:S7 = 自检记录联合判定" + }, + { + "family": "S-LDG", + "files": [ + "docs/测试说明/boot_log_data/README.md" + ], + "old": "本流程立项:原 `../../任务规划/README\\.md` (?PS-2)(2026-09-22 提出", + "new": "本流程立项:原 `../../任务规划/README.md` 的「启动日志固化流程」条目(2026-09-22 提出", + "note": "S-2 在别名表标 void(两义均死),短语取自别名 note" + }, + { + "family": "E-AUD", + "files": [ + "docs/测试说明/m2_data/README.md" + ], + "old": "(`--ftp-stress`,(?PE-02) 复现)", + "new": "(`--ftp-stress` 复现)", + "note": "E-AUD 族无属主登记处(审计发现号)→ 删号留事实" + }, + { + "family": "S-REVIEW", + "files": [ + "scripts/check_test_traceability.py" + ], + "old": "\"\"\"check_test_traceability\\.py - (?PS4) 用例追溯校验", + "new": "\"\"\"check_test_traceability.py - 用例追溯校验", + "note": "脚本自述里的死号标注;下一行的「原复审项 S4,已闭环」是显式历史标注,保留" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/verify_log.py" + ], + "old": "自检记录联合判定((?PS7),2026-10 实机窗口", + "new": "自检记录联合判定(2026-10 实机窗口", + "note": "skill 脚本文案" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/run_boot_test.py" + ], + "old": "自检台账联合判定((?PS7)):默认", + "new": "自检台账联合判定:默认", + "note": "run_boot_test.py 流程注释" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/run_boot_test.py" + ], + "old": "干净台账,(?PS7) 判 PASS", + "new": "干净台账 → 判定 PASS", + "note": "同上" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/run_boot_test.py" + ], + "old": "selftest\\.log \\((?PS7)\\): missing/empty", + "new": "selftest.log: missing/empty", + "note": "argparse help 文案(纯 ASCII,无脚本按字面量读它)" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/run_boot_test.py" + ], + "old": "自检台账基线((?PS7)「只看本次新增」)", + "new": "自检台账基线(只看本次新增)", + "note": "同上" + }, + { + "family": "S-REVIEW", + "files": [ + ".dsh/skills/serial-boot-test/scripts/run_boot_test.py" + ], + "old": "自检记录判定((?PS7)):默认只判", + "new": "自检记录判定:默认只判", + "note": "同上" + } + ] +} diff --git a/scripts/test_coverage_baseline.json b/scripts/test_coverage_baseline.json index 8d08fd66..bc586c0a 100644 --- a/scripts/test_coverage_baseline.json +++ b/scripts/test_coverage_baseline.json @@ -2,11 +2,11 @@ "files": { "App/algo/adc_cal.c": { "func_rate": 1.0, - "funcs_covered": 14, - "funcs_valid": 14, - "line_rate": 0.9846, - "lines_covered": 128, - "lines_valid": 130 + "funcs_covered": 16, + "funcs_valid": 16, + "line_rate": 0.986, + "lines_covered": 141, + "lines_valid": 143 }, "App/algo/adc_health.c": { "func_rate": 1.0, @@ -65,12 +65,12 @@ "lines_valid": 179 }, "App/algo/run_par.c": { - "func_rate": 1.0, - "funcs_covered": 10, - "funcs_valid": 10, - "line_rate": 0.945, - "lines_covered": 103, - "lines_valid": 109 + "func_rate": 0.9286, + "funcs_covered": 13, + "funcs_valid": 14, + "line_rate": 0.8837, + "lines_covered": 114, + "lines_valid": 129 }, "App/algo/sample_ring.c": { "func_rate": 1.0, @@ -148,9 +148,9 @@ "func_rate": 1.0, "funcs_covered": 22, "funcs_valid": 22, - "line_rate": 0.9926, - "lines_covered": 403, - "lines_valid": 406 + "line_rate": 0.9927, + "lines_covered": 410, + "lines_valid": 413 }, "App/protocol/iec104/iec104_asdu.c": { "func_rate": 1.0, @@ -162,11 +162,11 @@ }, "App/protocol/iec104/iec104_comm.c": { "func_rate": 1.0, - "funcs_covered": 5, - "funcs_valid": 5, - "line_rate": 1.0, - "lines_covered": 36, - "lines_valid": 36 + "funcs_covered": 7, + "funcs_valid": 7, + "line_rate": 0.98, + "lines_covered": 49, + "lines_valid": 50 }, "App/protocol/iec104/iec104_link.c": { "func_rate": 1.0, @@ -189,16 +189,24 @@ "funcs_covered": 4, "funcs_valid": 4, "line_rate": 1.0, - "lines_covered": 99, - "lines_valid": 99 + "lines_covered": 100, + "lines_valid": 100 }, "App/task/iec104_serv.c": { - "func_rate": 0.8889, - "funcs_covered": 8, - "funcs_valid": 9, - "line_rate": 0.8311, - "lines_covered": 123, - "lines_valid": 148 + "func_rate": 0.8182, + "funcs_covered": 9, + "funcs_valid": 11, + "line_rate": 0.7706, + "lines_covered": 131, + "lines_valid": 170 + }, + "App/util/boot_stats.c": { + "func_rate": 1.0, + "funcs_covered": 6, + "funcs_valid": 6, + "line_rate": 0.963, + "lines_covered": 78, + "lines_valid": 81 }, "App/util/sha256.c": { "func_rate": 1.0, @@ -337,12 +345,12 @@ "lines_valid": 112 }, "Drivers/BSP/UI/ui_data.c": { - "func_rate": 0.9667, - "funcs_covered": 29, - "funcs_valid": 30, - "line_rate": 0.9553, - "lines_covered": 299, - "lines_valid": 313 + "func_rate": 0.9767, + "funcs_covered": 42, + "funcs_valid": 43, + "line_rate": 0.9637, + "lines_covered": 372, + "lines_valid": 386 }, "Drivers/BSP/UI/ui_net_sink.c": { "func_rate": 0.7692, @@ -365,10 +373,10 @@ "modules": { "adc_cal": { "files": { - "App/algo/adc_cal.c": 130, + "App/algo/adc_cal.c": 143, "App/cfg/cfg_file.c": 689 }, - "lines_total": 819, + "lines_total": 832, "ok": true }, "adc_health": { @@ -385,6 +393,13 @@ "lines_total": 120, "ok": true }, + "boot_stats": { + "files": { + "App/util/boot_stats.c": 81 + }, + "lines_total": 81, + "ok": true + }, "cfg_file": { "files": { "App/cfg/cfg_file.c": 689 @@ -432,28 +447,28 @@ }, "iec104": { "files": { - "App/algo/adc_cal.c": 130, + "App/algo/adc_cal.c": 143, "App/algo/freq.c": 130, "App/algo/meas.c": 64, "App/algo/phasor.c": 55, "App/algo/prot_elm.c": 122, "App/algo/prot_set.c": 179, - "App/algo/run_par.c": 109, + "App/algo/run_par.c": 129, "App/algo/sample_ring.c": 41, "App/cfg/cfg_file.c": 689, "App/protocol/iec104/iec104_asdu.c": 103, - "App/protocol/iec104/iec104_comm.c": 36, + "App/protocol/iec104/iec104_comm.c": 50, "App/protocol/iec104/iec104_link.c": 405, "App/protocol/iec104/iec104_pts.c": 255 }, - "lines_total": 2318, + "lines_total": 2365, "ok": true }, "iec104_serv": { "files": { - "App/task/iec104_serv.c": 148 + "App/task/iec104_serv.c": 170 }, - "lines_total": 148, + "lines_total": 170, "ok": true }, "lftpd": { @@ -547,14 +562,14 @@ }, "prot_dim": { "files": { - "App/algo/adc_cal.c": 130, + "App/algo/adc_cal.c": 143, "App/algo/freq.c": 130, "App/algo/phasor.c": 55, "App/algo/prot_elm.c": 122, "App/algo/prot_set.c": 179, "App/algo/sample_ring.c": 41 }, - "lines_total": 657, + "lines_total": 670, "ok": true }, "prot_elm": { @@ -585,11 +600,11 @@ }, "run_par": { "files": { - "App/algo/adc_cal.c": 130, - "App/algo/run_par.c": 109, + "App/algo/adc_cal.c": 143, + "App/algo/run_par.c": 129, "App/cfg/cfg_file.c": 689 }, - "lines_total": 928, + "lines_total": 961, "ok": true }, "sha256": { @@ -624,9 +639,9 @@ }, "sys_log_mcu": { "files": { - "App/log/sys_log_mcu.c": 406 + "App/log/sys_log_mcu.c": 413 }, - "lines_total": 406, + "lines_total": 413, "ok": true }, "task_prof": { @@ -638,17 +653,17 @@ }, "time_sync": { "files": { - "App/sync/time_sync.c": 99 + "App/sync/time_sync.c": 100 }, - "lines_total": 99, + "lines_total": 100, "ok": true }, "ui_data": { "files": { - "Drivers/BSP/UI/ui_data.c": 313, + "Drivers/BSP/UI/ui_data.c": 386, "Drivers/BSP/UI/ui_w_soe.c": 62 }, - "lines_total": 375, + "lines_total": 448, "ok": true }, "ui_sink": { @@ -708,6 +723,7 @@ "App/protocol/iec104/iec104_pts.c", "App/sync/time_sync.c", "App/task/iec104_serv.c", + "App/util/boot_stats.c", "App/util/sha256.c", "App/util/sys_clock.c", "App/util/task_prof.c", @@ -731,16 +747,16 @@ ], "totals": { "files_generated_excluded": 5, - "files_tested": 45, - "files_untested": 142, + "files_tested": 46, + "files_untested": 151, "func_rate": 0.9317, - "funcs_covered": 505, - "funcs_valid": 542, - "line_rate": 0.8988, - "lines_covered": 6854, - "lines_valid": 7626, - "modules_ok": 40, - "modules_total": 40 + "funcs_covered": 532, + "funcs_valid": 571, + "line_rate": 0.8983, + "lines_covered": 7058, + "lines_valid": 7857, + "modules_ok": 41, + "modules_total": 41 }, "untested_sources": [ { @@ -751,6 +767,10 @@ "code_lines": 689, "path": "Drivers/BSP/GD5F2GQ5UE/gd5f2gq5ue.c" }, + { + "code_lines": 407, + "path": "App/app/ui_data_feed.c" + }, { "code_lines": 353, "path": "Drivers/BSP/UI/ui_w_setview.c" @@ -759,16 +779,12 @@ "code_lines": 329, "path": "Drivers/BSP/UI/ui_menu_view.c" }, - { - "code_lines": 300, - "path": "App/app/ui_data_feed.c" - }, { "code_lines": 300, "path": "Drivers/BSP/UI/ui_content_page.c" }, { - "code_lines": 285, + "code_lines": 286, "path": "App/task/default_task.c" }, { @@ -807,6 +823,14 @@ "code_lines": 204, "path": "Drivers/BSP/UI/ui_standby.c" }, + { + "code_lines": 200, + "path": "Drivers/BSP/UI/ui_w_ytview.c" + }, + { + "code_lines": 196, + "path": "Drivers/BSP/UI/ui_data.h" + }, { "code_lines": 157, "path": "Drivers/BSP/TPAFE5160/tpafe5160.c" @@ -815,14 +839,6 @@ "code_lines": 150, "path": "Drivers/BSP/UI/ui_page_password.c" }, - { - "code_lines": 146, - "path": "App/app/app_main.c" - }, - { - "code_lines": 146, - "path": "Drivers/BSP/UI/ui_data.h" - }, { "code_lines": 146, "path": "Drivers/BSP/UI/ui_page_device_info.c" @@ -831,10 +847,18 @@ "code_lines": 134, "path": "App/task/protect_task.c" }, + { + "code_lines": 132, + "path": "App/app/app_main.c" + }, { "code_lines": 129, "path": "Drivers/BSP/UI/ui_page_clear.c" }, + { + "code_lines": 129, + "path": "Drivers/BSP/UI/ui_page_comm.c" + }, { "code_lines": 126, "path": "Drivers/BSP/UI/ui_menu.c" @@ -951,6 +975,10 @@ "code_lines": 41, "path": "Drivers/BSP/NET/lftpd/private/lftpd_status.h" }, + { + "code_lines": 41, + "path": "Drivers/BSP/UI/ui_page_calib.c" + }, { "code_lines": 41, "path": "Drivers/BSP/UI/ui_page_view_param.c" @@ -967,6 +995,10 @@ "code_lines": 41, "path": "Drivers/BSP/UI/ui_page_view_word.c" }, + { + "code_lines": 40, + "path": "Drivers/BSP/UI/ui_page_deadband.c" + }, { "code_lines": 36, "path": "Drivers/BSP/UI/ui_w_records.h" @@ -991,10 +1023,18 @@ "code_lines": 33, "path": "Drivers/BSP/UI/ui_page_action.h" }, + { + "code_lines": 32, + "path": "App/util/boot_stats.h" + }, { "code_lines": 32, "path": "Drivers/BSP/RS485/rs485.h" }, + { + "code_lines": 31, + "path": "App/algo/adc_cal.h" + }, { "code_lines": 31, "path": "App/protocol/iec104/iec104_pts.h" @@ -1049,11 +1089,15 @@ }, { "code_lines": 24, - "path": "App/algo/adc_cal.h" + "path": "Drivers/BSP/UI/ui_tokens.h" }, { - "code_lines": 24, - "path": "Drivers/BSP/UI/ui_tokens.h" + "code_lines": 23, + "path": "App/protocol/iec104/iec104_comm.h" + }, + { + "code_lines": 22, + "path": "App/algo/run_par.h" }, { "code_lines": 22, @@ -1083,10 +1127,6 @@ "code_lines": 22, "path": "Drivers/BSP/UI/ui_page_soe.c" }, - { - "code_lines": 21, - "path": "App/protocol/iec104/iec104_comm.h" - }, { "code_lines": 20, "path": "Drivers/BSP/UI/ui_net_sink.h" @@ -1099,10 +1139,6 @@ "code_lines": 19, "path": "App/fs/vol_lock.h" }, - { - "code_lines": 18, - "path": "App/algo/run_par.h" - }, { "code_lines": 18, "path": "Drivers/BSP/NET/lftpd/lftpd.h" @@ -1155,6 +1191,10 @@ "code_lines": 13, "path": "Drivers/BSP/UI/ui_pwd_def.h" }, + { + "code_lines": 13, + "path": "Drivers/BSP/UI/ui_w_ytview.h" + }, { "code_lines": 12, "path": "App/app/app_main.h" @@ -1175,6 +1215,10 @@ "code_lines": 11, "path": "App/sync/time_sync.h" }, + { + "code_lines": 11, + "path": "App/task/iec104_serv.h" + }, { "code_lines": 11, "path": "App/task/net_task.h" @@ -1199,6 +1243,10 @@ "code_lines": 11, "path": "Drivers/BSP/UI/ui_menu.h" }, + { + "code_lines": 11, + "path": "Drivers/BSP/UI/ui_page_calib.h" + }, { "code_lines": 11, "path": "Drivers/BSP/UI/ui_page_clear.h" @@ -1207,6 +1255,14 @@ "code_lines": 11, "path": "Drivers/BSP/UI/ui_page_clock.h" }, + { + "code_lines": 11, + "path": "Drivers/BSP/UI/ui_page_comm.h" + }, + { + "code_lines": 11, + "path": "Drivers/BSP/UI/ui_page_deadband.h" + }, { "code_lines": 11, "path": "Drivers/BSP/UI/ui_page_net_cfg.h" @@ -1267,10 +1323,6 @@ "code_lines": 5, "path": "App/cfg/prot_set_store.h" }, - { - "code_lines": 5, - "path": "App/task/iec104_serv.h" - }, { "code_lines": 5, "path": "App/task/protect_task.h" diff --git a/simulator/README.md b/simulator/README.md index 3f973363..511c1c87 100644 --- a/simulator/README.md +++ b/simulator/README.md @@ -53,7 +53,7 @@ simulator/ | `build_sim.bat` / `build_sim.ps1` | 一键构建入口:vswhere 探测本机 VS 大版本(16=2019 / 17=2022 / 18=2026,取已装最高)→ 映射 CMake 生成器;`build/` 缓存生成器与本机不符(换机/升级 VS)时自动删除重建(带重试,抗文件锁)。**构建入口一律走它,文档/命令中勿写死生成器版本**;`.bat` 仅负责绕过 PowerShell 执行策略并转交 `.ps1` | | `CMakeLists.txt` | 收集 LVGL 源码(`../Lib/lvgl`)+ 共享 UI 源码(`../Drivers/BSP/UI`)+ 通用配置文件引擎(`../App/cfg_file.c`、`../Drivers/BSP/NETCFG` 的 net_cfg;`net_cfg_legacy` 已于 2026-10-10 删除)+ `sim/` 平台层,链接预编译 SDL2,产出 `lvgl_sim.exe` | | `i1_to_png.py` | 把 `--screenshot` 产出的 I1(1bpp) 原始位图转成 PNG,便于离线比对设计稿。详见 §3.5 | -| `tests/` | 无头回归脚本(菜单 8 状态像素回归 + 内容页 47 页:文本断言 / 反向断言 / 黄金参考逐字节比对);`ref/shot_*.bin` **随仓库入库**(判据本体,改动等于改判据,评审须逐页过目),`ref/*.png` 是本地派生的目检图(`.gitignore` 挡掉)。详见 §3.6 | +| `tests/` | 无头回归脚本(菜单 8 状态像素回归 + 内容页 53 页:文本断言 / 反向断言 / 黄金参考逐字节比对);`ref/shot_*.bin` **随仓库入库**(判据本体,改动等于改判据,评审须逐页过目),`ref/*.png` 是本地派生的目检图(`.gitignore` 挡掉)。详见 §3.6 | > **共享代码不复制**:`ui_menu.c` / `ui_font_cn_12.c` / `ui_net_sink.c` 直接引用 `Drivers/BSP/UI/` 下的原件, > MCU 与 PC 两端永远同步。**不要**在本目录内复制 UI 源码。 @@ -222,7 +222,7 @@ UI 改动的自动化门禁脚本(完整流程见 `docs/UI设计/UI_自动化 | 脚本 | 原理 | 失败输出 | |------|------|----------| | `check_menu_rows.py` | 键序注入(u/d/e/s)跑 8 个菜单状态,断言选中行白带、非选行黑底白字、框体边框、往返状态逐像素一致;MENU-STATE-00 池水位须等于脚本内 `MENU_POOL_BASELINE` | 未过断言清单 + 保留临时截图 | -| `check_content_pages.py` | ① 文本断言(解析字体字形,在截图 y 带内精确匹配期望串,不依赖 `ref/`)② **反向断言**(`ABSENT` 表:某串**不该**出现,如查看页/只读态不得出现「未标定」徽标与「保存」行——像素参考会被 `--update` 刷成"自证正确",反向断言不依赖参考图)③ **47 页**无头截图与 `tests/ref/shot_*.bin` **逐字节**比对(含 2026-10-26 新增的整定 9 态:进页 / 保存行 / 只读态 / 编辑态 / 越界 / 保存 OK / 落定后可读 / 二态回绕);另校验开页-关页往返池水位 = `POOL_AFTER_ROUNDTRIP` | 文本未命中项 / 反向断言被命中 / 差异像素数 + 双方 ink runs 对照 | +| `check_content_pages.py` | ① 文本断言(解析字体字形,在截图 y 带内精确匹配期望串,不依赖 `ref/`)② **反向断言**(`ABSENT` 表:某串**不该**出现,如查看页/只读态不得出现「未标定」徽标与「保存」行——像素参考会被 `--update` 刷成"自证正确",反向断言不依赖参考图)③ **53 页**无头截图与 `tests/ref/shot_*.bin` **逐字节**比对(含 2026-10-26 新增的整定 9 态:进页 / 保存行 / 只读态 / 编辑态 / 越界 / 保存 OK / 落定后可读 / 二态回绕);另校验开页-关页往返池水位 = `POOL_AFTER_ROUNDTRIP` | 文本未命中项 / 反向断言被命中 / 差异像素数 + 双方 ink runs 对照 | | `check_remo_sink.py` | 启动**窗口**模拟器(非无头,`CREATE_NEW_PROCESS_GROUP` 防管道阻塞),经 TCP 7003 发 LCDMEM 取 1bpp 帧;断言首帧=LCDMEM(无 INIT 污染)/位图 3200 字节/非平凡;复用 `i1_to_png` 出目检 PNG;与无头参考(`lvgl_sim --screenshot`)逐位比对 <2% 判 MATCH。守护"INIT 污染 / 快照卡死"两个历史缺陷 | 各判据失败原因 + `sim_err.txt` 尾部 + 保留 PNG(默认不删,`--clean` 才删) | - **黄金参考与目检 PNG**(`ref/*.bin` **入库**、`ref/*.png` 本地派生不入库):换机或想目检时—— diff --git a/simulator/tests/README.md b/simulator/tests/README.md index c12b6076..12c1fc82 100644 --- a/simulator/tests/README.md +++ b/simulator/tests/README.md @@ -11,7 +11,7 @@ | `check_content_pages.py` | **内容页回归**:各内容页渲染比对 | | `check_remo_sink.py` | **推流(RemoDispBus)回归**:接收端渲染比对 | | `regen_ref_png.py` | 由 `ref/*.bin` 批量出**目检 PNG**(不产生基准;基准由 `check_content_pages.py --update` 刷) | -| `ref/*.bin` | **像素黄金参考(入库)**:47 页 × 3200 B,160×160 单色打包 | +| `ref/*.bin` | **像素黄金参考(入库)**:53 页 × 3200 B,160×160 单色打包 | ## 使用方式 diff --git a/test/host/net_socket/net_socket_test.c b/test/host/net_socket/net_socket_test.c index 1d695a0b..0c924647 100644 --- a/test/host/net_socket/net_socket_test.c +++ b/test/host/net_socket/net_socket_test.c @@ -14,7 +14,7 @@ * "登记挂起即不发即时回执"(do_notify=0)+ 失败时把 netTask 自己槽位的精确 * 错误码搭通知值带回来 + 调用方在自己的槽位里恢复 errno。 * 分片 4 状态机与闸门:监听门控 net_listener_armed 三支放行/其余挡下、net_can_read、 - * net_poll 的"全局位命中才读本 Socket SINT、永不读全局"(B3/F-NET-7)、 + * net_poll 的"全局位命中才读本 Socket SINT、永不读全局"(B3;全局读即清会搁浅其它 Socket 事件,docs/网络/网络自愈架构设计.md §7)、 * 事件计数、每轮全量刷新驱动缓存 + sock_reset 步进(I1/头阻塞)。 * 分片 5 读写错误分支:send 分块上限/短写/挂起登记/末块不登记(NET_PENDING 拒收边界)、 * recv 快路径与 EOF vs WOULDBLOCK、connect 命令被拒的回滚、accept 的