pCanBridge 扩展多通道支持:每通道独立TCP链路 + 上下行对称通道标注(m_sSrcAux)
pCanBridge: - 配置改为 channel = <通道名>,<IP>,<工作端口> 重复行(兼容旧 can_host/can_port 单通道回退), 每通道一条独立 CanEndpoint(TCP Client) + 接收线程,对应 CANET 的 CAN0=4001..CAN7=4008 - 上行 CAN_0x%08X 不变,m_sSrcAux=通道名区分来源通道 - 下行按 m_sSrcAux 路由到对应通道;回退规则:default_channel > 单通道 > 多通道告警丢弃 - buildReport 逐通道统计(连接/收发帧数/错误/重连) pCCU: - 新增 bcu_can_channel 配置(默认 CAN0),BCU 断路器下行 Post 前 SetSourceAux 指定目标通道, key 保持 CAN_TX_0x%08X(与上行通道标注对称,key 格式不变) 配置/文档:pCanBridge.moos、CanBridge_Info、pCCU.moos、missions/h100.moos、 test/pccu/pccu_it.moos 同步新格式。 验证:伪造 CANET Server 冒烟通过(多通道建链/上行解析发布/SQLite channel 列/ 下行通道路由与回退丢弃/srcAux 经 MOOSDB 往返); pccu 集成测试 PASSED(BCU 断路器下行 3 帧经新路由全部正确); pccuTest 183/183、PowerMangerTests 64/64 通过。
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
//============================================================================
|
||||
// pCanBridge 配置示例
|
||||
// pCanBridge 配置示例(多通道)
|
||||
//
|
||||
// 拓扑(双向透传):
|
||||
// 上行:USBCAN-8E-U(CANET TCP Server,192.168.0.222:4001=CAN0)
|
||||
// -> pCanBridge(TCP Client) -> MOOS "CAN_0x%08X"(二进制 data)
|
||||
// 下行:MOOS "CAN_TX_0x%08X"(二进制 data,dlc<=8,如 BCU 断路器控制
|
||||
// 帧 0x10XX81FF,由 pCCU 发布)-> pCanBridge -> USBCAN -> CAN 总线
|
||||
// 拓扑(双向透传,每通道一条独立 TCP 连接):
|
||||
// 上行:CANET 工作端口(TCP Server)-> pCanBridge(TCP Client)
|
||||
// -> MOOS "CAN_0x%08X"(二进制 data,m_sSrcAux=通道名)
|
||||
// 下行:MOOS "CAN_TX_0x%08X"(二进制 data,m_sSrcAux=目标通道,
|
||||
// 如 BCU 断路器控制帧 0x10XX81FF,由 pCCU 发布)
|
||||
// -> pCanBridge 按通道路由 -> CANET -> CAN 总线
|
||||
// 变量名 CAN_0x%08X = CAN ID;m_sVal = 二进制 data;
|
||||
// m_sSrcAux = 通道名;m_dfVal2 = 原始帧信息字节(FF/RTR/DLC)
|
||||
// m_sSrcAux = 通道名;上行 m_dfVal2 = 原始帧信息字节(FF/RTR/DLC)
|
||||
//============================================================================
|
||||
|
||||
ProcessConfig = pCanBridge
|
||||
@@ -15,17 +16,20 @@ ProcessConfig = pCanBridge
|
||||
AppTick = 4
|
||||
CommsTick = 4
|
||||
|
||||
//======== 目标 USBCAN-8E-U 地址(TCP Server 模式) ========
|
||||
// 转换器 IP
|
||||
can_host = 192.168.0.222
|
||||
// 工作端口:CAN0=4001,CAN1=4002,...,CAN7=4008
|
||||
can_port = 4001
|
||||
//======== 通道配置(可重复多行) ========
|
||||
// 格式:channel = <通道名>,<转换器IP>,<工作端口>
|
||||
// CANET 工作端口:CAN0=4001,CAN1=4002,...,CAN7=4008
|
||||
channel = CAN0,192.168.0.222,4001
|
||||
// channel = CAN1,192.168.0.222,4002
|
||||
// channel = CAN2,192.168.0.222,4003
|
||||
// ...
|
||||
|
||||
//======== 通道标识 ========
|
||||
// 写入消息 m_sSrcAux 辅助字段,用于下游区分通道
|
||||
can_channel_name = CAN0
|
||||
//======== 下行默认通道(可空) ========
|
||||
// CAN_TX 消息 m_sSrcAux 为空时:配置了本项则用它;
|
||||
// 未配置且仅单通道则用该通道;多通道则告警丢弃。
|
||||
default_channel = CAN0
|
||||
|
||||
//======== 存储 ========
|
||||
// CAN 帧 SQLite 落库路径(can_frame 表)
|
||||
// CAN 帧 SQLite 落库路径(can_frame 表,channel 列区分通道)
|
||||
dbpath = pCanBridge_data.db
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user