Files
H100PowerManger/test/disSysTest
zjk 54c32a180a 新增复合管控器(pCCU) + 惯导数据解析 + 设备控制页增强 + 0824协议文档归档
- 新增 pCCU 复合管控器程序(src/pCCU):FC/PM 双链路(UDP)、协议编解码器
  (FcProtocol/PmProtocol/Frame/Message/MessageRegistry)、快照与落库(DbStore)、
  内置 WebServer;挂入 src/CMakeLists.txt 与板卡 mission(h100.moos)
- 惯导/深度数据:新增 uDevice_insData 消息解析,接入 UpperCommManager,
  pPowerMangerHost 注册监视,UpmsgTest 覆盖
- pPowerMangerHost 设备控制页增强(web/index.html)
- 部署/运维脚本改为 4 个 systemd 服务(moosdb/pPowerManger/pPowerMangerHost/pCCU):
  deploy/clean-data/fetch-data 同步适配
- 协议文档:归档 0824 控制主机与复合管控器通信协议 xlsx 及关联 docx,移除旧 md
- 测试:新增 pccu 单元/集成测试与 disSysTest Python 配电仿真
- 清理:移除未使用的 CCU 状态调试打印 coutMsg;.gitignore 补充编译产物/临时文件忽略
2026-08-26 22:43:10 +08:00
..
2025-07-02 16:20:36 +08:00
2025-09-12 11:35:17 +08:00
2025-05-05 19:03:57 +08:00
2025-05-05 19:03:57 +08:00
2025-09-12 11:35:17 +08:00

配电系统调试助手(DisSysTest)

用于 H100 配电系统(高压母线 / 艏部高压 / 仪表母线 / 艏部低压)调试的 桌面工具。可在真实配电板联调与本地模拟两种模式下工作,纯 Python 标准库实现(Tkinter + SQLite),无第三方运行依赖。

快速开始

# 协议/配置/数据库自检(无界面,建议先跑)
python3 run.py --selftest

# 启动界面
python3 run.py

旧目录中的 PowerManagerApp.py、PowerManagerApp copy.py、udpMsg.py、 db.py、test.py、ccu.py 等为历史调试脚本,新工程位于 app/, 旧文件保留供参考,未参与运行。

界面与操作

  • 四个状态页:动力母线 / 艏部高压 / 仪表母线 / 艏部低压,实时显示 电压、电流、断路器状态与报警。
  • 断路器指示灯:绿=合(0x55) 黑=分(0xAA) 红=故障(0x5A) 灰=无数据。
  • 配电操作菜单:打开各母线操作面板,点「合 / 分」下发指令。
  • DCDC 状态:查看 DC/DC 故障字1/2 的 16 个状态位。
  • 模拟模式:勾选后无需设备即可联调,配电指令会同步回写模拟反馈, 与真实设备共用同一套接收/落库/转发链路。
  • 转发反馈 / 透传指令:把收到的反馈转发给上位机;把上位机指令透传 给对应配电板。
  • 数据记录:反馈与指令自动写入 SQLite(可取消勾选)。

通信配置

菜单「配置 → 通信配置」可修改并保存到 config.json(首次运行自动生成 默认值):

端点 默认值 说明
本机 127.0.0.1:7000 监听反馈
高压配电板(C1) 192.168.1.154:6000 指令下发目标
仪表配电板(C2) 192.168.1.158:6000 指令下发目标
上位机 127.0.0.1:5001 反馈转发目标

菜单「配置 → 启动连接」控制 UDP 接收线程(默认开启)。

消息协议

帧格式:0x40 0x40 | id(LE u16) | length(LE u16) | body | 和校验(1B)。

消息 ID 方向 说明 body 长度
0x0001 指令 动力母线配电 14
0x0002 指令 艏部高压配电 6
0x0003 指令 仪表母线配电 7
0x0004 指令 艏部低压配电 8
0x0005 反馈 动力母线状态 53
0x0006 反馈 艏部高压状态 25
0x0007 反馈 仪表母线状态 34
0x0008 反馈 艏部低压状态 29

字段定义与顺序对齐 src/pPMtest/pmSysvariable.h(注意历史版本 udpMsg.py 中的 length 字段存在多处错误,app/protocol.py 已修正并由字段表自动推导)。

工程结构

app/
  protocol.py   声明式协议定义(pack/unpack/长度自推导,含自检)
  config.py     config.json 加载/保存
  udp_comm.py   UDP 收发线程与按 ID 分发
  simulator.py  内置模拟器(指令回显)
  db.py         SQLite 存储(表结构由协议自动生成)
  logger.py     日志(UI/控制台/文件,线程安全)
  panels.py     数据驱动的状态/操作面板
  app.py        主窗口
  ccuMsg.py / ccuWin.py  复合管控 CCU 模块(功能预留,暂未接入)
run.py          入口
tests/          协议单元测试
build.py        PyInstaller 打包脚本

测试与打包

python3 run.py --selftest     # 协议/配置/数据库自检
python3 tests/test_protocol.py
python3 build.py              # 需先 pip install pyinstaller(在目标平台执行)

注意

  • 现场联调前建议先用模拟模式 + 转发/透传验证链路;
  • 协议自检保证帧长与 C++ 结构一致,但最终以实际板卡抓包为准;
  • 数据库文件默认生成在 config.json 同目录(源码运行时为 app/test.db)。