2016-08-05 17 views
0

私はomnet ++(mixim)でワイヤレスセンサーネットワークをシミュレートしています。私は500,1000,1500,2000,2500,3000,3500、4000のような特定のラウンドで分析結果を出したいと思います。 496,492、502.などのラウンドで結果を表示すると、私が言及した特定の7ラウンドを表示するコードを変更できますか? コード:特定のラウンドでomnet ++の結果を表示する方法は?

int rr; 
    rr=static_cast<SensorNode *>(this->getParentModule()->getParentModule()->getSubmodule("node",1)->getSubmodule("netwl"))->GetRound(); 

    if(abs(rr-500)<5 || abs(rr-1000)<5 || abs(rr-1500)<5 || abs(rr-2000)<5 || abs(rr-2500)<5 || abs(rr-3000)<5 || abs(rr-35000)<5 || abs(rr-4000)<5) 
    { 
      char ss1[30]; 
      sprintf(ss1,"Dead_CHs_Round_%d",rr); 
      recordScalar(ss1,nDeadCH); 

答えて

0

あなたのコードをチェックしrrとあなたの予想されるラウンド間の差が例えば

rr = 496 
if (abs(rr-500) < 5 || .....) { 
    // your code 
} 
//--> abs(496 - 500) < 5 
//--> abs(-4) < 5 
//--> 4 < 5 --> true 

5よりも小さい場合、だからあなたの句はrr = 496のために真となります。私の質問に答えるための

if(rr == 500 || rr == 1000 || .....) { 
    // your code 
} 
+0

おかげで、私は、コードを変更したいが、結果でそれは私がしたい全体のラウンドを示しdosen't:abs()<5を削除し、次のように変更し、これを回避する それは1000,2500、および4000のラウンドの結果のみを表示し、他のラウンドを表示するために何を書きますか? –

+0

私は私の答えを少し編集しました。 if文を投稿できますか?だから私はそれを見ることができます。 – Ventu

+0

int rr; getSubmodule( "node"、1) - > getSubmodule( "netwl")) - > GetRound(); rr = static_cast (this-> getParentModule() - > getParentModule() if(rr == 500 || rr == 1000 || rr == 1500 || rr == 2000 || rr == 2500 || rr == 3000 || rr == 3500 || rr == 4000 ) –

関連する問題