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

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

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


person Nishkarsh Shastri    schedule 04.03.2016    source источник
comment
Было бы хорошо добавить некоторую информацию о версиях veins и omnet, которые вы используете, IIRC недавно были некоторые изменения в коде TraCI, с выпуском новой версии veins.   -  person Rens van der Heijden    schedule 04.03.2016


Ответы (2)


Veins 4.3 предоставляет TraCIScenarioManagerAccess вспомогательный класс, который можно использовать для быстрого доступа к классу, обрабатывающему TraCI (и, через него, к классу, оборачивающему командный интерфейс) в коде.

Пример использования этого интерфейса см. В следующем коде в _ 2_:

#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);
person Christoph Sommer    schedule 07.03.2016

в венах 4.4 я пытаюсь получить доступ к командному интерфейсу TraCI из TraCIDemoRSU11p. И, наконец, я смог получить доступ, я вставил следующий код в TraCIDemoRSU11p.h:

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

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

person rakhsha    schedule 07.01.2019
comment
Хотя доступ доступен, некоторые функции не выполняются, например: getJunctionIds. Потому что некоторые функции зависят от мобильности транспортного средства. Удачи. - person rakhsha; 08.01.2019