# Sink 初始化回归验证 ## 主机测试 在仓库根目录执行(需要 Node.js 和本机 GCC): ```powershell node tests/sink_init/run.cjs C:/Qt/Tools/mingw1310_64/bin/gcc.exe ``` 测试编译真实 `chrg_sink.c`、从 COM 提取的配置生效函数和北向状态调度片段;只模拟时钟、南向批次、继电器及无关外设。每个场景独立进程,临时产物自动清理。 14 个用例覆盖:旧影子配置保留实时状态、重复退出 Short、初始化中配置变化返回忙、重复 INIT 恢复、初始化中停止、首批/后续阶段入队失败、批次失败重试、完整初始化后再次退出 Short、重复/拒绝请求不改变配置版本、停止入队失败后台重试、Sink 初始化中切换角色后重新初始化。 主机测试不能验证实际串口回码匹配、线程竞争、继电器时序或功率板执行结果。 ## 硬件验收(尚未执行) 使用现有 PC 指令和安全负载,先单通道,再四通道同时重复以下场景: 1. 普通 5V/1A 启停、Short 进入/退出各循环至少 100 次;退出期间重复发送同一参数生效请求。预期退出初始化持续推进,最终可恢复带载。 2. 初始化期间修改配置并生效。预期返回 Modbus 忙(异常码 `0x06`),PC 在初始化完成后重试;旧事务参数及北向回码推进不被覆盖。 3. 在各初始化阶段发送停止;短时断开南向通信后恢复。预期停止优先、未完成阶段重试,不以旧成功结果提前进入 WAIT。 4. 初始化未完成时切 Source,再切回 Sink。预期重新清短路、配置继电器和负载参数,不复用旧初始化阶段。 用 Keil Watch 观察 `sink.work_mode`、`sink.On_work`、`sink.test.test_mode_old`、`g_sink_init_in_progress`、`g_sink_init_stage`、`g_sink_init_stage_submitted`、`sub` 和 `config_version`;避免高频打印。结合南向回码及实测电流确认执行,不能仅以入队成功作为验收依据。 本次应用版本为 **V1.1.26**,对外固件版本寄存器 `0x0300` 为 `0x012A`;Bootloader 不变。