2016-05-08 3 views
1

Ich arbeite mit Omnet ++, Venen. Ich benutze den Code, der hier existiert:omnet ++ Venen - Fragen über den Wert von RecievedBeacon und sendpacket

Flooding.ned auch floodging.cc existieren in der gleichen Verbindung.

Ich arbeite mit Flooding-Anwendung, und ich zugewiesen sentbeacon wahr, und schickte Daten an false, berechnen die Wahrscheinlichkeit der Beacon Delivery. alle statistischen sind in dem genannten Projekt aufgezeichnet.

für flooding.cc änderte ich onBeacon Funktion der recievedbeacon

void Flooding::onBeacon(WaveShortMessage *wsm) 
{ 
    // not used for this algorithm 

    // statistics recording 
     emit(beaconReceivedSignal, 1); 
     stats->updateAllBeaconsReceived(); 
} 

Dann möchte ich notieren Sie die Anzahl der gesendeten Paket aufzunehmen, also habe ich in dieser Datei Mac1609_4.cc (der Code Teil davon ist, Datei und nur die Zeile, die ich geändert habe).

void Mac1609_4::handleSelfMsg(cMessage* msg) 
{ 
    DBG_MAC << "Sending a Packet. Frequency " << freq << " Priority" << lastAC << std::endl; 
    sendDelayed(mac, RADIODELAY_11P, lowerLayerOut); 
    statsSentPackets++; 
    stats->updateAllpacketsent(); 
} 

Meine Frage bezieht sich auf die statistischen number.I die Hilfe bei der Gleichung müssen korrekt die Wahrscheinlichkeit von Beacon-Lieferung zu berechnen. Ich habe realistische Karte verwendet, wenn ich das Projekt laufen lasse und Ergebnisse bekomme, konnte ich nicht wissen, wie man die Wahrscheinlichkeit berechnet, ich versuche Teil des Bereichs zu nehmen (RoiRect), aber ich habe immer noch das gleiche Problem, vielleicht muss ich das berechnen Wahrscheinlichkeit für bestimmte Bereich oder sollte ich kleine Fläche nehmen, um genaue Ergebnisse zu haben?

Für die enthaltenen Ergebnisse habe ich die Simulation mit 36 ​​Knoten beendet. enter image description here

Antwort

0

Es ist wegen der Sendungsart des sendenden Beacons.
Unter der Annahme, dass das Netzwerk N Knoten enthält und es ideale Ausbreitungsbedingungen gibt, wenn ein Knoten ein Beacon-Paket sendet, wird es von N-1 Knoten (d. H. Allen anderen Knoten) empfangen. Als Folge:

  • allSentBeacon = 1
  • allReceivedBeacon = N-1

Durch die Art und Weise: in dieser Situation soll das Lieferverhältnis wie folgt definiert werden:
deliveryRatio = allReceivedBeacon/(allSentBeacon * (N-1))

+0

Ok, verstehe ich, warum die recievedbroadcast ist mehr als die gesendet, aber ich möchte die Wahrscheinlichkeit der Beacon Delivery berechnen und vergleichen Sie sie mit ähnlichen Werten, die Gleichung, die Sie enthalten, gibt mir nicht den richtigen Wert. Bitte überprüfen Sie das beigefügte Bild und lassen Sie mich wissen, warum die Paketsendungszahl anders ist als das gesendete Paket Vektor – phdstudent

+0

Die Zeile 'allpacketsentSignal: vector (vector) = 39.0 (77)' bedeutet: Dieses Signal wurde 77 mal ausgesandt, jedes Mal mit einem gewissen Wert. und der _mean_ Wert aller emittierten Werte ist gleich 39.0. Könnten Sie Ihre Frage erweitern und eine "NED" -Deklaration dieser Statistik sowie 'C++' -Code bereitstellen, wo Sie sie einbeziehen? Und könnten Sie eine Anzahl von Knoten schreiben? –

+0

Wie die Methoden 'stats-> updateAllBeaconsReceived()' und 'stats-> updateAllpacketsent()' aussehen? –