2. Signal Exchange List

2.1. Object Types

2.1.1. Grouped objects

Table 2.1 Grouped objects

ObjectType

Description

Traffic Light Controller

2.1.2. Single objects

Table 2.2 Single objects

ObjectType

Description

Signal group

Detector logic

2.2. Aggregated status

Table 2.3 Aggregated status

ObjectType

functionalPosition

functionalState

Description

Traffic Light Controller

functionalPosition not used (set to null)
functionalState not used (set to null)

Table 2.4 State bits

State-Bit

Description

Comment

1

Local mode

Traffic Light Controller is in local mode. NTS has no control.

2

No Communications

3

High Priority Fault

Traffic Light Controller is in fail safe mode; e.g. yellow flash or dark mode

4

Medium Priority Fault

Traffic Light Controller has a medium priority fault, but not in fail safe mode. E.g. several lamp faults or detector fault

5

Low Priority Fault

Traffic Light Controller has a low priority fault. E.g. Detector fault

6

Connected / Normal - In Use

7

Connected / Normal - Idle

Traffic Light Controller dark according to configuration. NOTE! When dark according to configuration the controller is considered to be in use

8

Not Connected

2.3. Alarms

Table 2.5 Alarms

ObjectType

alarmCodeId

Description

Priority

Category

Traffic Light Controller

A0001

Serious hardware error

2

D

Traffic Light Controller

A0002

Less serious hardware error

3

D

Traffic Light Controller

A0003

Serious configuration error

2

D

Traffic Light Controller

A0004

Less serious configuration error

3

D

Traffic Light Controller

A0005

Synchronisation error (coordination)

3

D

Traffic Light Controller

A0006

Safety error

2

D

Traffic Light Controller

A0007

Communication error

3

D

Signal group

A0008

Dead lock error

2

D

Traffic Light Controller

A0009

Other error

3

D

Traffic Light Controller

A0010

Door open

3

D

Signal group

A0101

Pushbutton error

3

D

Signal group

A0201

Serious lamp error

2

D

Signal group

A0202

Less serious lamp error

3

D

Detector logic

A0301

Detector error (hardware)

3

D

Detector logic

A0302

Detector error (logic error)

3

D

Detector logic

A0303

Serious detector error (hardware)

2

D

Detector logic

A0304

Serious detector error (logic error)

2

D

2.3.1. A0001

Serious hardware error

Is a “major fault” defined according to 3.8 i EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

2.3.2. A0002

Less serious hardware error

Is a “minor fault” defined according to 3.11 in EN12675.

2.3.3. A0003

Serious configuration error

Is a “major fault” defined according to 3.8 in EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

2.3.4. A0004

Less serious configuration error

Is a “minor fault” defined according to 3.11 in EN12675.

2.3.5. A0005

Synchronisation error (coordination)

Is a “minor fault” defined according to 3.11 in EN12675.

2.3.6. A0006

Safety error

Is a “major fault” defined according to 3.8 in EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

2.3.7. A0007

Communication error

Used for communication errors with the central system. Includes NTP connection loss if the TLC is configured to use NTP. Is a “minor fault” defined according to 3.11 in EN12675.

Table 2.6 A0007

Name

Type

Enum

Comment

protocol

string

-rsmp
-ntp

Type of communication error, e.g. NTP or RSMP
rsmp: RSMP
ntp: NTP

2.3.8. A0008

Dead lock error

Used for dead lock errors. For instance; a signal group has requested green but is unable to switch due to a conflicting signal group for an extended period of time. At some point the request times out and the controller goes failure mode. The cause for this error is due to configuration errors or external sources. Is a “major fault” defined according to 3.8 in EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

Table 2.7 A0008

Name

Type

Min

Max

Comment

timeplan

integer

1

255

Current time plan

2.3.9. A0009

Other error

Used for other errors not covered by any other alarm type. Is a “minor fault” defined according to 3.11 in EN12675.

2.3.10. A0010

Door open

Used for open door (room or cabinet).

2.3.11. A0101

Pushbutton error

Used for push buttons.

2.3.12. A0201

Serious lamp error

Used for lamp errors. Is a “major fault” defined according to 3.8 in EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

Table 2.8 A0201

Name

Type

Enum

Comment

color

string

-red
-yellow
-green

Color of lamp
red: red
yellow: yellow
green: green

2.3.13. A0202

Less serious lamp error

Used for lamp errors. Is a “minor fault” defined according to 3.11 in EN12675.

Table 2.9 A0202

Name

Type

Enum

Comment

color

string

-red
-yellow
-green

Color of lamp
red: red
yellow: yellow
green: green

2.3.14. A0301

Detector error (hardware)

Is a “minor fault” defined according to 3.11 in EN12675.

Table 2.10 A0301

Name

Type

Enum

Comment

detector

string

Designation of the detector (hardware)

type

string

-loop
-input

Type of detector
loop: Inductive detector loop
input: External input

errormode

string

-on
-off

Detector forced on/off while detector error

manual

boolean

Manually controlled detector logic (True/False)

2.3.15. A0302

Detector error (logic error)

For instance; detector continuously on or off during an extended time. Is a “minor fault” defined according to 3.11 in EN12675.

Table 2.11 A0302

Name

Type

Enum

Comment

detector

string

Designation of the detector (hardware)

type

string

-loop
-input

Type of detector
loop: Inductive detector loop
input: External input

errormode

string

-on
-off

Detector forced on/off while detector error

manual

boolean

Manually controlled detector logic (True/False)

logicerror

string

-always_off
-always_on
-intermittent

Type of logic error
always_off: no detection during predefined max time
always_on: detection constantly on during predefined max time
intermittent: intermittent logic fault (flutter)

2.3.16. A0303

Serious detector error (hardware)

Is a “major fault” defined according to 3.8 i EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.

Table 2.12 A0303

Name

Type

Enum

Comment

detector

string

Designation of the detector (hardware)

type

string

-loop
-input

Type of detector
loop: Inductive detector loop
input: External input

errormode

string

-on
-off

Detector forced on/off while detector error

manual

boolean

Manually controlled detector logic (True/False)

2.3.17. A0304

Serious detector error (logic error)

For instance; detector continuously on or off during an extended time. Is a “major fault” defined according to 3.8 i EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675

Table 2.13 A0304

Name

Type

Enum

Comment

detector

string

Designation of the detector (hardware)

type

string

-loop
-input

Type of detector
loop: Inductive detector loop
input: External input

errormode

