da36f4ba56
批次六余账之二(代码与脚本面)。四族都是「批次一 / 三c 改了文档、漏了代码」的半改 状态。 - 日志自愈:「L1 文件级自愈」→「文件级自愈」、「L2 错误去重」→「错误去重」(正文 本来就这么叫,层号纯属多余):App/log/soe_store.c、sys_log_mcu.c 三处、 test/host/sys_log_mcu 的测试与假件头共 10 处。 - timeSync:「L3 pending 化」→ 挂起请求 / pending 化——这条口径早写在记忆里, 今天才算全仓一致。App/sync/time_sync.c 3 处。 - CubeMX 防丢失三层优先级:scripts/check_cubemx_survival.py 6 处「由 L3 升级为 L2」「L2 受保护」「L3 兜底」→ 写进 .ioc / 搬进 USER CODE 区 / 审计兜底;变迁史 句子按「换号留事实」改写、日期原样保留。 - 采集链旧层名:App/README.md「采集与算法层(L1/L2/L3)」→「采集与算法层」; protect_task.c/.h「(L3 板端接线,B5)」→「(板端接线,B5)」。 - phasor 断言文案 19 处:改为 ASCII 的 phasor-in ring(C 字面量必须纯 ASCII)。 改前先证明这些串无耦合——全仓只有本文件含它们、harness 只看 returncode 与汇总 标记;改后 phasor 57/57 与基线同数。 - 零行为:剥注释 + 套登记表后与 HEAD 逐字节 / AST 相同;sys_log_mcu 141/141、 phasor 57/57、watchdog 47/47、freq 46/46 均与动手前基线同数。 - 同一四族的文档面(CubeMX 30、采集链 5、菜单层级 2、双写 14)由下一笔收。
27 lines
1.4 KiB
C
27 lines
1.4 KiB
C
/*
|
||
* 模块名称:保护任务(板端接线,B5)
|
||
* 模块功能:protectTask 线程入口——以固定节拍驱动保护判据
|
||
* (`prot_elm_run()`:phasor rms → 元件步进),并落实 自检失败闭锁 采样
|
||
*(保护功能清单见 docs/算法/继电保护功能复现规划.md)
|
||
* 故障闭锁(`adc_health_flags()` 电平位 → 元件状态复位 + 本拍不判据)。
|
||
* 判据本体在 `App/algo/prot_elm.c`(纯逻辑,主机侧纯逻辑单测已覆盖),本文件
|
||
* 只做消费/编排(AGENTS 目录地图:task 不装算法)。
|
||
* 线程约定:仅本任务调 prot_elm_run / prot_set_selfcheck(prot_elm.h 线程约定);
|
||
* prot_set 写在 P4 前无第二写者(104 定值写经 pts→prot_set,见注)。
|
||
* 创建日期:2026-10-12(B5)
|
||
*/
|
||
#ifndef PROTECT_TASK_H
|
||
#define PROTECT_TASK_H
|
||
|
||
/* 判据节拍(ms):V0.1 元件吃 50 Hz 基波 rms(phasor 每工频周更新)→ 20 ms
|
||
* = 一个工频周;延时精度由 prot_elm 的 now_ms 差值法保证,与节拍无关。
|
||
* 规划 §4 的"1 ms 高优先级"是参考系统瞬时值元件口径,随 P2 瞬时值元件再评。 */
|
||
#define PROTECT_TASK_CYCLE_MS 20u
|
||
|
||
/*
|
||
* 函数功能:protectTask 线程入口(freertos.c USER CODE 区创建)
|
||
*/
|
||
void protect_task(void *argument);
|
||
|
||
#endif /* PROTECT_TASK_H */
|