omnet++ - 如何在 Veins 4.7.1 中获得碰撞
问题描述
我想获得静脉中的碰撞次数。我正在使用 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++;
}
但是我得到的所有丢失的数据包都是由于比特错误而没有由于碰撞。是否存在不允许我发生碰撞的 Veins 的默认配置?
解决方案
Veins 允许在本地收集有关碰撞的统计信息。但是,默认情况下它是禁用的,因为它会增加仿真时间。要启用它,只需将以下行添加到您的omnetpp.ini
:
*.**.nic.phy80211p.collectCollisionStatistics = true
这会在您的场景中的所有节点上启用碰撞统计信息Decider80211p
,然后记录ncollisions
。
推荐阅读
- google-cloud-platform - 通过 gcloud cli 启用 Google Cloud Shell “增强”模式
- php - Laravel 正确设置 slug
- python - 无法在 Scapy 中发送 DNS 回复
- listview - 从 ListView1 中的一行复制的数据未出现在 ListView2 中
- php - 在 Laravel 中验证 2 个数字的幂
- android - 在 Android Studio 3.3.1 中导入旧项目后出错
- socket.io - 即使我没有为它分配任何路由器,如何从我的服务器下载 socket.io
- python - 在 Python 中使用 FlannBasedMatcher 的 DMatch 类中的 imgIdx 出现问题
- pytest - Pytest 钩子流
- aws-sdk - 在 AWS 上的无服务器后端为移动应用程序添加用户登录