我使用SimuLTE和Veins模拟通过LTE发送安全消息。消息的内容取决于流量的实时值,例如平均速度。为了得到这样的值,我计划使用Veins支持的TraCICommandInterface
。但是,我无法知道如何以及在哪里可以做到这一点。具体来说,在Veins没有SimuLTE的情况下,我知道车辆节点是TraCIMobility
的模块,它有一个应用层,我们可以自定义接收/发送消息的功能,例如wsm,并由{来管理{1}}。但是在simulation example provided by SimuLTE中,车辆/节点是TraCIScenarioManager
的模块,由VeinInetMobility
管理。他们都没有使用VeinInetManager
或TraCICommandInterface
。此外,lte applications并未使用与BaseWaveApplLayer相同的图层,我们可以在车辆/节点更新位置时立即执行某些操作。任何人都可以帮助解释我如何使用SimuLTE和Veins实现以下功能:
答案 0 :(得分:2)
在Veins 4.6中,TraCIMobility
模块用于在每次节点位置更改时更新 Veins 通道模型。类似地,在Veins 4.6的Veins_INET中,每当节点的位置发生变化时,VeinsInetMobility
模块用于更新 INET Framework 通道模型。因为SimuLTE使用INET Framework通道模型,所以这是必须使用的类(否则INET通道模型不会知道,例如,两个节点是否距离太远而无法通信)。
如果您想在每次完成SUMO时间步骤时采取措施,您只需将其添加到executeOneTimestep
method of TraCIScenarioManager。
请注意,如果您希望通过VeinsInetMobility
模块与SUMO车辆进行交互(例如,更改车辆的路线),则需要进行一些更改:Veins 4.6的Veins_INET不会跟踪节点的外部ID( SUMO用于引用相应车辆的ID,因此需要将其与代码一起添加到VeinsInetMobility
(line 54)以使用它,类似于TraCIMobility
(line 127)。