string

-on
-off

Detector forced on/off while detector error

manual

boolean

Manually controlled detector logic (True/False)

logicerror

string

-always_off
-always_on
-intermittent

Type of logic error
always_off: no detection during predefined max time
always_on: detection constantly on during predefined max time
intermittent: intermittent logic fault (flutter)

2.4. Status

Table 2.14 Status

ObjectType

statusCodeId

Description

Traffic Light Controller

S0001

Signal group status

Traffic Light Controller

S0002

Detector logic status

Traffic Light Controller

S0003

Input status

Traffic Light Controller

S0004

Output status

Traffic Light Controller

S0005

Traffic Light Controller starting

Traffic Light Controller

S0006

Emergency route

Traffic Light Controller

S0007

Controller switched on

Traffic Light Controller

S0008

Manual control

Traffic Light Controller

S0009

Fixed time control

Traffic Light Controller

S0010

Isolated control

Traffic Light Controller

S0011

Yellow flash

Traffic Light Controller

S0012

All red

Traffic Light Controller

S0013

Police key

Traffic Light Controller

S0014

Current time plan

Traffic Light Controller

S0015

Current traffic situation

Traffic Light Controller

S0016

Number of detector logics

Traffic Light Controller

S0017

Number of signal groups

Traffic Light Controller

S0019

Number of traffic situations

Traffic Light Controller

S0020

Control mode

Traffic Light Controller

S0021

Manually set detector logic

Traffic Light Controller

S0022

List of time plans

Traffic Light Controller

S0023

Dynamic bands

Traffic Light Controller

S0024

Offset time

Signal group

S0025

Time-of-Green / Time-of-Red

Traffic Light Controller

S0026

Week time table

Traffic Light Controller

S0027

Time tables

Traffic Light Controller

S0028

Cycle time

Traffic Light Controller

S0029

Forced input status

Traffic Light Controller

S0030

Forced output status

Traffic Light Controller

S0031

Trigger level sensitivity for loop detector

Traffic Light Controller

S0032

Coordinated control

Traffic Light Controller

S0033

Signal Priority Status

Traffic Light Controller

S0034

Timeout for dynamic bands

Traffic Light Controller

S0035

Emergency route

Traffic Light Controller

S0091

Operator logged in/out OP-panel

Traffic Light Controller

S0092

Operator logged in/out web-interface

Traffic Light Controller

S0095

Version of Traffic Light Controller

Traffic Light Controller

S0096

Current date and time

Traffic Light Controller

S0097

Checksum of traffic parameters

Traffic Light Controller

S0098

Configuration of traffic parameters

Detector logic

S0201

Traffic Counting: Number of vehicles

Detector logic

S0202

Traffic Counting: Vehicle speed

Detector logic

S0203

Traffic Counting: Occupancy

Detector logic

S0204

Traffic Counting: Number of vehicles of given classification

Traffic Light Controller

S0205

Traffic Counting: Number of vehicles

Traffic Light Controller

S0206

Traffic Counting: Vehicle speed

Traffic Light Controller

S0207

Traffic Counting: Occupancy

Traffic Light Controller

S0208

Traffic Counting: Number of vehicles of given classification

2.4.1. S0001

Signal group status

Provides the status of each signal group, including basic information such as green, yellow and red. But also detailed technical information. Can be used to draw a live signal group diagram as well provide diagnostic information about the performance of the controller.

Table 2.15 S0001

Name

Type

Min

Max

Comment

signalgroupstatus

string

Signal group status as text field
Each character represent the state of the signal group in consecutive order,
where the leftmost character starts with signal group 1.
Signal group status is described in detail in the corresponding section.
- : Signal group is undefined/does not exist

cyclecounter

integer

0

999

Cycle counter
Used for handling of coordination between TLC’s.
Is counted from 0 until it reaches the cycle time (See S0028).

c = (b + o) mod t

where c = cycle counter,
b = base cycle counter,
o = offset,
t = cycle time,
mod = modulo

See the coordination section for more information.

basecyclecounter

integer

0

999

Base cycle counter
Used for handling of coordination between TLC’s.
Synchronized between all TLC’s in an active coordination.
See the coordination section for more information.

stage

integer

0

999

Current stage (isolated)

2.4.2. S0002

Detector logic status

Provides the status of all detector logics of the controller. Can be used to draw a live signal group diagram as well provide diagnostic information about the performance of the controller. Can also be used for bus priority, external control systems, and much more.

Table 2.16 S0002

Name

Type

Comment

detectorlogicstatus

string

Detector logic status as text field
Each character represent the state of the detector logic in consecutive order,
where the leftmost character starts with detector logic 1.
0 : Detector logic is not active
1 : Detector logic is active
- : Detector logic is undefined/does not exist

2.4.3. S0003

Input status

Input (1-255) of the controllers general purpose I/O. Input is used where the traffic light controller must react to external control. It could be external detectors, bus priority, and much more.

Table 2.17 S0003

Name

Type

Comment

inputstatus

string

Input status as text field
Each character represent the state of the input in consecutive order,
where the leftmost character starts with input 1.
0 : Input is not active
1 : Input is active
- : Input is undefined/does not exist

2.4.4. S0004

Output status

Output (1-255) of the controllers general purpose I/O. Can be used for all types of output where the traffic light controller needs to control other equipment. Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.

Table 2.18 S0004

Name

Type

Comment

outputstatus

string

Output status as text field
Each character represent the state of the output status in consecutive order,
where the leftmost character starts with output 1.
0 : Output is not active
1 : Output is active
- : Output is undefined/does not exist

2.4.5. S0005

Traffic Light Controller starting

The traffic signal is starting, e.g. it is in startup mode and has not begun working normally yet. During startup mode the traffic controller shows dark, red, yellow flash or using the predetermined start cycle (minimum times).

Table 2.19 S0005

Name

Type

Comment

status

boolean

False: Controller is not in start up mode
True: Controller is currently in start up mode

statusByIntersection

array

False: Intersection is not in start up mode
True: Intersection is currently in start up mode

Table 2.20 S0005 statusByIntersection

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Intersection id

startup

boolean

Start up mode

2.4.6. S0006

Emergency route

The status is active during emergency prioritization. Used in situations where full priority is given in the emergency vehicle program or for other types of priority in some cases.

If no emergency route is active, status should be set to False, and emergencystage to zero.

Deprecated, use S0035 instead.

Table 2.21 S0006

Name

Type

Min

Max

Comment

status

boolean

