如何在 Veins 4.7.1 中获得碰撞

How to get collisions in Veins 4.7.1

我想获取 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++;
}

但是我得到的所有丢失的数据包都是由于位错误和 none 由于冲突。是否有不允许我发生碰撞的 Veins 默认配置?

Veins 允许在本地收集有关碰撞的统计信息。但是,默认情况下它是禁用的,因为它会增加仿真时间。要启用它,只需将以下行添加到您的 omnetpp.ini:

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

这会在您场景中的所有节点上启用 Decider80211p 中的碰撞统计,然后记录 ncollisions