新增 pMotor 推进电机操作程序:经 pCanBridge(CAN1) 与电机控制器交互
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 保持行为正确
This commit is contained in:
zjk
2026-09-02 10:50:28 +08:00
parent 67e732045a
commit 873a1a9b09
20 changed files with 2007 additions and 10 deletions
+37
View File
@@ -0,0 +1,37 @@
// MOOS file
// pMotor 推进电机操作程序 配置示例
//
// 功能:经 pCanBridge(CAN1 通道)与推进电机控制器交互
// 下行:网页 /api/motor_cmd(启停/复位/转速)-> 500ms 周期指令帧 0x18EF2010
// 上行:订阅 pCanBridge 透传的 CAN_0x*(故障/转速/母线电压/温度)-> 网页展示
//
// 协议定义:docs/推进电机通信协议20260321.docx
ServerHost = localhost
ServerPort = 9000
Community = h100
ProcessConfig = pMotor
{
AppTick = 4
CommsTick = 4
// 电机 CAN 通道(须与 pCanBridge 的 channel 配置名一致)
can_channel = CAN1
// 冗余 CAN 通道(配置后指令帧同内容发 0x18EF2011 到该通道;空=不发送)
// red_channel = CAN2
// 指令帧周期 ms(协议 500ms)
cmd_period_ms = 500
// 复位位保持时长(秒):下发复位后 reset bit 保持高电平数秒,
// 仅故障状态下电机执行复位
reset_hold_sec = 5
// 网页(避开 pCCU 8080 / pPowerManger 8090 / pPowerMangerHost 18080)
web_port = 18081
web_enable = true
logpath = pMotor.log
}