Deprecated False: Emergency route inactive
True: Emergency route active

emergencystage

integer

0

255

Deprecated Number of emergency route (set to zero if no route is active)

2.4.7. S0007

Controller switched on

The controller is active and is not in dark mode. Used to determine if the there is output to the signal heads, e.g. it shows red, green or yellow to the vehicles. During maintenance work the controller might be using dark mode (no output to the signal heads). Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “0” and “True” (one intersection) or “1,2” and “True,False” (two intersections).

Table 2.22 S0007

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: Traffic Light Controller in dark mode
True: Traffic Light Controller not in dark mode

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.8. S0008

Manual control

Traffic control deactivated in controller. Signal timings is controlled manually by service personnel using the operating panel of the controller. Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “0” and “True” (one intersection) or “1,2” and “True,False” (two intersections).

Table 2.23 S0008

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: Manual control inactive
True: Manual control active

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.9. S0009

Fixed time control

Traffic actuated control deactivated and a pre-timed control is used. Usually only used in case normal detectors can’t be used, e.g. during maintenance work. Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “0” and “True” (one intersection) or “1,2” and “True,False” (two intersections).

Table 2.24 S0009

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: Fixed time control inactive
True: Fixed time control active

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.10. S0010

Isolated control

Isolated control mode indicates that the controller operates independently of any other traffic light controller. This may be different depending on traffic program (time plan). Used to determine if the controller is operating independently or operating with other controllers (coordination). Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “0” and “True” (one intersection) or “1,2” and “True,False” (two intersections).

Table 2.25 S0010

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: Isolated control disabled
True: Isolated control enabled (Vehicle actuated control or Fixed time control)

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.11. S0011

Yellow flash

The controller shows yellow flash. Yellow flash may be used during a serious fault (depending on configuration) or maintenance work. It can also be manually set using M0001. Some countries may use yellow flash as an normal operating mode, and not necessarily during fault. Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “True,False”

Table 2.26 S0011

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: Yellow flash disabled
True: Yellow flash enabled

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.12. S0012

All red

The controller show all red. All red can be manually set using the controllers operating panel during maintenance work. Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “True,False”

Table 2.27 S0012

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

boolean

False: All red disabled
True: All red enabled

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.13. S0013

Police key

The controller is forced to dark mode or yellow flash. The “police key” is a external control switch present in some controllers that manually switches the controller to either dark mode or yellow flash. Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “0,1”

Table 2.28 S0013

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

integer

-0
-1
-2
-3

0: disabled
1: dark mode
2: yellow flash
3: all red

2.4.14. S0014

Current time plan

The current time plan (signal program) used in the controller. There may be 1-255 predefined time plans. The time plan (signal program) may change signal timings, cycle time, control strategy and much more. Typical usage is is scenario based control where change of program is used to change priority etc.

Table 2.29 S0014

Name

Type

Min

Max

Enum

Comment

status

integer

1

255

Current time plan

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.15. S0015

Current traffic situation

The current traffic situation used in the controller. Used for area-based control where the M0003 command can be sent to a master traffic light controller about which predefined traffic situation to use (1-255). Traffic situation is a concept used to divide multiple TLC’s into areas and sub-areas. The traffic situation gives the possibility to change the TLC sub-area dynamically depending on the time of day and the traffic flow. Depending on the traffic situation each TLC selects the time plan dynamically.

Table 2.30 S0015

Name

Type

Min

Max

Enum

Comment

status

integer

1

255

Current traffic situation

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.16. S0016

Number of detector logics

Can be used by the management system to check the number of detector logics configured in the controller.

Table 2.31 S0016

Name

Type

Min

Max

Comment

number

integer

1

65025

Number of detector logics

2.4.17. S0017

Number of signal groups

Can be used for the management system to check the number of signal groups configured in the controller.

Table 2.32 S0017

Name

Type

Min

Max

Comment

number

integer

1

65025

Number of signal groups

2.4.18. S0019

Number of traffic situations

Can be used for the management system to check the number of traffic situations configured in the controller.

Table 2.33 S0019

Name

Type

Min

Max

Comment

number

integer

1

65025

Number of traffic situations

2.4.19. S0020

Control mode

Can be used for the management system to check the current control mode (startup, normal, standby, failure, test). Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “startup,control”

Table 2.34 S0020

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

controlmode

string

-startup
-control
-standby
-failure
-test

startup: The controller starts up, performs a power on self test and performs each start-up interval
control: Normal 3-light control
standby: The controller is in dark or yellow flash mode (either according to programming or manually set)
failure: The controller has a “major fault” defined according to 3.8 i EN12675. The controller is in dark or yellow flash mode
test: Mode used for various tests, e.g. signal lights

2.4.20. S0021

Manually set detector logic

Provides status of detector logic (1-255) regarding if they are either forced to true or false. Can be used to connect RSMP compatible detection equipment to the traffic light controller. Can also be used for prioritization.

Table 2.35 S0021

Name

Type

Comment

detectorlogics

string

Manually set detector logic as text field
Each character represent the state in consecutive order,
where the leftmost character starts with detector logic 1.
0 : Detector logic not manually set
1 : Detector logic manually set
- : Detector logic is undefined/does not exist

2.4.21. S0022

List of time plans

Provides a list of the configured time plans which is possible to use. This status was added due to status S0018 only provided the total number of time plans and not which were possible to use with M0002. Can be used for the management system to check the number of time plans configured in the controller.

Table 2.36 S0022

Name

Type

Comment

status

string

Comma separated list of configured time plans. E.g. “1,2,3,5”

2.4.22. S0023

Dynamic bands

Provides a list of all defined dynamic bands. Dynamic bands moves start of signal groups in the cycle and changes the signal timings. A typical usage of dynamic bands is scenario based control where changing of signal timings is used for optimal traffic flow.

Table 2.37 S0023

Name

Type

Comment

status

string

Dynamic bands
Each dynamic band are written as pp-dd-ee where:
pp=Time plan
dd=Dynamic band number (from 1-10)
ee=Extension in seconds in this band

Each dynamic band is separated with a comma.

E.g.
pp-dd-ee,pp-dd-ee

2.4.23. S0024

Offset time

Offset time is used to define an offset between intersections in coordinated control. It is based on the expected travel time between intersections. Can be used by the management system to check to fine tune the coordination for optimal traffic flow.

Table 2.38 S0024

Name

Type

Comment

status

string

Offset table
Each offset time is written as p-t where:
p=time plan number (from 1 to 255)
t=offset time in seconds (from 0 to 255)

