私が設定したsendIntervalが設定した制限を超えているという問題があります。Omnet ++:ランダムSendInterval送信範囲外
私はちょうど私が私が前回の送信間隔は0.001
IS 0.001 IS固定sendInterval値
**.Host5.app.sendInterval = 1ms
で最初のテスト
void EtherTrafGen::scheduleNextPacket(simtime_t previous) { simtime_t next; if (previous == -1) { next = simTime() <= startTime ? startTime : simTime(); timerMsg->setKind(START); } else { next = previous + sendInterval->doubleValue(); EV << "THE PREVIOUS TIME IS " << previous << " THE SEND INTERVAL IS " << sendInterval->doubleValue() << endl; // Testing timerMsg->setKind(NEXT); } if (stopTime < SIMTIME_ZERO || next < stopTime) { scheduleAt(next, timerMsg); emit(sigSendInterval,sendInterval->doubleValue()); // Vector collect Send Interval Time } }
をコメントしています2行を追加以下前の時間は0.002です送信間隔は0.001
前の時間は0.003です送信間隔は0.001です
私はインターバル時間を想定2 =前回1 +インターバル
に第を送信前回想定しているから値下の表のものと同じである(ラインコードに示されそしてランダムsendInterval値)
**.Host5.app.sendInterval = uniform(0.99ms,1.01ms)
前の時間は、送信間隔は0.000998752
前回は0.001999544526送信間隔は0.00100136
前回の送信間隔は0.000997365
前回2 IS 0.002999144069 IS IS IS IS 0.001001856892 IS not equal Previous Time 1 +送信間隔
0.001001856892 + 0.000998 752 = 0.002000608892
0.002000608892から0.001999544526 = 1.064366マイクロ秒
これがその原因となっている
以下の表に示すようにインターバル時間の値が下のものと同じではありませんホストは0.99ms、1.01msの範囲外で送信しています