0827协议修订:姿态数据2改预留 + 状态帧新增剩余发电量 + CCU地址可配置
build-test-deploy / ci (push) Successful in 1h13m13s

FC协议(0827 docx):
- 控制指令域:字节12,13/16,17由纵倾/横倾姿态数据2改为预留(编码恒0、解码忽略)
- 状态反馈域:字节147,148由预留12改为剩余发电量(MWh),贯通JSON/网页显示
- PM→CCU链路:姿态字段4xuchar改为2xshort(数据1),结构体大小与线上布局不变
- 同步更新:CCU转发映射、SnapshotBuilder、pCCU网页、fuelcell网页、SQLite列描述、单测/模拟器
- 修正集成测试遗留断言(20B→24B、心跳d[19]→d[23])并增强预留字节校验

CCU地址可配置:
- pPowerManger 支持 moos 配置项 ccuhost/ccuport(默认127.0.0.1:7000)
- build-board.sh 增加 --ccu-host/--ccu-port 参数

文档:FC协议文档更新为0827版,清理过期协议docx
This commit is contained in:
zjk
2026-08-28 00:09:17 +08:00
parent c8becd1f6c
commit 2590282aed
28 changed files with 199 additions and 91 deletions
+3 -1
View File
@@ -120,6 +120,8 @@ class FcSim:
struct.pack_into("<H", p, 116, int(900 + 100 * math.sin(self.t / 4)))
p[142] = self.heartbeat & 0xFF # 通信心跳 (字节149)
p[143] = 0 # 应急指令 (字节150)
# 剩余发电量 MWh (字节147-148, 0827协议由预留12改为):随发电缓慢消耗
struct.pack_into("<H", p, 140, int(500 - self.gen_time / 360.0))
return frame(0x0002, bytes(p), checksum=False)
def tick(self, dt):
@@ -156,7 +158,7 @@ class PmSim:
p[8] = 2 # 模式: 自动
p[9] = 2 # 操控: 启动
p[10] = self.power # 输出功率 (0.1kW)
# 纵倾姿态 (数据1=低8位/数据2=高8位, int16, 0.1°) / 横倾姿态
# 纵倾姿态数据1 / 横倾姿态数据1 (int16, 0.1°, 0827协议数据2字节预留)
pitch = int((3.0 + 1.5 * math.sin(time.time() / 8)) * 10)
roll = int((-1.0 + 0.5 * math.cos(time.time() / 6)) * 10)
struct.pack_into("<h", p, 11, pitch)