getTransmissionChannel()正在崩溃omnet ++模拟

时间:2016-03-12 07:00:47

标签: c++ omnet++

我在简单模块中定义了此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()没有找到传输通道。

  

我不知道突然发生了什么。我刚换成新的   具有相同类型网口的节点。

1 个答案:

答案 0 :(得分:1)

getTransmissionChannel()返回传输。如果您没有在链接中指定任何通道,则OMNet ++可以替代cIdealChannel,这基本上意味着没有为该连接分配通道对象。

在您的情况下,节点更换新连接后 mySwitch.connectedToPort5 <--> gatewayNode.Netport ;没有定义任何渠道。因此,IDE替换为cIdealChannel,因此getTransmissionChannel()找不到任何传输通道,因为没有为此连接定义通道对象。

所以改为

mySwitch.connectedToPort5 <--> gatewayNode.Netport ;

mySwitch.connectedToPort5 <--> LinkDefinedChannel <--> gatewayNode.Netport ;

现在getTransmissionChannel()应该能够获得传输通道,因为您要为此连接定义一个通道对象。