Omnet++ TSN中check_and_cast错误排查:UDP数据包无法传输问题
问题根源与解决方法
这个check_and_cast错误的核心原因是:路由器的以太网MAC层(router.eth[0].mac)收到了非以太网类型的物理层信号,无法将通用的inet::physicallayer::signal*转换为以太网专用的EthernetSignalBase*类型。
排查与修复步骤
- 检查路由器接口的物理层配置:确保路由器
eth[0]接口使用以太网物理层模块,而非无线或其他协议的物理层。在omnetpp.ini中添加或修改:*.router.eth[0].phy.typename = "EthernetPhy" - 确认TSN设备与路由器之间的链路类型:TSN基于以太网标准,两者间的通道必须是以太网通道,添加配置:
*.router.eth[0].channel.typename = "EthernetChannel" *.tsnDevice1.eth[0].channel.typename = "EthernetChannel" - 验证TSN设备的出口物理层:确保TSN设备连接路由器的接口也使用以太网物理层:
*.tsnDevice1.eth[0].phy.typename = "EthernetPhy"
补充说明
你当前的omnetpp.ini仅配置了应用层的UDP参数,但底层链路/物理层的协议不匹配才是触发错误的关键。TSN设备默认会使用以太网物理层,但路由器的接口可能继承自示例配置中的非以太网模块,导致信号类型不兼容。
内容的提问来源于stack exchange,提问作者Piper
相关产品推荐
相关产品推荐

