2016-05-17 92 views
0

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

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

它的工作原理,但如果另一个请求来到这个LCN传感数据,LCN承担这个删除传感器模块仍然连接到它,我error.How可以解决这个问题抛出的连接?通过我的方式只用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. 

回答

1

首先,你应该改变连接声明网络NED在进入:

connections allowunconnected: 

这一切ows大门不连接。
其次,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表示栅极的输出部分。