Package org.opentrafficsim.core.dsol
Class OTSAnimator
- java.lang.Object
-
- org.djutils.event.EventProducer
-
- nl.tudelft.simulation.dsol.simulators.Simulator<A,R,T>
-
- nl.tudelft.simulation.dsol.simulators.DEVSSimulator<A,R,T>
-
- nl.tudelft.simulation.dsol.simulators.DEVSAnimator<A,R,T>
-
- nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock<Time,Duration,SimTimeDoubleUnit>
-
- nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock.TimeDoubleUnit
-
- org.opentrafficsim.core.dsol.OTSAnimator
-
- All Implemented Interfaces:
Serializable,Runnable,Remote,AnimatorInterface,DEVSSimulatorInterface<Time,Duration,SimTimeDoubleUnit>,DEVSSimulatorInterface.TimeDoubleUnit,SimulatorInterface<Time,Duration,SimTimeDoubleUnit>,SimulatorInterface.TimeDoubleUnit,EventProducerInterface,OTSAnimatorInterface,OTSSimulatorInterface
- Direct Known Subclasses:
OTSLoggingAnimator
public class OTSAnimator extends DEVSRealTimeClock.TimeDoubleUnit implements OTSAnimatorInterface, Serializable
Construct a DSOL DEVSRealTimeClock the easy way.Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.$LastChangedDate: 2018-10-30 14:03:57 +0100 (Tue, 30 Oct 2018) $, @version $Revision: 4727 $, by $Author: pknoppers $, initial version 11 mei 2015
- Author:
- Alexander Verbraeck, Peter Knoppers
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock
DEVSRealTimeClock.CalendarDouble, DEVSRealTimeClock.CalendarFloat, DEVSRealTimeClock.CalendarLong, DEVSRealTimeClock.TimeDouble, DEVSRealTimeClock.TimeDoubleUnit, DEVSRealTimeClock.TimeFloat, DEVSRealTimeClock.TimeFloatUnit, DEVSRealTimeClock.TimeLong
-
Nested classes/interfaces inherited from class nl.tudelft.simulation.dsol.simulators.Simulator
Simulator.SimulatorWorkerThread
-
Nested classes/interfaces inherited from interface nl.tudelft.simulation.dsol.simulators.AnimatorInterface
AnimatorInterface.AnimationThread
-
Nested classes/interfaces inherited from interface nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface
DEVSSimulatorInterface.CalendarDouble, DEVSSimulatorInterface.CalendarFloat, DEVSSimulatorInterface.CalendarLong, DEVSSimulatorInterface.TimeDouble, DEVSSimulatorInterface.TimeDoubleUnit, DEVSSimulatorInterface.TimeFloat, DEVSSimulatorInterface.TimeFloatUnit, DEVSSimulatorInterface.TimeLong
-
Nested classes/interfaces inherited from interface nl.tudelft.simulation.dsol.simulators.SimulatorInterface
SimulatorInterface.CalendarDouble, SimulatorInterface.CalendarFloat, SimulatorInterface.CalendarLong, SimulatorInterface.TimeDouble, SimulatorInterface.TimeDoubleUnit, SimulatorInterface.TimeFloat, SimulatorInterface.TimeFloatUnit, SimulatorInterface.TimeLong
-
-
Field Summary
-
Fields inherited from class nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock
BACKLOG_EVENT, CHANGE_SPEED_FACTOR_EVENT
-
Fields inherited from class nl.tudelft.simulation.dsol.simulators.DEVSSimulator
eventList
-
Fields inherited from class nl.tudelft.simulation.dsol.simulators.Simulator
replication, replicationState, runState, runUntilIncluding, runUntilTime, semaphore, simulatorTime, worker
-
Fields inherited from class org.djutils.event.EventProducer
eventProducerImpl
-
Fields inherited from interface nl.tudelft.simulation.dsol.simulators.AnimatorInterface
ANIMATION_DELAY_CHANGED_EVENT, DEFAULT_ANIMATION_DELAY, UPDATE_ANIMATION_EVENT
-
Fields inherited from interface nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface
EVENTLIST_CHANGED_EVENT
-
Fields inherited from interface org.djutils.event.EventProducerInterface
FIRST_POSITION, LAST_POSITION
-
Fields inherited from interface nl.tudelft.simulation.dsol.simulators.SimulatorInterface
START_EVENT, STARTING_EVENT, STOP_EVENT, STOPPING_EVENT, TIME_CHANGED_EVENT
-
-
Constructor Summary
Constructors Constructor Description OTSAnimator(Serializable simulatorId)Construct an OTSAnimator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OTSReplicationgetReplication()voidinitialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model)Initialize a simulation engine without animation; the easy way.voidinitialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model, int replicationnr)Initialize a simulation engine without animation and prescribed replication number; the easy way.voidinitialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model, Map<String,StreamInterface> streams)Initialize a simulation engine without animation; the easy way.SimEvent<SimTimeDoubleUnit>scheduleEvent(Time executionTime, short priority, Object source, Object target, String method, Object[] args)Construct and schedule a SimEvent using a Time to specify the execution time.StringtoString()-
Methods inherited from class nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock.TimeDoubleUnit
simulatorTimeForWallClockMillis
-
Methods inherited from class nl.tudelft.simulation.dsol.simulators.DEVSRealTimeClock
getSpeedFactor, getUpdateMsec, isAnimation, isCatchup, run, setAnimation, setCatchup, setSpeedFactor, setSpeedFactor, setUpdateMsec
-
Methods inherited from class nl.tudelft.simulation.dsol.simulators.DEVSAnimator
getAnimationDelay, setAnimationDelay, updateAnimation
-
Methods inherited from class nl.tudelft.simulation.dsol.simulators.DEVSSimulator
cancelEvent, endReplication, getEventList, initialize, isPauseOnError, scheduleEvent, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventNow, scheduleEventNow, scheduleEventNow, scheduleEventNow, scheduleEventRel, scheduleEventRel, scheduleEventRel, scheduleEventRel, setEventList, setPauseOnError, stepImpl
-
Methods inherited from class nl.tudelft.simulation.dsol.simulators.Simulator
cleanUp, fireTimedEvent, getLogger, getReplicationState, getRunState, getSimTime, getSimulatorTime, getSourceId, runUpTo, runUpToAndIncluding, start, startImpl, step, stop, stopImpl, warmup
-
Methods inherited from class org.djutils.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface nl.tudelft.simulation.dsol.simulators.AnimatorInterface
getAnimationDelay, setAnimationDelay, updateAnimation
-
Methods inherited from interface nl.tudelft.simulation.dsol.simulators.DEVSSimulatorInterface
cancelEvent, getEventList, isPauseOnError, scheduleEvent, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventAbs, scheduleEventNow, scheduleEventNow, scheduleEventNow, scheduleEventNow, scheduleEventRel, scheduleEventRel, scheduleEventRel, scheduleEventRel, setEventList, setPauseOnError
-
Methods inherited from interface org.djutils.event.EventProducerInterface
addListener, addListener, addListener, addListener, getEventTypesWithListeners, hasListeners, numberOfListeners, removeListener
-
Methods inherited from interface nl.tudelft.simulation.dsol.simulators.SimulatorInterface
getLogger, getReplicationState, getRunState, getSimTime, getSimulatorTime, getSourceId, initialize, isInitialized, isStartingOrRunning, isStoppingOrStopped, runUpTo, runUpToAndIncluding, start, step, stop
-
-
-
-
Constructor Detail
-
OTSAnimator
public OTSAnimator(Serializable simulatorId)
Construct an OTSAnimator.- Parameters:
simulatorId- the id of the simulator to use in remote communication
-
-
Method Detail
-
initialize
public void initialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model) throws SimRuntimeException, NamingException
Initialize a simulation engine without animation; the easy way. PauseOnError is set to true;- Specified by:
initializein interfaceOTSSimulatorInterface- Parameters:
startTime- Time; the start time of the simulationwarmupPeriod- Duration; the warm up period of the simulation (use new Duration(0, SECOND) if you don't know what this is)runLength- Duration; the duration of the simulationmodel- OTSModelInterface; the simulation to execute- Throws:
SimRuntimeException- when e.g., warmupPeriod is larger than runLengthNamingException- when the context for the replication cannot be created
-
initialize
public void initialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model, Map<String,StreamInterface> streams) throws SimRuntimeException, NamingException
Initialize a simulation engine without animation; the easy way. PauseOnError is set to true;- Parameters:
startTime- Time; the start time of the simulationwarmupPeriod- Duration; the warm up period of the simulation (use new Duration(0, SECOND) if you don't know what this is)runLength- Duration; the duration of the simulationmodel- OTSModelInterface; the simulation to executestreams- Map<String, StreamInterface>; streams- Throws:
SimRuntimeException- when e.g., warmupPeriod is larger than runLengthNamingException- when the context for the replication cannot be created
-
initialize
public void initialize(Time startTime, Duration warmupPeriod, Duration runLength, OTSModelInterface model, int replicationnr) throws SimRuntimeException, NamingException
Initialize a simulation engine without animation and prescribed replication number; the easy way. PauseOnError is set to true;- Specified by:
initializein interfaceOTSSimulatorInterface- Parameters:
startTime- Time; the start time of the simulationwarmupPeriod- Duration; the warm up period of the simulation (use new Duration(0, SECOND) if you don't know what this is)runLength- Duration; the duration of the simulationmodel- OTSModelInterface; the simulation to executereplicationnr- int; the replication number- Throws:
SimRuntimeException- when e.g., warmupPeriod is larger than runLengthNamingException- when context for the animation cannot be created
-
scheduleEvent
public final SimEvent<SimTimeDoubleUnit> scheduleEvent(Time executionTime, short priority, Object source, Object target, String method, Object[] args) throws SimRuntimeException
Construct and schedule a SimEvent using a Time to specify the execution time.- Specified by:
scheduleEventin interfaceOTSSimulatorInterface- Parameters:
executionTime- Time; the time at which the event must happenpriority- short; should be between SimEventInterface.MAX_PRIORITY and SimEventInterface.MIN_PRIORITY; most normal events should use SimEventInterface.NORMAL_PRIORITYsource- Object; the object that creates/schedules the eventtarget- Object; the object that must execute the eventmethod- String; the name of the method oftargetthat must execute the eventargs- Object[]; the arguments of themethodthat must execute the event- Returns:
- SimEvent<SimTimeDoubleUnit>; the event that was scheduled (the caller should save this if a need to cancel the event may arise later)
- Throws:
SimRuntimeException- when theexecutionTimeis in the past
-
getReplication
public final OTSReplication getReplication()
- Specified by:
getReplicationin interfaceOTSSimulatorInterface- Specified by:
getReplicationin interfaceSimulatorInterface<Time,Duration,SimTimeDoubleUnit>- Overrides:
getReplicationin classDEVSRealTimeClock.TimeDoubleUnit
-
-