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:
@@ -10,28 +10,28 @@ namespace ccu {
|
||||
|
||||
//============================================================================
|
||||
// FC 协议(燃料电池系统 <-> 复合管控器)
|
||||
// 依据:docs/超滑FC和复合管控器通讯协议 - 0821.docx
|
||||
// 依据:docs/超滑FC和复合管控器通讯协议 - 0827.docx
|
||||
//
|
||||
// 帧格式统一:0x40 0x40 + 域标识符(2B) + 域字节数(2B) + 数据域 + [校验和]
|
||||
// 注意:FC 协议文档未列出校验和行,故默认采用 None(可插拔,联调可切换)。
|
||||
//
|
||||
// 两条消息:
|
||||
// 0x0001 复合管控器->燃料电池控制器(控制指令域) payload 14B,总长 20B
|
||||
// 0x0001 复合管控器->燃料电池控制器(控制指令域) payload 18B,总长 24B
|
||||
// 0x0002 燃料电池控制器->复合管控器(状态反馈域) payload 144B,总长 150B
|
||||
//============================================================================
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// 0x0001 控制指令域(复合管控器 -> 燃料电池)
|
||||
// payload 14 字节,对应文档字节 7~20
|
||||
// payload 18 字节,对应文档字节 7~24
|
||||
//--------------------------------------------------------------------------
|
||||
struct FcControlValue {
|
||||
uint8_t mode = 0; // 模式设定 00~03
|
||||
uint8_t cmd = 0; // 操控指令 00~0B
|
||||
uint8_t outputPower = 0; // 输出功率指令 0~250,分辨率0.1kW
|
||||
int16_t pitch1 = 0; // 纵倾姿态数据1 int16,分辨率0.1°(字节10,11)
|
||||
int16_t pitch2 = 0; // 纵倾姿态数据2 int16,分辨率0.1°(字节12,13)
|
||||
uint16_t reserved1 = 0; // 预留(字节12,13),0827协议由纵倾姿态数据2改为预留
|
||||
int16_t roll1 = 0; // 横倾姿态数据1 int16,分辨率0.1°(字节14,15)
|
||||
int16_t roll2 = 0; // 横倾姿态数据2 int16,分辨率0.1°(字节16,17)
|
||||
uint16_t reserved2 = 0; // 预留(字节16,17),0827协议由横倾姿态数据2改为预留
|
||||
uint8_t emergencyAllow = 0; // 应急允许:Bit0 允许降载 / Bit1 允许排气(字节18)
|
||||
uint16_t depth = 0; // 潜深深度,单位 m(字节19,20)
|
||||
uint8_t supplyCmd = 0; // 补给/排放指令 00~0B(字节21)
|
||||
@@ -119,7 +119,8 @@ struct FcStatusValue {
|
||||
uint16_t fc_h2_flow = 0; // FC供氢流量,0.01L/min
|
||||
uint16_t fc_o2_flow = 0; // FC供氧流量,0.01L/min
|
||||
|
||||
uint16_t reserved[12] = {0}; // 预留1~12
|
||||
uint16_t reserved[11] = {0}; // 预留1~11(字节125~146)
|
||||
uint16_t remaining_generation = 0; // 剩余发电量,MWh(字节147,148),0827协议由预留12改为
|
||||
|
||||
uint8_t heartbeat = 0; // 通信心跳,每次+1
|
||||
uint8_t emergency_cmd = 0; // 应急指令:Bit0 降载/Bit1 上浮/...
|
||||
|
||||
Reference in New Issue
Block a user