我是SUMO,Veins,OMNET ++和具有一定网络背景的模拟的新手。我已成功设置环境并运行静脉4.6演示应用程序。谷歌发现,与RSU不同,Car modules are added on the fly。
在演示示例中,汽车节点发送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中找到。如果demo没有使用这些文件,那么这些文件的添加目的是什么?从模拟中获取AirFrame11p的注释。
我尝试使用V2V通信模拟没有RSU的车祸情景,已经用我的替换演示地图,生成随机路线,现在尝试从演示应用程序中移除RSU并探索发送自定义消息(包括地理位置) ,速度,方向,时间等)到指定范围内的附近车辆,例如100米直达WiFi。
如果我对此感到困惑,请指导我。感谢。
答案 0 :(得分:2)
简答:AirFrame11p消息是封装上层消息的低级消息。只需使用适合您的应用程序的应用程序消息类型即可。如果你想用WiFi直接替换物理层而不是11p,并且你从头开始,那么你可能需要做很多工作,因为VEINS PHY实现非常复杂。如果你有一个现有的WiFi直接实现,可能值得调查VEINS'的整合。使用该代码实现TraCI。
您认为应用层的消息类型更加多样化是正确的 - 这些消息类型(BSM和WSM)用于封装"应用程序"行为;它在模拟执行中没有很好地可视化。您可以暂停模拟并查看(例如)在预定事件下,可以在视觉上检查排队的数据包。
与常规网络不同,此类消息将封装在IP,MAC和PHY封装中,VEINS使用以下封装过程:BSM封装在MAC帧(80211Pkt)中,而MAC帧又由AirFrame11p信号封装。基本上,您应该为您的应用选择正确的消息类型。
从技术上讲,这些消息可以更准确地放置在设施层(参见例如ETSI的规范),因为定期交换消息提供了存储在设施层中的数据,然后由cITS / VANET使用运行在顶部的应用程序。如果您需要,请查看Artery(正如Ventu在评论中所建议的那样)。