静脉中的消息广播示例

时间:2015-06-10 08:42:13

标签: omnet++

我注意到在 Veins 演示场景中,节点会将它创建的数据消息广播到模拟中的每个其他节点。

我试着修改一下。我通过使用sendMessage()函数初始化TraCIDemo11p.cc中收件人的地址,修改了WSM文件中的setRecipientAddress()函数。但是在Veins 3.0中运行模拟时,我发现此消息仍然被广播到除目标节点之外的所有节点。

  • 如何实施此p2p连接?
  • 如何通过在场景中添加 RSU 来实现异构通信框架来进行概括?

1 个答案:

答案 0 :(得分:1)

在其基础上, 802.11p 标准是车载通信的主要通信标准(也是静音中使用的标准),广播。

所以基本上,无论你通过 802.11p 网络接口发送什么,它都会被广播,但你可以通过做"源 - 目的地检查&#34来弥补某种类型的p2p 34;来自框架。

您可以将WaveShortMessage扩展为包含特定于您的应用程序的来源目标字段,然后检查目标是否从目标发件人接收

假设我们有两个想要沟通的节点nodeSendernodeReceiver

nodeSender需要在消息中包含自己的标识符(名称,ID等):

msgToSend->setSourceAddress("nodeSender")

nodeReceiver需要检查是否有"听到"来自预期的发件人。因为实际上由于80211p的广播性质,它将听到来自多个发送者的信息

if(receivedMsg->getSourceAddress() == 'nodeSender')
{
    /* this is the message which I need */
else
{
    /* do nothing with the message from other senders */
}

您可以使用车辆SUMO ID作为地址的唯一标识符。您可以通过查询TraCIMobility模块获取它:

cModule *tmpMobility = getParentModule()->getSubmodule("veinsmobility");
mobility = dynamic_cast<Veins::TraCIMobility*>(tmpMobility);
ASSERT(mobility);
mySumoID = mobility->getExternalId();