【问题标题】:Wave Service Advertisement (WSA) implementationWave 服务广告 (WSA) 实施
【发布时间】:2015-06-09 13:29:07
【问题描述】:

我正在使用 OMNET++ 和 VEINS 模拟器实现以下场景。

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

关于实施的问题:

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

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    我是否需要为上述每个阶段定义一个新的 .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 */
    }
    

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

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

    如果您不情愿,可以先查看 Veins 中的演示文件和示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多