2016-07-11 5 views
0

Ich benutze Veins-4a2 und ich habe das Szenario des Demo-Beispiels geändert. Ich habe eine neue wsm hinzugefügt, die ACK ist, wenn ein Knoten eine Nachricht erhält, sendet es eine ACK-Nachricht an den Quellknoten. Ich habe diese Zeile in onData add() Funktion:Fehler im Modul (Mac1609_4) Modellfehler: ASSERT: Bedingung useSCH false in der Funktion handleUpperMsg

sendWSM (prepareWSM ("ack", ackLengthBits, type_SCH, ackPriority, sourcenode.idNode, 2));

und ich habe sicherlich die prepareWSM- und handleLowerMsg() -Funktionen in BaseWaveApplLayer.cc geändert, aber wenn ich die Simulation ausführe, stürzt sie nach 10 Sekunden ab. Dies ist die Fehlermeldung:

Fehler im Modul (Mac1609_4) RSUExampleScenario.node [2] .nic.mac1609_4 (ID = 240) Bei einem Ereignis # 1196, t = 9,210177776741: Modellfehler: Nimmt: Zustand useSCH falsch in Funktion handleUpperMsg, Venen/Module/mac/ieee80211p/Mac1609_4.cc Zeile 259.

Ist das nicht ich habe das Recht, den SCH-Kanal für die ACK-Nachricht wiederzuverwenden? Wie kann ich dieses Problem bitte korrigieren?

Antwort

0

Die 1609.4 MAC-Schicht von Veins 4a2 kann in einem von zwei Betriebsmodi verwendet werden: Einkanal und Mehrkanal. Das Verhalten kann durch Setzen dieses Parameters der .ned Datei konfiguriert werden:

// cycle between an SCH and the CCH (or stay on CCH all the time) 
bool useServiceChannel = default(true); 

Von der Fehlermeldung Sie eine Mitteilung verfassen es erscheint dieser Parameter auf false gesetzt haben, das heißt, Sie das Radio wollen über die Kontrolle immer bleiben Kanal (CCH). Gleichzeitig fordert der von Ihnen gepostete Code eine Nachricht an, die über einen Servicekanal (SCH) übertragen werden soll.

Sie fordern somit ein sich gegenseitig ausschließendes Verhalten an.

Adern haben dies korrekt erkannt und Ihre Simulation abgebrochen.

+0

Vielen Dank Herr, ich habe das Problem gelöst! – Fariha

Verwandte Themen