- 新增 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 补充编译产物/临时文件忽略
97 lines
4.0 KiB
Markdown
97 lines
4.0 KiB
Markdown
# 配电系统调试助手(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`)。
|