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。
This commit is contained in:
+8
-8
@@ -51,7 +51,7 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」
|
||||
|
||||
> **改本目录前先记五条红线**:① 取数只经 `adc_input_raw()`,不写死下标;② **禁止跨转换器**做
|
||||
> 相位 / 功率 / 矢量运算(双转换器无共同采样触发);③ 帧值已是 标定折算工程量,但 **未标定(`adc_cal_flags()` 无
|
||||
> VALID)时单位只是 ADC 引脚电压**,不是端子二次值——下游消费精度判据见「数据可信」§4.2 三态
|
||||
> VALID)时单位只是 ADC 引脚电压**,不是端子二次值——下游消费精度判据见docs/算法/采集与算法层设计说明.md §13.3 三态
|
||||
> 表;④ 工程量 → 帧的唯一折算点是 `adc_cal_apply()`,禁止旁路再乘系数;⑤ 本层不建任务、
|
||||
> 不等事件、不写日志(`adc_cal` 的 `[ERR]` 哨兵留痕是唯一例外,且每通道每开机一次),
|
||||
> `*_init()` 才可在内核前调。
|
||||
@@ -102,13 +102,13 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」
|
||||
### 3.8 `adc_cal.c` / `.h` — 标定折算通道标定折算(「数据可信」标定折算与落盘整定)
|
||||
- 折算模型:工程量 = (code + b) × k;**k 落盘用 int32 Q16(µV/码 × 65536)**、b 用
|
||||
int32 码值(负零点靠 `CFG_VAL_INT`)——单位与定点格式的选型依据见
|
||||
`docs/任务规划/数据可信.md` §4.1,勿改回 V/码 直存(Q16 只剩 20 个刻度)。
|
||||
`docs/算法/采集与算法层设计说明.md §13.2`,勿改回 V/码 直存(Q16 只剩 20 个刻度)。
|
||||
- **ROM 默认 = 量程口径冻结定死的引脚侧 LSB**(TPAFE 152.59 / STM32 805.66 µV/码,
|
||||
`docs/硬件平台/ADC通道映射说明.md` §7.1);表下标 = 语义枚举(UA0…IN7),
|
||||
V0.2 改版与本目录 `adc_input` 映射表同步改。
|
||||
- 三态可用性 `adc_cal_flags()`:VALID(已按变比标定,二次值成立——端子变比确认与两点标定前恒 0)
|
||||
/ CLIPPED(运行期按来源派生,V0.2 后自动清零)。**消费者判「能不能信」只许查它**,
|
||||
`adc_cal_apply()` 不返回可用性(「数据可信」§4.2 三态可用性表)。
|
||||
`adc_cal_apply()` 不返回可用性(docs/算法/采集与算法层设计说明.md §13.3 三态可用性表)。
|
||||
- 合法带哨兵:k ∉ ROM×[0.5,2.0] 或 |b| > 8192 → 折算回退 ROM + 每通道每开机一条
|
||||
`[ERR]` + VALID 被压制(**即便文件位图说已标定**);这层兜底同时挡坏文件与坏标定。
|
||||
- `adc_cal_set()` / `adc_cal_two_point()`:整定与两点公式的算术核已齐备(单测还原合成
|
||||
@@ -118,18 +118,18 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」
|
||||
|
||||
### 3.9 `meas.c` / `.h` — 遥测快照发布(全周傅氏相量发布侧,「数据可信」波次)
|
||||
- **唯一发布者 = adcTask**:`phasor_run()`/`freq_run()` 同拍、200 ms **tick 经过**分频
|
||||
调 `meas_tick()`(非拍计数——idle/skip 拍拉长名义节拍)。`docs/任务规划/数据可信.md` §4.5
|
||||
调 `meas_tick()`(非拍计数——idle/skip 拍拉长名义节拍)。`docs/算法/采集与算法层设计说明.md §13.9`
|
||||
定"唯一发布者 = `adc_task`" = 评审判据:全仓 `meas_tick` 调用点数须为 1;iec104Task /
|
||||
uiTask 只读。
|
||||
- 值口径(第二轮「遥测快照发布」的 A-lite 裁决):**基波有效值瞬时透传**,与 phasor 使用区
|
||||
**同拍同核逐位相等**(单测钉死);**不做** 4 点平均 / 谐波方和根——按
|
||||
docs/任务规划/数据可信.md §4.5"上送节拍非平均窗,再平均引入滞后";谐波 k-bin 轨
|
||||
docs/算法/采集与算法层设计说明.md §13.9"上送节拍非平均窗,再平均引入滞后";谐波 k-bin 轨
|
||||
(docs/算法/继电保护功能复现规划.md 「遥测谐波轨(可选)」)扩展只许结构尾部追加,
|
||||
docs/任务规划/数据可信.md §4.5 字段序 = 协议(布局由单测按偏移钉死,72 B × 双区)。
|
||||
docs/算法/采集与算法层设计说明.md §13.9 字段序 = 协议(布局由单测按偏移钉死,72 B × 双区)。
|
||||
- 并发 = phasor 双区 + 单字节索引翻转(「双区指针原子交换」同型,无锁);seq 只增供消费者判换帧。
|
||||
- 品质注入:削顶位图唯一源 = `adc_cal_flags()`(口径 docs/任务规划/数据可信.md §4.2
|
||||
- 品质注入:削顶位图唯一源 = `adc_cal_flags()`(口径 docs/算法/采集与算法层设计说明.md §13.3
|
||||
三态表;由 adc_task 编排注入,本层不链 `adc_cal`);TEMP = 最新一拍原始值透传 +
|
||||
`NT`(「数据可信」决策 5);`MEAS_QDS_*` 低字节与 104 QDS 线上字节同值
|
||||
`NT`(`docs/算法/采集与算法层设计说明.md` §13.3 三态表);`MEAS_QDS_*` 低字节与 104 QDS 线上字节同值
|
||||
(本层**不** include 协议层头——分层方向)。
|
||||
- 104 死区迁移 / 频率点绑定 = 104 改读快照那一波(道D 后续分支);读数与注入源比对 = **待台架实测**。
|
||||
|
||||
|
||||
+8
-8
@@ -2,14 +2,14 @@
|
||||
* 模块名称:通道标定与量纲折算(标定折算)——实现
|
||||
* 模块功能:见 adc_cal.h。折算模型(工程量 = (code + b) × k × 1e-6,k 为 Q16
|
||||
* µV/码)与两段 cfg 布局([adc_cal]:k_* + valid 位图;[adc_cal_ofs]:
|
||||
* b_*)照 docs/任务规划/数据可信.md §4.1 / §4.4 落地;系数口径
|
||||
* b_*)照 docs/算法/采集与算法层设计说明.md §13.2 / §4.4 落地;系数口径
|
||||
* (ROM 默认 = 量程口径冻结定死的引脚侧 LSB)见 docs/硬件平台/ADC通道映射说明.md
|
||||
* §7.1。
|
||||
* 并发契约:cfg RAM 副本属主 = 配置引擎(defaultTask 的 load/poll 原地
|
||||
* 改写),本层逐点折算现读——int32 对齐字在 Cortex-M4 上读写原子,
|
||||
* poll 重载「复位默认 + 逐键解析」存在 µs 级窗口,撞上则该拍该通道
|
||||
* 为默认值/半新值(相量 20 点窗摊薄,且触发面 = 用户改文件后 4 s
|
||||
* 沉降一次性事件)——「数据可信」§4.4 明载此设计(不挂回调)。
|
||||
* 沉降一次性事件)——docs/算法/采集与算法层设计说明.md §13.8 明载此设计(不挂回调)。
|
||||
* 合法带哨兵(防损坏文件/错误标定把假电压送进下游):k ∉ ROM×[0.5,2.0]
|
||||
* 或 |b| > ADC_CAL_B_MAX → 该通道折算回退 ROM + b=0,flags 不报
|
||||
* VALID,每通道每次开机首见沿打一条 [ERR](adc_cal_init 重置留痕)。
|
||||
@@ -46,12 +46,12 @@
|
||||
/* 常量定义区 */
|
||||
|
||||
/* 段名(≤ CFG_FILE_MAX_NAME_LEN)与键名(k_ua…b_in,均 4/5 字符)
|
||||
* ——「数据可信」§4.4 布局;键的书写顺序按该表,存储下标按语义枚举 */
|
||||
* ——docs/算法/采集与算法层设计说明.md §13.8 布局;键的书写顺序按该表,存储下标按语义枚举 */
|
||||
#define ADC_CAL_SEC_K "adc_cal"
|
||||
#define ADC_CAL_SEC_B "adc_cal_ofs"
|
||||
|
||||
/* Q16 → V 的合并比例因子:1e-6 / 65536(float 常量,精确到 1 ulp 以内即可:
|
||||
* 系数本身 Q16 舍入误差 < 0.001 %,见「数据可信」§4.1) */
|
||||
* 系数本身 Q16 舍入误差 < 0.001 %,见docs/算法/采集与算法层设计说明.md §13.2) */
|
||||
#define ADC_CAL_K_SCALE (1.52587890625e-11f)
|
||||
|
||||
/* 静态变量定义区 */
|
||||
@@ -73,7 +73,7 @@ typedef struct {
|
||||
static adc_cal_kcfg_t s_kcfg; /* 生效系数副本(引擎原地更新) */
|
||||
static adc_cal_bcfg_t s_bcfg; /* 生效零点副本 */
|
||||
|
||||
/* 工厂默认(ROM 理论系数,量程口径冻结定死,「数据可信」§4.4):**下标 = 语义枚举**
|
||||
/* 工厂默认(ROM 理论系数,量程口径冻结定死,docs/算法/采集与算法层设计说明.md §13.8):**下标 = 语义枚举**
|
||||
* (UA0 / UB1 / UC2 / UN3 / IA4 / IB5 / IC6 / IN7)——UA/UN/IA 走 TPAFE
|
||||
* (16 位 ±5 V 档),UB/UC/IB/IC/IN 走 STM32 ADC1;逐路对过
|
||||
* docs/硬件平台/ADC通道映射说明.md §3(IN=ADC11/STM32,勿再按分组顺序误写)。
|
||||
@@ -232,7 +232,7 @@ void adc_cal_init(void) {
|
||||
reg.data_size = (offsetof(adc_cal_kcfg_t, valid) + 1u); /* 33:覆盖到 valid */
|
||||
reg.p_keys = s_k_keys_tbl;
|
||||
reg.key_count = 9u;
|
||||
reg.p_cb = NULL; /* 不挂回调:RAM 副本即生效值(「数据可信」§4.4) */
|
||||
reg.p_cb = NULL; /* 不挂回调:RAM 副本即生效值(docs/算法/采集与算法层设计说明.md §13.8) */
|
||||
if (cfg_file_register(®) != 0) {
|
||||
DBG_ERROR("register '%s' FAIL (dup/full?) - calibration file values inactive",
|
||||
ADC_CAL_SEC_K);
|
||||
@@ -253,7 +253,7 @@ void adc_cal_init(void) {
|
||||
}
|
||||
|
||||
/*
|
||||
* 函数功能:码值 → 工程量折算(「数据可信」§4.1 模型)
|
||||
* 函数功能:码值 → 工程量折算(docs/算法/采集与算法层设计说明.md §13.2 模型)
|
||||
* 入口参数:sem - 语义通道;code - 原始码值 adc_semantic_t / int32_t
|
||||
* 返 回 值:工程量浮点(未标定 = ADC 引脚电压 V;TEMP/越界 = 原样透传码值) float
|
||||
* 限定条件:无(任意上下文,纯读)
|
||||
@@ -290,7 +290,7 @@ uint32_t adc_cal_flags(adc_semantic_t sem) {
|
||||
}
|
||||
/* CLIPPED 由**来源**派生(R5:STM32 侧单极性无偏置 → 负半周削顶)——
|
||||
* V0.2 改版(8 路全接 TPAFE,消除双转换器无共同采样触发)后本位自动恒 0,无需改码,
|
||||
* 对应「数据可信」§4.2 三态可用性表「页面与 104 绑定零改动」的要求 */
|
||||
* 对应docs/算法/采集与算法层设计说明.md §13.3 三态可用性表「页面与 104 绑定零改动」的要求 */
|
||||
if (s_rom_k_stm32((unsigned)sem) != 0) {
|
||||
f |= ADC_CAL_F_CLIPPED;
|
||||
}
|
||||
|
||||
+8
-8
@@ -4,11 +4,11 @@
|
||||
* 工程量 = (code + b) × k_f,k_f = k[µV/码] × 1e-6
|
||||
* k 以 int32 **Q16**(µV/码 × 65536)落盘、b 以 int32 码值落盘,
|
||||
* RAM 副本注册进 cfg_file 引擎([adc_cal] / [adc_cal_ofs] 两段,
|
||||
* 布局见 docs/任务规划/数据可信.md §4.4);**不挂回调**——RAM 副本
|
||||
* 布局见 docs/算法/采集与算法层设计说明.md §13.8);**不挂回调**——RAM 副本
|
||||
* 即生效值,逐点折算现取现用(1 kHz × 9 通道 = 9k 次/秒浮点乘,可忽略)。
|
||||
* 三态可用性:ADC_CAL_F_VALID(已按变比标定 → 工程量为二次值)与
|
||||
* ADC_CAL_F_CLIPPED(V0.1 硬件削顶)由 adc_cal_flags() 单点查询,
|
||||
* 104 / UI / 保护闭锁(未标定即闭锁)共用(docs/任务规划/数据可信.md §4.2)。
|
||||
* 104 / UI / 保护闭锁(未标定即闭锁)共用(docs/算法/采集与算法层设计说明.md §13.3)。
|
||||
* **未标定闭锁的判定本身也归本层**(`adc_cal_prot_blocked()`):它讲的是
|
||||
* 「这几路标定齐了没」,属标定层事实,不是任务编排逻辑——保护任务与 UI
|
||||
* 组装器都只是它的消费者(道F task-16 把此前的两份实现收成一份)。
|
||||
@@ -57,12 +57,12 @@ extern "C" {
|
||||
* TPAFE ±5 V 档:10 V 跨度 / 65536 码 = 152.587890625 µV/码 → ×65536 = 10,000,000(整)
|
||||
* STM32 0~3.3 V:3.3 V / 4096 码 = 805.6640625 µV/码 → ×65536 = 52,800,000(整)
|
||||
* 两个默认值在 Q16 下**无舍入**(系数定点舍入项从误差预算里抹掉,
|
||||
* 选型依据 → docs/任务规划/数据可信.md §4.1)
|
||||
* 选型依据 → docs/算法/采集与算法层设计说明.md §13.2)
|
||||
*/
|
||||
#define ADC_CAL_K_Q16_TPAFE (10000000L)
|
||||
#define ADC_CAL_K_Q16_STM32 (52800000L)
|
||||
|
||||
/* 系数合法带(「数据可信」§4.1 尾注):k 必须落在板级 ROM 系数的 ×[0.5, 2.0]
|
||||
/* 系数合法带(docs/算法/采集与算法层设计说明.md §13.2 尾注):k 必须落在板级 ROM 系数的 ×[0.5, 2.0]
|
||||
* 区间内;带宽用 ROM 值移位实现(>>1 / <<1),不设独立宏防两处真相 */
|
||||
|
||||
/* 零点偏移幅值上限(码值):超此即判文件损坏/异常标定,回退 ROM 并留痕 */
|
||||
@@ -81,7 +81,7 @@ extern "C" {
|
||||
void adc_cal_init(void);
|
||||
|
||||
/*
|
||||
* 函数功能:码值 → 工程量折算(「数据可信」§4.1 模型)
|
||||
* 函数功能:码值 → 工程量折算(docs/算法/采集与算法层设计说明.md §13.2 模型)
|
||||
* 入口参数:sem - 语义通道(TEMP 透传不折算) adc_semantic_t
|
||||
* code - 原始码值(TPAFE 16 位补码 / STM32 0..4095) int32_t
|
||||
* 返 回 值:工程量浮点(未标定时单位 = ADC 引脚电压 V;VALID 后置位 = 二次值) float
|
||||
@@ -127,7 +127,7 @@ uint32_t adc_cal_flags(adc_semantic_t sem);
|
||||
* 永不置位 → 徽标与停走**永不解除**;
|
||||
* · 逐通道打印 VALID/CLIPPED 位图是诊断输出(`App/task/adc_task.c`),
|
||||
* 不是判定。
|
||||
* ④ 台架调试旁路 = 编译期 `-DDTU_BENCH`(「数据可信」§4.3 决策 1 的例外通道,
|
||||
* ④ 台架调试旁路 = 编译期 `-DDTU_BENCH`(`docs/算法/采集与算法层设计说明.md`
|
||||
* 仅本地台架自行定义;本仓任何工程档都不定义 = 产品恒强制)。旁路**只在
|
||||
* 本函数实现内部这一处**,调用方不再各自写 `#ifndef`:否则有人只给单个
|
||||
* TU 加宏,屏上「未标定」徽标与判据停走当场分叉,且 0 错误 0 警告。
|
||||
@@ -173,7 +173,7 @@ int32_t adc_cal_k_q16(adc_semantic_t sem);
|
||||
* 返 回 值:0 - 成功;-1 - 参数非法/越出合法带(RAM 不动,[ERR] 留痕) int
|
||||
* 限定条件:**整定路径上下文**(defaultTask 标定流程/整定链;运行参数段落地起 iec104Task
|
||||
* 经 App/algo/run_par.c 的 0x8040~/0x8048~ 直通写亦为授权写者——写的仍是
|
||||
* 引擎对齐 int32 单字,µs 级混窗契约同「数据可信」§4.4)。勿在 adcTask 调用
|
||||
* 引擎对齐 int32 单字,µs 级混窗契约同docs/算法/采集与算法层设计说明.md §13.8)。勿在 adcTask 调用
|
||||
* 函数说明:**只写 RAM 副本,不置脏、不落盘、不返回"稍后会存"的承诺**——落盘由属主经
|
||||
* cfg_file_save 完成,而"要不要落盘"这件事只有一个真源:run_par 的脏标志。
|
||||
* 因此授权写者是 run_par 的语义 setter(写值 + 置脏成对发生,lead 裁②);
|
||||
@@ -188,7 +188,7 @@ int adc_cal_set(adc_semantic_t sem, int32_t k_q16, int32_t b_codes);
|
||||
* v_lo_uv/v_hi_uv - 两点实测电压(µV,v_hi > v_lo,端子/引脚域均可) int32_t
|
||||
* p_k_q16 / p_b - 输出:系数(Q16)与零点偏移(码值) int32_t *
|
||||
* 返 回 值:0 - 成功;-1 - 参数/斜率非法;-2 - 零点越 ±ADC_CAL_B_MAX(先查前端,
|
||||
* 不得用系数凑错斜率,「数据可信」§4.1 尾注) int
|
||||
* 不得用系数凑错斜率,docs/算法/采集与算法层设计说明.md §13.2 尾注) int
|
||||
* 限定条件:无(纯整数运算,主机侧可直接单测)
|
||||
* 函数说明:k = (v_hi−v_lo)×65536/(c_hi−c_lo)(四舍五入),b = v_lo×65536/k − c_lo;
|
||||
* 实测注入未做(台架待跑),本函数即「公式齐备」的交付物
|
||||
|
||||
+2
-1
@@ -50,7 +50,8 @@
|
||||
#define FREQ_INST_MIN_HZ 35.0f
|
||||
#define FREQ_INST_MAX_HZ 65.0f
|
||||
|
||||
/* 幅值门限(有效值,**二次值 V 口径**,「数据可信」下游常数按工程量重定的结果,依据其 §2.3 表第 1 行):
|
||||
/* 幅值门限(有效值,**二次值 V 口径**,下游常数按工程量重定的结果,依据
|
||||
* `docs/算法/采集与算法层设计说明.md` §13.7 表第 1 行):
|
||||
* 低于该值判"无有效波形"。取值 50 V = 0.5×Un(相电压标称 100 V,与
|
||||
* App/algo/prot_set.c 头部量纲基准同源):正常带载 UA 在 0.9~1.1×Un,
|
||||
* 50 V 之下只可能是断保险/PT 空载/浮空噪声(浮空实测 ~1.7 V 引脚域、
|
||||
|
||||
+4
-4
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
* 模块名称:遥测快照发布层(全周傅氏相量派生·发布侧,「数据可信」§4.5)
|
||||
* 模块名称:遥测快照发布层(全周傅氏相量派生·发布侧,docs/算法/采集与算法层设计说明.md §13.9)
|
||||
* 模块功能:实现见 meas.h——200 ms 基波有效值 + 品质快照,双区无锁读。
|
||||
* 本文件纯算法:输入 = sample_ring 取窗 + 调用方注入(频率/削顶位图),
|
||||
* 无 RTOS / 无寄存器 / 无日志(「数据可信」层内禁令:本目录不写日志)。
|
||||
* 双区不变量(docs/任务规划/数据可信.md §4.5,双区指针原子交换 同型,先例 = App/algo/
|
||||
* 双区不变量(docs/算法/采集与算法层设计说明.md §13.9,双区指针原子交换 同型,先例 = App/algo/
|
||||
*(保护功能清单见 docs/算法/继电保护功能复现规划.md)
|
||||
* phasor.c 的双区注释):写侧只碰**非使用区**,全部字段填完后一次
|
||||
* volatile 单字节 store 翻转使用区;读者先取索引再整体拷贝 → 拷贝期
|
||||
@@ -84,7 +84,7 @@ int meas_init(void) {
|
||||
* docs/硬件平台/ADC通道映射说明.md)逐路一周波基波 DFT;任一路取窗
|
||||
* 不足(开机未满一周波)→ 该路 IV|NT + 整帧 valid=0,但照常发布
|
||||
* (品质节拍性刷新,见 meas_tick 头注)。TEMP 只取最新一点透传 +
|
||||
* NT(「数据可信」决策 5)。品质值不因 IV 清零——"值在场但不可信"
|
||||
* NT(docs/算法/采集与算法层设计说明.md §13.3)。品质值不因 IV 清零——"值在场但不可信"
|
||||
* 与"值缺失"分开,消费者按 qds 裁决。
|
||||
*/
|
||||
void meas_tick(uint32_t tick_ms, uint8_t freq_valid_in, float freq_hz_in,
|
||||
@@ -113,7 +113,7 @@ void meas_tick(uint32_t tick_ms, uint8_t freq_valid_in, float freq_hz_in,
|
||||
}
|
||||
}
|
||||
|
||||
/* TEMP:非交流量语义(「数据可信」决策 5),最新一点原始帧值透传 + NT;
|
||||
/* TEMP:非交流量语义(docs/算法/采集与算法层设计说明.md §13.3),最新一点原始帧值透传 + NT;
|
||||
* clip_mask 位 8 不参与(adc_cal_flags(TEMP) 恒 0,无削顶语义) */
|
||||
{
|
||||
float tv = 0.0f;
|
||||
|
||||
+8
-8
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* 模块名称:遥测快照发布层(全周傅氏相量派生·发布侧,「数据可信」§4.5)
|
||||
* 模块名称:遥测快照发布层(全周傅氏相量派生·发布侧,docs/算法/采集与算法层设计说明.md §13.9)
|
||||
* 模块功能:每 **200 ms** 从 全周傅氏相量层取一次基波有效值 + 品质,产出一份全仓唯一的
|
||||
* 遥测快照(meas_snap_t,布局权威 = docs/任务规划/数据可信.md §4.5),
|
||||
* 遥测快照(meas_snap_t,布局权威 = docs/算法/采集与算法层设计说明.md §13.9),
|
||||
* 让 104 与 UI **共用同一份上游**——"什么时候算新值、品质怎么判"只此
|
||||
* 一处决定(M5 遥测链的地基;104 侧消费见「数据可信」104 改读快照,UI 侧 ui_data_feed 属
|
||||
* 「UI 扩展」波次,两者都只是本快照的读者)。
|
||||
@@ -9,15 +9,15 @@
|
||||
* (同拍 phasor 使用区口径,系数已在 标定折算折算进帧值——现单位 = ADC
|
||||
* 引脚电压 V,二次值语义等 adc_cal_flags() 出 VALID,见
|
||||
* docs/算法/采集与算法层设计说明.md §10 红线③);**不做** 4 点平均 /
|
||||
* 谐波方和根——docs/任务规划/数据可信.md §4.5 明示"200 ms 是上送节拍
|
||||
* 谐波方和根——docs/算法/采集与算法层设计说明.md §13.9 明示"200 ms 是上送节拍
|
||||
* 不是平均窗,再平均引入滞后";谐波 k-bin 轨(docs/算法/继电保护功能
|
||||
* 复现规划.md 遥测谐波轨(可选))将来扩展时只许在本结构**尾部追加**或留在发布侧
|
||||
*(保护功能清单见 docs/算法/继电保护功能复现规划.md)
|
||||
* 内部状态,既有字段序不得变更。
|
||||
* TEMP 通道(「数据可信」决策 5:不参与线性标定):yc = 最新一拍原始
|
||||
* 帧值透传,qds 恒置 NT——值在场但非交流量语义,UI 按「数据可信」§4.2
|
||||
* TEMP 通道(docs/算法/采集与算法层设计说明.md §13.3:不参与线性标定):yc = 最新一拍原始
|
||||
* 帧值透传,qds 恒置 NT——值在场但非交流量语义,UI 按docs/算法/采集与算法层设计说明.md §13.3
|
||||
* 三态表显示占位符,104 无对应点。
|
||||
* 并发(docs/任务规划/数据可信.md §4.5 原文口径):沿用 phasor 的
|
||||
* 并发(docs/算法/采集与算法层设计说明.md §13.9 原文口径):沿用 phasor 的
|
||||
* **双区 + 单字节活跃索引翻转**(双区指针原子交换 同型,不是新机制)——写侧填满
|
||||
* 计算区后一次 store 翻转,读者先取索引再整体拷贝,全程无锁;
|
||||
* seq 只增,消费者据此判"是否换帧"。
|
||||
@@ -58,10 +58,10 @@ extern "C" {
|
||||
#define MEAS_QDS_NT (0x0020u) /* 非当前值:未就绪 / 语义未处理(TEMP) */
|
||||
#define MEAS_QDS_IV (0x0080u) /* 无效:该路取窗失败,无有效读数 */
|
||||
#define MEAS_QDS_CLIPPED (0x0100u) /* 硬件削顶(adc_cal_flags 位图直通,
|
||||
* 「数据可信」§4.2 三态表;AC 量不可信,
|
||||
* docs/算法/采集与算法层设计说明.md §13.3 三态表;AC 量不可信,
|
||||
* 消费者应映射为品质无效,如 104 改读快照侧的 IV) */
|
||||
|
||||
/* 遥测快照(docs/任务规划/数据可信.md §4.5 权威布局;实测 72 B,2×72 ≈ 144 B
|
||||
/* 遥测快照(docs/算法/采集与算法层设计说明.md §13.9 权威布局;实测 72 B,2×72 ≈ 144 B
|
||||
* 双区 = 本项 DoD 预算口径,由 test/host/meas/ 的布局钉死用例锁字段偏移——
|
||||
* 改字段 = 破协议,须同步 104 改读快照 / UI) */
|
||||
typedef struct {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@
|
||||
* 三段递升与过负荷低于速断均自洽)。ADC 帧仅在 adc_cal VALID 置位后才处
|
||||
* 于此域(未标定 = 引脚电压域,由未标定即闭锁停走判据,见 protect_task.c);
|
||||
* min/max 范围覆盖 0~4×标称,无需随这一项改动数值——换算依据与三处下游
|
||||
* 常数同源,见 docs/任务规划/数据可信.md §2.3。
|
||||
* 常数同源,见 docs/算法/采集与算法层设计说明.md §13.7。
|
||||
*
|
||||
* 创建日期:2026-10-11
|
||||
*/
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@
|
||||
|
||||
/* 静态变量定义区 */
|
||||
|
||||
/* [run_par] 段 RAM 副本(引擎原地更新;属主契约与 µs 级混窗见「数据可信」§4.4,
|
||||
/* [run_par] 段 RAM 副本(引擎原地更新;属主契约与 µs 级混窗见docs/算法/采集与算法层设计说明.md §13.8,
|
||||
* 同 adc_cal——本层不挂回调,副本即生效值,消费侧实时读) */
|
||||
typedef struct {
|
||||
int32_t db[RUN_PAR_DB_N];
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
* 改档 → 沉降去抖 → 重载),拿它"兜住"未落盘的改值会把 FTP 侧的旧档倒灌
|
||||
* 回 RAM,比不兜更坏。设计依据见 docs/算法/采集与算法层设计说明.md §10.1。
|
||||
* 并发契约:引擎副本 int32 对齐字读写在 Cortex-M4 上原子;poll 重载 µs 级窗口
|
||||
* 为「数据可信」§4.4 明载设计(adc_cal 同款)。写路径 = 104 执行段
|
||||
* 为docs/算法/采集与算法层设计说明.md §13.8 明载设计(adc_cal 同款)。写路径 = 104 执行段
|
||||
* (iec104Task)与引擎读路径互不加锁,勿改成"读侧缓存"(缓存 = 新真源)。
|
||||
* 纯算法:只用 stdint/stddef/math + cfg_file.h/adc_cal.h 头(注册/直通均为
|
||||
* 接口级)→ 主机侧可单测(test/host/run_par,链真 cfg 引擎 + 真 adc_cal)。
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* - 按通道分列(一路连续 320 点),不按帧交错:回放页只画一路、PC 重算全周傅氏也逐路
|
||||
* 独立,交错布局两种用法都要跨步长取数(§6.2 末段「为什么按通道分列」);
|
||||
* - 通道数固定 8,TEMP 不录:温度是片内 ADC 的 12 位单极性原始值、非线性且未参与线性
|
||||
* 标定(docs/任务规划/数据可信.md §7 已定案),进录波只多占 640 字节,并让回放页多一
|
||||
* 标定(docs/算法/采集与算法层设计说明.md §13 已定案),进录波只多占 640 字节,并让回放页多一
|
||||
* 格会被误读成电气量的通道;带 TEMP 属二期,且必须连 flags_seq 与 clip_mask 一起升
|
||||
* 版本(§6.2 那两行的括注);
|
||||
* - 落位 SRAM1:本层全部是普通文件级静态,链接脚本 MDK-ARM/STM32F407-Demo/
|
||||
|
||||
@@ -86,7 +86,7 @@ extern "C" {
|
||||
#define WAVE_ST_CH_OFF_BCODE (8u) /* 4 字节 int32 */
|
||||
#define WAVE_ST_CH_BYTES (12u)
|
||||
|
||||
/* 本波通道数固定 8(TEMP 不录:理由见 §6.3 末段与 docs/任务规划/数据可信.md §7) */
|
||||
/* 本波通道数固定 8(TEMP 不录:理由见 §6.3 末段与 docs/算法/采集与算法层设计说明.md §13.3) */
|
||||
#define WAVE_ST_CH_NUM (8u)
|
||||
/* 通道数上限:给二期「带 TEMP 且同时升版本」留位;真正的口径是 meta 里的 ch_count 字段 */
|
||||
#define WAVE_ST_CH_MAX (9u)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* (locked = prot_set_locked / check = g_prot_set_meta 上下限 /
|
||||
* apply = prot_set_set_sealed)注入给 BSP;值域与落盘事实都留在 App
|
||||
* 侧,BSP 只有队列与状态机(契约 §6.1"UI 不能直写"的落地形态)
|
||||
* 量纲诚实性:eng 字段按**真值**填——docs/任务规划/数据可信.md §2.6 把承诺边界定在
|
||||
* 量纲诚实性:eng 字段按**真值**填——docs/算法/采集与算法层设计说明.md §13.5 把承诺边界定在
|
||||
* "引脚电压",故未做两点标定前 eng = UI_DATA_ENG_PIN(值 = ADC 引脚电压 V,
|
||||
* 不是端子二次值);电气 8 路 adc_cal_flags() 的 VALID 全置位才升
|
||||
* UI_DATA_ENG_SEC。TEMP 按决策不参与线性标定 → 恒带 UI_DATA_Q_RAW,
|
||||
@@ -309,7 +309,7 @@ static uint64_t feed_yx_bits(void) {
|
||||
* 返回值:无
|
||||
* 限定条件:uiTask 上下文;映射表已建(feed_map_phasor)
|
||||
* 函数说明:取数口径与 104 上送同源不同路——本函数读**相量使用区**(1 ms 刷新、
|
||||
* 双区原子交换),不做死区与平均;遥测链快照(docs/任务规划/数据可信.md
|
||||
* 双区原子交换),不做死区与平均;遥测链快照(docs/算法/采集与算法层设计说明.md §13
|
||||
* §4.5 的 meas 快照)落地后,本函数改成读该快照即可,页面零改动
|
||||
* (这正是本层存在的意义:换数据源只改这里)
|
||||
*/
|
||||
@@ -436,7 +436,7 @@ static void feed_fill_rt(ui_data_rt_t *p_snap, uint32_t tick_ms) {
|
||||
* 限定条件:uiTask 上下文(只读 prot_set 状态位)
|
||||
* 函数说明:这里的"闭锁"是**定值闭锁**(= par.locked = YX31 遥信),**不是**未标定
|
||||
* 闭锁(= par.cal_block):后者仍可改定值、只是判据停走,两者在屏上不得
|
||||
* 互认(三词三源口径 docs/任务规划/数据可信.md §4.3 + 落地简报 §7-6)
|
||||
* 互认(三词三源口径 docs/算法/采集与算法层设计说明.md §13.4 + 落地简报 §7-6)
|
||||
*/
|
||||
static uint8_t feed_param_locked(void) {
|
||||
return prot_set_locked();
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@
|
||||
* v1.5 2026-10-25 DTU 项目组 「数据可信」有符号零点类型:新增值类型 CFG_VAL_INT(有符号十进制,
|
||||
* len 1/2/4 小端补码)——s_decode_int() 用 strtol + ERANGE +
|
||||
* 宽度上下界校验,s_encode() 带负号输出;负零点偏移从此可
|
||||
* 干净落盘(动因见 docs/任务规划/数据可信.md §4.4 与 §7 决策 3)
|
||||
* 干净落盘(动因见 docs/算法/采集与算法层设计说明.md §13.8)
|
||||
* v1.6 2026-11-05 DTU 项目组 热重载/保存视图一致性守卫(issue #73 SNTP 补验揪出)——
|
||||
* poll stat→read→复 stat 三点校验 + 内容合法性 s_view_bad
|
||||
* (空读或任意偏移含 NUL = 坏视图;台架 15:21 实证同尺寸
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
* CFG_FILE_MAX_NAME_LEN(段名/键名上限 15 字符)
|
||||
* v1.4 2026-10-25 DTU 项目组 「数据可信」有符号零点类型:新增 CFG_VAL_INT 有符号十进制值类型
|
||||
* (len = 1/2/4,小端补码)——标定零点偏移等负值需有符号
|
||||
* 落盘,动因与取舍见 docs/任务规划/数据可信.md §4.4
|
||||
* 落盘,动因与取舍见 docs/算法/采集与算法层设计说明.md §13.8
|
||||
* v1.5 2026-11-05 DTU 项目组 契约同步视图一致性守卫(issue #73 SNTP 补验揪出):
|
||||
* poll 读视图与 stat 令牌不符或内容坏 = 拒绝应用(RAM/基线不动、2s
|
||||
* 重试自愈);save 读视图不符 = 拒存返回 -1(原文件不动)。
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@
|
||||
* 修改记录:
|
||||
* v1.0 2026-09-14 王建锋 创建初始版本(设计见 docs/子系统设计/运行与自检记录设计说明.md §4)
|
||||
* v1.2 2026-10-26 王建锋 新增「记录删除」API(UI 装置维护「清除记录」的前置,
|
||||
* 道F task-4;判据 docs/任务规划/UI补齐.md §2 第 3 行
|
||||
* 道F task-4;判据 docs/UI设计/内容页架构.md §7.1
|
||||
* 「不允许只做一个没有实际效果的按钮」):
|
||||
* 共享层 syslog_request_clear() / syslog_clear_state()
|
||||
* (双端都实现,UI 侧只准用这两个)+ MCU 后端专属
|
||||
@@ -217,7 +217,7 @@ int syslog_last_epoch(syslog_id_t id, uint32_t *p_epoch);
|
||||
* "WAIT 也正常"写判断,别把 WAIT 当失败。
|
||||
* 刻意**不**在删除成功后补一条 "records cleared" 留痕:判据要求
|
||||
* syslog_count() 归零,写了立刻变 1;要留痕归操作记录/SOE
|
||||
* (docs/任务规划/UI补齐.md 第 6 项的写入方),不是本 API 的职责。
|
||||
* (docs/UI设计/内容页架构.md §7.1 第 2 条的写入方),不是本 API 的职责。
|
||||
*/
|
||||
int syslog_request_clear(syslog_id_t id);
|
||||
|
||||
|
||||
@@ -608,7 +608,7 @@ static int s_read_raw(syslog_id_t id, uint32_t idx, uint8_t *p_rec) {
|
||||
* 不去做无谓的失效(与 s_append_rec"失败也一律失效"不同——那边失败
|
||||
* 伴随过 unlink/重建,本函数失败时盘上什么都没动)。
|
||||
* 刻意不在删除成功后补一条 "records cleared":判据要求 syslog_count()
|
||||
* 归零,写了立刻变 1;要留痕归操作记录/SOE(UI补齐.md 第 6 项)。
|
||||
* 归零,写了立刻变 1;要留痕归操作记录/SOE(docs/UI设计/内容页架构.md §7.1 第 2 条)。
|
||||
*/
|
||||
static int s_clear_try(syslog_id_t id) {
|
||||
FRESULT fr;
|
||||
@@ -650,7 +650,7 @@ static int s_clear_try(syslog_id_t id) {
|
||||
* 1) 排在条目排空**之后**(调用位置见 syslog_drain):删除必须是本轮对
|
||||
* run.log/selftest.log 的最后一次盘上动作,否则本轮刚排空的旧记录
|
||||
* 会在删除之后又落回去,count 不归零,"清除"就成了没实际效果的按钮
|
||||
* (判据出处 docs/任务规划/UI补齐.md §2 第 3 行)。
|
||||
* (判据出处 docs/UI设计/内容页架构.md §7.1 第 2 条)。
|
||||
* 副作用照实登记:**先排空再删** = 请求受理时仍在队列/preboot 里的
|
||||
* 条目也一并被删掉(用户按下的就是"把现在这些记录清掉"),
|
||||
* 只有删除之后新投递的记录才会留下。
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* netTask/uiTask 不得直接触碰引擎);getter = 任意消费上下文(u16
|
||||
* 半字对齐读天然原子,重载瞬间最坏 = 单字段新旧值之一);setter =
|
||||
* UI 保存交接路(task-9,net_cfg_set_* 先例)。
|
||||
* 生效语义:**改后重启生效**(通讯设置页验收口径,docs/任务规划/UI补齐.md §2)——
|
||||
* 生效语义:**改后重启生效**(通讯设置页验收口径,见 `docs/任务规划/登记簿.md` §7)——
|
||||
* iec104Task 启动时取一次 getter 填 link cfg;端口另在下次重 bind
|
||||
* (拆链/网络代次重建)自然生效,不必整机重启。不挂段回调、不新增
|
||||
* 事件位、不走 SYS_EVT_NET_RECONFIG(网络代次链语义不同;且 CH395F
|
||||
|
||||
@@ -55,16 +55,16 @@ typedef struct {
|
||||
uint8_t src; /* PTS_SRC_* 源类型 */
|
||||
} pts_yc_def_t;
|
||||
|
||||
/* 死区规则 = 额定二次值的 0.5 %(「数据可信」§2.3 表第 2 行建议规则,随下游常数按工程量重定采纳;
|
||||
/* 死区规则 = 额定二次值的 0.5 %(docs/算法/采集与算法层设计说明.md §13.7 表第 2 行建议规则,随下游常数按工程量重定采纳;
|
||||
* 额定基准 100 V / 1 A 与 App/algo/prot_set.c 头部同源,勿在此另立口径):
|
||||
* 电压类 0.5 % × 100 V = 0.5 V 电流类 0.5 % × 1 A = 0.005 A
|
||||
* 频率点不适用"额定百分比"(额定附近 0.5 Hz 与旧值同量级,维持 0.5 并随
|
||||
* 运行参数段可调)。自 104 改读快照起本表**只作工厂默认载体**:生效死区 =
|
||||
* App/algo/run_par.c 的 [run_par] 引擎副本(运行参数段真源收编,本层不再存副本);削顶五路不再 sem=-1 绑死,而是绑快照槽、由品质 CLIPPED
|
||||
* 驱动线上 IV——V0.2 削顶消失后点位零改动自动启用(口径见 docs/任务规划/
|
||||
* 数据可信.md §4.2 三态可用性表)。
|
||||
* 驱动线上 IV——V0.2 削顶消失后点位零改动自动启用(口径见
|
||||
* docs/算法/采集与算法层设计说明.md §13.3 三态可用性表)。
|
||||
* ⚠ 过渡期(eng=0 引脚电压域,两点标定完成前):上送值本身非二次值,死区
|
||||
* 数字按本域偏保守(迟报不漏报);标定落地后复核(「数据可信」§2.3 表
|
||||
* 数字按本域偏保守(迟报不漏报);标定落地后复核(docs/算法/采集与算法层设计说明.md §13.7 表
|
||||
* 第 2 行)。判定 = 死区连续 2 点确认(104 改读快照),见 iec104_pts.h COV 说明。 */
|
||||
static const pts_yc_def_t k_yc[] = {
|
||||
{ 0x4011u, (int8_t)ADC_SEM_UA, 0.5f, PTS_SRC_MEAS }, /* 1Ua:0.5 % × 100 V */
|
||||
@@ -176,7 +176,7 @@ uint32_t iec104_pts_yc_ioa(uint8_t idx) {
|
||||
* 入口参数:q16 - 源侧品质(低字节与线上同值;高字节为 MEAS_QDS_CLIPPED 域内位)
|
||||
* 返 回 值:线上 QDS 字节 uint8_t
|
||||
* 函数说明:CLIPPED(硬件削顶,104 无对应位)映射为 IV——「削顶通道 104 恒
|
||||
* IV」口径(docs/任务规划/数据可信.md §4.2 三态可用性表)
|
||||
* IV」口径(docs/算法/采集与算法层设计说明.md §13.3 三态可用性表)
|
||||
* 改由快照品质驱动,不再靠点表绑死 -1;OV/NT/IV 透传,其余高位丢弃。
|
||||
*/
|
||||
static uint8_t s_q_map(uint16_t q16) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* 测频与遥测快照(App/algo/meas.h,「数据可信」104 改读快照与频率点绑定):电气 8 路绑快照槽,
|
||||
* 有效性由快照品质驱动——V0.1 削顶路(docs/算法/继电保护功能复现规划.md
|
||||
* §1.6)快照置 CLIPPED → 本层映射为线上 IV(V0.2 后自动启用,绑定零
|
||||
* 改动,见 docs/任务规划/数据可信.md §4.2 三态可用性表);0x401d 绑频率源,
|
||||
* 改动,见 docs/算法/采集与算法层设计说明.md §13.3 三态可用性表);0x401d 绑频率源,
|
||||
* freq_valid()==0 → IV;
|
||||
* - YX:IOA 1~33(§1.5 表(3));双点 = 开关位置类(YX1~4,本期无硬件 → IV),
|
||||
* 保护动作类 YX15~23 映射 prot_elm 状态,闭锁类 YX31~33 映射 prot_set;
|
||||
|
||||
+2
-2
@@ -417,7 +417,7 @@ void adc_task_func(void *arg) {
|
||||
all_ok = 0u;
|
||||
break;
|
||||
}
|
||||
/* 标定折算折算(「数据可信」标定折算落地,§4.1 模型):工程量 = (code + b) × k。
|
||||
/* 标定折算(`docs/算法/采集与算法层设计说明.md` §13.2 模型):工程量 = (code + b) × k。
|
||||
* 现口径 = **ADC 引脚电压 V**(eng=0,量程口径冻结的 ROM 系数,见
|
||||
* docs/硬件平台/ADC通道映射说明.md §7.1);端子变比确认与两点标定写入标定
|
||||
* 系数(adc_cal_flags() 出 VALID)后才按二次值消费。TEMP 透传码值
|
||||
@@ -443,7 +443,7 @@ void adc_task_func(void *arg) {
|
||||
|
||||
/* 测频与遥测快照发布(「数据可信」这一项,道D,M5):200 ms tick 经过分频。
|
||||
* 唯一发布者 = 本任务(全仓 meas_tick 调用点数 = 1 为评审判据,
|
||||
* 「数据可信」§4.5 定"唯一发布者 = adc_task");只在**压环成功的真新帧拍**发布
|
||||
* docs/算法/采集与算法层设计说明.md §13.9 定"唯一发布者 = adc_task");只在**压环成功的真新帧拍**发布
|
||||
* ——idle/skip 拍压环未推进,发布 = 重复旧窗。品质注入唯一源 =
|
||||
* adc_cal_flags()(§4.2 三态表;纯读,每 200 ms 才跑一遍)。 */
|
||||
if ((uint32_t)(now - s_meas_ms) >= MEAS_PERIOD_MS) {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
* 默认构建(未标定)恒闭锁是**期望行为**:边沿用 DBG_INFO 而非
|
||||
* [ERR](未标定是出厂常态、不是故障;每次开机都走这条沿,
|
||||
* [ERR] 还会误触 /serial-boot-test 禁用标记);台架旁路只走编译期宏
|
||||
* DTU_BENCH(「数据可信」§4.3:不进 cfg、不进 104,本仓任何
|
||||
* DTU_BENCH(docs/算法/采集与算法层设计说明.md §13.4:不进 cfg、不进 104,本仓任何
|
||||
* 提交目标都不定义它),且该宏**只作用于判定本体**
|
||||
* adc_cal_prot_blocked()(App/algo/adc_cal.c,全仓唯一一处 #ifndef;
|
||||
* 道F task-16 之前本文件另有一份判定,两处可被分别开关 = 屏上
|
||||
@@ -34,7 +34,7 @@
|
||||
* 节拍源一停本任务就再没有任何人判"数据新不新",
|
||||
* 而相量冻在最后一帧上还会被本任务继续用于判据
|
||||
* v1.2 2026-10-25 DTU 项目组 未标定即闭锁:新增第⑤路「未标定闭锁」(adc_cal_flags
|
||||
* VALID 口径,docs/任务规划/数据可信.md §4.3):
|
||||
* VALID 口径,docs/算法/采集与算法层设计说明.md §13.4):
|
||||
* 采样恢复分支内、巡检/压板之前判;边沿 INFO 对
|
||||
* + SOE_T_CAL_BLOCK/RESUME(不用 [ERR]:未标定是
|
||||
* 常态非故障,且 /serial-boot-test 禁用 [ERR]);DTU_BENCH
|
||||
@@ -262,7 +262,7 @@ void protect_task(void *argument) {
|
||||
}
|
||||
/* 未标定即闭锁——夹在「采样可信」与「巡检/压板」之间:
|
||||
* eng=0 域(引脚电压)拿去比二次值定值必然错判(UV 尤甚),
|
||||
* 标定 VALID 未全置位前整条判据链停走(「数据可信」§4.3 决策 1) */
|
||||
* 标定 VALID 未全置位前整条判据链停走(`docs/算法/采集与算法层设计说明.md` §13.4) */
|
||||
/* 判定本体在 adc_cal_prot_blocked()(标定层单点,道F task-16):本任务
|
||||
* 只是消费者,不再自带一份三路判定 */
|
||||
if (adc_cal_prot_blocked() != 0u) {
|
||||
|
||||
Reference in New Issue
Block a user