Обработка трасс в модуле RSU

КОНТЕКСТ:

В моей программе есть перекресток со светофором, который координирует движение транспортных средств.

На вертикальной полосе не так часто пересекаются трамваи. На горизонтальной полосе часто встречаются машины.

В моем эксперименте по моделированию коммуникации трамвай имеет более высокий приоритет, чем автомобили.

Поэтому, когда он приближается к перекрестку, идея заключается в том, что трамвай пересекает без остановки.

Рядом с перекрестком находится RSU, который отслеживает координаты трамвая и когда трамвай находится достаточно близко

Он отправит сообщение в этот RSU.

Я мог бы успешно управлять светофорами с транспортных средств (потому что они имеют доступ к трассам).

Но моя следующая цель - заставить РСУ координировать светофор после получения сообщения.

ВОПРОС:

Как я могу заставить модуль RSU обрабатывать traci в то же время, когда его используют транспортные средства?

ПОПЫТКА:

После этого вопроса я попытался реализовать код для обработки traci в RSU, но он не работал

Проблема была в следующем: почему я получаю код ошибки 139, если я запускаю этот код?

//written in the TraCIDemoRSU11p.h
TraCIScenarioManager* manager;
TraCICommandInterface* traci;

,

//written in the TraCIDemoRSU11p.cc
void TraCIDemoRSU11p::initialize(int stage) 
{
    ...
    manager = TraCIScenarioManagerAccess().get();
    traci = manager->getCommandInterface();
    ...
}

ПОДВЕДЕНИЕ:

Есть ли кто-нибудь, кто знает, как использовать traci в RSU и мог бы помочь мне использовать его?

Это было бы очень полезно для моего проекта, спасибо!

ДЕТАЛЬ:

Ошибка не возникает точно, когда я инициализирую и пытаюсь получить командный интерфейс TraCI,

Но когда я пытаюсь использовать его для изменения программы и этапов светофора.

1 ответ

Решение

Скорее всего, вы пытаетесь использовать интерфейс TraCI до его инициализации и подключения к SUMO. Это происходит в настраиваемое пользователем время, но после того, как все модули были инициализированы.

Выполнение симуляции в отладчике или в valgrind укажет вам, где произошла ошибка. Вы можете обратиться к FAQ за помощью о том, как запустить симуляцию в любом режиме.

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