2016-03-21 16 views
2

OMNET ++, damarlar ve SUMO kullanarak bir ITS uygulaması yapıyorum ve aracının rotasını farklı bir rotayla güncellemeye çalışıyorum. Bununla birlikte, damarlarda bulduğum iki komuttan ikisi (commandRouteChange, commandNewRoute) işe yaramadı. Aracın güzergahını damarlarda2.1 nasıl güncelleyebilirim?

Ben yeni bir rota hesaplamak ve çıkış böyle şekildedir: std::string newRoute = "AtoB BtoC CtoD DtoE"; sonra araca bu newRoute ayarlamak çalıştı:

aşağıdaki hata var sonra

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 ").

Arıyordum ve commandNewRoute ve commandChangeRoute parametrelerinin sadece bir kenarı aldığını gördüm. Ama bir araca tam bir rota ayarlamak istiyorum. Bunu nasıl yapacağımı bilen var mı?

cevap

2

Damarlar 2.1, bir araca ait rotayı, sadece kendi yolunu değiştirerek (Command 0xc4 0x31) veya seyahat süreleri algısını değiştirerek (Command 0xc4 0x58) uygular.

Damarların daha yeni sürümleri de, istediğin şey olan rastgele rotaları (Command 0xc4 0x57) ayarlamak için bir komut uygular.

SUMO'nun en son sürümüyle çalışan ve diğer bileşenlerin geliştirilmiş ve daha fazla özellik bakımından zengin simülasyon modelleri sunan Veins 4.3'a geçmenizi öneririm. Eğer Damarları yükseltemezseniz, istenen komutu uygulamak da basit olmalıdır.