我正在使用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)但我仍然有同样的问题,可能是我需要计算具体范围的概率还是我应该采取小面积,以获得准确的结果?
答案 0 :(得分:0)
这是因为发送信标的广播性质 假设网络包含N个节点并且存在理想的传播条件,当节点发送一个信标分组时,它将由N-1个节点(即所有其他节点)接收。结果:
allSentBeacon = 1
allReceivedBeacon = N-1
顺便说一句:在这种情况下,交货率应定义为:
deliveryRatio = allReceivedBeacon / (allSentBeacon * (N-1))