omn​​et ++ veins - 询问RecievedBeacon和sentpacket的值

时间:2016-05-08 22:31:06

标签: omnet++ veins

我正在使用Omnet ++,静脉。我使用这里存在的代码:

Flooding.ned flooding.cc也存在于同一个链接中。

我正在使用flooding应用程序,我分配了sentbeacon true,并将Data发送到false,以计算信标传递的概率。 所有统计数据都记录在上述项目中。

对于flooding.cc我改变了onBeacon函数来记录recievedbeacon

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

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

然后我想记录发送的数据包的数量,所以我在这个文件Mac1609_4.cc中更改了(代码是这个文件的一部分,只是我改变的行)。

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();
}

我的问题是关于统计数字。我需要方程式帮助才能正确计算信标传递的概率。我使用了现实的地图,当我运行项目并得到结果时,我不知道如何计算概率,我尝试占用一部分区域(RoiRect)但我仍然有同样的问题,可能是我需要计算具体范围的概率还是我应该采取小面积,以获得准确的结果?

对于包含的结果,我停止了36个节点的模拟。 enter image description here

1 个答案:

答案 0 :(得分:0)

这是因为发送信标的广播性质 假设网络包含N个节点并且存在理想的传播条件,当节点发送一个信标分组时,它将由N-1个节点(即所有其他节点)接收。结果:

  • allSentBeacon = 1
  • allReceivedBeacon = N-1

顺便说一句:在这种情况下,交货率应定义为:
deliveryRatio = allReceivedBeacon / (allSentBeacon * (N-1))