Interface TrafficController
- All Superinterfaces:
org.opentrafficsim.core.animation.Drawable
,EventListener
,org.djutils.event.EventListener
,org.djutils.event.EventProducer
,org.djutils.base.Identifiable
,org.opentrafficsim.core.object.NonLocatedObject
,Remote
,Serializable
- All Known Subinterfaces:
ActuatedTrafficController
- All Known Implementing Classes:
AbstractTrafficController
,Ccol
,FixedTimeController
,TrafCod
public interface TrafficController
extends org.djutils.event.EventProducer, org.djutils.event.EventListener, org.opentrafficsim.core.object.NonLocatedObject
Interface for traffic light controllers.
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
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Traffic controller is being cloned.static final int
Constant to select variables that have no associated traffic stream.static final String
Traffic controller is off.static final String
Traffic controller is running.static final String
Traffic controller is shutting down.static final String
Traffic controller is starting up.static final org.djutils.event.EventType
The timedevent that is fired by a traffic control program when a traffic light must change state.static final org.djutils.event.EventType
The timed event for pub/sub emitted by a traffic control machine when it changes to another conflict group.static final org.djutils.event.EventType
The timed event type for pub/sub that a newly created traffic controller emits.static final org.djutils.event.EventType
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 final org.djutils.event.EventType
The timed event type for pub/sub that a traffic controller uses to convey warnings.
Payload: Object[] { String trafficControllerId, String message }static final org.djutils.event.EventType
The timed event type that instruct a traffic controller to change the tracing level of a variable.static final org.djutils.event.EventType
The timed event for pub/sub emitted by a traffic control machine when it changes state (STARTING_UP, RUNNING, SHUTTING_DOWN, OFF, etc.static final org.djutils.event.EventType
The timed event type for pub/sub indicating the update of a traced control program variable.static final org.djutils.event.EventType
The timed event type for pub/sub indicating the creation of a traffic control program variable.Fields inherited from interface org.djutils.event.EventProducer
FIRST_POSITION, LAST_POSITION
-
Method Summary
Methods inherited from interface org.djutils.event.EventListener
notify
Methods inherited from interface org.djutils.event.EventProducer
addListener, addListener, addListener, addListener, fireEvent, fireEvent, fireEvent, fireTimedEvent, fireTimedEvent, fireTimedEvent, fireUnverifiedEvent, fireUnverifiedEvent, fireUnverifiedTimedEvent, fireUnverifiedTimedEvent, getEventListenerMap, getEventTypesWithListeners, getListenerReferences, hasListeners, numberOfListeners, removeAllListeners, removeAllListeners, removeListener
Methods inherited from interface org.opentrafficsim.core.object.NonLocatedObject
getFullId
-
Field Details
-
STARTING_UP
Traffic controller is starting up. Particular traffic control programs may use additional states not listed here.- See Also:
-
BEING_CLONED
Traffic controller is being cloned. Particular traffic control programs may use additional states not listed here.- See Also:
-
RUNNING
Traffic controller is running.- See Also:
-
SHUTTING_DOWN
Traffic controller is shutting down.- See Also:
-
OFF
Traffic controller is off.- See Also:
-
NO_STREAM
static final int NO_STREAMConstant to select variables that have no associated traffic stream.- See Also:
-
TRAFFICCONTROL_CONTROLLER_CREATED
static final org.djutils.event.EventType TRAFFICCONTROL_CONTROLLER_CREATEDThe timed event type for pub/sub that a newly created traffic controller emits.
Payload: Object[] { String trafficControllerId, String initialState } -
TRAFFICCONTROL_CONTROLLER_EVALUATING
static final org.djutils.event.EventType TRAFFICCONTROL_CONTROLLER_EVALUATINGThe 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 org.djutils.event.EventType TRAFFICCONTROL_CONTROLLER_WARNINGThe 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 org.djutils.event.EventType TRAFFICCONTROL_STATE_CHANGEDThe 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 org.djutils.event.EventType TRAFFIC_LIGHT_CHANGEDThe timedevent that is fired by a traffic control program when a traffic light must change state.
Payload: Object[] { String trafficControllerId, Short stream, TrafficLightColor newColor } -
TRAFFICCONTROL_VARIABLE_CREATED
static final org.djutils.event.EventType TRAFFICCONTROL_VARIABLE_CREATEDThe 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, Short trafficStream, Double initialValue} -
TRAFFICCONTROL_SET_TRACING
static final org.djutils.event.EventType TRAFFICCONTROL_SET_TRACINGThe timed event type that instruct a traffic controller to change the tracing level of a variable.
Payload: Object[] { String trafficControllerId, String variableId, Short 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 org.djutils.event.EventType TRAFFICCONTROL_TRACED_VARIABLE_UPDATEDThe timed event type for pub/sub indicating the update of a traced control program variable.
Payload: Object[] {String trafficControllerId, String variableId, Short 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 org.djutils.event.EventType TRAFFICCONTROL_CONFLICT_GROUP_CHANGEDThe 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 Details
-
getId
String getId()Retrieve the Id of the traffic light controller.- Specified by:
getId
in interfaceorg.djutils.base.Identifiable
- Returns:
- String; the id of the traffic light controller
-