我想从 Veins Source for OMNet++ 中 RSU 模型的应用层访问 TraCI 的命令接口。但我找不到。谁能帮我这样做?
请注意,对于 RSU 节点,我没有将 TraciMobility 作为父模块。它只有我想要的 BaseMobility。现在我想访问命令界面,以便此 RSU 可以执行相扑指令,例如更改交通信号灯并获取感应回路数据。
Veins 4.3 提供了一个TraCIScenarioManagerAccess
帮助类,可用于快速访问代码中处理 TraCI 的类(并通过它访问包装命令接口的类)。
有关如何使用此接口的示例,请参见以下代码TraCIScreenRecorder
:
#include "veins/modules/mobility/traci/TraCIScenarioManager.h"
#include "veins/modules/mobility/traci/TraCICommandInterface.h"
[...]
TraCIScenarioManager* manager = TraCIScenarioManagerAccess().get();
ASSERT(manager);
TraCICommandInterface* traci = manager->getCommandInterface();
if (!traci) {
error("Cannot create screenshot: TraCI is not connected yet");
}
TraCICommandInterface::GuiView view = traci->guiView(par("viewName"));
view.takeScreenshot(filename);
在静脉 4.4 中,我尝试从 TraCIDemoRSU11p 访问 TraCI 命令界面。最后我能够访问,我在 TraCIDemoRSU11p.h 中插入以下代码:
#include "veins/modules/mobility/traci/TraCICommandInterface.h"
[...]
using Veins::TraCICommandInterface;
[...]
protected:
TraCICommandInterface* traci;
然后,您可以访问 TraCICommandInterface。祝你好运。