0

私は現在、学士論文に取り組んでおり、私の目的は、トラフィック シミュレーターである SUMO とネットワーク シミュレーターである OMNeT++ が連携して動作する VANET シミュレーターを作成することです。

これを行っている Veins というプロジェクトがすでに 1 つあることは知っています。

しかし問題は、PHP や Java 以外の言語を知らないことです。Veins を理解しようとすると、Java で理解するよりも時間がかかると思います。

Javaの場合、Java言語のTraCIの代替を目指したtraci4jというライブラリがあるのを見てきました。

達成するための最初の大きなステップは、SUMO と OMNeT++ を Java から実行できるようになることだと思います。これを達成したら、両方のプログラム間のデータ交換に取り掛かります。

ただし、簡単なプログラムから SUMO-gui を実行するためにいくつかの試行を行っていましたが、すべて失敗しました。

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)

私の考えから何が逃げているのか教えていただければ幸いです。私のアイデアと私の論文を計画する方法に関する他のコメントもいただければ幸いです。

ところで、SUMO 0.25、OMNeT++ 4.6、および Eclipse Mars.2 リリース (4.5.2) を使用しています。

ご清聴ありがとうございました

編集:

例外の発生源を見つけることができました。回答として見つけることができます。ただし、次のエラーが表示され続けます。

エラー StatusLogger log4j2 構成ファイルが見つかりません。デフォルト設定の使用: エラーのみをコンソールに記録します。

とにかく、これはプログラムの実行に影響を与えないようです。しかし、実行ボタンを押さないと動かない!

4

1 に答える 1

0

IndexOutOfBoundsException の原因を発見しました。SumoTraciConnection が runServer(int remotePort, boolean withGui) を呼び出すときに、WithGui が true に設定されている場合、リストへの 2 つの項目の追加がスキップされるようです。

if (randomSeed != -1) {
    args.add(7, "--seed");
    args.add(8, Integer.toString(randomSeed));
}

// this avoids validation of the input xml files; if SUMO_HOME is not set correctly,
// sumo will try to download the schema files from the web and may wait 30 seconds at startup
// for the connection to time out.
args.add(9, "--xml-validation");
args.add(10, "never");
于 2016-04-20T11:12:50.763 に答える