Each offset time is separated with a comma

E.g.
1-0,2-13-3-7

2.4.24. S0025

Time-of-Green / Time-of-Red

Provides predicted signal timings of green and red for each signal group. Max, min and likely time to green and red.

Table 2.39 S0025

Name

Type

Min

Max

Comment

minToGEstimate

timestamp

Time stamp for the minimum time for the signal group to go to green. If the signal group is green, it is the minimum time for the next green

maxToGEstimate

timestamp

Time stamp for the maximum time for the signal group to go to green. If the signal group is green, it is the maximum time for the next green

likelyToGEstimate

timestamp

Time stamp for the most likely time for the signal group to go to green. If the signal group is green, it is the most likely time for the next green

ToGConfidence

integer

0

100

Confidence of the likelyToGEstimate. 0-100%

minToREstimate

timestamp

Time stamp for the minimum time for the signal group to go to red. If the signal group is red, it is the minimum time for the next red

maxToREstimate

timestamp

Time stamp for the maximum time for the signal group to go to red. If the signal group is red, it is the maximum time for the next red

likelyToREstimate

timestamp

Time stamp for the most likely time for the signal group to go to red. If the signal group is red, it is the most likely time for the next red

ToRConfidence

integer

0

100

Confidence of the likelyToREstimate. 0-100%

2.4.25. S0026

Week time table

Week time table for signal programs (time plan) to use for each day during a week. The week time table determine which predefined signal timings (time plan) to use during the week for optimal traffic flow.

Table 2.40 S0026

Name

Type

Comment

status

string

Week time table. Defines time table to use for each week day
Each day is written as d-t where:
d=day of week
t=time table nr

Day of week legend:
0=Monday
1=Tuesday
2=Wednesday
3=Thursday
4=Friday
5=Saturday
6=Sunday

Each segment is separated with a comma
E.g.
d-t,d-t

2.4.26. S0027

Time tables

Time of day for when to switch signal program (time plan). The signal timings (time plan) to use during time of day for optimal traffic flow.

Table 2.41 S0027

Name

Type

Comment

status

string

Time Table. Defines time tables
Each time definition is written as t-o-h-m where:
t=time table nr (1-12)
o=function
h=hour - switching time
m=minute - switching minute

Function legend:
0=no plan is selected by time table
1=set plan 1

16= set plan 16

hour and minute is using local time (not UTC)

Each time definition is separated with a comma

E.g.
t-o-h-m,t-o-h-m

2.4.27. S0028

Cycle time

Cycle time (or cycle length) is the sum of all phases in a time plan (traffic program). This time is fixed when using fixed time control or coordination (except “local coordination”). When the cycle counter reaches this length it is reset back to zero. Changing the cycle time can be used as part of scenario based control.

Table 2.42 S0028

Name

Type

Comment

status

string

Cycle time table
Each cycle time is written as pp-tt where:
pp=time plan
tt=cycle time in seconds

Each cycle time is separated with a comma

E.g.
pp-tt,pp-tt

2.4.28. S0029

Forced input status

Provide status of input (1-255) regarding if they are forced or not. Can be used for all types of input where the traffic light controller must react to external control. Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.

Table 2.43 S0029

Name

Type

Comment

status

string

Forced input status as text field
Each character represent the state in consecutive order,
where the leftmost character starts with input 1.
0 : Input not forced
1 : Input forced
- : Input undefined/does not exist

2.4.29. S0030

Forced output status

Provide status of output (1-255) regarding if they are forced or not. Can be used for all types of output where the traffic light controller needs to control other equipment. Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.

Table 2.44 S0030

Name

Type

Comment

status

string

Forced output status as text field
Each character represent the state in consecutive order,
where the leftmost character starts with output 1.
0 : Output not forced
1 : Output forced
- : Output undefined/does not exist

2.4.30. S0031

Trigger level sensitivity for loop detector

The trigger level sensitivity determines at what level the loop detector should trigger. If it set too low then then traffic will not be detected as intended. If it is set too high the detector might give false positives. Can be used to make sure that the detectors detect traffic as intended.

Table 2.45 S0031

Name

Type

Comment

status

string

Loop detector trigger level sensitivity is written as dd-ss where:
dd=loop detector number
ss=sensitivity value
Each loop detector is separated with a comma. E.g.dd-ss,dd-ss.

2.4.31. S0032

Coordinated control

This status is used when coordination between traffic light controllers is active. Coordination is described in detail in the corresponding section Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “centralized,off”

Table 2.46 S0032

Name

Type

Min

Max

Enum

Comment

intersection

integer

0

255

Comma separated list of intersections which the status relates to, e.g. “1,2”
Use “0” for all intersections of the TLC.

status

string

-local
-centralized
-off

local: Local coordination
centralized: Coordination with synchronized clock
off: Coordination not active

source

string

-operator_panel
-calendar_clock
-control_block
-forced
-startup
-other

Source of the status change
operator_panel: Operator panel
calendar_clock: Calendar/clock
control_block: Control block
forced: Forced due to external command e.g. supervisor
startup: Set after startup mode
other: Other reason

2.4.32. S0033

Signal Priority Status

This status can be used to get updates about priority requests. For example, you can use it to know when priority requests are activated or cancelled. A list of priorities is returned, referred to by their request ids. The same request id can appear only once. All priorities are included in the list (not only the ones that have changed state since the last update). This is done regardless of whether the status is send in respond to a status request, or due to a status subscription, and also regardless of whether a status subscription uses an update interval, or send-on-change, or both. If you subscribe using an update interval, you’re not guaranteed to get all intermediate states. To guarantee that, send-on-change must be used when subscribing. To understand how this status relates to ETSI/J2735, please see the wiki. All priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used. When a priority reaches an end states (completed, timeout, rejected, cooldown or stale), it must be sent once on the next status update, then removed from the list. A request always starts in the ‘received’ state. The following table shows the possible state transitions:

State

Possible next states

received

queued, activated, rejected, cooldown

queued

activated, timeout

activated

completed, stale

completed

timeout

rejected

cooldown

stale

Table 2.47 S0033

Name

Type

Comment

status

array

JSON array of priority status items

Table 2.48 S0033 status

Name

Type

Min

Max

Enum

Comment

r

string

ID of the priority request

t

timestamp

Timestamp, indicating when the priority last changed state

s

string

-received
-queued
-activated
-completed
-timeout
-rejected
-cooldown
-stale

