refactor(编号): 16 个测试模块码单词化 + 门禁识别面连带放宽
批 2(用户授权改名 + 「新名要一眼看懂」裁定)
- 16 个有歧义模块码单词化,共 1,146 处随 scripts/rename_ids.py 改写:
AI→ADCIN、AH→ADCHEALTH、PS→PROTSET、PE→PROTELEM、PH→PHASOR、
TS→TIMESYNC、VL→VOLLOCK、NP→NANDPORT、CFG→CONFIG、CLK→SYSCLK、
WD→WATCHDOG、STO→STORAGE、SH→SHA256、FA→FTPAUTH、FR→FREQ、104→IEC104
- 不动 NET/GD5F/RTC/SOE/UI/ADC/LOG/RS485/TOOL(已是单词、芯片名或业界通用词,
改了纯属 churn)
- 别名按全局登记:这批字面量已完全限定(TC-<码>-<nnn>),不存在裸形多义
- 映射表存档 scripts/rename_maps/batch2.json 作审计轨迹;§6 模块码表同步
连带修门禁(关键教训)
- 模块码涨到 9 位(ADCHEALTH/WATCHDOG)后,候选正则与族正则的 {0,4} 上界
会让改名后的号**整批从门禁眼里消失**:实测编号字面量从 8271 掉到 7315、
悬空假降 490 处。已放宽到 {0,9} 并写进 §6 注记
- 结论:改名批次必须连带复核识别面,只改数据不改判据 = 静默放行;
这次是靠「可判定比例跌破基线即失败」那条线拦下来的
现状与遗留
- 校验 1 未登记前缀 0 处;可判定比例 82.71%(基线 82.6%,只涨不跌成立)
- 遗留:7 个模块的「单元测试说明.md」仍缺(PROTSET 116、NANDPORT 109、
PROTELEM 65、FREQ 48、FTPAUTH 45、SHA256 25、SOE 14 处悬空)——改名不解决
缺文档,处置方式待议
- 遗留:T-2/T-3/T-4/T-6 历史任务号悬空(别名表未收全,属本工具批次漏项)
- 未改任何 C/H 可编译语义(仅注释与宏名内的编号),故不需 @build
This commit is contained in:
+48
-48
@@ -22,17 +22,17 @@
|
||||
* 读数在跳变后 60 ms 内回到 ±0.05 Hz
|
||||
*
|
||||
* 覆盖点:
|
||||
* TC-FR-001 50 Hz 收敛时序(J3)+ 稳态精度(J1 子集)
|
||||
* TC-FR-002 扫频 45~55 Hz @0.5 Hz(J1,逐点判 + 最坏值打印)
|
||||
* TC-FR-003 噪声鲁棒(J2,最坏值打印)
|
||||
* TC-FR-004 频率阶跃 50->51(J4)
|
||||
* TC-FR-005 零幅浮空不发散(J5)+ 恢复后重新收敛
|
||||
* TC-FR-006 直流偏置抑制(全周傅氏滤直流 -> 测频不受影响)
|
||||
* TC-FR-007 3/5 次谐波污染抑制(相量基波选择性)
|
||||
* TC-FR-008 相位跳变假值钳制(J6)
|
||||
* TC-FR-009 UA 无幅值 -> 自动落 IA 源
|
||||
* TC-FR-010 init 幂等 / get 参数守卫 / 未收敛 -2
|
||||
* TC-FR-011 幅值门中途失效 -> valid 清零 + 读数保持(J5 中途版)
|
||||
* TC-FREQ-001 50 Hz 收敛时序(J3)+ 稳态精度(J1 子集)
|
||||
* TC-FREQ-002 扫频 45~55 Hz @0.5 Hz(J1,逐点判 + 最坏值打印)
|
||||
* TC-FREQ-003 噪声鲁棒(J2,最坏值打印)
|
||||
* TC-FREQ-004 频率阶跃 50->51(J4)
|
||||
* TC-FREQ-005 零幅浮空不发散(J5)+ 恢复后重新收敛
|
||||
* TC-FREQ-006 直流偏置抑制(全周傅氏滤直流 -> 测频不受影响)
|
||||
* TC-FREQ-007 3/5 次谐波污染抑制(相量基波选择性)
|
||||
* TC-FREQ-008 相位跳变假值钳制(J6)
|
||||
* TC-FREQ-009 UA 无幅值 -> 自动落 IA 源
|
||||
* TC-FREQ-010 init 幂等 / get 参数守卫 / 未收敛 -2
|
||||
* TC-FREQ-011 幅值门中途失效 -> valid 清零 + 读数保持(J5 中途版)
|
||||
*
|
||||
* 通过:全部 TC PASS(main 返回 0)。
|
||||
* 创建日期:2026-10-12(B8)
|
||||
@@ -134,7 +134,7 @@ static void chain_reset(void) {
|
||||
(void)freq_init();
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-001:50 Hz 收敛时序 + 稳态精度 ===================== */
|
||||
/* ===================== TC-FREQ-001:50 Hz 收敛时序 + 稳态精度 ===================== */
|
||||
static void tc_converge_50(void) {
|
||||
float f = 0.0f;
|
||||
uint32_t first_valid_t = 0u, phasor_ready_t = 0u;
|
||||
@@ -155,17 +155,17 @@ static void tc_converge_50(void) {
|
||||
got = 1;
|
||||
}
|
||||
}
|
||||
CHECK(got, "TC-FR-001 freq becomes valid at 50 Hz");
|
||||
CHECK(got, "TC-FREQ-001 freq becomes valid at 50 Hz");
|
||||
CHECK((first_valid_t >= phasor_ready_t)
|
||||
&& ((first_valid_t - phasor_ready_t) <= 40u),
|
||||
"TC-FR-001 J3: first valid reading <= 40 ms after first phasor");
|
||||
"TC-FREQ-001 J3: first valid reading <= 40 ms after first phasor");
|
||||
(void)freq_get(&f);
|
||||
printf(" [DATA] 50 Hz steady: f=%.4f err=%.4f Hz (first valid @%u ms, phasor @%u ms)\n",
|
||||
(double)f, (double)f - 50.0, (unsigned)first_valid_t, (unsigned)phasor_ready_t);
|
||||
CHECK(fabsf(f - 50.0f) <= 0.01f, "TC-FR-001 J1(50Hz): |err| <= 0.01 Hz");
|
||||
CHECK(fabsf(f - 50.0f) <= 0.01f, "TC-FREQ-001 J1(50Hz): |err| <= 0.01 Hz");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-002:扫频 45~55 Hz @0.5 Hz(J1) ===================== */
|
||||
/* ===================== TC-FREQ-002:扫频 45~55 Hz @0.5 Hz(J1) ===================== */
|
||||
static void tc_sweep(void) {
|
||||
double worst = 0.0, worst_f = 0.0;
|
||||
int ok = 1;
|
||||
@@ -178,17 +178,17 @@ static void tc_sweep(void) {
|
||||
|
||||
chain_reset();
|
||||
drive_n(150u, f_true, 1000.0, 0.0, 0.0, 0.0, 0.0, 1u);
|
||||
CHECK(freq_get(&f_meas) == 0, "TC-FR-002 freq valid at each sweep point");
|
||||
CHECK(freq_get(&f_meas) == 0, "TC-FREQ-002 freq valid at each sweep point");
|
||||
err = fabs((double)f_meas - f_true);
|
||||
if (err > worst) { worst = err; worst_f = f_true; }
|
||||
if (err > 0.02) { ok = 0; }
|
||||
}
|
||||
printf(" [DATA] sweep 45.00~55.00 Hz step 0.5: worst |err| = %.4f Hz @ %.1f Hz (J1 <= 0.02)\n",
|
||||
worst, worst_f);
|
||||
CHECK(ok, "TC-FR-002 J1: |f_meas - f_true| <= 0.02 Hz over 45~55 Hz");
|
||||
CHECK(ok, "TC-FREQ-002 J1: |f_meas - f_true| <= 0.02 Hz over 45~55 Hz");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-003:噪声鲁棒(J2) ===================== */
|
||||
/* ===================== TC-FREQ-003:噪声鲁棒(J2) ===================== */
|
||||
static void tc_noise(void) {
|
||||
double worst = 0.0;
|
||||
int ok = 1;
|
||||
@@ -207,10 +207,10 @@ static void tc_noise(void) {
|
||||
if (err > 0.10) { ok = 0; }
|
||||
}
|
||||
printf(" [DATA] noise rms=1%% amp: worst |err| = %.4f Hz (J2 <= 0.10)\n", worst);
|
||||
CHECK(ok, "TC-FR-003 J2: |err| <= 0.10 Hz with 1% noise");
|
||||
CHECK(ok, "TC-FREQ-003 J2: |err| <= 0.10 Hz with 1% noise");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-004:频率阶跃 50->51(J4) ===================== */
|
||||
/* ===================== TC-FREQ-004:频率阶跃 50->51(J4) ===================== */
|
||||
static void tc_step(void) {
|
||||
float f = 0.0f;
|
||||
uint32_t settle = 0u;
|
||||
@@ -236,12 +236,12 @@ static void tc_step(void) {
|
||||
}
|
||||
printf(" [DATA] step 50->51: settle = %u ms, final f=%.4f err=%.4f\n",
|
||||
(unsigned)settle, (double)f, (double)f - 51.0);
|
||||
CHECK((settle != 0u) && (settle <= 120u), "TC-FR-004 J4: settle <= 120 ms");
|
||||
CHECK(ok, "TC-FR-004 J4: stays within +/-0.05 Hz after settle");
|
||||
CHECK(fabsf(f - 51.0f) <= 0.01f, "TC-FR-004 J1(51Hz): steady |err| <= 0.01 Hz");
|
||||
CHECK((settle != 0u) && (settle <= 120u), "TC-FREQ-004 J4: settle <= 120 ms");
|
||||
CHECK(ok, "TC-FREQ-004 J4: stays within +/-0.05 Hz after settle");
|
||||
CHECK(fabsf(f - 51.0f) <= 0.01f, "TC-FREQ-004 J1(51Hz): steady |err| <= 0.01 Hz");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-005:零幅浮空不发散(J5) ===================== */
|
||||
/* ===================== TC-FREQ-005:零幅浮空不发散(J5) ===================== */
|
||||
static void tc_zero_amp(void) {
|
||||
float f = 123.0f;
|
||||
uint32_t i;
|
||||
@@ -254,17 +254,17 @@ static void tc_zero_amp(void) {
|
||||
(void)freq_get(&f);
|
||||
if (!(f == f)) { no_nan = 0; } /* NaN 自比较为假 */
|
||||
}
|
||||
CHECK(never_valid, "TC-FR-005 J5: zero-amplitude never asserts valid");
|
||||
CHECK(no_nan && (f == 0.0f), "TC-FR-005 J5: reading stays 0, no divergence/NaN");
|
||||
CHECK(never_valid, "TC-FREQ-005 J5: zero-amplitude never asserts valid");
|
||||
CHECK(no_nan && (f == 0.0f), "TC-FREQ-005 J5: reading stays 0, no divergence/NaN");
|
||||
/* 恢复:重新注入波形后应再次收敛 */
|
||||
drive_n(150u, 49.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 1u);
|
||||
(void)freq_get(&f);
|
||||
printf(" [DATA] recover after float: f=%.4f err=%.4f\n", (double)f, (double)f - 49.0);
|
||||
CHECK((freq_valid() != 0u) && (fabsf(f - 49.0f) <= 0.01f),
|
||||
"TC-FR-005 recovers and meets J1 after waveform returns");
|
||||
"TC-FREQ-005 recovers and meets J1 after waveform returns");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-006:直流偏置抑制 ===================== */
|
||||
/* ===================== TC-FREQ-006:直流偏置抑制 ===================== */
|
||||
static void tc_dc_offset(void) {
|
||||
float f = 0.0f;
|
||||
|
||||
@@ -272,10 +272,10 @@ static void tc_dc_offset(void) {
|
||||
drive_n(150u, 50.3, 1000.0, 8000.0, 0.0, 0.0, 0.0, 1u); /* DC = 8000 码 */
|
||||
(void)freq_get(&f);
|
||||
printf(" [DATA] DC=8000: f=%.4f err=%.4f\n", (double)f, (double)f - 50.3);
|
||||
CHECK(fabsf(f - 50.3f) <= 0.01f, "TC-FR-006 DC offset rejected: |err| <= 0.01 Hz");
|
||||
CHECK(fabsf(f - 50.3f) <= 0.01f, "TC-FREQ-006 DC offset rejected: |err| <= 0.01 Hz");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-007:3/5 次谐波污染 ===================== */
|
||||
/* ===================== TC-FREQ-007:3/5 次谐波污染 ===================== */
|
||||
static void tc_harmonics(void) {
|
||||
float f = 0.0f;
|
||||
|
||||
@@ -283,10 +283,10 @@ static void tc_harmonics(void) {
|
||||
drive_n(150u, 48.0, 1000.0, 0.0, 200.0, 100.0, 0.0, 1u); /* 20%/10% 谐波 */
|
||||
(void)freq_get(&f);
|
||||
printf(" [DATA] h3=20%% h5=10%%: f=%.4f err=%.4f\n", (double)f, (double)f - 48.0);
|
||||
CHECK(fabsf(f - 48.0f) <= 0.01f, "TC-FR-007 harmonics rejected: |err| <= 0.01 Hz");
|
||||
CHECK(fabsf(f - 48.0f) <= 0.01f, "TC-FREQ-007 harmonics rejected: |err| <= 0.01 Hz");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-008:相位跳变假值钳制(J6) ===================== */
|
||||
/* ===================== TC-FREQ-008:相位跳变假值钳制(J6) ===================== */
|
||||
static void tc_phase_jump(void) {
|
||||
float f = 0.0f;
|
||||
uint32_t i;
|
||||
@@ -306,11 +306,11 @@ static void tc_phase_jump(void) {
|
||||
}
|
||||
printf(" [DATA] after jump: f=%.4f err=%.4f (recover window 60 ms)\n",
|
||||
(double)f, (double)f - 50.0);
|
||||
CHECK(ok, "TC-FR-008 J6: recovers to +/-0.05 Hz within 60 ms after jump");
|
||||
CHECK(freq_valid() != 0u, "TC-FR-008 J6: still valid after clamp path");
|
||||
CHECK(ok, "TC-FREQ-008 J6: recovers to +/-0.05 Hz within 60 ms after jump");
|
||||
CHECK(freq_valid() != 0u, "TC-FREQ-008 J6: still valid after clamp path");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-009:UA 无幅值 -> IA 回退 ===================== */
|
||||
/* ===================== TC-FREQ-009:UA 无幅值 -> IA 回退 ===================== */
|
||||
static void tc_src_fallback(void) {
|
||||
float f = 0.0f;
|
||||
|
||||
@@ -319,39 +319,39 @@ static void tc_src_fallback(void) {
|
||||
(void)freq_get(&f);
|
||||
printf(" [DATA] UA=0 IA=1000: f=%.4f err=%.4f\n", (double)f, (double)f - 52.0);
|
||||
CHECK((freq_valid() != 0u) && (fabsf(f - 52.0f) <= 0.01f),
|
||||
"TC-FR-009 falls back to IA source when UA below amplitude gate");
|
||||
"TC-FREQ-009 falls back to IA source when UA below amplitude gate");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-010:init 幂等 / 参数守卫 ===================== */
|
||||
/* ===================== TC-FREQ-010:init 幂等 / 参数守卫 ===================== */
|
||||
static void tc_init_guards(void) {
|
||||
float f = 5.0f;
|
||||
|
||||
chain_reset();
|
||||
CHECK(freq_get(&f) == -2, "TC-FR-010 get before convergence -> -2");
|
||||
CHECK((f == 0.0f), "TC-FR-010 get -2 writes 0 to out");
|
||||
CHECK(freq_get(NULL) == -1, "TC-FR-010 NULL out -> -1");
|
||||
CHECK(freq_valid() == 0u, "TC-FR-010 valid=0 before convergence");
|
||||
CHECK(freq_last() == 0.0f, "TC-FR-010 last=0 before convergence");
|
||||
CHECK(freq_get(&f) == -2, "TC-FREQ-010 get before convergence -> -2");
|
||||
CHECK((f == 0.0f), "TC-FREQ-010 get -2 writes 0 to out");
|
||||
CHECK(freq_get(NULL) == -1, "TC-FREQ-010 NULL out -> -1");
|
||||
CHECK(freq_valid() == 0u, "TC-FREQ-010 valid=0 before convergence");
|
||||
CHECK(freq_last() == 0.0f, "TC-FREQ-010 last=0 before convergence");
|
||||
(void)freq_init();
|
||||
CHECK(freq_get(&f) == -2, "TC-FR-010 freq_init idempotent (still -2)");
|
||||
CHECK(freq_get(&f) == -2, "TC-FREQ-010 freq_init idempotent (still -2)");
|
||||
}
|
||||
|
||||
/* ===================== TC-FR-011:幅值门中途失效 -> 保持 ===================== */
|
||||
/* ===================== TC-FREQ-011:幅值门中途失效 -> 保持 ===================== */
|
||||
static void tc_gate_hold(void) {
|
||||
float f_before = 0.0f, f_after = 0.0f;
|
||||
|
||||
chain_reset();
|
||||
drive_n(150u, 50.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 1u);
|
||||
(void)freq_get(&f_before);
|
||||
CHECK(freq_valid() == 1u, "TC-FR-011 valid before gate loss");
|
||||
CHECK(freq_valid() == 1u, "TC-FREQ-011 valid before gate loss");
|
||||
|
||||
drive_n(50u, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1u); /* 波形消失 */
|
||||
CHECK(freq_valid() == 0u, "TC-FR-011 J5: valid cleared on gate loss");
|
||||
CHECK(freq_valid() == 0u, "TC-FREQ-011 J5: valid cleared on gate loss");
|
||||
(void)freq_get(&f_after);
|
||||
printf(" [DATA] hold: before=%.4f held=%.4f delta=%.4f\n",
|
||||
(double)f_before, (double)f_after, (double)(f_after - f_before));
|
||||
CHECK(fabsf(f_after - f_before) <= 0.3f,
|
||||
"TC-FR-011 J5: reading bounded (|delta| <= 0.3 Hz) during gate loss");
|
||||
"TC-FREQ-011 J5: reading bounded (|delta| <= 0.3 Hz) during gate loss");
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
|
||||
Reference in New Issue
Block a user