我和Omnet++一起工作,静脉。我使用这里存在的代码:
Flooding.ned也存在于同一链接中的flooding.cc。
我正在处理洪水应用程序,我指定了信标真值,并将数据发送给,以计算信标传递的概率,所有的统计数据都记录在该项目中。
对于flooding.cc,我更改了onBeacon函数以记录接收信标
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个节点停止了仿真。
发布于 2016-05-09 07:04:20
这是因为发射信标的广播性质。
假设网络包含N个节点,并且存在理想的传播条件,当节点发送一个信标包时,N-1节点(即所有其他节点)将接收到它。因此:
allSentBeacon = 1
allReceivedBeacon = N-1
顺便说一句:在这种情况下,交货率应界定为:
deliveryRatio = allReceivedBeacon / (allSentBeacon * (N-1))
https://stackoverflow.com/questions/37105527
复制相似问题