2016-06-05 11 views
0

Ich möchte die Übertragung von Paketen zwischenzeitlich stoppen und nach einiger Zeit erneut mit der Übertragung beginnen. Außerdem möchte ich die gesamte Simulationszeit berechnen (vor dem Anhalten, während des Anhaltens und nach dem Fortsetzen) Wie kann ich das tun?So stoppen Sie die Übertragung von Paketen dazwischen In Omnet ++

+0

generiert wird Bitte bleiben Sie bei einer einzelnen Frage pro Frage. Es ist nicht möglich zu entscheiden, ob eine Antwort richtig ist, wenn mehrere Fragen gleichzeitig gestellt werden. – Rudi

Antwort

0

Dies ist eine Variation der Frage "How to change a parameter value over time?".

Nehmen wir an, dass Sie Pakete zwischen 0 und 20s mit exp (300ms) zwischen Ankunftszeit senden möchten. Um 20s wollen Sie aufhören, die Pakete zu senden und dann wieder die Pakete bei 60s zu senden, aber mit exp (200ms) Zwischenankunftszeit.

Für flüchtigen Parameter können Sie den ? : Operator (verkettet) verwenden zusammen mit der simTime() NED Funktion die zurück unter Ankunftszeit auf dem tatsächlichen Simulationszeit basiert zu ändern:

**.interArrivalTime = simTime() < 20s ? exponential(300ms) : 
    simTime() < 60s ? 60s-simTime() : exponential(200ms) 

Der interessante Teil der ist 60s-simTime() Ausdruck, der tatsächlich die Zwischenankunftszeit in einer Weise zurückgibt, dass das nächste Paket genau um 60s (dh bei simTime() + (60s-simTime()))