Как получить доступ к командному интерфейсу TraCI из TraCIDemoRSU11p в симуляторе Veins Car2X?

Я хочу получить доступ к командному интерфейсу TraCI из прикладного уровня модели RSU в Veins Source для OMNet++. Но я не могу найти это. Может кто-нибудь, пожалуйста, помогите мне сделать это?

Обратите внимание, что у меня нет TraciMobility в качестве родительского модуля в случае узла RSU. У меня есть только BaseMobility, что я и хочу. Теперь я хочу получить доступ к интерфейсу команд, чтобы этот RSU мог выполнять команды сумо, такие как изменение светофора и получение данных индукционной петли.

1 ответ

Вены 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, я пытаюсь получить доступ к командному интерфейсу TraCI из TraCIDemoRSU11p. И, наконец, я смог получить доступ, я вставил следующий код в TraCIDemoRSU11p.h:

#include "veins/modules/mobility/traci/TraCICommandInterface.h"
[...]
using Veins::TraCICommandInterface;
[...]   
protected:
        TraCICommandInterface* traci;

Затем вы можете получить доступ к TraCICommandInterface. Удачи.

Другие вопросы по тегам