如何在静脉4.7.1中获得碰撞

时间:2018-08-30 15:46:55

标签: omnet++ veins

我想获得静脉碰撞的次数。我使用的是Instant Veins 4.7.1,我刚刚修改了方案以在没有RSU的情况下获得高密度的车辆。该应用程序仅发送信标( BasicSafetyMessages ),其间隔和传输功率如下:

*.**.nic.mac1609_4.txPower = 50mW
*.node[*].appl.sendBeacons = true
*.node[*].appl.beaconInterval = 0.1s

我修改了 Mac1609_4.cc 的下一部分:

else if (msg->getKind() == Decider80211p::BITERROR || msg->getKind() == Decider80211p::COLLISION) {
    statsSNIRLostPackets++;
    DBG_MAC << "A packet was not received due to biterrors" << std::endl;
    if (msg->getKind() == Decider80211p::COLLISION)
        statsCollisions++;
    else if (msg->getKind() == Decider80211p::BITERROR)
        statsBitErrors++;
}

但是我得到的所有丢失的数据包都是由于位错误引起的,而没有由于冲突引起的。静脉的默认配置是否不允许我发生碰撞?

1 个答案:

答案 0 :(得分:2)

静脉可以原生收集有关碰撞的统计信息。但是,默认情况下它是禁用的,因为它会增加仿真时间。要启用它,只需将以下行添加到您的omnetpp.ini

*.**.nic.phy80211p.collectCollisionStatistics = true

这将在方案中所有节点上的Decider80211p中启用冲突统计信息,然后记录ncollisions