Current status of the priority request
received: A new priority request was received but has not yet been processed
queued: The priority request has been queued for later activation
activated: The priority was activated
completed: The priority was cancelled as expected
timeout: The priority has been queued for too long
rejected: The priority request cannot be granted
cooldown: A similar priority request means the priority request cannot be activated now
stale: The priority has been active too long without cancellation, and was therefore removed

e

integer

0

255

(Optional) Estimated green extension provided by the priority, in seconds
Only used when state is ‘completed’.

d

integer

0

255

(Optional) Estimated red reduction provided by the priority, in seconds
Only used when state is ‘completed’.

2.4.33. S0034

Timeout for dynamic bands

Time until a designated time plan is entered due to lost connection with the supervisor. Disabled if set to ‘0’. Used in conjunction with dynamic bands, M0014

Table 2.49 S0034

Name

Type

Min

Max

Comment

status

integer

0

65535

Timeout, in minutes

2.4.34. S0035

Emergency route

The status is active during emergency prioritization. Used in situations where full priority is given in the emergency vehicle program or for other types of priority in some cases.

This status is similar to S0006, but supports multiple routes

Table 2.50 S0035

Name

Type

Comment

emergencyroutes

array

Active emergency routes

Table 2.51 S0035 emergencyroutes

Name

Type

Min

Max

Enum

Comment

id

integer

1

255

ID of active emergency route

2.4.35. S0091

Operator logged in/out OP-panel

Provides information if maintenance personnel is currently working on site.

Table 2.52 S0091

Name

Type

Enum

Comment

user

integer

-0
-1
-2

0: Nobody logged in
1: Operator logged in at level 1 (read only)
2: Operator logged in at level 2 (read/write)

2.4.36. S0092

Operator logged in/out web-interface

Provides information if maintenance personnel is currently working with the controller.

Table 2.53 S0092

Name

Type

Enum

Comment

user

integer

-0
-1
-2

0: Nobody logged in
1: Operator logged in at level 1 (read only)
2: Operator logged in at level 2 (read/write)

2.4.37. S0095

Version of Traffic Light Controller

Provides diagnostic version information.

Table 2.54 S0095

Name

Type

Comment

status

string

Manufacturer, product name and version of traffic light controller

2.4.38. S0096

Current date and time

Note: UTC is used. Provides diagnostic information about the current date and time set in the controller.

Table 2.55 S0096

Name

Type

Min

Max

Comment

year

integer

0

9999

Year

month

integer

1

12

Month

day

integer

1

31

Day of month

hour

integer

0

23

Hour

minute

integer

0

59

Minute

second

integer

0

59

Second

2.4.39. S0097

Checksum of traffic parameters

Can be used to check if any traffic parameter has been changed. For instance, depending on controller, maintenance personnel can modify traffic parameters on site to optimize traffic flow. This status provides the ability to monitor if any traffic parameter has been changed. The traffic parameters may be downloaded with S0098.

Table 2.56 S0097

Name

Type

Comment

checksum

string

Checksum of the traffic parameters
Uses SHA-2 as hashing algorithm
Includes
- all signal programs, including program versions
- signal group settings
- time plans
- safety matrix
- intergreen times
- detector settings

It should NOT include:
- network settings
- log files
- software
- other device settings that are not part of the signal program

Note:
- The checksum should be calculated using the same data as used in S0098
- Data Downloaded with S0098 and hashed with SHA-2 should match this value.

timestamp

timestamp

Time stamp of the checksum

2.4.40. S0098

Configuration of traffic parameters

Can be used to download all traffic parameters from the controller. For instance, depending on controller, maintenance personnel can modify traffic parameters on site to optimize traffic flow. This status provides the ability to downloaded them.

Table 2.57 S0098

Name

Type

Comment

config

base64

Traffic parameters
Includes
- all signal programs, including program versions
- signal group settings
- time plans
- safety matrix
- intergreen times
- detector setting

It should NOT include:
- network settings
- log files
- software
- other device settings that are not part of the signal program

Note:
- There is no way to upload this binary file to the TLC using RSMP
- The format of the binary file is not specified and is not expected to be compatible between suppliers

timestamp

timestamp

Time stamp of the config

version

string

Version information of the configuration. Contains basic information such as controller id, changes to config and other information
The format is not specified in detail.

2.4.41. S0201

Traffic Counting: Number of vehicles

Used for Traffic counting.

Table 2.58 S0201

Name

Type

Min

Max

Comment

starttime

timestamp

Time stamp for start of measuring

vehicles

integer

0

65535

Number of vehicles on a given detector logic (since last update)

2.4.42. S0202

Traffic Counting: Vehicle speed

Used for Traffic counting.

Table 2.59 S0202

Name

Type

Min

Max

Comment

starttime

timestamp

Time stamp for start of measuring

speed

integer

0

65535

Average speed in km/h

2.4.43. S0203

Traffic Counting: Occupancy

Used for Traffic counting.

Table 2.60 S0203

Name

Type

Min

Max

Comment

starttime

timestamp

Time stamp for start of measuring

occupancy

integer

0

100

Occupancy in percent (0-100%)

2.4.44. S0204

Traffic Counting: Number of vehicles of given classification

Used for Traffic counting.

Table 2.61 S0204

Name

Type

Min

Max

Comment

starttime

timestamp

Time stamp for start of measuring

P

integer

0

65535

Number of cars

PS

integer

0

65535

Number of cars with trailers

L

integer

0

65535

Number of trucks

LS

integer

0

65535

Number of trucks with trailers

B

integer

0

65535

Number of buses

SP

integer

0

65535

Number of trams

MC

integer

0

65535

Number of motor cycles

C

integer

0

65535

Number of bicycles

F

integer

0

65535

Number of pedestrians

2.4.45. S0205

Traffic Counting: Number of vehicles

This status was introduced to improve performance in case traffic counting is done on all all detectors.

Table 2.62 S0205

Name

Type

Min

Max

Comment

start

timestamp

Time stamp for start of measuring

vehicles

integer

-1

65535

Number of vehicles
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

2.4.46. S0206

Traffic Counting: Vehicle speed

This status was introduced to improve performance in case traffic counting is done on all all detectors.

Table 2.63 S0206

Name

Type

Min

Max

Comment

start

timestamp

Time stamp for start of measuring

speed

integer

-1

65535

Average speed in km/h (integer)
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

2.4.47. S0207

Traffic Counting: Occupancy

