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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user