Interface TrafficController
-
- All Superinterfaces:
Drawable
,EventListener
,EventListenerInterface
,EventProducerInterface
,Identifiable
,InvisibleObjectInterface
,Serializable
- All Known Subinterfaces:
ActuatedTrafficController
- All Known Implementing Classes:
AbstractTrafficController
,CCOL
,FixedTimeController
,TrafCOD
public interface TrafficController extends EventProducerInterface, EventListenerInterface, InvisibleObjectInterface, Identifiable
Interface for traffic light controllers.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.- Version:
- $Revision$, $LastChangedDate$, by $Author$, initial version Oct 14, 2016
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
-
Field Summary
Fields Modifier and Type Field Description static String
BEING_CLONED
Traffic controller is being cloned.static int
NO_STREAM
Constant to select variables that have no associated traffic stream.static String
OFF
Traffic controller is off.static String
RUNNING
Traffic controller is running.static String
SHUTTING_DOWN
Traffic controller is shutting down.static String
STARTING_UP
Traffic controller is starting up.static TimedEventType
TRAFFIC_LIGHT_CHANGED
The timedevent that is fired by a traffic control program when a traffic light must change state.static TimedEventType
TRAFFICCONTROL_CONFLICT_GROUP_CHANGED
The timed event for pub/sub emitted by a traffic control machine when it changes to another conflict group.static TimedEventType
TRAFFICCONTROL_CONTROLLER_CREATED
The timed event type for pub/sub that a newly created traffic controller emits.static TimedEventType
TRAFFICCONTROL_CONTROLLER_EVALUATING
The timed event type for pub/sub that a traffic controller emits when it begins the computations to determine its response to the current input (detector states).
Payload: Object[] { String trafficControllerId }static TimedEventType
TRAFFICCONTROL_CONTROLLER_WARNING
The timed event type for pub/sub that a traffic controller uses to convey warnings.
Payload: Object[] { String trafficControllerId, String message }static EventType
TRAFFICCONTROL_SET_TRACING
The timed event type that instruct a traffic controller to change the tracing level of a variable.static TimedEventType
TRAFFICCONTROL_STATE_CHANGED
The timed event for pub/sub emitted by a traffic control machine when it changes state (STARTING_UP, RUNNING, SHUTTING_DOWN, OFF, etc.static TimedEventType
TRAFFICCONTROL_TRACED_VARIABLE_UPDATED
The timed event type for pub/sub indicating the update of a traced control program variable.static TimedEventType
TRAFFICCONTROL_VARIABLE_CREATED
The timed event type for pub/sub indicating the creation of a traffic control program variable.-
Fields inherited from interface org.djutils.event.EventProducerInterface
FIRST_POSITION, LAST_POSITION
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description String
getId()
Retrieve the Id of the traffic light controller.-
Methods inherited from interface org.djutils.event.EventListenerInterface
notify
-
Methods inherited from interface org.djutils.event.EventProducerInterface
addListener, addListener, addListener, addListener, getEventTypesWithListeners, getSourceId, hasListeners, numberOfListeners, removeListener
-
Methods inherited from interface org.opentrafficsim.core.object.InvisibleObjectInterface
clone, getFullId
-
-
-
-
Field Detail
-
STARTING_UP
static final String STARTING_UP
Traffic controller is starting up. Particular traffic control programs may use additional states not listed here.- See Also:
- Constant Field Values
-
BEING_CLONED
static final String BEING_CLONED
Traffic controller is being cloned. Particular traffic control programs may use additional states not listed here.- See Also:
- Constant Field Values
-
RUNNING
static final String RUNNING
Traffic controller is running.- See Also:
- Constant Field Values
-
SHUTTING_DOWN
static final String SHUTTING_DOWN
Traffic controller is shutting down.- See Also:
- Constant Field Values
-
OFF
static final String OFF
Traffic controller is off.- See Also:
- Constant Field Values
-
NO_STREAM
static final int NO_STREAM
Constant to select variables that have no associated traffic stream.- See Also:
- Constant Field Values
-
TRAFFICCONTROL_CONTROLLER_CREATED
static final TimedEventType TRAFFICCONTROL_CONTROLLER_CREATED
The timed event type for pub/sub that a newly created traffic controller emits.
Payload: Object[] { String trafficControllerId, String initialState }
-
TRAFFICCONTROL_CONTROLLER_EVALUATING
static final TimedEventType TRAFFICCONTROL_CONTROLLER_EVALUATING
The timed event type for pub/sub that a traffic controller emits when it begins the computations to determine its response to the current input (detector states).
Payload: Object[] { String trafficControllerId }
-
TRAFFICCONTROL_CONTROLLER_WARNING
static final TimedEventType TRAFFICCONTROL_CONTROLLER_WARNING
The timed event type for pub/sub that a traffic controller uses to convey warnings.
Payload: Object[] { String trafficControllerId, String message }
-
TRAFFICCONTROL_STATE_CHANGED
static final TimedEventType TRAFFICCONTROL_STATE_CHANGED
The timed event for pub/sub emitted by a traffic control machine when it changes state (STARTING_UP, RUNNING, SHUTTING_DOWN, OFF, etc. The exact set of states may vary depending on the type of traffic control machine.
Payload: Object[] { String trafficControllerId, String oldState, String newState }
-
TRAFFIC_LIGHT_CHANGED
static final TimedEventType TRAFFIC_LIGHT_CHANGED
The timedevent that is fired by a traffic control program when a traffic light must change state.
Payload: Object[] { String trafficControllerId, Integer stream, TrafficLightColor newColor }
-
TRAFFICCONTROL_VARIABLE_CREATED
static final TimedEventType TRAFFICCONTROL_VARIABLE_CREATED
The timed event type for pub/sub indicating the creation of a traffic control program variable.
Listeners to this event can sendTRAFFICCONTROL_SET_TRACE
messages to set the tracing level of a variable.
Payload: Object[] {String trafficControllerId, String variableId, Integer trafficStream, Double initialValue}
-
TRAFFICCONTROL_SET_TRACING
static final EventType TRAFFICCONTROL_SET_TRACING
The timed event type that instruct a traffic controller to change the tracing level of a variable.
Payload: Object[] { String trafficControllerId, String variableId, Integer trafficStream, Boolean trace }
Remark 1: an empty string for the variableId sets or clears tracing for all variables associated with the traffic stream.
Remark 2: The stream numberNO_STREAM
selects variable(s) that are not associated with a particular traffic stream.
Remark 3: setting the tracing level of a variable changes the amount ofTRAFFICCONTROL_TRACED_VARIABLE_UPDATED
events sent to all listeners; i.e. it is not possible to affect tracing on a per listener basis.
-
TRAFFICCONTROL_TRACED_VARIABLE_UPDATED
static final TimedEventType TRAFFICCONTROL_TRACED_VARIABLE_UPDATED
The timed event type for pub/sub indicating the update of a traced control program variable.
Payload: Object[] {String trafficControllerId, String variableId, Integer trafficStream, Double oldValue, Double newValue, String expressionOrDescription}
Remark 1: for variable that are not associated with a particular traffic stream, the trafficStream value shall beNO_STREAM
Remark 2: if the variable is a timer that has just been initialized; newValue will reflect the duration in seconds
-
TRAFFICCONTROL_CONFLICT_GROUP_CHANGED
static final TimedEventType TRAFFICCONTROL_CONFLICT_GROUP_CHANGED
The timed event for pub/sub emitted by a traffic control machine when it changes to another conflict group.
Payload: Object[] { String trafficControllerId, String oldConflictGroupStreams, String newConflictGroupStreams }
Remark 1: a conflict group is described as a space-separated list of traffic stream numbers. The traffic streams within a conflict group should be compatible; i.e. not conflicting.
Remark 2: The value00
can be used as a place holder for a stream in a conflict groups that have fewer than the maximum number of traffic streams that occur in any conflict group.
Remark 3: The very first event of this type may use an empty string foroldConflictGroupStreams
.
Remark 4: Some traffic control systems may not operate in a conflict group by conflict group fashion and therefore not emit these events.
-
-
Method Detail
-
getId
String getId()
Retrieve the Id of the traffic light controller.- Specified by:
getId
in interfaceIdentifiable
- Returns:
- String; the id of the traffic light controller
-
-