新应用 src/pCanBridge(独立 MOOS App,单通道): - CanEndpoint:TCP Client 连接 CANET/USBCAN-8E-U 工作端口 (目标 IP/端口可配置,默认 192.168.0.222:4001=CAN0), 接收线程流式缓冲按 13 字节切帧,过滤无效 DLC(>8), 断线自动重连(非阻塞 connect+超时 / SO_RCVTIMEO 读超时)。 - 帧协议(CANET-8E-U 手册 8.1):byte0=帧信息(bit7 FF/bit6 RTR/ bit3~0 DLC),byte1~4=ID 大端,byte5~12=数据。 - MOOS 映射:变量名 CAN_0x%08X=CAN ID(不缩减),m_sVal=二进制 data(逐帧透传不限流),m_sSrcAux=通道名(can_channel_name), m_dfVal2=原始帧信息字节(用于区分标准/扩展、数据/远程帧)。 - CanDbStore:每帧落库 SQLite(can_frame 表:time/channel/ frame_info/can_id/dlc/hex,含 time、can_id 索引),参考 pCCU DbStore:预处理语句 + WAL + synchronous=NORMAL,路径由 dbpath 配置;复用 pPowerManger 的 sqlite3 amalgamation。 - AppCast 输出连接状态/收帧/发布/落库统计。 配套: - missions/h100.moos 新增 pCanBridge 配置块(板卡 dbpath 指向 data 目录)。 - build-board.sh / deploy.sh 支持 pCanBridge:产物部署 + pCanBridge.service 安装,服务列表加入第 5 个服务。 - .gitignore 忽略 bin/pCanBridge 与本机默认数据库。 已验证(板卡 192.168.0.223 实测):服务 active,连接设备正常, ~60 帧/s 透传,落库 9000+ 行 integrity ok、无丢帧。
87 lines
2.8 KiB
Plaintext
87 lines
2.8 KiB
Plaintext
// MOOS file
|
||
// 板卡 (RK3588 / Ubuntu 20.04) 专用 mission 配置
|
||
// 五个 systemd 服务(moosdb / pPowerManger / pPowerMangerHost / pCCU / pCanBridge)
|
||
// 共用本文件。
|
||
// 由 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
|
||
}
|
||
|
||
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 绑定 0.0.0.0:5001,
|
||
// 故 PM 状态发送目标用回环地址即可送达。
|
||
pm_local_port = 7000
|
||
pm_remote_ip = 127.0.0.1
|
||
pm_remote_port = 5001
|
||
|
||
// 锂电池链路(协议:docs/锂电池协议20230324.docx)
|
||
// 动力/仪表锂电池各自独立端口;本机监听端口需与电池侧配置的目的端口一致
|
||
dyn_bat_local_port = 7001
|
||
dyn_bat_remote_ip = 192.168.100.137
|
||
dyn_bat_remote_port = 7000
|
||
ins_bat_local_port = 7002
|
||
ins_bat_remote_ip = 192.168.100.136
|
||
ins_bat_remote_port = 7000
|
||
// 电池工况设定:10工房调试 / 30试验实航 / 50科研模式
|
||
bat_work_condition = 10
|
||
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 透传:USBCAN-8E-U/CANET(TCP Server 模式)
|
||
// 工作端口:CAN0=4001,CAN1=4002,...,CAN7=4008
|
||
can_host = 192.168.0.222
|
||
can_port = 4001
|
||
// 通道名(写入消息 m_sSrcAux 辅助字段)
|
||
can_channel_name = CAN0
|
||
|
||
// CAN 帧 SQLite 落库路径(can_frame 表)
|
||
dbpath = /root/work/h100/data/pCanBridge_data.db
|
||
}
|