在静脉的MAC层访问Mobility模块时出错

问题描述 投票:1回答:1

在VEINS 4.4中,可以通过TraCIMobility定义的“Mobility”模块访问应用层车辆的当前位置(例如TraCIDemo11p)。

我按照相同的方法访问较低层的移动模块(MAC1609_4.cc),我在初始化函数的第0阶段添加了以下语句:

TraCIMobility* mobility = TraCIMobilityAccess().get(getParentModule());

但是,我没有得到任何编译错误,但是当模拟开始时OMNET抛出错误并且它给出了以下错误。

模块中的错误(MAC1609_4)RSUExampleScenario.node [0] .nic.mac1609_4(id = 12)在事件#2,t = 0.1:断言:条件traci false在函数get,\ veins / modules / mobility / traci / TraCIMobility中。 h第193行

我一直在寻找不同的解决方案,但是,我仍然无法解决这个问题。

相关文章是:

How to access TraCI command interface from TraCIDemoRSU11p in Veins Car2X simulator?

Transmission of vehicular status in Veins

RoadId() from the BaseWaveApplLayer.cc (VEINS, OMNET++)

How to get Coordinates of each vehicle in VEINS?

omnet++ veins
1个回答
1
投票

您正在尝试访问Mac1609_4的父模块中的TraCIMobility子模块。然而,这不是Car而是Nic80211p,它没有这样的子模块,因此,失败的断言。

当你在层次结构中增加一个额外的层时它应该工作,然后你以root身份使用Car模块来查找相应的子模块:

TraCIMobility* mobility = TraCIMobilityAccess().get(getParentModule()->getParentModule());

请参阅Car模块和Nic80211p模块以供参考:

© www.soinside.com 2019 - 2024. All rights reserved.