2016-03-30 4 views
0

So ändern Sie die Länge der WAVE-Nachricht. Methode setWsmLength funktioniert nicht. Aus der Antwort in here kann ich entnehmen, dass dies nicht möglich ist, da die Funktionalität in WAVE nicht implementiert ist. Aber die Antwort ist sehr vage. Es fragt, um eine .msg-Datei zu erstellen, die klar ist. Aber der Rest ist nicht sehr klar. Kann jemand es erklären oder erklären?Ändern der Länge der WAVE-Nachricht (VEINS/OMNET ++)

P.S: Ich konnte in diesem Thread nicht kommentieren, musste also eine neue Frage stellen.

Antwort

2

WaveShortMessage ist ein OMNeT++ Paket, so dass man immer addByteLength() verwenden kann seine bestehende Größe oder setByteLength() Um eine neue Größe von ihr, eine Beschreibung in OMNeT++manual zu erhöhen. Das Definieren einer neuen Nachricht ist nicht erforderlich.
Ein Beispiel:

WaveShortMessage* wsm = prepareWSM("data", dataLengthBits, channel, dataPriority, -1,2); 
wsm->setWsmData(blockedRoadId.c_str()); 
int byteLen = blockedRoadId.length(); // assuming that one char = one byte 
wsm->addByteLength(byteLen); 
+0

Dank für die Antwort. Ich habe es versucht, aber irgendwie ändert sich das Ergebnis nicht. Ich habe die Vein-Kanalkapazität auf 3Mbps eingestellt und versuche das System zu überlasten. Aber egal, wie groß ich die Paketgröße einstelle, das System wird nie überlastet. Könnte das Problem sein, dass Veins die Größenänderung von Paketen nicht simuliert? – dutu

+0

Veins sendet in jeder 'beaconInterval'-Periode eine' WaveShortMessage'. Standardmäßig ist 'beaconInterval' gleich 1 s. Um 3 MBit/s Bandbreite für ein Auto zu verbrauchen, sollten Sie die Größe auf ... einstellen. 370 Kilobyte! Versuchen Sie also, 'beaconInterval' in' omnetpp.ini' zu verringern. –

Verwandte Themen