Files
H100PowerManger/src/pCanBridge/pCanBridge.moos
T
zjk 67e732045a 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 通过。
2026-09-01 21:23:52 +08:00

36 lines
1.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
//============================================================================
// pCanBridge 配置示例(多通道)
//
// 拓扑(双向透传,每通道一条独立 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)
//============================================================================
ProcessConfig = pCanBridge
{
AppTick = 4
CommsTick = 4
//======== 通道配置(可重复多行) ========
// 格式: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
// ...
//======== 下行默认通道(可空) ========
// CAN_TX 消息 m_sSrcAux 为空时:配置了本项则用它;
// 未配置且仅单通道则用该通道;多通道则告警丢弃。
default_channel = CAN0
//======== 存储 ========
// CAN 帧 SQLite 落库路径(can_frame 表,channel 列区分通道)
dbpath = pCanBridge_data.db
}