Wave Service Advertisement(WSA)实现

时间:2015-06-09 13:29:08

标签: omnet++

我正在使用OMNET ++& amp; VEINS模拟器。

  1. 每个RSU都会播放一次WSA(Wave Service Advertisement)Beacon 每秒。 (即I2V通讯)。
  2. 每辆过往的车辆都会存放这些WSA。 (即缓存)
  3. 对WSA感兴趣的车辆会查询附近的车辆。 (即 搜索WSA)(即V2V通信)。
  4. 收到查询后的车辆会响应查询(如果 所需的WSA在车辆缓存中。 (即V2V通信)
  5. 有关实施的问题:

    • 我是否需要为上述每个阶段定义新的.msg文件 (用于RSU广播,车辆查询和车辆响应)? 或者我只需要修改WaveShortMessage.msg文件?
    • 我是否需要为RSU和CAR或我定义自己的.cc.h.ned个文件 可以修改(静脉)的traci例子。

1 个答案:

答案 0 :(得分:0)

  

我是否需要为上述每个阶段定义一个新的.msg文件(for   RSU广播,车辆查询,车辆响应)?或者我   需要仅修改WaveShortMessage.msg文件吗?

强烈建议您为特定应用程序创建常规消息类型。您可以扩展WaveShortMessage.msg,然后在邮件中添加type字段,该字段代表应用程序的不同类型的邮件:RSUbroadcastVehicleQueryFrame等。最终的决定归结为你的选择。但是尽可能地指定消息(保持它们对于某个任务是原子的)是很好的做法。

cplusplus {{
#include "veins/modules/heterogeneous/messages/WaveShortMessage_m.h"        // include the base message


#define RSU_BROADCAST_FRAMETYPE 50
#define VEHICLE_QUERY_FRAMETYPE 51

}}

class WaveShortMessage;     // Making the C++ Declarations Available

message MyAppGeneralMessage extends WaveShortMessage
{
    int frameType;
}

使用不同的类型将允许您根据不同的消息类型控制应用程序的行为。

if(msg->getType() == foo)
{
    /* do smth for foo */
}
  

我是否需要为RSU和CAR定义自己的.cc,.h,.ned文件,或者我可以修改traci示例(静脉)。

总的来说是的。您可能需要为要在RSU和Car上运行的应用程序定义.ned.cc.h,但不能重新定义RSU和汽车的真正含义。

如果您不愿意,可以通过查看静脉内的演示文件和示例来开始。