Files
H100PowerManger/test/disSysTest/README.md
T
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

97 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 配电系统调试助手(DisSysTest)
用于 H100 配电系统(高压母线 / 艏部高压 / 仪表母线 / 艏部低压)调试的
桌面工具。可在真实配电板联调与本地模拟两种模式下工作,纯 Python
标准库实现(Tkinter + SQLite),无第三方运行依赖。
## 快速开始
```bash
# 协议/配置/数据库自检(无界面,建议先跑)
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 打包脚本
```
## 测试与打包
```bash
python3 run.py --selftest # 协议/配置/数据库自检
python3 tests/test_protocol.py
python3 build.py # 需先 pip install pyinstaller(在目标平台执行)
```
## 注意
- 现场联调前建议先用模拟模式 + 转发/透传验证链路;
- 协议自检保证帧长与 C++ 结构一致,但最终以实际板卡抓包为准;
- 数据库文件默认生成在 `config.json` 同目录(源码运行时为 `app/test.db`)。