This status was introduced to improve performance in case traffic counting is done on all all detectors.

Table 2.64 S0207

Name

Type

Min

Max

Comment

start

timestamp

Time stamp for start of measuring

occupancy

integer

-1

100

Occupancy in percent (%) (0-100)
- Value expressed as an integer with a range of 0-100.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

2.4.48. S0208

Traffic Counting: Number of vehicles of given classification

This status was introduced to improve performance in case traffic counting is done on all all detectors.

Table 2.65 S0208

Name

Type

Min

Max

Comment

start

timestamp

Time stamp for start of measuring

P

integer

-1

65535

Number of cars
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

PS

integer

-1

65535

Number of cars with trailers
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

L

integer

-1

65535

Number of trucks
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

LS

integer

-1

65535

Number of trucks with trailers
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

B

integer

-1

65535

Number of buses
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

SP

integer

-1

65535

Number of trams
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

MC

integer

-1

65535

Number of motor cycles
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

C

integer

-1

65535

Number of bicycles
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

F

integer

-1

65535

Number of pedestrians
- Value expressed as an integer with a range of 0-65535.
- Contains data from all detector logics. Each detector logic is separated with a comma.
- The value is set to “-1” if no data could be measured (e.g. detector fault)

2.5. Commands

Table 2.66 Commands

ObjectType

commandCodeId

Command

Description

Traffic Light Controller

M0001

setValue

Sets functional position

Traffic Light Controller

M0002

setPlan

Sets current time plan

Traffic Light Controller

M0003

setTrafficSituation

Sets traffic situation the controller uses

Traffic Light Controller

M0004

setRestart

Restarts Traffic Light Controller

Traffic Light Controller

M0005

setEmergency

Activate emergency route

Traffic Light Controller

M0006

setInput

Activate input

Traffic Light Controller

M0007

setFixedTime

Activate fixed time control

Detector logic

M0008

setForceDetectorLogic

Sets manual activation of detector logic

Signal group

M0010

setStart

Reserved

Signal group

M0011

setStop

Reserved

Traffic Light Controller

M0012

setStart

Reserved

Traffic Light Controller

M0013

setInput

Activate a series of inputs

Traffic Light Controller

M0014

setCommands

Set dynamic bands

Traffic Light Controller

M0015

setOffset

Set Offset time

Traffic Light Controller

M0016

setWeekTable

Set week time table

Traffic Light Controller

M0017

setTimeTable

Set time tables

Traffic Light Controller

M0018

setCycleTime

Set Cycle time

Traffic Light Controller

M0019

setInput

Force input

Traffic Light Controller

M0020

setOutput

Force output

Traffic Light Controller

M0021

setLevel

Set trigger level sensitivity for loop detector

Traffic Light Controller

M0022

requestPriority

Request Signal Priority

Traffic Light Controller

M0023

setTimeout

Set timeout for dynamic bands

Traffic Light Controller

M0103

setSecurityCode

Set security code

Traffic Light Controller

M0104

setDate

Set clock

2.5.1. M0001

Sets functional position

Sets the controller to yellow flash, dark mode or normal control. Requires security code 2.

Table 2.67 M0001

Name

Type

Min

Max

Enum

Comment

status

string

-NormalControl
-YellowFlash
-Dark

Set operating mode
NormalControl: Normal Control
YellowFlash: Enables yellow flash
Dark: Enables dark mode

securityCode

string

Security code 2

timeout

integer

0

1440

Time in minutes until controller automatically reverts to previous functional position
0=no automatic return

intersection

integer

0

255

Intersection number
Command only applies to specified intersection. Other intersections remains in their respective operating mode(s).
0: All intersections

2.5.2. M0002

Sets current time plan

Change of traffic program of the traffic light controller. Typical usages is scenario based control where change of program is used to change signal timings etc. This command changes the signal timings for optimal traffic flow. Requires security code 2

Table 2.68 M0002

Name

Type

Min

Max

Comment

status

boolean

False: Controller uses time plan according to programming
True: Controller uses time plan according to command

securityCode

string

Security code 2

timeplan

integer

1

255

designation of time plan

2.5.3. M0003

Sets traffic situation the controller uses

Used for area-based control where this command can be sent to a master traffic light controller about which predefined traffic situation to use (1-255). Traffic situation is a concept used to divide multiple TLC’s into areas and sub-areas. The traffic situation gives the possibility to change the TLC sub-area dynamically depending on the time of day and the traffic flow. Depending on the traffic situation each TLC selects the time plan dynamically. Requires security code 2

Table 2.69 M0003

Name

Type

Min

Max

Comment

status

boolean

False: Controller uses traffic situation according to own programming
True: Controller uses traffic situation according to command

securityCode

string

Security code 2

traficsituation

integer

1

255

designation of traficsituation

2.5.4. M0004

Restarts Traffic Light Controller

Used in the event of serious faults in the device where a restart is considered to be able to remedy a problem. Requires security code 2

Table 2.70 M0004

Name

Type

Comment

status

boolean

Deprecated True: Restart controller

securityCode

string

Deprecated Security code 2

2.5.5. M0005

Activate emergency route

The function is made for emergency prioritization. Works in the same way as the M0006 and M0008 where the traffic light controller responds to an input. Should be used in situations where full priority is given in the emergency vehicle program. Requires security code 2.

Table 2.71 M0005

Name

Type

Min

Max

Comment

status

boolean

False: Deactivate emergency route
True: Activate emergency route

securityCode

string

Security code 2

emergencyroute

integer

1

255

Number of emergency route

2.5.6. M0006

Activate input

Set given input (1-255) of the controllers general purpose I/O to either true or false. The function can provide an input to the traffic light controller on which a predefined action can be taken. Can be used for all types of input where the traffic light controller must react to external control. Typical usages are bus priority, coordination between traffic controllers, external control systems, and much more. Requires security code 2.

Table 2.72 M0006

Name

Type

Min

Max

Comment

status

boolean

False: Deactivate input
True: Activate input

securityCode

string

Security code 2

input

integer

1

255

Number of Input

2.5.7. M0007

Activate fixed time control

Deactivates the traffic actuated control using detectors and activates pre-timed control. Can be used in case normal detectors can’t be used, e.g. during maintenance work. Requires security code 2.

Table 2.73 M0007

Name

Type

Comment

status

boolean

False: Deactivate fixed time control
True: Activate fixed time control

securityCode

string

Security code 2

2.5.8. M0008

Sets manual activation of detector logic

