【问题标题】:omnet++ delete a module elementomn​​et++ 删除模块元素
【发布时间】:2016-05-17 10:14:02
【问题描述】:

如果能级小于0,我需要删除传感器节点。每个传感器节点都有输入门。每个传感器节点也连接到LCN。LCN有输入门。 我写了这段代码来删除模块。

if(totPower<0){
       deleteModule();
       callFinish();
    }

它可以工作,但是如果这个 lcn 有另一个请求来感应数据,Lcn 假设这个已删除的传感器模块仍然连接到它并抛出连接错误。我该如何解决这个问题?顺便说一下,我只使用 Omnet++,不是inet,castalia等。

<!> Error in module (LCN) Network.lcn[7] (id=254) at event #188, t=1200: send()/sendDelayed(): gate `lcnSN$o[11]' not connected.

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    首先,您应该将网络中的连接声明 NED 更改为:

    connections allowunconnected:
    

    它允许门不连接。
    其次,callFinish() 应该在 之前 deleteModule() 参与。
    此外,您必须在发送之前检查门是否已连接。示例代码:

        // i - is an index of gate lcnSN you want to send
        cGate *outGate = gate("lcnSN$o", i);
        if (outGate->isConnected()) {
            send(msg, "lcnSN$o", i);
        } 
    

    后缀$o表示门的输出部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      相关资源
      最近更新 更多