Files
yhf c8bfef090a chore: 发布V1.1.26版本,修复Sink角色切换初始化残留问题
1. 更新所有文件版本号至V1.1.26,同步固件版本寄存器值
2. 修复Sink角色往返时初始化上下文残留问题,切换回Sink时重新执行完整初始化
3. 优化Sink配置生效逻辑,同角色仅复制PC可写配置,保留运行状态
4. 增加初始化阶段入队标记,避免沿用旧成功结果跳过未执行命令
5. 停止入队失败时由北向轮询重试,不依赖On_work或通道使能
6. 新增Sink初始化回归测试套件,覆盖14种场景验证流程正确性
2026-09-17 12:01:50 +08:00

2.1 KiB
Raw Permalink Blame History

Sink 初始化回归验证

主机测试

在仓库根目录执行(需要 Node.js 和本机 GCC):

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 不变。