Set given detector logic (1-255) to either true or false. Can e.g. be used to connect RSMP compatible detection equipment to the traffic light controller. Can also be used for prioritization. Requires security code 2

Table 2.74 M0008

Name

Type

Comment

status

boolean

False: Deactivate manual control of detector logic
True: Activate manual control of detector logic

securityCode

string

Security code 2

mode

boolean

False: Deactivate detector logic
True: Activate detector logic

2.5.9. M0010

Reserved

Table 2.75 M0010

Name

Type

Comment

status

boolean

Reserved

securityCode

string

Reserved

2.5.10. M0011

Reserved

Table 2.76 M0011

Name

Type

Comment

status

boolean

Reserved

securityCode

string

Reserved

2.5.11. M0012

Reserved

Table 2.77 M0012

Name

Type

Comment

status

string

Reserved

securityCode

string

Reserved

2.5.12. M0013

Activate a series of inputs

Set given inputs (1-255) of the controllers general purpose I/O to either true or false. This command was introduced due to coordination requirements needing to set many inputs to true/false at the same time and M0006 being to slow to send a message for each input individually. With this command many inputs can be set to true/false at the same time using a single command message. It can be used for all types of input where the traffic light controller must react to external control. Typical usages are bus priority, coordination between traffic controllers, external control systems, and much more.

Requires security code 2.

The parameter ‘status’ sets/unsets a block of 16 inputs at a time. It can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon. Format: [Offset];[Bits to set];[Bits to unset];…

  • ‘Offset’ defines where the 16 inputs starts from

  • ‘Bits to set’ defines which bit(s) to set. ‘0’ if unused

  • ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused

Example 1: “3,4134,65” sets input 4,5,8,15 and unsets 3,9 - Input starts from no. 5 - “4134” is 1 0000 0010 0110 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 1000 0001 0011 0000 which are bits 4,5,8,15 - “65” is 100 0001 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 10 0000 1000 which are bits 3,9

Example 2: “12,1,4” sets input 12 and unsets 14 - Input starts from no. 12 - “1” is 1 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 1 0000 0000 0000, which is bit 12 - “4” is 100 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 100 0000 0000 0000, which is bit 14

And both these examples could be sent in the same message as: “3,4143,65;12,1,4”

Such a message would set input 4,5,8,12,15 and unset input 3,9,14

Example 3: “0,1,2” sets input 0 and unsets 1 - Input starts from 0 - “1” is 1 in binary, which is bit 0 - “2” is 10 in binary, which is bit 1

Table 2.78 M0013

Name

Type

Comment

status

string

Sets/Unsets a block of 16 inputs at a time. Can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon
Format: [Offset];[Bits to set];[Bits to unset];…

securityCode

string

Security code 2

2.5.13. M0014

Set dynamic bands

Can be used to change between predefined signal timings. Moves the start of signal groups in the cycle. This command can be used to change the split of green time during the cycle. A typical usage is scenario based control where changing of signal timings is used for optimal traffic flow. Requires security code 2

Table 2.79 M0014

Name

Type

Min

Max

Comment

plan

integer

0

255

Plan to be changed

status

string

Dynamic bands
Each dynamic band are written as dd-ee where:
dd=Dynamic band number (from 1-10)
ee=Extension in seconds in this band

Each dynamic band is separated with a comma.

E.g.
dd-ee,dd-ee

securityCode

string

Security code 2

2.5.14. M0015

Set Offset time

Offset time is used to define an offset between intersections in coordinated control. It is based on the expected travel time between intersections. This command can be used to fine tune the coordination for optimal traffic flow. Requires security code 2.

Table 2.80 M0015

Name

Type

Min

Max

Comment

status

integer

0

255

Set offset time in seconds

plan

integer

0

255

Time plan nr

securityCode

string

Security code 2

2.5.15. M0016

Set week time table

Set which time table for signal programs to use for each day during a week. This command changes the signal timings during the week for optimal traffic flow. Requires security code 2.

Table 2.81 M0016

Name

Type

Comment

status

string

Week time table. Defines time table to use for each week day
Each segment is written as d-t where:
d=day of week
t=time table nr

Day of week legend:
0=Monday
1=Tuesday
2=Wednesday
3=Thursday
4=Friday
5=Saturday
6=Sunday

Each segment is separated with a comma

E.g.
d-t,d-t

securityCode

string

Security code 2

2.5.16. M0017

Set time tables

Set time of day for when to automatically switch signal program (time plan). This command changes the signal timings according to time of day for optimal traffic flow. Requires security code 2.

Table 2.82 M0017

Name

Type

Comment

status

string

Time Table. Defines time tables
Each time definition is written as t-o-h-m where:
t=time table nr (1-12)
o=function
h=hour - switching time
m=minute - switching minute

Function legend:
0=no plan is selected by time table
1=set plan 1

16= set plan 16

hour and minute is using local time (not UTC)

Each time definition is separated with a comma.

E.g.
t-o-h-m,t-o-h-m

securityCode

string

Security code 2

2.5.17. M0018

Set Cycle time

Cycle time (or cycle length) is the sum of all phases in a time plan (traffic program). This time is fixed when using fixed time control or coordination (except “local coordination”). When the cycle counter reaches this length it is reset back to zero. This command provides the ability to change the cycle time when using coordinated or fixed time control. It changes the timings for optimal traffic flow. Can be used with scenario based control. Requires security code 2.

Table 2.83 M0018

Name

Type

Min

Max

Comment

status

integer

1

255

Set cycle time in seconds

plan

integer

0

255

Time plan nr

securityCode

string

Security code 2

2.5.18. M0019

Force input

Force a given input (1-255) of the controllers general purpose I/O to either True or False. Can be used for all types of input where the traffic light controller must react to external control. Can be used for bus priority, coordination between traffic controllers, external control systems, and much more. Requires security code 2.

Table 2.84 M0019

Name

Type

Min

Max

Comment

status

boolean

False: Release input
True: Force input

securityCode

string

Security code 2

input

integer

1

255

Number of Input

inputValue

boolean

False: input forced to False
True: input forced to True

2.5.19. M0020

Force output

Force a given output (1-255) of the controllers general purpose I/O to either True of False. Can be used for all types of output where the traffic light controller needs to control other equipment. Can be used for bus priority, coordination between traffic controllers, external control systems, and much more. Requires security code 2.

Table 2.85 M0020

Name

Type

Min

Max

Comment

status

boolean

False: Force output
True: Release output

securityCode

string

Security code 2

