2015-06-09 28 views
0

我正在使用OMNET ++ & VEINS模拟器实现以下场景。Wave Service Advertisement(WSA)实现

  1. 每个RSU将每秒钟广播WSA(Wave Service Advertisement)信标一次 。 (即I2V通信)。
  2. 每一辆过往车辆都会存储这些WSA。 (即高速缓存)
  3. 对WSA感兴趣的车辆将查询附近的车辆。 (即搜索WSA的 )(即V2V通信)。
  4. 接收到查询后的车辆会响应查询(如果 所需的WSA在车辆缓存内)。 (即V2V通信)

执行方面的问题:

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

回答

0

我需要定义一个新的.msg文件上述每个阶段(用于 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 */ 
} 

我需要确定自己的.cc,.H,.ned文件RSU和CAR或者我可以修改崔西例子(静脉的)。

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

如果您不愿意,可以先查看静态内的演示文件和示例。