2016-05-17 12 views
0

エネルギーレベルが0より小さい場合、センサーノードを削除する必要があります。すべてのセンサーノードにはゲートがあります。すべてのセンサーノードもLCNに接続されています.LCNにはinoutゲートがあります。 このコードを書いてモジュールを削除しました。omnet ++モジュールの要素を削除する

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

それは動作しますが、別の要求は、データをセンシングするために、このLCNに来ている場合は、LCNは、この削除されたセンサモジュールはまだそれに接続されていると仮定し、私はこの問題を解決することができerror.How接続を投げる?私はちなみに

connections allowunconnected: 

それはすべてを:ちょうどOmnet ++、ないINET、カスタリアなど

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

答えて

1

まずを使用して、あなたがにあなたのネットワークNEDでの接続の宣言を変更する必要がありますゲートは未接続のままにしておきます。
第2に、deleteModule()の前にcallFinish()にはが含まれている必要があります。
また、ゲートが接続されているかどうかを確認してから送信しなければなりません。サンプルコード:

// 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は、ゲートの出力部分を意味します。