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

时间:2019-04-12 11:51:58

标签: omnet++ veins

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

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

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

但是,我没有收到任何编译错误,但是当OMNET在模拟开始时抛出错误时,它会发出以下错误。

  

模块(MAC1609_4)中的错误   事件#2的RSUExampleScenario.node [0] .nic.mac1609_4(id = 12),t = 0.1:   断言:条件traci在函数get中为false,   \ 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?

1 个答案:

答案 0 :(得分:1)

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

当您在层次结构中上一层时,它应该工作,因为然后您将 Car 模块用作根来查找相应的子模块:

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

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