build-test-deploy / ci (push) Failing after 32m37s
- 协议模块(protocol/MotorCan):12 条 CAN ID、指令帧 0x18EF2010 编码、 状态帧(转速/母线电压/温度)与支路一/二故障报警帧解码,故障位按协议 逐位映射中文描述(docs/推进电机通信协议20260321.docx) - 主程序(MOOS 应用):订阅 pCanBridge 透传 CAN_0x* 解码电机状态; 500ms 周期下发指令帧(CAN_TX_0x18EF2010,m_sSrcAux=CAN1), 可选 red_channel 冗余下发 0x18EF2011;复位位保持 reset_hold_sec - 网页(18081):按协议指令帧字段独立下发(使能命令 Byte0 bit0 / 复位命令 Byte0 bit1 / 期望转速 Byte2/3,无联动按钮); WebSocket 1Hz 推送转速/电压/温度/故障告警/链路统计 - 配置接入:missions/h100.moos 增加 pMotor 配置块(can_channel=CAN1) - 测试:pmotorTest 92 项(指令帧字节级对照协议示例、解码/故障表) - 部署:scripts/build-board.sh 增加 pMotor 产物拷贝 + pMotor.service; .gitignore 补 bin/pMotor、bin/pmotorTest - 联调验证:MOOSDB+pCanBridge+假CANET 全链路,下行帧 01 00 E8 03 与协议文档示例一致,复位位 3s 保持行为正确
121 lines
4.2 KiB
Plaintext
121 lines
4.2 KiB
Plaintext
// MOOS file
|
||
// 板卡 (RK3588 / Ubuntu 20.04) 专用 mission 配置
|
||
// 六个 systemd 服务(moosdb / pPowerManger / pPowerMangerHost / pCCU / pCanBridge / pMotor)
|
||
// 共用本文件。
|
||
// 由 scripts/deploy.sh 推送到板卡 /root/work/h100/missions/h100.moos
|
||
|
||
ServerHost = localhost
|
||
ServerPort = 9000
|
||
Community = h100
|
||
|
||
ProcessConfig = pPowerManger
|
||
{
|
||
AppTick = 4
|
||
CommsTick = 4
|
||
log_level = INFO
|
||
// 日志文件路径(目录需已存在,由 deploy.sh 创建)
|
||
logpath = /root/work/h100/data/pPowerManger.log
|
||
// 数据库存储路径(目录需已存在,由 deploy.sh 创建)
|
||
dbpath = /root/work/h100/data/power_data.db
|
||
// CCU 地址(pPowerManger -> pCCU 的 UDP 链路);不配置则默认 127.0.0.1:7000
|
||
ccuhost = 127.0.0.1
|
||
ccuport = 7000
|
||
// 本地输入端口(接收 CCU 数据);默认 5001。
|
||
// 5001 让给 pCCU 的 rcu 链路接收真实CCU(192.168.0.140) 固定上报的
|
||
// 配电反馈,故本进程接收端口改为 5002(pCCU 转发的反馈与状态报文发往此处)
|
||
iport = 5002
|
||
}
|
||
|
||
ProcessConfig = pPowerMangerHost
|
||
{
|
||
AppTick = 4
|
||
CommsTick = 4
|
||
WEB_PORT = 18080
|
||
|
||
// 反馈落盘(SQLite),路径可配置;目录不存在会自动创建
|
||
DB_FILE = /root/work/h100/data/feedback_data.db
|
||
FB_LOG_ENABLED = true
|
||
FB_LOG_KEEP_SECONDS = 86400 // 历史保留时长(秒),24h
|
||
FB_LOG_PRUNE_INTERVAL_SECONDS = 60 // 清理检查周期(秒)
|
||
}
|
||
|
||
ProcessConfig = pCCU
|
||
{
|
||
AppTick = 4
|
||
CommsTick = 4
|
||
|
||
// FC 链路(本机监听 FC 状态;发送 FC 控制指令给燃料电池控制器)
|
||
fc_local_port = 6000
|
||
fc_remote_ip = 192.168.1.162
|
||
fc_remote_port = 7000
|
||
|
||
// PM 链路(监听 pPowerManger 指令;向 pPowerManger 周期发送 PM 状态)
|
||
// pPowerManger 与 pCCU 同机部署;pPowerManger 接收端口为 5002(iport),
|
||
// 故 PM 状态发送目标用 127.0.0.1:5002。
|
||
pm_local_port = 7000
|
||
pm_remote_ip = 127.0.0.1
|
||
pm_remote_port = 5002
|
||
|
||
//======== 真实CCU 桥接链路(配电协议) ========
|
||
// 真实CCU(192.168.0.140) 设备侧固定上报到 192.168.0.223:5001
|
||
// (与 pPowerManger 默认 CCU 配置一致:CCUPORT=7000 为其监听口,
|
||
// 上报目标为控制主机 5001),设备侧不可修改。
|
||
// 故 pCCU 的 rcu 链路直接绑定 5001 接收其反馈:
|
||
// 配电反馈 0x0005~0x0008:原帧转发 pPowerManger(127.0.0.1:5002) + 网页显示
|
||
// 配电指令 0x0001~0x0004:转发目标为真实CCU 监听口 192.168.0.140:7000
|
||
// 其余帧(旧协议 0x20 0x20 状态帧、无效帧)落库忽略
|
||
rcu_enable = true
|
||
rcu_local_port = 5001
|
||
rcu_remote_ip = 192.168.0.140
|
||
rcu_remote_port = 7000
|
||
|
||
//======== 锂电池 ========
|
||
// CAN 总线 BMS 协议(docs/BMS_协议字段定义.xlsx),
|
||
// 经 pCanBridge 发布的 CAN_0x* 消息透传,无需额外配置。
|
||
dbpath = /root/work/h100/data/pccu_data.db
|
||
logpath = /root/work/h100/data/pCCU.log
|
||
|
||
web_port = 8080
|
||
web_enable = true
|
||
}
|
||
|
||
ProcessConfig = pCanBridge
|
||
{
|
||
AppTick = 4
|
||
CommsTick = 4
|
||
|
||
// CAN<->MOOSDB 多通道透传:CANET(TCP Server 模式)
|
||
// 每通道一条独立 TCP 连接;工作端口:CAN0=4001,CAN1=4002,...,CAN7=4008
|
||
channel = CAN0,192.168.0.222,4001
|
||
channel = CAN1,192.168.0.222,4002
|
||
// channel = CAN1,192.168.0.222,4002
|
||
|
||
// CAN_TX 下行默认通道(pCCU 未指定 m_sSrcAux 时使用;可省略)
|
||
default_channel = CAN0
|
||
|
||
// CAN 帧 SQLite 落库路径(can_frame 表,channel 列区分通道)
|
||
dbpath = /root/work/h100/data/pCanBridge_data.db
|
||
}
|
||
|
||
ProcessConfig = pMotor
|
||
{
|
||
AppTick = 4
|
||
CommsTick = 4
|
||
|
||
// 推进电机控制器:CAN1 通道(经 pCanBridge 透传,docs/推进电机通信协议20260321.docx)
|
||
// 下行 500ms 周期指令帧 0x18EF2010(网页 /api/motor_cmd 控制启停/复位/转速),
|
||
// 上行订阅 CAN_0x* 解码故障/转速/母线电压/温度,网页 18081 展示
|
||
can_channel = CAN1
|
||
|
||
// 冗余 CAN 通道(配置后指令帧同内容发 0x18EF2011;留空=不发送)
|
||
// red_channel = CAN2
|
||
|
||
cmd_period_ms = 500
|
||
reset_hold_sec = 5
|
||
|
||
web_port = 18081
|
||
web_enable = true
|
||
|
||
logpath = /root/work/h100/data/pMotor.log
|
||
}
|