首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSA (WSA)实现

WSA (WSA)实现
EN

Stack Overflow用户
提问于 2015-06-09 13:29:07
回答 1查看 1.1K关注 0票数 0

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

  1. 每个RSU将广播WSA (波服务广告)信标每秒一次。(即I2V通信)。
  2. 每辆路过的车辆都会储存这些货车。(即缓存)
  3. 对WSA感兴趣的车辆会询问附近的车辆。(即搜索WSA) (即V2V通信)。
  4. 车辆在收到查询后,将响应查询(如果所需的WSA位于车辆缓存中)。(即V2V通信)

与执行有关的问题:

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

回答 1

Stack Overflow用户

发布于 2015-06-09 15:04:53

是否需要为上述每个阶段(用于RSU广播、车辆查询和车辆响应)定义一个新的.msg文件?还是我只需要修改WaveShortMessage.msg文件?

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

代码语言:javascript
复制
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;
}

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

代码语言:javascript
复制
if(msg->getType() == foo)
{
    /* do smth for foo */
}

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

总的来说,是的。您可能需要为application(s)定义.ned.cc.h,而不是重新定义RSU和汽车的真正含义。

如果你不愿意,你可以从寻找和演示文件和静脉中的例子开始。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30733460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档