2016-05-17 85 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表示柵極的輸出部分。