Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Omnet++ 静脉中的单播通信_Omnet++_Veins - Fatal编程技术网

Omnet++ 静脉中的单播通信

Omnet++ 静脉中的单播通信,omnet++,veins,Omnet++,Veins,Velines是否支持802.11p单播通信 我在框架中检查了类“Mac1609_4”的源代码。参考以下代码片段: WaveShortMessage* wsm = dynamic_cast<WaveShortMessage*>(macPkt-> decapsulate()); long dest = macPkt->getDestAddr(); DBG_MAC << "Received frame name= " << macPkt->

Velines是否支持802.11p单播通信

我在框架中检查了类“Mac1609_4”的源代码。参考以下代码片段:

WaveShortMessage*  wsm =  dynamic_cast<WaveShortMessage*>(macPkt-> decapsulate());

long dest = macPkt->getDestAddr();

DBG_MAC << "Received frame name= " << macPkt->getName()
        << ", myState=" << " src=" << macPkt->getSrcAddr()
        << " dst=" << macPkt->getDestAddr() << " myAddr="
        << myMacAddress << std::endl;

if (macPkt->getDestAddr() == myMacAddress) {
    DBG_MAC << "Received a data packet addressed to me." << std::endl;
    statsReceivedPackets++;
    sendUp(wsm);
}
WaveShortMessage*wsm=dynamic_cast(macPkt->decapsulate());
long dest=macPkt->getDestAddr();

DBG_MAC框架不支持单播传输。在出版物的第IIIC节中,有报道称,静脉的MAC层被扩展以支持单播传输,这意味着官方版本不包括此功能


该论文发表于2015年,而最新版本的Velse4.3于上月发布。由于最新版本的“变更日志”中没有提及单播传输,这意味着仍然不支持单播传输

最近,在Vives 4.7中提供了一个实验实现。如网站中的changelog内容所示: “向IEEE 802.11p添加实验性单播支持”

要使用,只需在调用populateWSM方法时使用接收方的对象id更新每条消息(有关更多详细信息,请参阅方法签名):

此外,还需要将Mac1609_4类的useAcks参数设置为true。 只需在omnetpp.ini文件中添加这一行:

*.**.nic.mac1609_4.useAcks = true
但是,需要注意的是,此实现不适用于通道切换。尝试使用通道切换运行时,将抛出以下错误消息:

错误:单播模式不支持信道切换——在模块中(Mac1609_4)


致以最诚挚的问候。

我需要从rsu向特定车辆发送一条消息。我通过populateWSM函数将接收者的地址设置为汽车地址。但是,从未调用car节点的onWSM函数。我尝试将地址更改为-1,然后调用该函数没有问题。你能帮我做这个吗?我调试了这个问题,我确信地址是正确的。我做了与你回答中相同的设置。嗨,康复中心,你检查了频道切换是否被禁用了吗?测试它最简单的方法是只使用BSM。为此,请将omnetpp.ini文件上的“dataOnSch”设置为“false”,将服务通道的使用设置为false。”nic.mac1609_4.useServiceChannel=false“查看4.7的MAC层代码,我验证了MAC层用于单播方法的地址假定节点地址由以下公式给出:'myMacAddress=getParentModule()->getParentModule()->getIndex()';见Mac1609_4.cc第76行。我想强调的是,在我发表第一篇文章时,我没有测试这个功能。当我在回答中报告错误时,我停止了尝试使用单播。(因为我需要在我的项目中使用服务频道,Velse的单播功能不支持)。嗨,佩德罗,谢谢你的回复。我确信频道切换已禁用。然而,一切都没有改变。我用了一个解决办法,但我希望我可以发送一个消息到特定的汽车。
*.**.nic.mac1609_4.useAcks = true