我在简单模块中定义了此getTransmissionChannel()
。
对于以下模拟连接,它完美地工作:
CustomedNode1.Netport <--> LinkDefinedChannel <--> mySwitch.connectedToPort1;
CustomedNode2.Netport <--> LinkDefinedChannel <--> mySwitch.connectedToPort2;
CustomedNode3.Netport <--> LinkDefinedChannel <--> mySwitch.connectedToPort3;
CustomedNode4.Netport <--> LinkDefinedChannel <--> mySwitch.connectedToPort4;
CustomedNode5.Netport <--> LinkDefinedChannel <--> mySwitch.connectedToPort5;
然后我将node5替换为另一种类型的节点,但是使用相同的端口并且生成的新连接是:
CustomedNode1.Netport <--> LinkDefinedChannel <--> ibSwitch.connectedToPort1;
CustomedNode2.Netport <--> LinkDefinedChannel <--> ibSwitch.connectedToPort2;
CustomedNode3.Netport <--> LinkDefinedChannel <--> ibSwitch.connectedToPort3;
CustomedNode4.Netport <--> LinkDefinedChannel <--> ibSwitch.connectedToPort4;
mySwitch.connectedToPort5 <--> gatewayNode.Netport ;
现在模拟崩溃说getTransmissionChannel()
没有找到传输通道。
我不知道突然发生了什么。我刚换成新的 具有相同类型网口的节点。
答案 0 :(得分:1)
getTransmissionChannel()
返回传输。如果您没有在链接中指定任何通道,则OMNet ++可以替代cIdealChannel
,这基本上意味着没有为该连接分配通道对象。
在您的情况下,节点更换新连接后
mySwitch.connectedToPort5 <--> gatewayNode.Netport ;
没有定义任何渠道。因此,IDE替换为cIdealChannel
,因此getTransmissionChannel()
找不到任何传输通道,因为没有为此连接定义通道对象。
所以改为
mySwitch.connectedToPort5 <--> gatewayNode.Netport ;
要
mySwitch.connectedToPort5 <--> LinkDefinedChannel <--> gatewayNode.Netport ;
现在getTransmissionChannel()
应该能够获得传输通道,因为您要为此连接定义一个通道对象。