Interface TrafficController

All Superinterfaces:
Drawable, java.util.EventListener, EventListenerInterface, EventProducerInterface, Identifiable, InvisibleObjectInterface, java.io.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 Details

    • STARTING_UP

      static final java.lang.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 java.lang.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 java.lang.String RUNNING
      Traffic controller is running.
      See Also:
      Constant Field Values
    • SHUTTING_DOWN

      static final java.lang.String SHUTTING_DOWN
      Traffic controller is shutting down.
      See Also:
      Constant Field Values
    • OFF

      static final java.lang.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 EventType 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 EventType 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 EventType 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 EventType 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 EventType 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 EventType TRAFFICCONTROL_VARIABLE_CREATED
      The timed event type for pub/sub indicating the creation of a traffic control program variable.
      Listeners to this event can send TRAFFICCONTROL_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 number NO_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 of TRAFFICCONTROL_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 EventType 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 be NO_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 EventType 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 value 00 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 for oldConflictGroupStreams.
      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

      java.lang.String getId()
      Retrieve the Id of the traffic light controller.
      Specified by:
      getId in interface Identifiable
      Returns:
      String; the id of the traffic light controller