2016-07-20 10 views
0

Ich habe zwei Probleme bei der Arbeit mit den inet Funkmodulen. Ich denke, sie sind irgendwie miteinander verbunden.Fehler beim Arbeiten mit den inet Funkmodulen


Problem 1

Wenn ich Funktion in meinem MAC-Schicht

radioModule->subscribe(IRadio::radioModeChangedSignal, this); 
radioModule->subscribe(IRadio::transmissionStateChangedSignal, this); 

abonnieren bin mit bekomme ich diesen Fehler

Error in module (inet::physicallayer::Radio) MyNetwork.sta[0].nic[0].radio(id=19) during network initialization: inet::MyMac: Unsupported signal data type long for signal radioModeChanged (id=34). 

Problem 2

hat mein Empfängermodul ein Problem mit diesen Funktionen in inet.physicallayer.common.RadioMedium.cc

const IListening *listening = receiverRadio->getReceiver()->createListening(receiverRadio, arrival->getStartTime(), arrival->getEndTime(), arrival->getStartPosition(), arrival->getEndPosition()); 
[...] 
communicationCache->setCachedListening(receiverRadio, transmission, listening); 

ich diesen Fehler

<!> Error in module (inet::physicallayer::Radio) MyNetwork.sta[0].nic[0].radio (id=19) at event #33, t=2: ASSERT: condition shareCount == 0 false in function parsimUnpack, cpacket.cc line 146. 
+0

Welche Versionen von 'OMNeT ++' und 'INET' verwenden Sie? –

+0

OMNe ++ Version 5.0, Build 160414-aa4629c INET Version 3.4.0-bb8393f –

Antwort

0

Nach Problem 1 erhalten: Sie die Methode außer Kraft setzen müssen
virtual void receiveSignal(cComponent *source, simsignal_t signalID, long l, cObject *details)
in Ihrer MyMac Klasse. Ohne diese Methode weiß ein einfaches Modul nicht, was mit dem empfangenen Signal zu tun ist, daher gibt es einen Fehler aus.

Problem 2 ist mit einer Paketbehandlung verbunden, vielleicht Entkapselung. Der vorgestellte Code ist nicht die Quelle davon. Setzen Sie debug-on-errors=true in Ihrem omnetpp.ini und führen Sie dann die Simulation im Debug-Modus aus. Sie sollten den Ort in Ihrem Code sehen, der diesen Fehler verursacht.

Verwandte Themen