В настоящее время я работаю над диссертацией бакалавра, и моя цель - создать симулятор VANET с симулятором трафика SUMO и сетевым симулятором OMNeT ++, работающим вместе.SUMO и OMNeT ++, работающие вместе с Java
Я знаю, что уже существует один проект под названием Veins, который это делает.
Но проблема в том, что я не знаю других языков, кроме PHP или Java, и я думаю, для меня потребуется больше времени, чтобы попытаться понять Veins, а не делать это на Java.
Я видел, что в случае Java существует библиотека под названием traci4j, которая ставит своей целью заменить TraCI на языке Java.
Я думаю, что первым крупным шагом для выполнения было бы запустить SUMO и OMNeT ++ с Java. Как только я достиг этого, я приступаю к работе по обмену данными между обеими программами.
Однако, я делал некоторые испытания, все они неудачны, чтобы запустить SUMO-гуй из моей простой программы:
public static void main(String[] args) throws IOException, InterruptedException {
String configFile = "test/resources/sumo_maps/Test2/Test2.sumo.cfg";
SumoTraciConnection trial = new SumoTraciConnection(configFile,-1);
trial.runServer(true);
}
Но я продолжаю получать следующее. Я попытался следовать этому в режиме отладки, но это была действительно утомительная работа, и в конце концов я ничего не смог получить.
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9, Size: 7
at java.util.ArrayList.rangeCheckForAdd(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at it.polito.appeal.traci.SumoTraciConnection.runSUMO(SumoTraciConnection.java:477)
at it.polito.appeal.traci.SumoTraciConnection.runServer(SumoTraciConnection.java:267)
at trial.TrialConnection.main(TrialConnection.java:32)
Я был бы очень признателен, если бы вы могли сказать мне, что происходит от моих мыслей. Любые другие комментарии относительно моей идеи и способа планирования моей диссертации также будут оценены.
BTW, я использую SUMO 0.25, OMNeT ++ 4.6 и Eclipse, Mars.2 Release (4.5.2)
Заранее спасибо за внимание
EDIT:
мне удалось найти происхождение Исключения, вы можете найти его как ответ. Тем не менее, я продолжаю получать ошибку:
ERROR StatusLogger Файл конфигурации log4j2 не найден. Использование конфигурации по умолчанию: запись только ошибок на консоль.
В любом случае, это не влияет на работу программы, так как я запускаю ее успешно. Однако, если я не нажимаю кнопку «Запустить», это не сработает!
вы можете использовать версию SUMO, которая несовместима с версией traci4j вы используете –
Я только что обнаружил происхождение IndexOutOfBoundsException, кажется, что, когда SumoTraciConnection вызовов runServer (логическая WithGui), если WithGui является set to true, то он пропускает добавление 2 элементов в список: 'if (randomSeed! = -1) { \t \t \t args.add (7, "--seed"); \t \t \t args.add (8, Integer.toString (randomSeed)); } \t args.add (9, "--xml-validation"); \t args.add (10, «никогда»); ' И, что касается версии, он говорит на своем веб-странице: _A установка работает SUMO (0.23.0 или выше) _ – Biurrun
Если вы были в состоянии ответить на свой собственный вопрос, не стесняйтесь добавлять ответ самостоятельно. StackOverflow - это сбор хороших ответов на (хорошие) вопросы. Публикация хорошего решения общей проблемы поможет другим людям в будущем. –