新增复合管控器(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 补充编译产物/临时文件忽略
This commit is contained in:
zjk
2026-08-26 22:43:10 +08:00
parent e0488d513b
commit 54c32a180a
79 changed files with 8731 additions and 1398 deletions
+27
View File
@@ -16,6 +16,7 @@
#include "upmsg/uPlan_planStop.h"
#include "upmsg/uDetect_xcVoltage_cmd.h"
#include "upmsg/uDetect_zdpVoltage_cmd.h"
#include "upmsg/uDevice_insData.h"
TEST(UpmsgTest, PowerSysStateParse)
{
@@ -105,3 +106,29 @@ TEST(UpmsgTest, ZdpVoltageRoundTrip)
EXPECT_TRUE(cmd2.fromJsonString(json));
EXPECT_EQ(cmd2.zdpVoltageAdd_int32, 2);
}
TEST(UpmsgTest, InsDataParse)
{
uDevice_insDataMsg msg;
InsDataState st;
EXPECT_EQ(msg.parseMsg("uDevice_insData_st",
R"({"headingAngle_int32":1200,"rollAngle_int32":-50,"pitchAngle_int32":30,"depth_int32":1500,
"headingAngularVelocity_int32":10,"rollAngularVelocity_int32":-1,"longAngularVelocity_int32":2,
"lon_int32":113123,"lat_int32":22123,"northSpeed_int16":12,"eastSpeed_int16":-3,"zSpeed_int16":1})",
st), 1);
EXPECT_EQ(st.headingAngle_int32, 1200);
EXPECT_EQ(st.rollAngle_int32, -50);
EXPECT_EQ(st.pitchAngle_int32, 30);
EXPECT_EQ(st.depth_int32, 1500);
EXPECT_EQ(st.headingAngularVelocity_int32, 10);
EXPECT_EQ(st.northSpeed_int16, 12);
// key 不匹配 → 0
EXPECT_EQ(msg.parseMsg("wrong_key", R"({"headingAngle_int32":1})", st), 0);
// 非法 JSON → -1
EXPECT_EQ(msg.parseMsg("uDevice_insData_st", "{bad json", st), -1);
// 缺字段 → 解析成功但保持缺省值
InsDataState st2;
EXPECT_EQ(msg.parseMsg("uDevice_insData_st", R"({"headingAngle_int32":99})", st2), 1);
EXPECT_EQ(st2.headingAngle_int32, 99);
EXPECT_EQ(st2.depth_int32, 0);
}