在静脉中传播车辆状态

时间:2015-06-05 13:12:29

标签: omnet++ veins

我希望在静脉情景中将给定汽车的车辆数据(例如vType,瞬时speedposition)传输到RSU。

如何从SUMO获取数据并通过MiXiM方法将其发送到RSU节点?

1 个答案:

答案 0 :(得分:3)

要实现目标,您必须使用TraCIMobility的{​​{1}}组件。

您可以首先在节点的Veins方法中获取指向该组件的指针

initialize()

获得cModule *tmpMobility = getParentModule()->getSubmodule("veinsmobility"); mobility = dynamic_cast<Veins::TraCIMobility*>(tmpMobility); ASSERT(mobility); 组件后,您可以查询各种数据。

可以在mobility

中找到它可以提供的数据类型

例如,在您的情况下,您可以这样做:

TraCIMobility.h

然后,您可以将此数据附加到您的消息中,然后将其发送到您选择的RSU。

如果这个确切的解决方案对您不起作用,可能是因为我使用了与您不同的静脉版本。

但是,您肯定会在Veins项目的mobility->getCurrentSpeed().length()); /* will provide velocity vector */ mobility->getAngleRad()); /* will provide angle of movement */ TraCIDemo11p.cc中找到所需内容。

另外,TraCIDemoRSU.cc是你应该看的东西。

Documentation部分的官方静脉网站上,据说:

  

应用程序模块可以使用 TraCICommandInterface 类和   相关课程,可以从 TraCIMobility 方便地访问   与运行模拟交互。以下示例说明了如何操作   使车辆意识到在称为Second的道路上交通缓慢   街道,可能导致它改变路线以避开这条道路。

TraCICommandInterface
     

其他一些与车辆相关的命令是 setSpeed setParking 。   类似的方法可用于整个模拟(例如,    addVehicle addPolygon ),道路( getMeanSpeed ),个别车道   ( getShape ),红绿灯( setProgram ),多边形( setShape ),点   兴趣,路口,路线,车辆类型或图形用户   接口

     

如何使用这些模块在源代码中进行了演示   静脉教程示例。同样,所有80多种可用方法的列表都可以   可以在 TraCICommandInterface.h 或自动生成的模块中找到   文档。

此处可能存在相关问题/答案:https://stackoverflow.com/a/29918148/4786271