Package org.opentrafficsim.swing.script
Class AbstractSimulationScript
java.lang.Object
org.opentrafficsim.swing.script.AbstractSimulationScript
- All Implemented Interfaces:
Serializable,Remote,EventListener,org.djutils.cli.Checkable,org.djutils.event.EventListener
public abstract class AbstractSimulationScript
extends Object
implements org.djutils.event.EventListener, org.djutils.cli.Checkable
Template for simulation script. This class allows the user to run a single visualized simulation, or to batch-run the same
model. Parameters can be given through the command-line using djutils-ext. Fields can be added to sub-classes using the
@Options and similar annotations. Default values of the properties in this abstract class can be overwritten by the
sub-class using CliUtil.changeDefaultValue().
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSimulationScript(String name, String description) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddTabs(org.opentrafficsim.core.dsol.OtsSimulatorInterface sim, OtsSimulationApplication<?> animation) Adds tabs to the animation.protected voidanimateNetwork(org.opentrafficsim.core.network.Network net, OtsAnimationPanel animationPanel) Creates animations for nodes, links and lanes.voidcheck()final List<GtuColorer>Returns the GTU colorers.Map<org.opentrafficsim.core.gtu.GtuType,org.opentrafficsim.draw.gtu.DefaultCarAnimation.GtuData.GtuMarker> Returns map of (non-default) GTU type markers.final org.opentrafficsim.road.network.RoadNetworkReturns the network.longgetSeed()Returns the seed.org.djunits.value.vdouble.scalar.DurationReturns the simulation time.final org.opentrafficsim.core.dsol.OtsSimulatorInterfaceReturns the simulator.org.djunits.value.vdouble.scalar.TimeReturns the start time.org.djunits.value.vdouble.scalar.DurationReturns the warm-up time.booleanReturns whether to autorun.voidnotify(org.djutils.event.Event event) protected voidMethod that is called when the simulation has ended.protected voidsetAnimationToggles(OtsAnimationPanel animation) Sets the animation toggles.final voidsetGtuColorers(List<GtuColorer> colorers) Set GTU colorers.protected voidsetupDemo(OtsAnimationPanel animationPanel, org.opentrafficsim.road.network.RoadNetwork net) Method that is called when the animation has been created, to add components for a demo.protected abstract org.opentrafficsim.road.network.RoadNetworksetupSimulation(org.opentrafficsim.core.dsol.OtsSimulatorInterface sim) Sets up the simulation based on provided properties.final voidstart()Starts the simulation.
-
Constructor Details
-
AbstractSimulationScript
Constructor.- Parameters:
name- namedescription- description
-
-
Method Details
-
getSeed
public long getSeed()Returns the seed.- Returns:
- seed
-
getStartTime
public org.djunits.value.vdouble.scalar.Time getStartTime()Returns the start time.- Returns:
- start time
-
getWarmupTime
public org.djunits.value.vdouble.scalar.Duration getWarmupTime()Returns the warm-up time.- Returns:
- warm-up time
-
getSimulationTime
public org.djunits.value.vdouble.scalar.Duration getSimulationTime()Returns the simulation time.- Returns:
- simulation time
-
isAutorun
public boolean isAutorun()Returns whether to autorun.- Returns:
- whether to autorun
-
setGtuColorers
Set GTU colorers.- Parameters:
colorers- GTU colorers
-
getGtuColorers
Returns the GTU colorers.- Returns:
- returns the GTU colorers
-
getGtuMarkers
public Map<org.opentrafficsim.core.gtu.GtuType,org.opentrafficsim.draw.gtu.DefaultCarAnimation.GtuData.GtuMarker> getGtuMarkers()Returns map of (non-default) GTU type markers. The default implementation of this method returns an empty map.- Returns:
- map of GTU type markers
-
check
- Specified by:
checkin interfaceorg.djutils.cli.Checkable- Throws:
Exception
-
start
Starts the simulation.- Throws:
Exception- on any exception
-
notify
- Specified by:
notifyin interfaceorg.djutils.event.EventListener- Throws:
RemoteException
-
getSimulator
public final org.opentrafficsim.core.dsol.OtsSimulatorInterface getSimulator()Returns the simulator.- Returns:
- simulator
-
getNetwork
public final org.opentrafficsim.road.network.RoadNetwork getNetwork()Returns the network.- Returns:
- network
-
animateNetwork
protected void animateNetwork(org.opentrafficsim.core.network.Network net, OtsAnimationPanel animationPanel) Creates animations for nodes, links and lanes. This can be used if the network is not read from XML.- Parameters:
net- networkanimationPanel- animation panel
-
addTabs
protected void addTabs(org.opentrafficsim.core.dsol.OtsSimulatorInterface sim, OtsSimulationApplication<?> animation) Adds tabs to the animation. May be overridden.- Parameters:
sim- simulatoranimation- animation to add tabs to
-
onSimulationEnd
protected void onSimulationEnd()Method that is called when the simulation has ended. This can be used to store data. -
setupDemo
protected void setupDemo(OtsAnimationPanel animationPanel, org.opentrafficsim.road.network.RoadNetwork net) Method that is called when the animation has been created, to add components for a demo.- Parameters:
animationPanel- animation panelnet- network
-
setAnimationToggles
Sets the animation toggles. May be overridden.- Parameters:
animation- animation to set the toggle on
-
setupSimulation
protected abstract org.opentrafficsim.road.network.RoadNetwork setupSimulation(org.opentrafficsim.core.dsol.OtsSimulatorInterface sim) throws Exception Sets up the simulation based on provided properties. Properties can be obtained withgetProperty(). Setting up a simulation should at least create a network and some demand. Additionally this may setup traffic control, sampling, etc.- Parameters:
sim- simulator- Returns:
- network
- Throws:
Exception- on any exception
-