我目前正在写我的学士论文,我的目的是创建一个 VANET 模拟器,让流量模拟器 SUMO 和网络模拟器 OMNeT++ 一起工作。
我知道已经有一个名为 Veins 的项目正在这样做。
但问题是除了 PHP 或 Java 之外我不知道其他语言,我认为我需要更多时间来尝试理解 Veins,而不是用 Java 来做。
我已经看到,在 Java 的情况下,有一个名为 traci4j 的库,旨在替代 Java 语言中的 TraCI。
我认为,要完成的第一步是能够从 Java 运行 SUMO 和 OMNeT++。一旦我实现了这一点,我就会着手处理两个程序之间的数据交换。
但是,我进行了一些试验,但都没有成功,从我的简单程序运行 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 Release (4.5.2)
提前感谢您的关注
编辑:
我设法找到了异常的起源,您可以将其作为答案找到。但是,我不断收到错误:
错误 StatusLogger 找不到 log4j2 配置文件。使用默认配置:仅将错误记录到控制台。
无论如何,这似乎并不影响程序的运行,因为我运行它成功了。但是,如果我不按运行按钮,它就不起作用!