要扩展哪个文件以用于静脉中的自定义消息? AirFrame11p.msg 的目的是什么?

Which file to extend for customized messages in veins? What is the purpose of AirFrame11p.msg?

我是 SUMO、Veins、OMNET++ 和具有一点网络背景的模拟的新手。我已成功设置环境和 运行 veins 4.6 演示应用程序。在 google 上发现与 RSU 不同,.

在演示示例中,汽车节点发送 Airframe11p 消息,我没有得到填充此消息的位置,因为在 TraCIDemo11p.cc 方法(onWSA、onWSM、handleSelfMsg、handlePositionUpdate)中,我们正在处理 WSM 消息类型和BaseWaveApplLayer::checkAndTrackPacket 方法确保发送的消息是 BSM、WSM 或 WSA。

在 veins\src\veins\modules\messages 中存在 AirFrame11p.msg 文件,但在项目中查找 "AirFrame11p" 的引用时,仅在 AirFrame11p_m.h 和 AirFrame11p_m.cc 中找到匹配项。如果演示不使用这些文件,那么添加这些文件的目的是什么?并从中模拟获得 AirFrame11p 的注释。

我正在尝试使用 V2V 通信模拟没有 RSU 的车祸场景,用我的地图替换演示地图,生成随机路线,现在尝试从演示应用程序中删除 RSU 并探索发送自定义消息(包括地理位置,速度,方向,时间等)到指定范围内的附近车辆,例如100 米使用 WiFi 直连。

如果我感到困惑,请指导我。谢谢

简答:AirFrame11p消息是封装上层消息的下层消息。只需使用适合您的应用程序的应用程序消息类型。如果你想用 WiFi direct 而不是 11p 替换物理层,并且你是从头开始,你可能需要做很多工作,因为 VEINS PHY 实现非常复杂。如果您已有 WiFi direct 的现有实现,可能值得研究 VEINS 的 TraCI 实现与该代码的集成。

VEINS 封装

你说得对,应用层的消息类型更加多样——这些消息类型(BSM和WSM)是用来封装"application"行为的;它只是在模拟执行中没有很好地可视化。您可以暂停模拟并查看(例如)计划的事件,可以在其中直观地检查排队的数据包。

与常规网络不同,此类消息将打包在 IP、MAC 和 PHY 封装中,VEINS 使用以下封装过程:BSM 被打包在 MAC 帧 (80211Pkt) 中,其中转由 AirFrame11p 信号封装。所以基本上,您应该为您的应用程序选择正确的消息类型。

关于应用程序行为的脚注:

从技术上讲,这些消息将更正确地放置在设施层(参见例如 ETSI 的规范),因为消息的定期交换提供存储在设施层中的数据,然后由 cITS/VANET 使用运行 位于顶部的应用程序。如果您需要这个,请查看 Artery(正如 Ventu 在评论中所建议的那样)。