Models a TCP/IP connection to a local or remote SUMO server via the TraCI protocol.
It runs a SUMO instance as a subprocess with a given configuration file and a random seed, and provides methods and objects to advance to the next simulation step, to retrieve vehicles' info, to set vehicles' routes and to get roads' info.
To use it, create an instance and call {@link #runServer()}, that will start the subprocess. From there, you can use all the other methods to interact with the simulator.
The method {@link #nextSimStep()} will advance SUMO by a time step (onesecond). The methods {@link #addVehicleLifecycleObserver(VehicleLifecycleObserver)} and{@link #removeVehicleLifecycleObserver(VehicleLifecycleObserver)} allow youto register and unregister objects that will be notified whenever a vehicle enters or exits the simulation.
The executable path must be specified via the system property specified in {@link #SUMO_EXE_PROPERTY}.
At simulation end, one should call {@link #close()} to gracefully close thesimulator and free any resources.
@author Enrico Gueli <enrico.gueli@gmail.com>