修复:跨线程数据竞争 + 协议字段越界 + UDP 发送失败吞错

- 并发安全:PowerManger 新增 m_stateMutex,保护 m_pmCurrentState /
  m_currentDisBreakerState / m_CcuColCmd / faultCode,并封装
  addFaultCode/clearFaultCodes/getFaultCodes 访问器
- SystemData 新增跨线程读访问器(getDynVoltageLink/getPowerBusStatus/
  getDcdcStatus/getDeviceCommonStatus 等)及配电故障码集合加锁访问
- upmsg buildMsg / httpserver pushSystemData / LowerCommManager 均改为
  持锁快照,避免 listen 线程与 comm 线程撕裂读写
- 修复析构顺序:先删 httpServer 再删其他对象,避免 use-after-free
- 修复 ccuState reserved2 越界读(协议预留 2 字节,结构体仅声明 1),
  修正 coutMsg 中 SOC 门限/功率限制字段打印
- udpComm::sendDisSysCmd 不再吞掉异常,返回 sendMsg 实际结果并记录 ERROR,
  新增 SendDisSysCmdFailsWithoutSocket 单测
- 新增 fullFeeder 全类型 UDP 集成仿真器与 fetch-data/clean-data 脚本,
  .gitignore 补充 SQLite 运行期文件与 fullFeeder 二进制
This commit is contained in:
zjk
2026-08-21 11:36:19 +08:00
parent 7819ea621f
commit 12f0dee86e
20 changed files with 2406 additions and 285 deletions
+6
View File
@@ -260,6 +260,12 @@ reports/
# CI test binaries (built into bin/)
bin/PowerMangerTests
bin/udpFeeder
bin/fullFeeder
# SQLite runtime artifacts
*.db-shm
*.db-wal
*.db-journal
# Cross-compiled aarch64 artifacts (scripts/cross-build-local.sh)
bin/arm64/