output

integer

1

255

Number of Output

outputValue

boolean

False: output forced to False
True: output forced to True

2.5.20. M0021

Set trigger level sensitivity for loop detector

The trigger level sensitivity determines at what level a loop detector should trigger. If it set too low then then traffic will not be detected as intended. If it is set too high the detector might give false positives. This command provides the ability to fine tune loop detectors to make sure they detect traffic as intended. Requires security code 2

Table 2.86 M0021

Name

Type

Comment

status

string

Loop detector trigger level sensitivity is written as dd-ss where:
dd=loop detector number
ss=sensitivity value

securityCode

string

Security code 2

2.5.21. M0022

Request Signal Priority

Useful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.

The benefit of using this message over activating inputs or detector logics is that you can specify a priority level, vehicle type and estimated time of arrival. You can also update or cancel the request, and use the corresponding status message to track the status of the request, including how much priority was actually given.

To understand how this command relates to ETSI/J2735, please see the wiki.

Activating signal priority is expected to provide more green time for a particular movement through the intersection, but the exact mechanism must typically be configured in the controller.

The movement to prioritize can be referenced in a number of ways, depending on what is configured in the controller, and in the system that sends priority requests. Either:

  • Reference a signal group by setting ‘signalGroupId’. This method is simple, but will not allow you to have different priority mechanism for the same signal group, unless they can be distinguished by the vehicle type. For example, if you need to trigger different priorities depending on whether a bus goes straight or makes a turn for the same signal group, you need to use of the other referencing methods.

  • Reference an input by setting ‘inputId’. This can be useful if you previously used inputs to activate priority. The input will not be activated, only the priority.

  • Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.

  • Reference an intersection approach by setting ‘approachId’.

  • Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.

Referencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:

  • signalGroupId

  • inputId

  • connectionId

  • approachId

  • laneInId

  • laneOutId

Referencing attributes are only used when initiating a request. When updating or cancelling the request, the request is identified by its requestId, and no referencing attributes are allowed.

You initiate a priority request with type set to ‘new’. You must provide a request id that uniquely identifies the request on the controller. It can be a randomly generated UUID (universally unique identifier), or it can be constructed by combining e.g. a vehicle id and some other identifier. When updating or cancelling a request, you must pass the same request id again.

Providing ETA (estimated time of arrival) when initiating a request is optional, but can help the controller plan ahead in cases where you’re able to send the request before the vehicle arrives at the intersection. You’re allowed to initiate the request without an ETA and provide it in a later request update. But providing the ETA when initiating the request is recommended, since it will give the controller more time to plan ahead.

Like ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.

The priority level provides a way to indicate the relative importance of the request compared to other requests. For example, emergency vehicles or delayed buses could be given a higher priority level.

If the ETA changes before the priority is cancelled, or you want to change the priority level, you can send another request message with type set to ‘update’. The vehicle type cannot be changed.

When you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.

If the request is accepted, the priority can either be activated immediately, or if another priority is currently active, it can be queued for later activation.

If the priority cannot be accepted the request is rejected. Cooldown is a specific type of rejection, which means that s similar request has just completed, and some time needs to pass before a similar request can be activated.

When a request is queued, it is expected to become activated later, but in case too long passes without activation, the controller is expected to time out the request.

Once a priority is activated, you’re excepted to cancel it as soon as there’s no need for it anymore, typically when the vehicle has passed the intersection. You cancel a request by sending a request passing the existing request id setting the type to ‘cancel’.

If a request is never cancelled, the controller is expected to remove the priority at some point, but until then the priority might block requests in other direction which is why you should always cancel a priority when it’s not needed anymore.

Table 2.87 M0022

Name

Type

Min

Max

Enum

Comment

requestId

string

A string that uniquely identifies the request on the controller

signalGroupId

string

(Optional) ID of a signal group component

inputId

integer

0

255

(Optional) ID of an input, using the same numbering scheme as M0006

connectionId

integer

0

255

(Optional) ID of a connection, connecting an ingoing and an outgoing lane

approachId

integer

0

16

(Optional) ID of an intersection approach

laneInId

integer

0

255

(Optional) ID of an ingoing lane

laneOutId

integer

0

255

(Optional) ID of an outgoing lane

priorityId

integer

0

255

(Optional) ID of a priority

type

string

-new
-update
-cancel

new: New priority request
update: Update to existing priority request
cancel: Cancel an existing priority

level

integer

0

14

0: Lowest, 14: Highest

eta

integer

0

255

(Optional) Estimated time of arrival to the intersection, in seconds

vehicleType

string

-pedestrian
-bicycle
-motorcycle
-car
-bus
-lightTruck
-heavyTruck
-tram
-emergency
-safetyCar
-specialTransport
-other

(Optional) Vehicle type
pedestrian: Pedestrians
bicycle: Bicycles
motorcycle: Motorcycles
car: Passenger vehicle
bus: Bus used for public transport
lightTruck: Light truck
heavyTruck: Heavy truck
tram: Trams used for Public transport
emergency: Police, fire or ambulance
safetyCar: For e.g. escort vehicles
specialTransport: For e.g. heavy load
other: Other type of vehicle

2.5.22. M0023

Set timeout for dynamic bands

Switch to a designated time plan if this timeout is reached due to lost connection with the supervisor. Disable by setting timeout to ‘0’. Used in conjunction with dynamic bands, M0014 Requires security code 2.

Table 2.88 M0023

Name

Type

Min

Max

Comment

status

integer

0

65535

Timeout, in minutes

securityCode

string

Security code 2

2.5.23. M0103

Set security code

Change the security code to use when sending commands Security codes are used as an extra layer of security in many commands. They need to match between the supervision system and the traffic light controller in order for the commands to be executed.

Table 2.89 M0103

Name

Type

Enum

Comment

status

string

-Level1
-Level2

Level1: Change security code 1
Level2: Change security code 2

oldSecurityCode

string

Previous security code

newSecurityCode

string

New security code

2.5.24. M0104

Set clock

Can be used to manually set the clock of the traffic light controller if automatic time synchronization (NTP or watchdog sync) is not available. For instance, during maintenance work. Note: UTC is used. Requires security code 1

Table 2.90 M0104

Name

Type

Min

Max

Comment

securityCode

string

Security code 1

year

integer

0

9999

Year

month

integer

1

12

Month

day

integer

1

31

Day of month

hour

integer

0

23

Hour

minute

integer

0

59

Minute

second

integer

0

59

Second