Я строю свое приложение, используя OMNET ++, вен и SUMO, и я пытаюсь
обновить маршрут транспортного средства с другим маршрутом. Однако обе из двух команд (commandRouteChange
, commandNewRoute
) что я нашел в жилах не получилось.
Я вычисляю новый маршрут, и результат такой: std::string newRoute = "AtoB BtoC CtoD DtoE";
тогда я попытался установить это newRoute
к транспортному средству:
traci->getManager()->commandNewRoute(vehicleID, newRoute);
тогда я получил следующую ошибку: Error in module (ITS) VANET.host[0].appl (id=9) at event #127412, t=12: Model error: TraCI server reported error executing command 0xc4 ("Can not retrieve road with ID AtoB BtoC CtoD DtoE ").
Я был в поиске, и я увидел, что commandNewRoute
а также commandChangeRoute
получает только одно ребро в качестве параметра. Но я хочу проложить полный маршрут к машине. Кто-нибудь знает, как я могу это сделать?
В Венах 2.1 реализованы только команды для изменения маршрута транспортного средства путем изменения его целевой дороги (Команда 0xc4 0x31) или изменив его восприятие времени в пути (Команда 0xc4 0x58).
Более новые версии Veins также реализуют команду для установки произвольных маршрутов (Команда 0xc4 0x57), о чем вы и просите.
Я рекомендую перейти на Вены 4,3, которая работает с самой последней версией SUMO и дает вам ряд улучшенных и более многофункциональных имитационных моделей других компонентов. Если вы не можете обновить Veins, выполнение желаемой команды также должно быть простым.
Других решений пока нет …