rsmp_schema 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yaml +1 -1
  3. data/.tool-versions +1 -1
  4. data/Gemfile.lock +24 -22
  5. data/examples/validate.rb +1 -1
  6. data/lib/rsmp_schema/version.rb +1 -1
  7. data/rsmp_schema.gemspec +5 -5
  8. data/schemas/core/3.2/alarm_suspended_resumed.json +2 -2
  9. data/schemas/tlc/1.2/statuses/S0006.json +3 -3
  10. data/schemas/tlc/1.2/sxl.yaml +4 -4
  11. data/schemas/tlc/1.2.1/alarms/A0001.json +3 -0
  12. data/schemas/tlc/1.2.1/alarms/A0002.json +3 -0
  13. data/schemas/tlc/1.2.1/alarms/A0003.json +3 -0
  14. data/schemas/tlc/1.2.1/alarms/A0004.json +3 -0
  15. data/schemas/tlc/1.2.1/alarms/A0005.json +3 -0
  16. data/schemas/tlc/1.2.1/alarms/A0006.json +3 -0
  17. data/schemas/tlc/1.2.1/alarms/A0007.json +59 -0
  18. data/schemas/tlc/1.2.1/alarms/A0008.json +61 -0
  19. data/schemas/tlc/1.2.1/alarms/A0009.json +3 -0
  20. data/schemas/tlc/1.2.1/alarms/A0010.json +3 -0
  21. data/schemas/tlc/1.2.1/alarms/A0101.json +3 -0
  22. data/schemas/tlc/1.2.1/alarms/A0201.json +60 -0
  23. data/schemas/tlc/1.2.1/alarms/A0202.json +60 -0
  24. data/schemas/tlc/1.2.1/alarms/A0301.json +132 -0
  25. data/schemas/tlc/1.2.1/alarms/A0302.json +158 -0
  26. data/schemas/tlc/1.2.1/alarms/A0303.json +132 -0
  27. data/schemas/tlc/1.2.1/alarms/A0304.json +158 -0
  28. data/schemas/tlc/1.2.1/alarms/alarms.json +286 -0
  29. data/schemas/tlc/1.2.1/commands/M0001.json +138 -0
  30. data/schemas/tlc/1.2.1/commands/M0002.json +112 -0
  31. data/schemas/tlc/1.2.1/commands/M0003.json +112 -0
  32. data/schemas/tlc/1.2.1/commands/M0004.json +85 -0
  33. data/schemas/tlc/1.2.1/commands/M0005.json +112 -0
  34. data/schemas/tlc/1.2.1/commands/M0006.json +112 -0
  35. data/schemas/tlc/1.2.1/commands/M0007.json +85 -0
  36. data/schemas/tlc/1.2.1/commands/M0008.json +112 -0
  37. data/schemas/tlc/1.2.1/commands/M0010.json +85 -0
  38. data/schemas/tlc/1.2.1/commands/M0011.json +85 -0
  39. data/schemas/tlc/1.2.1/commands/M0012.json +79 -0
  40. data/schemas/tlc/1.2.1/commands/M0013.json +79 -0
  41. data/schemas/tlc/1.2.1/commands/M0014.json +106 -0
  42. data/schemas/tlc/1.2.1/commands/M0015.json +112 -0
  43. data/schemas/tlc/1.2.1/commands/M0016.json +79 -0
  44. data/schemas/tlc/1.2.1/commands/M0017.json +79 -0
  45. data/schemas/tlc/1.2.1/commands/M0018.json +112 -0
  46. data/schemas/tlc/1.2.1/commands/M0019.json +139 -0
  47. data/schemas/tlc/1.2.1/commands/M0020.json +139 -0
  48. data/schemas/tlc/1.2.1/commands/M0021.json +79 -0
  49. data/schemas/tlc/1.2.1/commands/M0022.json +355 -0
  50. data/schemas/tlc/1.2.1/commands/M0023.json +85 -0
  51. data/schemas/tlc/1.2.1/commands/M0103.json +103 -0
  52. data/schemas/tlc/1.2.1/commands/M0104.json +220 -0
  53. data/schemas/tlc/1.2.1/commands/command_requests.json +7 -0
  54. data/schemas/tlc/1.2.1/commands/command_responses.json +7 -0
  55. data/schemas/tlc/1.2.1/commands/commands.json +398 -0
  56. data/schemas/tlc/1.2.1/rsmp.json +73 -0
  57. data/schemas/tlc/1.2.1/statuses/S0001.json +137 -0
  58. data/schemas/tlc/1.2.1/statuses/S0002.json +55 -0
  59. data/schemas/tlc/1.2.1/statuses/S0003.json +55 -0
  60. data/schemas/tlc/1.2.1/statuses/S0004.json +55 -0
  61. data/schemas/tlc/1.2.1/statuses/S0005.json +112 -0
  62. data/schemas/tlc/1.2.1/statuses/S0006.json +88 -0
  63. data/schemas/tlc/1.2.1/statuses/S0007.json +116 -0
  64. data/schemas/tlc/1.2.1/statuses/S0008.json +116 -0
  65. data/schemas/tlc/1.2.1/statuses/S0009.json +116 -0
  66. data/schemas/tlc/1.2.1/statuses/S0010.json +116 -0
  67. data/schemas/tlc/1.2.1/statuses/S0011.json +116 -0
  68. data/schemas/tlc/1.2.1/statuses/S0012.json +116 -0
  69. data/schemas/tlc/1.2.1/statuses/S0013.json +88 -0
  70. data/schemas/tlc/1.2.1/statuses/S0014.json +90 -0
  71. data/schemas/tlc/1.2.1/statuses/S0015.json +90 -0
  72. data/schemas/tlc/1.2.1/statuses/S0016.json +61 -0
  73. data/schemas/tlc/1.2.1/statuses/S0017.json +61 -0
  74. data/schemas/tlc/1.2.1/statuses/S0018.json +61 -0
  75. data/schemas/tlc/1.2.1/statuses/S0019.json +61 -0
  76. data/schemas/tlc/1.2.1/statuses/S0020.json +88 -0
  77. data/schemas/tlc/1.2.1/statuses/S0021.json +56 -0
  78. data/schemas/tlc/1.2.1/statuses/S0022.json +55 -0
  79. data/schemas/tlc/1.2.1/statuses/S0023.json +56 -0
  80. data/schemas/tlc/1.2.1/statuses/S0024.json +56 -0
  81. data/schemas/tlc/1.2.1/statuses/S0025.json +250 -0
  82. data/schemas/tlc/1.2.1/statuses/S0026.json +55 -0
  83. data/schemas/tlc/1.2.1/statuses/S0027.json +55 -0
  84. data/schemas/tlc/1.2.1/statuses/S0028.json +55 -0
  85. data/schemas/tlc/1.2.1/statuses/S0029.json +55 -0
  86. data/schemas/tlc/1.2.1/statuses/S0030.json +55 -0
  87. data/schemas/tlc/1.2.1/statuses/S0031.json +55 -0
  88. data/schemas/tlc/1.2.1/statuses/S0032.json +116 -0
  89. data/schemas/tlc/1.2.1/statuses/S0033.json +114 -0
  90. data/schemas/tlc/1.2.1/statuses/S0034.json +61 -0
  91. data/schemas/tlc/1.2.1/statuses/S0035.json +74 -0
  92. data/schemas/tlc/1.2.1/statuses/S0091.json +65 -0
  93. data/schemas/tlc/1.2.1/statuses/S0092.json +65 -0
  94. data/schemas/tlc/1.2.1/statuses/S0095.json +55 -0
  95. data/schemas/tlc/1.2.1/statuses/S0096.json +196 -0
  96. data/schemas/tlc/1.2.1/statuses/S0097.json +82 -0
  97. data/schemas/tlc/1.2.1/statuses/S0098.json +103 -0
  98. data/schemas/tlc/1.2.1/statuses/S0201.json +88 -0
  99. data/schemas/tlc/1.2.1/statuses/S0202.json +88 -0
  100. data/schemas/tlc/1.2.1/statuses/S0203.json +88 -0
  101. data/schemas/tlc/1.2.1/statuses/S0204.json +304 -0
  102. data/schemas/tlc/1.2.1/statuses/S0205.json +88 -0
  103. data/schemas/tlc/1.2.1/statuses/S0206.json +88 -0
  104. data/schemas/tlc/1.2.1/statuses/S0207.json +88 -0
  105. data/schemas/tlc/1.2.1/statuses/S0208.json +304 -0
  106. data/schemas/tlc/1.2.1/statuses/statuses.json +786 -0
  107. data/schemas/tlc/1.2.1/sxl.yaml +2109 -0
  108. metadata +110 -13
@@ -0,0 +1,2109 @@
1
+ ---
2
+ meta:
3
+ name: tlc
4
+ description: Traffic Light Controllers
5
+ version: 1.2.1
6
+ objects:
7
+ Traffic Light Controller:
8
+ description:
9
+ aggregated_status:
10
+ 1:
11
+ title: Local mode
12
+ description: Traffic Light Controller is in local mode. NTS has no control.
13
+ 2:
14
+ title: No Communications
15
+ 3:
16
+ title: High Priority Fault
17
+ description: Traffic Light Controller is in fail safe mode; e.g. yellow flash
18
+ or dark mode
19
+ 4:
20
+ title: Medium Priority Fault
21
+ description: |-
22
+ Traffic Light Controller has a medium priority fault, but not in fail safe mode.
23
+ E.g. several lamp faults or detector fault
24
+ 5:
25
+ title: Low Priority Fault
26
+ description: Traffic Light Controller has a low priority fault. E.g. Detector
27
+ fault
28
+ 6:
29
+ title: Connected / Normal - In Use
30
+ 7:
31
+ title: Connected / Normal - Idle
32
+ description: |-
33
+ Traffic Light Controller dark according to configuration.
34
+ NOTE! When dark according to configuration the controller is considered to be in use
35
+ 8:
36
+ title: Not Connected
37
+ functional_position: null
38
+ functional_state: null
39
+ alarms:
40
+ A0001:
41
+ description: |-
42
+ Serious hardware error.
43
+ 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.
44
+ priority: 2
45
+ category: D
46
+ A0002:
47
+ description: |-
48
+ Less serious hardware error.
49
+ Is a "minor fault" defined according to 3.11 in EN12675.
50
+ priority: 3
51
+ category: D
52
+ A0003:
53
+ description: |-
54
+ Serious configuration error.
55
+ 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.
56
+ priority: 2
57
+ category: D
58
+ A0004:
59
+ description: |-
60
+ Less serious configuration error.
61
+ Is a "minor fault" defined according to 3.11 in EN12675.
62
+ priority: 3
63
+ category: D
64
+ A0005:
65
+ description: |-
66
+ Synchronisation error (coordination).
67
+ Is a "minor fault" defined according to 3.11 in EN12675.
68
+ priority: 3
69
+ category: D
70
+ A0006:
71
+ description: |-
72
+ Safety error
73
+ 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.
74
+ priority: 2
75
+ category: D
76
+ A0007:
77
+ description: |-
78
+ Communication error.
79
+ Used for communication errors with the central system. Includes NTP connection loss if the TLC is configured to use NTP.
80
+ Is a "minor fault" defined according to 3.11 in EN12675.
81
+ priority: 3
82
+ category: D
83
+ arguments:
84
+ protocol:
85
+ type: string
86
+ description: Type of communication error, e.g. NTP or RSMP
87
+ values:
88
+ rsmp: RSMP
89
+ ntp: NTP
90
+ A0009:
91
+ description: |-
92
+ Other error.
93
+ Used for other errors not covered by any other alarm type.
94
+ Is a "minor fault" defined according to 3.11 in EN12675.
95
+ priority: 3
96
+ category: D
97
+ A0010:
98
+ description: |-
99
+ Door open.
100
+ Used for open door (room or cabinet).
101
+ priority: 3
102
+ category: D
103
+ statuses:
104
+ S0001:
105
+ description: |-
106
+ Signal group status.
107
+ Provides the status of each signal group, including basic information such as green, yellow and red. But also detailed technical information.
108
+ Can be used to draw a live signal group diagram as well provide diagnostic information about the performance of the controller.
109
+ arguments:
110
+ signalgroupstatus:
111
+ type: string
112
+ description: |-
113
+ Signal group status as text field.
114
+ Each character represent the state of the signal group in consecutive order,
115
+ where the leftmost character starts with signal group 1.
116
+ Signal group status is described in detail in the corresponding section.
117
+ - : Signal group is undefined/does not exist
118
+ pattern: "^[a-hA-G0-9N-P]*$"
119
+ cyclecounter:
120
+ type: integer
121
+ description: |-
122
+ Cycle counter.
123
+ Used for handling of coordination between TLC’s.
124
+ Is counted from 0 until it reaches the cycle time (See S0028).
125
+
126
+ c = (b + o) mod t
127
+
128
+ where c = cycle counter,
129
+ b = base cycle counter,
130
+ o = offset,
131
+ t = cycle time,
132
+ mod = modulo
133
+
134
+ See the coordination section for more information.
135
+ min: 0
136
+ max: 999
137
+ basecyclecounter:
138
+ type: integer
139
+ description: |-
140
+ Base cycle counter.
141
+ Used for handling of coordination between TLC’s.
142
+ Synchronized between all TLC’s in an active coordination.
143
+ See the coordination section for more information.
144
+ min: 0
145
+ max: 999
146
+ stage:
147
+ type: integer
148
+ description: Current stage (isolated)
149
+ min: 0
150
+ max: 999
151
+ S0002:
152
+ description: |-
153
+ Detector logic status.
154
+ Provides the status of all detector logics of the controller.
155
+ 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.
156
+ arguments:
157
+ detectorlogicstatus:
158
+ type: string
159
+ description: |-
160
+ Detector logic status as text field.
161
+ Each character represent the state of the detector logic in consecutive order,
162
+ where the leftmost character starts with detector logic 1.
163
+ 0 : Detector logic is not active
164
+ 1 : Detector logic is active
165
+ - : Detector logic is undefined/does not exist
166
+ S0003:
167
+ description: |-
168
+ Input status.
169
+ Input (1-255) of the controllers general purpose I/O.
170
+ Input is used where the traffic light controller must react to external control. It could be external detectors, bus priority, and much more.
171
+ arguments:
172
+ inputstatus:
173
+ type: string
174
+ description: |-
175
+ Input status as text field.
176
+ Each character represent the state of the input in consecutive order,
177
+ where the leftmost character starts with input 1.
178
+ 0 : Input is not active
179
+ 1 : Input is active
180
+ - : Input is undefined/does not exist
181
+ S0004:
182
+ description: |-
183
+ Output status.
184
+ Output (1-255) of the controllers general purpose I/O.
185
+ 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.
186
+ arguments:
187
+ outputstatus:
188
+ type: string
189
+ description: |-
190
+ Output status as text field.
191
+ Each character represent the state of the output status in consecutive order,
192
+ where the leftmost character starts with output 1.
193
+ 0 : Output is not active
194
+ 1 : Output is active
195
+ - : Output is undefined/does not exist
196
+ S0005:
197
+ description: |-
198
+ Traffic Light Controller starting.
199
+ The traffic signal is starting, e.g. it is in startup mode and has not begun working normally yet.
200
+ During startup mode the traffic controller shows dark, red, yellow flash or using the predetermined start cycle (minimum times).
201
+ arguments:
202
+ status:
203
+ type: boolean
204
+ description: |-
205
+ False: Controller is not in start up mode
206
+ True: Controller is currently in start up mode
207
+ statusByIntersection:
208
+ description: |-
209
+ False: Intersection is not in start up mode
210
+ True: Intersection is currently in start up mode
211
+ type: array
212
+ items:
213
+ intersection:
214
+ type: integer
215
+ description: Intersection id
216
+ min: 0
217
+ max: 255
218
+ startup:
219
+ type: boolean
220
+ description: Start up mode
221
+ S0006:
222
+ description: |-
223
+ Emergency route.
224
+ The status is active during emergency prioritization.
225
+ Used in situations where full priority is given in the emergency vehicle program
226
+ or for other types of priority in some cases.
227
+
228
+ If no emergency route is active, status should be set to False, and emergencystage to zero.
229
+
230
+ Deprecated, use S0035 instead.
231
+ arguments:
232
+ status:
233
+ type: boolean
234
+ deprecated: true
235
+ description: |-
236
+ False: Emergency route inactive
237
+ True: Emergency route active
238
+ emergencystage:
239
+ type: integer
240
+ deprecated: true
241
+ description: Number of emergency route (set to zero if no route is active)
242
+ min: 0
243
+ max: 255
244
+ S0007:
245
+ description: |-
246
+ Controller switched on.
247
+ The controller is active and is not in dark mode.
248
+ Used to determine if the there is output to the signal heads, e.g. it shows red, green or yellow to the vehicles.
249
+ During maintenance work the controller might be using dark mode (no output to the signal heads).
250
+ 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).
251
+ arguments:
252
+ intersection:
253
+ type: integer_list
254
+ description: |-
255
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
256
+ Use “0” for all intersections of the TLC.
257
+ min: 0
258
+ max: 255
259
+ status:
260
+ type: boolean_list
261
+ description: |-
262
+ False: Traffic Light Controller in dark mode
263
+ True: Traffic Light Controller not in dark mode
264
+ source:
265
+ description: Source of the status change
266
+ type: string_list
267
+ values:
268
+ operator_panel: Operator panel
269
+ calendar_clock: Calendar/clock
270
+ control_block: Control block
271
+ forced: Forced due to external command e.g. supervisor
272
+ startup: Set after startup mode
273
+ other: Other reason
274
+ S0008:
275
+ description: |-
276
+ Manual control.
277
+ Traffic control deactivated in controller.
278
+ Signal timings is controlled manually by service personnel using the operating panel of the controller.
279
+ 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).
280
+ arguments:
281
+ intersection:
282
+ type: integer_list
283
+ description: |-
284
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
285
+ Use “0” for all intersections of the TLC.
286
+ min: 0
287
+ max: 255
288
+ status:
289
+ type: boolean_list
290
+ description: |-
291
+ False: Manual control inactive
292
+ True: Manual control active
293
+ source:
294
+ type: string_list
295
+ description: Source of the status change
296
+ values:
297
+ operator_panel: Operator panel
298
+ calendar_clock: Calendar/clock
299
+ control_block: Control block
300
+ forced: Forced due to external command e.g. supervisor
301
+ startup: Set after startup mode
302
+ other: Other reason
303
+ S0009:
304
+ description: |-
305
+ Fixed time control.
306
+ Traffic actuated control deactivated and a pre-timed control is used.
307
+ Usually only used in case normal detectors can't be used, e.g. during maintenance work.
308
+ 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).
309
+ arguments:
310
+ intersection:
311
+ type: integer_list
312
+ description: |-
313
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
314
+ Use “0” for all intersections of the TLC.
315
+ min: 0
316
+ max: 255
317
+ status:
318
+ type: boolean_list
319
+ description: |-
320
+ False: Fixed time control inactive
321
+ True: Fixed time control active
322
+ source:
323
+ type: string_list
324
+ description: Source of the status change
325
+ values:
326
+ operator_panel: Operator panel
327
+ calendar_clock: Calendar/clock
328
+ control_block: Control block
329
+ forced: Forced due to external command e.g. supervisor
330
+ startup: Set after startup mode
331
+ other: Other reason
332
+ S0010:
333
+ description: |-
334
+ Isolated control.
335
+ 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).
336
+ Used to determine if the controller is operating independently or operating with other controllers (coordination).
337
+ 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).
338
+ arguments:
339
+ intersection:
340
+ type: integer_list
341
+ description: |-
342
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
343
+ Use “0” for all intersections of the TLC.
344
+ min: 0
345
+ max: 255
346
+ status:
347
+ type: boolean_list
348
+ description: |-
349
+ False: Isolated control disabled
350
+ True: Isolated control enabled (Vehicle actuated control or Fixed time control)
351
+ source:
352
+ type: string_list
353
+ description: Source of the status change
354
+ values:
355
+ operator_panel: Operator panel
356
+ calendar_clock: Calendar/clock
357
+ control_block: Control block
358
+ forced: Forced due to external command e.g. supervisor
359
+ startup: Set after startup mode
360
+ other: Other reason
361
+ S0011:
362
+ description: |-
363
+ Yellow flash.
364
+ The controller shows yellow flash.
365
+ Yellow flash may be used during a serious fault (depending on configuration) or maintenance work. It can also be manually set using M0001.
366
+ Some countries may use yellow flash as an normal operating mode, and not necessarily during fault.
367
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "True,False"
368
+ arguments:
369
+ intersection:
370
+ type: integer_list
371
+ description: |-
372
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
373
+ Use “0” for all intersections of the TLC.
374
+ min: 0
375
+ max: 255
376
+ status:
377
+ type: boolean_list
378
+ description: |-
379
+ False: Yellow flash disabled
380
+ True: Yellow flash enabled
381
+ source:
382
+ type: string_list
383
+ description: Source of the status change
384
+ values:
385
+ operator_panel: Operator panel
386
+ calendar_clock: Calendar/clock
387
+ control_block: Control block
388
+ forced: Forced due to external command e.g. supervisor
389
+ startup: Set after startup mode
390
+ other: Other reason
391
+ S0012:
392
+ description: |-
393
+ All red.
394
+ The controller show all red.
395
+ All red can be manually set using the controllers operating panel during maintenance work.
396
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "True,False"
397
+ arguments:
398
+ intersection:
399
+ type: integer_list
400
+ description: |-
401
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
402
+ Use “0” for all intersections of the TLC.
403
+ min: 0
404
+ max: 255
405
+ status:
406
+ type: boolean_list
407
+ description: |-
408
+ False: All red disabled
409
+ True: All red enabled
410
+ source:
411
+ type: string_list
412
+ description: Source of the status change
413
+ values:
414
+ operator_panel: Operator panel
415
+ calendar_clock: Calendar/clock
416
+ control_block: Control block
417
+ forced: Forced due to external command e.g. supervisor
418
+ startup: Set after startup mode
419
+ other: Other reason
420
+ S0013:
421
+ description: |-
422
+ Police key
423
+ The controller is forced to dark mode or yellow flash.
424
+ The "police key" is a external control switch present in some controllers that manually switches the controller to either dark mode or yellow flash.
425
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "0,1"
426
+ arguments:
427
+ intersection:
428
+ type: integer_list
429
+ description: |-
430
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
431
+ Use “0” for all intersections of the TLC.
432
+ min: 0
433
+ max: 255
434
+ status:
435
+ type: integer_list
436
+ values:
437
+ 0: disabled
438
+ 1: dark mode
439
+ 2: yellow flash
440
+ 3: all red
441
+ S0014:
442
+ description: |-
443
+ Current time plan.
444
+ The current time plan (signal program) used in the controller. There may be 1-255 predefined time plans.
445
+ 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.
446
+ arguments:
447
+ status:
448
+ type: integer
449
+ description: Current time plan
450
+ min: 1
451
+ max: 255
452
+ source:
453
+ type: string
454
+ description: Source of the status change
455
+ values:
456
+ operator_panel: Operator panel
457
+ calendar_clock: Calendar/clock
458
+ control_block: Control block
459
+ forced: Forced due to external command e.g. supervisor
460
+ startup: Set after startup mode
461
+ other: Other reason
462
+ S0015:
463
+ description: |-
464
+ Current traffic situation.
465
+ The current traffic situation used in the controller.
466
+ 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).
467
+ 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.
468
+ arguments:
469
+ status:
470
+ type: integer
471
+ description: Current traffic situation
472
+ min: 1
473
+ max: 255
474
+ source:
475
+ type: string
476
+ description: Source of the status change
477
+ values:
478
+ operator_panel: Operator panel
479
+ calendar_clock: Calendar/clock
480
+ control_block: Control block
481
+ forced: Forced due to external command e.g. supervisor
482
+ startup: Set after startup mode
483
+ other: Other reason
484
+ S0016:
485
+ description: |-
486
+ Number of detector logics.
487
+ Can be used by the management system to check the number of detector logics configured in the controller.
488
+ arguments:
489
+ number:
490
+ type: integer
491
+ description: Number of detector logics
492
+ min: 1
493
+ max: 65025
494
+ S0017:
495
+ description: |-
496
+ Number of signal groups.
497
+ Can be used for the management system to check the number of signal groups configured in the controller.
498
+ arguments:
499
+ number:
500
+ type: integer
501
+ description: Number of signal groups
502
+ min: 1
503
+ max: 65025
504
+ S0019:
505
+ description: |-
506
+ Number of traffic situations.
507
+ Can be used for the management system to check the number of traffic situations configured in the controller.
508
+ arguments:
509
+ number:
510
+ type: integer
511
+ description: Number of traffic situations
512
+ min: 1
513
+ max: 65025
514
+ S0020:
515
+ description: |-
516
+ Control mode.
517
+ Can be used for the management system to check the current control mode (startup, normal, standby, failure, test).
518
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "startup,control"
519
+ arguments:
520
+ intersection:
521
+ type: integer_list
522
+ description: |-
523
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
524
+ Use “0” for all intersections of the TLC.
525
+ min: 0
526
+ max: 255
527
+ controlmode:
528
+ type: string_list
529
+ values:
530
+ startup: The controller starts up, performs a power on self test and performs each :term:`start-up interval`
531
+ control: Normal 3-light control
532
+ standby: The controller is in dark or yellow flash mode (either according to programming or manually set)
533
+ failure: The controller has a “major fault” defined according to 3.8 i EN12675. The controller is in dark or yellow flash mode
534
+ test: Mode used for various tests, e.g. signal lights
535
+ S0021:
536
+ description: |-
537
+ Manually set detector logic.
538
+ Provides status of detector logic (1-255) regarding if they are either forced to true or false.
539
+ Can be used to connect RSMP compatible detection equipment to the traffic light controller. Can also be used for prioritization.
540
+ arguments:
541
+ detectorlogics:
542
+ type: string
543
+ description: |-
544
+ Manually set detector logic as text field.
545
+ Each character represent the state in consecutive order,
546
+ where the leftmost character starts with detector logic 1.
547
+ 0 : Detector logic not manually set
548
+ 1 : Detector logic manually set
549
+ - : Detector logic is undefined/does not exist
550
+ pattern: "^[01]*$"
551
+ S0022:
552
+ description: |-
553
+ List of time plans.
554
+ 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.
555
+ Can be used for the management system to check the number of time plans configured in the controller.
556
+ arguments:
557
+ status:
558
+ type: string
559
+ description: Comma separated list of configured time plans. E.g. "1,2,3,5"
560
+ S0023:
561
+ description: |-
562
+ Dynamic bands.
563
+ Provides a list of all defined dynamic bands. Dynamic bands moves start of signal groups in the cycle and changes the signal timings.
564
+ A typical usage of dynamic bands is scenario based control where changing of signal timings is used for optimal traffic flow.
565
+ arguments:
566
+ status:
567
+ type: string
568
+ description: |-
569
+ Dynamic bands.
570
+ Each dynamic band are written as pp-dd-ee where:
571
+ pp=Time plan
572
+ dd=Dynamic band number (from 1-10)
573
+ ee=Extension in seconds in this band
574
+
575
+ Each dynamic band is separated with a comma.
576
+
577
+ E.g.
578
+ pp-dd-ee,pp-dd-ee
579
+ pattern: "(^$)|(^(?<item>(\\d{1,2})\\-\\d{1,2}-\\d{1,2})(,\\g<item>)*$)"
580
+ S0024:
581
+ description: |-
582
+ Offset time.
583
+ Offset time is used to define an offset between intersections in coordinated control. It is based on the expected travel time between intersections.
584
+ Can be used by the management system to check to fine tune the coordination for optimal traffic flow.
585
+ arguments:
586
+ status:
587
+ type: string
588
+ description: |-
589
+ Offset table
590
+ Each offset time is written as p-t where:
591
+ p=time plan number (from 1 to 255)
592
+ t=offset time in seconds (from 0 to 255)
593
+
594
+ Each offset time is separated with a comma
595
+
596
+ E.g.
597
+ 1-0,2-13-3-7
598
+ pattern: "^(\\d{1,3}\\-\\d{1,3})(?:,(\\d{1,3}\\-\\d{1,3}))*$"
599
+ S0026:
600
+ description: |-
601
+ Week time table.
602
+ Week time table for signal programs (time plan) to use for each day during a week.
603
+ The week time table determine which predefined signal timings (time plan) to use during the week for optimal traffic flow.
604
+ arguments:
605
+ status:
606
+ type: string
607
+ description: |-
608
+ Week time table. Defines time table to use for each week day
609
+ Each day is written as d-t where:
610
+ d=day of week
611
+ t=time table nr
612
+
613
+ Day of week legend:
614
+ 0=Monday
615
+ 1=Tuesday
616
+ 2=Wednesday
617
+ 3=Thursday
618
+ 4=Friday
619
+ 5=Saturday
620
+ 6=Sunday
621
+
622
+ Each segment is separated with a comma
623
+ E.g.
624
+ d-t,d-t
625
+ S0027:
626
+ description: |-
627
+ Time tables.
628
+ Time of day for when to switch signal program (time plan).
629
+ The signal timings (time plan) to use during time of day for optimal traffic flow.
630
+ arguments:
631
+ status:
632
+ type: string
633
+ description: |-
634
+ Time Table. Defines time tables.
635
+ Each time definition is written as t-o-h-m where:
636
+ t=time table nr (1-12)
637
+ o=function
638
+ h=hour - switching time
639
+ m=minute - switching minute
640
+
641
+ Function legend:
642
+ 0=no plan is selected by time table
643
+ 1=set plan 1
644
+
645
+ 16= set plan 16
646
+
647
+ hour and minute is using local time (not UTC)
648
+
649
+ Each time definition is separated with a comma
650
+
651
+ E.g.
652
+ t-o-h-m,t-o-h-m
653
+ S0028:
654
+ description: |-
655
+ Cycle time.
656
+ 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.
657
+ Changing the cycle time can be used as part of scenario based control.
658
+ arguments:
659
+ status:
660
+ type: string
661
+ description: |-
662
+ Cycle time table
663
+ Each cycle time is written as pp-tt where:
664
+ pp=time plan
665
+ tt=cycle time in seconds
666
+
667
+ Each cycle time is separated with a comma
668
+
669
+ E.g.
670
+ pp-tt,pp-tt
671
+ S0029:
672
+ description: |-
673
+ Forced input status.
674
+ 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.
675
+ Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.
676
+ arguments:
677
+ status:
678
+ type: string
679
+ description: |-
680
+ Forced input status as text field.
681
+ Each character represent the state in consecutive order,
682
+ where the leftmost character starts with input 1.
683
+ 0 : Input not forced
684
+ 1 : Input forced
685
+ - : Input undefined/does not exist
686
+ S0030:
687
+ description: |-
688
+ Forced output status.
689
+ 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.
690
+ Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.
691
+ arguments:
692
+ status:
693
+ type: string
694
+ description: |-
695
+ Forced output status as text field.
696
+ Each character represent the state in consecutive order,
697
+ where the leftmost character starts with output 1.
698
+ 0 : Output not forced
699
+ 1 : Output forced
700
+ - : Output undefined/does not exist
701
+ S0031:
702
+ description: |-
703
+ Trigger level sensitivity for loop detector.
704
+ 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.
705
+ Can be used to make sure that the detectors detect traffic as intended.
706
+ arguments:
707
+ status:
708
+ type: string
709
+ description: |-
710
+ Loop detector trigger level sensitivity is written as dd-ss where:
711
+ dd=loop detector number
712
+ ss=sensitivity value
713
+ Each loop detector is separated with a comma. E.g.dd-ss,dd-ss.
714
+ S0032:
715
+ description: |-
716
+ Coordinated control
717
+ This status is used when coordination between traffic light controllers is active. Coordination is described in detail in the corresponding section
718
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “centralized,off”
719
+ arguments:
720
+ intersection:
721
+ type: integer_list
722
+ description: |-
723
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
724
+ Use “0” for all intersections of the TLC.
725
+ min: 0
726
+ max: 255
727
+ status:
728
+ type: string_list
729
+ values:
730
+ local: Local coordination
731
+ centralized: Coordination with synchronized clock
732
+ 'off': Coordination not active
733
+ source:
734
+ description: Source of the status change
735
+ type: string_list
736
+ values:
737
+ operator_panel: Operator panel
738
+ calendar_clock: Calendar/clock
739
+ control_block: Control block
740
+ forced: Forced due to external command e.g. supervisor
741
+ startup: Set after startup mode
742
+ other: Other reason
743
+ S0033:
744
+ description: |-
745
+ Signal Priority Status
746
+ 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.
747
+ A list of priorities is returned, referred to by their request ids. The same request id can appear only once.
748
+ 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.
749
+ 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.
750
+ To understand how this status relates to ETSI/J2735, please see the [wiki](https://github.com/rsmp-nordic/rsmp_sxl_traffic_lights/wiki/Signal-priority-and-ETSI-J2735).
751
+ All priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used.
752
+ 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.
753
+ A request always starts in the ‘received’ state. The following table shows the possible state transitions:
754
+
755
+ State | Possible next states
756
+ ---------- | -------------------------------------
757
+ received | queued, activated, rejected, cooldown
758
+ queued | activated, timeout
759
+ activated | completed, stale
760
+ completed |
761
+ timeout |
762
+ rejected |
763
+ cooldown |
764
+ stale |
765
+ arguments:
766
+ status:
767
+ description: JSON array of priority status items
768
+ type: array
769
+ items:
770
+ r:
771
+ type: string
772
+ description: ID of the priority request
773
+ t:
774
+ type: timestamp
775
+ description: Timestamp, indicating when the priority last changed state.
776
+ s:
777
+ type: string
778
+ description: |-
779
+ Current status of the priority request
780
+ values:
781
+ received: A new priority request was received but has not yet been processed
782
+ queued: The priority request has been queued for later activation
783
+ activated: The priority was activated
784
+ completed: The priority was cancelled as expected
785
+ timeout: The priority has been queued for too long
786
+ rejected: The priority request cannot be granted
787
+ cooldown: A similar priority request means the priority request cannot be activated now
788
+ stale: The priority has been active too long without cancellation, and was therefore removed
789
+ e:
790
+ type: integer
791
+ description: |-
792
+ Estimated green extension provided by the priority, in seconds
793
+ Only used when state is ‘completed’.
794
+ optional: true
795
+ min: 0
796
+ max: 255
797
+ d:
798
+ type: integer
799
+ description: |-
800
+ Estimated red reduction provided by the priority, in seconds
801
+ Only used when state is ‘completed’.
802
+ optional: true
803
+ min: 0
804
+ max: 255
805
+ S0034:
806
+ description: |-
807
+ Timeout for dynamic bands.
808
+ Time until a designated time plan is entered due to lost connection with the supervisor.
809
+ Disabled if set to '0'.
810
+ Used in conjunction with dynamic bands, M0014
811
+ arguments:
812
+ status:
813
+ type: integer
814
+ description: Timeout, in minutes
815
+ min: 0
816
+ max: 65535
817
+ S0035:
818
+ description: |-
819
+ Emergency route.
820
+ The status is active during emergency prioritization.
821
+ Used in situations where full priority is given in the emergency vehicle program
822
+ or for other types of priority in some cases.
823
+
824
+ This status is similar to S0006, but supports multiple routes
825
+ arguments:
826
+ emergencyroutes:
827
+ description: Active emergency routes
828
+ type: array
829
+ items:
830
+ id:
831
+ type: integer
832
+ description: ID of active emergency route
833
+ min: 1
834
+ max: 255
835
+ S0091:
836
+ description: |-
837
+ Operator logged in/out OP-panel.
838
+ Provides information if maintenance personnel is currently working on site.
839
+ arguments:
840
+ user:
841
+ type: integer
842
+ values:
843
+ 0: Nobody logged in
844
+ 1: Operator logged in at level 1 (read only)
845
+ 2: Operator logged in at level 2 (read/write)
846
+ S0092:
847
+ description: |-
848
+ Operator logged in/out web-interface.
849
+ Provides information if maintenance personnel is currently working with the controller.
850
+ arguments:
851
+ user:
852
+ type: integer
853
+ values:
854
+ 0: Nobody logged in
855
+ 1: Operator logged in at level 1 (read only)
856
+ 2: Operator logged in at level 2 (read/write)
857
+ S0095:
858
+ description: |-
859
+ Version of Traffic Light Controller.
860
+ Provides diagnostic version information.
861
+ arguments:
862
+ status:
863
+ type: string
864
+ description: Manufacturer, product name and version of traffic light controller
865
+ S0096:
866
+ description: |-
867
+ Current date and time.
868
+ Note: UTC is used.
869
+ Provides diagnostic information about the current date and time set in the controller.
870
+ arguments:
871
+ year:
872
+ type: integer
873
+ description: Year
874
+ min: 0
875
+ max: 9999
876
+ month:
877
+ type: integer
878
+ description: Month
879
+ min: 1
880
+ max: 12
881
+ day:
882
+ type: integer
883
+ description: Day of month
884
+ min: 1
885
+ max: 31
886
+ hour:
887
+ type: integer
888
+ description: Hour
889
+ min: 0
890
+ max: 23
891
+ minute:
892
+ type: integer
893
+ description: Minute
894
+ min: 0
895
+ max: 59
896
+ second:
897
+ type: integer
898
+ description: Second
899
+ min: 0
900
+ max: 59
901
+ S0097:
902
+ description: |-
903
+ Checksum of traffic parameters.
904
+ Can be used to check if any traffic parameter has been changed.
905
+ 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.
906
+ arguments:
907
+ checksum:
908
+ type: string
909
+ description: |-
910
+ Checksum of the traffic parameters
911
+ Uses SHA-2 as hashing algorithm
912
+ Includes
913
+ - all signal programs, including program versions
914
+ - signal group settings
915
+ - time plans
916
+ - safety matrix
917
+ - intergreen times
918
+ - detector settings
919
+
920
+ It should NOT include:
921
+ - network settings
922
+ - log files
923
+ - software
924
+ - other device settings that are not part of the signal program
925
+
926
+ Note:
927
+ - The checksum should be calculated using the same data as used in S0098
928
+ - Data Downloaded with S0098 and hashed with SHA-2 should match this value.
929
+ timestamp:
930
+ type: timestamp
931
+ description: Time stamp of the checksum
932
+ S0098:
933
+ description: |-
934
+ Configuration of traffic parameters.
935
+ Can be used to download all traffic parameters from the controller.
936
+ 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.
937
+ arguments:
938
+ config:
939
+ type: base64
940
+ description: |-
941
+ Traffic parameters.
942
+ Includes
943
+ - all signal programs, including program versions
944
+ - signal group settings
945
+ - time plans
946
+ - safety matrix
947
+ - intergreen times
948
+ - detector setting
949
+
950
+ It should NOT include:
951
+ - network settings
952
+ - log files
953
+ - software
954
+ - other device settings that are not part of the signal program
955
+
956
+ Note:
957
+ - There is no way to upload this binary file to the TLC using RSMP
958
+ - The format of the binary file is not specified and is not expected to be compatible between suppliers
959
+ timestamp:
960
+ type: timestamp
961
+ description: Time stamp of the config
962
+ version:
963
+ type: string
964
+ description: |-
965
+ Version information of the configuration. Contains basic information such as controller id, changes to config and other information.
966
+ The format is not specified in detail.
967
+ S0205:
968
+ description: |-
969
+ Traffic Counting: Number of vehicles.
970
+ This status was introduced to improve performance in case traffic counting is done on all all detectors.
971
+ arguments:
972
+ start:
973
+ type: timestamp
974
+ description: Time stamp for start of measuring
975
+ vehicles:
976
+ type: integer_list
977
+ description: |-
978
+ Number of vehicles.
979
+ - Value expressed as an integer with a range of 0-65535.
980
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
981
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
982
+ min: -1
983
+ max: 65535
984
+ S0206:
985
+ description: |-
986
+ Traffic Counting: Vehicle speed
987
+ This status was introduced to improve performance in case traffic counting is done on all all detectors.
988
+ arguments:
989
+ start:
990
+ type: timestamp
991
+ description: Time stamp for start of measuring
992
+ speed:
993
+ type: integer_list
994
+ description: |-
995
+ Average speed in km/h (integer).
996
+ - Value expressed as an integer with a range of 0-65535.
997
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
998
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
999
+ min: -1
1000
+ max: 65535
1001
+ S0207:
1002
+ description: |-
1003
+ Traffic Counting: Occupancy.
1004
+ This status was introduced to improve performance in case traffic counting is done on all all detectors.
1005
+ arguments:
1006
+ start:
1007
+ type: timestamp
1008
+ description: Time stamp for start of measuring
1009
+ occupancy:
1010
+ type: integer_list
1011
+ description: |-
1012
+ Occupancy in percent (%) (0-100)
1013
+ - Value expressed as an integer with a range of 0-100.
1014
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1015
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1016
+ min: -1
1017
+ max: 100
1018
+ S0208:
1019
+ description: |-
1020
+ Traffic Counting: Number of vehicles of given classification.
1021
+ This status was introduced to improve performance in case traffic counting is done on all all detectors.
1022
+ arguments:
1023
+ start:
1024
+ type: timestamp
1025
+ description: Time stamp for start of measuring
1026
+ P:
1027
+ type: integer_list
1028
+ description: |-
1029
+ Number of cars.
1030
+ - Value expressed as an integer with a range of 0-65535.
1031
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1032
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1033
+ min: -1
1034
+ max: 65535
1035
+ PS:
1036
+ type: integer_list
1037
+ description: |-
1038
+ Number of cars with trailers.
1039
+ - Value expressed as an integer with a range of 0-65535.
1040
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1041
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1042
+ min: -1
1043
+ max: 65535
1044
+ L:
1045
+ type: integer_list
1046
+ description: |-
1047
+ Number of trucks.
1048
+ - Value expressed as an integer with a range of 0-65535.
1049
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1050
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1051
+ min: -1
1052
+ max: 65535
1053
+ LS:
1054
+ type: integer_list
1055
+ description: |-
1056
+ Number of trucks with trailers.
1057
+ - Value expressed as an integer with a range of 0-65535.
1058
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1059
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1060
+ min: -1
1061
+ max: 65535
1062
+ B:
1063
+ type: integer_list
1064
+ description: |-
1065
+ Number of buses.
1066
+ - Value expressed as an integer with a range of 0-65535.
1067
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1068
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1069
+ min: -1
1070
+ max: 65535
1071
+ SP:
1072
+ type: integer_list
1073
+ description: |-
1074
+ Number of trams.
1075
+ - Value expressed as an integer with a range of 0-65535.
1076
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1077
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1078
+ min: -1
1079
+ max: 65535
1080
+ MC:
1081
+ type: integer_list
1082
+ description: |-
1083
+ Number of motor cycles.
1084
+ - Value expressed as an integer with a range of 0-65535.
1085
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1086
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1087
+ min: -1
1088
+ max: 65535
1089
+ C:
1090
+ type: integer_list
1091
+ description: |-
1092
+ Number of bicycles.
1093
+ - Value expressed as an integer with a range of 0-65535.
1094
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1095
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1096
+ min: -1
1097
+ max: 65535
1098
+ F:
1099
+ type: integer_list
1100
+ description: |-
1101
+ Number of pedestrians.
1102
+ - Value expressed as an integer with a range of 0-65535.
1103
+ - Contains data from all detector logics. Each detector logic is separated with a comma.
1104
+ - The value is set to “-1” if no data could be measured (e.g. detector fault)
1105
+ min: -1
1106
+ max: 65535
1107
+ commands:
1108
+ M0001:
1109
+ description: |-
1110
+ Sets functional position.
1111
+ Sets the controller to yellow flash, dark mode or normal control.
1112
+ Requires security code 2.
1113
+ arguments:
1114
+ status:
1115
+ type: string
1116
+ description: Set operating mode
1117
+ values:
1118
+ NormalControl: Normal Control
1119
+ YellowFlash: Enables yellow flash
1120
+ Dark: Enables dark mode
1121
+ securityCode:
1122
+ type: string
1123
+ description: Security code 2
1124
+ timeout:
1125
+ type: integer
1126
+ description: |-
1127
+ Time in minutes until controller automatically reverts to previous functional position.
1128
+ 0=no automatic return
1129
+ min: 0
1130
+ max: 1440
1131
+ intersection:
1132
+ type: integer
1133
+ description: |-
1134
+ Intersection number.
1135
+ Command only applies to specified intersection. Other intersections remains in their respective operating mode(s).
1136
+ 0: All intersections
1137
+ min: 0
1138
+ max: 255
1139
+ command: setValue
1140
+ M0002:
1141
+ description: |-
1142
+ Sets current time plan.
1143
+ Change of traffic program of the traffic light controller.
1144
+ Typical usages is scenario based control where change of program is used to change signal timings etc.
1145
+ This command changes the signal timings for optimal traffic flow.
1146
+ Requires security code 2
1147
+ arguments:
1148
+ status:
1149
+ type: boolean
1150
+ description: |-
1151
+ False: Controller uses time plan according to programming
1152
+ True: Controller uses time plan according to command
1153
+ securityCode:
1154
+ type: string
1155
+ description: Security code 2
1156
+ timeplan:
1157
+ type: integer
1158
+ description: designation of time plan
1159
+ min: 1
1160
+ max: 255
1161
+ command: setPlan
1162
+ M0003:
1163
+ description: |-
1164
+ Sets traffic situation the controller uses.
1165
+ 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).
1166
+ 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.
1167
+ Requires security code 2
1168
+ arguments:
1169
+ status:
1170
+ type: boolean
1171
+ description: |-
1172
+ False: Controller uses traffic situation according to own programming
1173
+ True: Controller uses traffic situation according to command
1174
+ securityCode:
1175
+ type: string
1176
+ description: Security code 2
1177
+ traficsituation:
1178
+ type: integer
1179
+ description: designation of traficsituation
1180
+ min: 1
1181
+ max: 255
1182
+ command: setTrafficSituation
1183
+ M0004:
1184
+ description: |-
1185
+ Restarts Traffic Light Controller.
1186
+ Used in the event of serious faults in the device where a restart is considered to be able to remedy a problem.
1187
+ Requires security code 2
1188
+ arguments:
1189
+ status:
1190
+ type: boolean
1191
+ deprecated: true
1192
+ description: 'True: Restart controller'
1193
+ securityCode:
1194
+ type: string
1195
+ deprecated: true
1196
+ description: Security code 2
1197
+ command: setRestart
1198
+ M0005:
1199
+ description: |-
1200
+ Activate emergency route.
1201
+ 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.
1202
+ Should be used in situations where full priority is given in the emergency vehicle program.
1203
+ Requires security code 2.
1204
+ arguments:
1205
+ status:
1206
+ type: boolean
1207
+ description: |-
1208
+ False: Deactivate emergency route
1209
+ True: Activate emergency route
1210
+ securityCode:
1211
+ type: string
1212
+ description: Security code 2
1213
+ emergencyroute:
1214
+ type: integer
1215
+ description: Number of emergency route
1216
+ min: 1
1217
+ max: 255
1218
+ command: setEmergency
1219
+ M0006:
1220
+ description: |-
1221
+ Activate input.
1222
+ Set given input (1-255) of the controllers general purpose I/O to either true or false.
1223
+ The function can provide an input to the traffic light controller on which a predefined action can be taken.
1224
+ Can be used for all types of input where the traffic light controller must react to external control.
1225
+ Typical usages are bus priority, coordination between traffic controllers, external control systems, and much more.
1226
+ Requires security code 2.
1227
+ arguments:
1228
+ status:
1229
+ type: boolean
1230
+ description: |-
1231
+ False: Deactivate input
1232
+ True: Activate input
1233
+ securityCode:
1234
+ type: string
1235
+ description: Security code 2
1236
+ input:
1237
+ type: integer
1238
+ description: Number of Input
1239
+ min: 1
1240
+ max: 255
1241
+ command: setInput
1242
+ M0007:
1243
+ description: |-
1244
+ Activate fixed time control.
1245
+ Deactivates the traffic actuated control using detectors and activates pre-timed control.
1246
+ Can be used in case normal detectors can't be used, e.g. during maintenance work.
1247
+ Requires security code 2.
1248
+ arguments:
1249
+ status:
1250
+ type: boolean
1251
+ description: |-
1252
+ False: Deactivate fixed time control
1253
+ True: Activate fixed time control
1254
+ securityCode:
1255
+ type: string
1256
+ description: Security code 2
1257
+ command: setFixedTime
1258
+ M0012:
1259
+ description: |-
1260
+ Request start or stop of a series of signal groups.
1261
+ Starts or stops several signal groups.
1262
+ This command was introduced due to coordination requirements needing to set many signal groups to green and red at the same time and M0010 and M0012 being to slow to send a message for each signal group individually.
1263
+ Although this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.
1264
+ Intended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers.
1265
+ Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1266
+ May also include purposes for adaptive control where a UTC system or a local traffic light controller takes over the phase control (stage control).
1267
+ Requires security code 2.
1268
+ reserved: true
1269
+ arguments:
1270
+ status:
1271
+ type: string
1272
+ description: |-
1273
+ Orders signal groups to green or red. Sets a block of 16 signal groups at a time. Can be repeated to set several blocks of 16 signal groups. Values are separated with comma. Blocks are separated with semicolon. Since semicolon breaks the SXL csv-format, colon is used in example below.
1274
+
1275
+ 1=Order signal group to green
1276
+ 0=Order signal group to red
1277
+
1278
+ Format: [Offset],[Bits to set],[Bits to unset]:…
1279
+
1280
+ Offset sets where the 16 inputs starts from followed by two 16 bit values telling which bit to set and unset in binary format, i.e. first bit have value 1 and last bit have value 32768.
1281
+
1282
+ Example 1:
1283
+ "5, 4134, 65" sets input 6,7,10,17 = on and 5,11 = off
1284
+ (Input starts from no. 5 and bit 1,2,5,12 = 1 and bit 0,6 = 0)
1285
+
1286
+ Example 2:
1287
+ "22, 1, 4" sets input 22 = on and 24 = off
1288
+ (Input starts from no. 22 and bit 0 = 1 and bit 2 = 0)
1289
+
1290
+ And both these examples could be sent in the same message as:
1291
+ "5,4143,65:22,1,4"
1292
+
1293
+ Such a message would order signal group 6,7,10,17,22 to green and signal group 5,11,24 to red
1294
+ securityCode:
1295
+ type: string
1296
+ description: Security code 2
1297
+ command: setStart
1298
+ M0013:
1299
+ description: |-
1300
+ Activate a series of inputs
1301
+
1302
+ 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.
1303
+
1304
+ Requires security code 2.
1305
+
1306
+ 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];…
1307
+
1308
+ - ‘Offset’ defines where the 16 inputs starts from
1309
+ - ‘Bits to set’ defines which bit(s) to set. ‘0’ if unused
1310
+ - ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused
1311
+
1312
+ Example 1:
1313
+ “3,4134,65” sets input 4,5,8,15 and unsets 3,9
1314
+ - Input starts from no. 5
1315
+ - “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
1316
+ - “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
1317
+
1318
+ Example 2:
1319
+ “12,1,4” sets input 12 and unsets 14
1320
+ - Input starts from no. 12
1321
+ - “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
1322
+ - “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
1323
+
1324
+ And both these examples could be sent in the same message as: “3,4143,65;12,1,4”
1325
+
1326
+ Such a message would set input 4,5,8,12,15 and unset input 3,9,14
1327
+
1328
+ Example 3:
1329
+ “0,1,2” sets input 0 and unsets 1
1330
+ - Input starts from 0
1331
+ - “1” is 1 in binary, which is bit 0
1332
+ - “2” is 10 in binary, which is bit 1
1333
+ arguments:
1334
+ status:
1335
+ type: string
1336
+ description: |-
1337
+ 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.
1338
+ Format: [Offset];[Bits to set];[Bits to unset];…
1339
+ securityCode:
1340
+ type: string
1341
+ description: Security code 2
1342
+ command: setInput
1343
+ M0014:
1344
+ description: |-
1345
+ Set dynamic bands.
1346
+ Can be used to change between predefined signal timings. Moves the start of signal groups in the cycle.
1347
+ 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.
1348
+ Requires security code 2
1349
+ arguments:
1350
+ plan:
1351
+ type: integer
1352
+ description: Plan to be changed
1353
+ min: 0
1354
+ max: 255
1355
+ status:
1356
+ type: string
1357
+ description: |-
1358
+ Dynamic bands.
1359
+ Each dynamic band are written as dd-ee where:
1360
+ dd=Dynamic band number (from 1-10)
1361
+ ee=Extension in seconds in this band
1362
+
1363
+ Each dynamic band is separated with a comma.
1364
+
1365
+ E.g.
1366
+ dd-ee,dd-ee
1367
+ securityCode:
1368
+ type: string
1369
+ description: Security code 2
1370
+ command: setCommands
1371
+ M0015:
1372
+ description: |-
1373
+ Set Offset time.
1374
+ Offset time is used to define an offset between intersections in coordinated control. It is based on the expected travel time between intersections.
1375
+ This command can be used to fine tune the coordination for optimal traffic flow.
1376
+ Requires security code 2.
1377
+ arguments:
1378
+ status:
1379
+ type: integer
1380
+ description: Set offset time in seconds
1381
+ min: 0
1382
+ max: 255
1383
+ plan:
1384
+ type: integer
1385
+ description: Time plan nr
1386
+ min: 0
1387
+ max: 255
1388
+ securityCode:
1389
+ type: string
1390
+ description: Security code 2
1391
+ command: setOffset
1392
+ M0016:
1393
+ description: |-
1394
+ Set week time table.
1395
+ Set which time table for signal programs to use for each day during a week.
1396
+ This command changes the signal timings during the week for optimal traffic flow.
1397
+ Requires security code 2.
1398
+ arguments:
1399
+ status:
1400
+ type: string
1401
+ description: |-
1402
+ Week time table. Defines time table to use for each week day
1403
+ Each segment is written as d-t where:
1404
+ d=day of week
1405
+ t=time table nr
1406
+
1407
+ Day of week legend:
1408
+ 0=Monday
1409
+ 1=Tuesday
1410
+ 2=Wednesday
1411
+ 3=Thursday
1412
+ 4=Friday
1413
+ 5=Saturday
1414
+ 6=Sunday
1415
+
1416
+ Each segment is separated with a comma
1417
+
1418
+ E.g.
1419
+ d-t,d-t
1420
+ securityCode:
1421
+ type: string
1422
+ description: Security code 2
1423
+ command: setWeekTable
1424
+ M0017:
1425
+ description: |-
1426
+ Set time tables.
1427
+ Set time of day for when to automatically switch signal program (time plan).
1428
+ This command changes the signal timings according to time of day for optimal traffic flow.
1429
+ Requires security code 2.
1430
+ arguments:
1431
+ status:
1432
+ type: string
1433
+ description: |-
1434
+ Time Table. Defines time tables.
1435
+ Each time definition is written as t-o-h-m where:
1436
+ t=time table nr (1-12)
1437
+ o=function
1438
+ h=hour - switching time
1439
+ m=minute - switching minute
1440
+
1441
+ Function legend:
1442
+ 0=no plan is selected by time table
1443
+ 1=set plan 1
1444
+
1445
+ 16= set plan 16
1446
+
1447
+ hour and minute is using local time (not UTC)
1448
+
1449
+ Each time definition is separated with a comma.
1450
+
1451
+ E.g.
1452
+ t-o-h-m,t-o-h-m
1453
+ securityCode:
1454
+ type: string
1455
+ description: Security code 2
1456
+ command: setTimeTable
1457
+ M0018:
1458
+ description: |-
1459
+ Set Cycle time.
1460
+ 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.
1461
+ 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.
1462
+ Requires security code 2.
1463
+ arguments:
1464
+ status:
1465
+ type: integer
1466
+ description: Set cycle time in seconds
1467
+ min: 1
1468
+ max: 255
1469
+ plan:
1470
+ type: integer
1471
+ description: Time plan nr
1472
+ min: 0
1473
+ max: 255
1474
+ securityCode:
1475
+ type: string
1476
+ description: Security code 2
1477
+ command: setCycleTime
1478
+ M0019:
1479
+ description: |-
1480
+ Force input.
1481
+ 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.
1482
+ Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.
1483
+ Requires security code 2.
1484
+ arguments:
1485
+ status:
1486
+ type: boolean
1487
+ description: |-
1488
+ False: Release input
1489
+ True: Force input
1490
+ securityCode:
1491
+ type: string
1492
+ description: Security code 2
1493
+ input:
1494
+ type: integer
1495
+ description: Number of Input
1496
+ min: 1
1497
+ max: 255
1498
+ inputValue:
1499
+ type: boolean
1500
+ description: |-
1501
+ False: input forced to False
1502
+ True: input forced to True
1503
+ command: setInput
1504
+ M0020:
1505
+ description: |-
1506
+ Force output.
1507
+ 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.
1508
+ Can be used for bus priority, coordination between traffic controllers, external control systems, and much more.
1509
+ Requires security code 2.
1510
+ arguments:
1511
+ status:
1512
+ type: boolean
1513
+ description: |-
1514
+ False: Force output
1515
+ True: Release output
1516
+ securityCode:
1517
+ type: string
1518
+ description: Security code 2
1519
+ output:
1520
+ type: integer
1521
+ description: Number of Output
1522
+ min: 1
1523
+ max: 255
1524
+ outputValue:
1525
+ type: boolean
1526
+ description: |-
1527
+ False: output forced to False
1528
+ True: output forced to True
1529
+ command: setOutput
1530
+ M0021:
1531
+ description: |-
1532
+ Set trigger level sensitivity for loop detector.
1533
+ 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.
1534
+ This command provides the ability to fine tune loop detectors to make sure they detect traffic as intended.
1535
+ Requires security code 2
1536
+ arguments:
1537
+ status:
1538
+ type: string
1539
+ description: |-
1540
+ Loop detector trigger level sensitivity is written as dd-ss where:
1541
+ dd=loop detector number
1542
+ ss=sensitivity value
1543
+ securityCode:
1544
+ type: string
1545
+ description: Security code 2
1546
+ command: setLevel
1547
+ M0022:
1548
+ description: |-
1549
+ Request Signal Priority
1550
+
1551
+ Useful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.
1552
+
1553
+ 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.
1554
+
1555
+ To understand how this command relates to ETSI/J2735, please see the [wiki](https://github.com/rsmp-nordic/rsmp_sxl_traffic_lights/wiki/Signal-priority-and-ETSI-J2735).
1556
+
1557
+ 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.
1558
+
1559
+ 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:
1560
+
1561
+ - 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.
1562
+ - 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.
1563
+ - Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.
1564
+ - Reference an intersection approach by setting ‘approachId’.
1565
+ - Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.
1566
+
1567
+ Referencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:
1568
+
1569
+ - signalGroupId
1570
+ - inputId
1571
+ - connectionId
1572
+ - approachId
1573
+ - laneInId
1574
+ - laneOutId
1575
+
1576
+ 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.
1577
+
1578
+ 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.
1579
+
1580
+ 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.
1581
+
1582
+ Like ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.
1583
+
1584
+ 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.
1585
+
1586
+ 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.
1587
+
1588
+ When you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.
1589
+
1590
+ 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.
1591
+
1592
+ 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.
1593
+
1594
+ 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.
1595
+
1596
+ 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’.
1597
+
1598
+ 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.
1599
+ arguments:
1600
+ requestId:
1601
+ type: string
1602
+ description: A string that uniquely identifies the request on the controller
1603
+ signalGroupId:
1604
+ type: string
1605
+ optional: true
1606
+ description: ID of a signal group component.
1607
+ inputId:
1608
+ type: integer
1609
+ optional: true
1610
+ description: ID of an input, using the same numbering scheme as M0006
1611
+ min: 0
1612
+ max: 255
1613
+ connectionId:
1614
+ type: integer
1615
+ optional: true
1616
+ description: ID of a connection, connecting an ingoing and an outgoing lane
1617
+ min: 0
1618
+ max: 255
1619
+ approachId:
1620
+ type: integer
1621
+ optional: true
1622
+ description: ID of an intersection approach
1623
+ min: 0
1624
+ max: 16
1625
+ laneInId:
1626
+ type: integer
1627
+ optional: true
1628
+ description: ID of an ingoing lane
1629
+ min: 0
1630
+ max: 255
1631
+ laneOutId:
1632
+ type: integer
1633
+ optional: true
1634
+ description: ID of an outgoing lane
1635
+ min: 0
1636
+ max: 255
1637
+ priorityId:
1638
+ type: integer
1639
+ optional: true
1640
+ description: ID of a priority
1641
+ min: 0
1642
+ max: 255
1643
+ type:
1644
+ type: string
1645
+ values:
1646
+ new: New priority request
1647
+ update: Update to existing priority request
1648
+ cancel: Cancel an existing priority
1649
+ level:
1650
+ type: integer
1651
+ description: |-
1652
+ 0: Lowest, 14: Highest
1653
+ min: 0
1654
+ max: 14
1655
+ eta:
1656
+ type: integer
1657
+ optional: true
1658
+ description: Estimated time of arrival to the intersection, in seconds
1659
+ min: 0
1660
+ max: 255
1661
+ vehicleType:
1662
+ type: string
1663
+ optional: true
1664
+ description: Vehicle type
1665
+ values:
1666
+ pedestrian: Pedestrians
1667
+ bicycle: Bicycles
1668
+ motorcycle: Motorcycles
1669
+ car: Passenger vehicle
1670
+ bus: Bus used for public transport
1671
+ lightTruck: Light truck
1672
+ heavyTruck: Heavy truck
1673
+ tram: Trams used for Public transport
1674
+ emergency: Police, fire or ambulance
1675
+ safetyCar: For e.g. escort vehicles
1676
+ specialTransport: For e.g. heavy load
1677
+ other: Other type of vehicle
1678
+ command: requestPriority
1679
+ M0023:
1680
+ description: |-
1681
+ Set timeout for dynamic bands
1682
+ Switch to a designated time plan if this timeout is reached due to lost connection with the supervisor.
1683
+ Disable by setting timeout to '0'.
1684
+ Used in conjunction with dynamic bands, M0014
1685
+ Requires security code 2.
1686
+ arguments:
1687
+ status:
1688
+ type: integer
1689
+ min: 0
1690
+ max: 65535
1691
+ description: Timeout, in minutes
1692
+ securityCode:
1693
+ type: string
1694
+ description: Security code 2
1695
+ command: setTimeout
1696
+ M0103:
1697
+ description: |-
1698
+ Set security code.
1699
+ Change the security code to use when sending commands
1700
+ 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.
1701
+ arguments:
1702
+ status:
1703
+ type: string
1704
+ values:
1705
+ Level1: Change security code 1
1706
+ Level2: Change security code 2
1707
+ oldSecurityCode:
1708
+ type: string
1709
+ description: Previous security code
1710
+ newSecurityCode:
1711
+ type: string
1712
+ description: New security code
1713
+ command: setSecurityCode
1714
+ M0104:
1715
+ description: |-
1716
+ Set clock.
1717
+ 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.
1718
+ Note: UTC is used.
1719
+ Requires security code 1
1720
+ arguments:
1721
+ securityCode:
1722
+ type: string
1723
+ description: Security code 1
1724
+ year:
1725
+ type: integer
1726
+ description: Year
1727
+ min: 0
1728
+ max: 9999
1729
+ month:
1730
+ type: integer
1731
+ description: Month
1732
+ min: 1
1733
+ max: 12
1734
+ day:
1735
+ type: integer
1736
+ description: Day of month
1737
+ min: 1
1738
+ max: 31
1739
+ hour:
1740
+ type: integer
1741
+ description: Hour
1742
+ min: 0
1743
+ max: 23
1744
+ minute:
1745
+ type: integer
1746
+ description: Minute
1747
+ min: 0
1748
+ max: 59
1749
+ second:
1750
+ type: integer
1751
+ description: Second
1752
+ min: 0
1753
+ max: 59
1754
+ command: setDate
1755
+ Signal group:
1756
+ description:
1757
+ alarms:
1758
+ A0008:
1759
+ description: |-
1760
+ Dead lock error.
1761
+ Used for dead lock errors.
1762
+ 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.
1763
+ 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.
1764
+ priority: 2
1765
+ category: D
1766
+ arguments:
1767
+ timeplan:
1768
+ type: integer
1769
+ description: Current time plan
1770
+ min: 1
1771
+ max: 255
1772
+ A0101:
1773
+ description: |-
1774
+ Pushbutton error.
1775
+ Used for push buttons.
1776
+ priority: 3
1777
+ category: D
1778
+ A0201:
1779
+ description: |-
1780
+ Serious lamp error.
1781
+ Used for lamp errors.
1782
+ 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.
1783
+ priority: 2
1784
+ category: D
1785
+ arguments:
1786
+ color:
1787
+ type: string
1788
+ description: Color of lamp
1789
+ values:
1790
+ red: red
1791
+ yellow: yellow
1792
+ green: green
1793
+ A0202:
1794
+ description: |-
1795
+ Less serious lamp error.
1796
+ Used for lamp errors.
1797
+ Is a "minor fault" defined according to 3.11 in EN12675.
1798
+ priority: 3
1799
+ category: D
1800
+ arguments:
1801
+ color:
1802
+ type: string
1803
+ description: Color of lamp
1804
+ values:
1805
+ red: red
1806
+ yellow: yellow
1807
+ green: green
1808
+ statuses:
1809
+ S0025:
1810
+ description: |-
1811
+ Time-of-Green / Time-of-Red.
1812
+ Provides predicted signal timings of green and red for each signal group. Max, min and likely time to green and red.
1813
+ arguments:
1814
+ minToGEstimate:
1815
+ type: timestamp
1816
+ description: |-
1817
+ 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.
1818
+ maxToGEstimate:
1819
+ type: timestamp
1820
+ description: |-
1821
+ 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.
1822
+ likelyToGEstimate:
1823
+ type: timestamp
1824
+ description: |-
1825
+ 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.
1826
+ ToGConfidence:
1827
+ type: integer
1828
+ description: Confidence of the likelyToGEstimate. 0-100%
1829
+ min: 0
1830
+ max: 100
1831
+ minToREstimate:
1832
+ type: timestamp
1833
+ description: |-
1834
+ 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.
1835
+ maxToREstimate:
1836
+ type: timestamp
1837
+ description: |-
1838
+ 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.
1839
+ likelyToREstimate:
1840
+ type: timestamp
1841
+ description: |-
1842
+ 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.
1843
+ ToRConfidence:
1844
+ type: integer
1845
+ description: Confidence of the likelyToREstimate. 0-100%
1846
+ min: 0
1847
+ max: 100
1848
+ commands:
1849
+ M0010:
1850
+ description: |-
1851
+ Start of signal group. Orders a signal group to green.
1852
+ Although this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.
1853
+ Intended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers. Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1854
+ Requires security code 2
1855
+ reserved: true
1856
+ arguments:
1857
+ status:
1858
+ type: boolean
1859
+ description: |-
1860
+ False: No command (default)
1861
+ True: Order a signal group to green
1862
+ securityCode:
1863
+ type: string
1864
+ description: Security code 2
1865
+ command: setStart
1866
+ M0011:
1867
+ description: |-
1868
+ Stop of signal group. Orders a signal group to red.
1869
+ Although this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.
1870
+ Intended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers. Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1871
+ Requires security code 2
1872
+ reserved: true
1873
+ arguments:
1874
+ status:
1875
+ type: boolean
1876
+ description: |-
1877
+ False: No command (default)
1878
+ True: Order a signal group to red
1879
+ securityCode:
1880
+ type: string
1881
+ description: Security code 2
1882
+ command: setStop
1883
+ Detector logic:
1884
+ description:
1885
+ alarms:
1886
+ A0301:
1887
+ description: |-
1888
+ Detector error (hardware).
1889
+ Is a "minor fault" defined according to 3.11 in EN12675.
1890
+ priority: 3
1891
+ category: D
1892
+ arguments:
1893
+ detector:
1894
+ type: string
1895
+ description: Designation of the detector (hardware)
1896
+ type:
1897
+ type: string
1898
+ description: Type of detector
1899
+ values:
1900
+ loop: Inductive detector loop
1901
+ input: External input
1902
+ errormode:
1903
+ type: string
1904
+ description: Detector forced on/off while detector error
1905
+ values: ['on','off'] # on/off must be quoted, otherwise they are converted to true/false
1906
+ manual:
1907
+ type: boolean
1908
+ description: Manually controlled detector logic (True/False)
1909
+ A0302:
1910
+ description: |-
1911
+ Detector error (logic error).
1912
+ For instance; detector continuously on or off during an extended time.
1913
+ Is a "minor fault" defined according to 3.11 in EN12675.
1914
+ priority: 3
1915
+ category: D
1916
+ arguments:
1917
+ detector:
1918
+ type: string
1919
+ description: Designation of the detector (hardware)
1920
+ type:
1921
+ type: string
1922
+ description: Type of detector.
1923
+ values:
1924
+ loop: Inductive detector loop
1925
+ input: External input
1926
+ errormode:
1927
+ type: string
1928
+ description: Detector forced on/off while detector error
1929
+ values: ['on','off'] # on/off must be quoted, otherwise they are converted to true/false
1930
+ manual:
1931
+ type: boolean
1932
+ description: Manually controlled detector logic (True/False)
1933
+ logicerror:
1934
+ type: string
1935
+ description: Type of logic error
1936
+ values:
1937
+ always_off: no detection during predefined max time
1938
+ always_on: detection constantly on during predefined max time
1939
+ intermittent: intermittent logic fault (flutter)
1940
+ A0303:
1941
+ description: |-
1942
+ Serious detector error (hardware).
1943
+ 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.
1944
+ priority: 2
1945
+ category: D
1946
+ arguments:
1947
+ detector:
1948
+ type: string
1949
+ description: Designation of the detector (hardware)
1950
+ type:
1951
+ type: string
1952
+ description: Type of detector.
1953
+ values:
1954
+ loop: Inductive detector loop
1955
+ input: External input
1956
+ errormode:
1957
+ type: string
1958
+ description: Detector forced on/off while detector error
1959
+ values: ['on','off'] # on/off must be quoted, otherwise they are converted to true/false
1960
+ manual:
1961
+ type: boolean
1962
+ description: Manually controlled detector logic (True/False)
1963
+ A0304:
1964
+ description: |-
1965
+ Serious detector error (logic error).
1966
+ For instance; detector continuously on or off during an extended time.
1967
+ 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
1968
+ priority: 2
1969
+ category: D
1970
+ arguments:
1971
+ detector:
1972
+ type: string
1973
+ description: Designation of the detector (hardware)
1974
+ type:
1975
+ type: string
1976
+ description: Type of detector.
1977
+ values:
1978
+ loop: Inductive detector loop
1979
+ input: External input
1980
+ errormode:
1981
+ type: string
1982
+ description: Detector forced on/off while detector error
1983
+ values: ['on','off'] # on/off must be quoted, otherwise they are converted to true/false
1984
+ manual:
1985
+ type: boolean
1986
+ description: Manually controlled detector logic (True/False)
1987
+ logicerror:
1988
+ type: string
1989
+ description: Type of logic error
1990
+ values:
1991
+ always_off: no detection during predefined max time
1992
+ always_on: detection constantly on during predefined max time
1993
+ intermittent: intermittent logic fault (flutter)
1994
+ statuses:
1995
+ S0201:
1996
+ description: |-
1997
+ Traffic Counting: Number of vehicles.
1998
+ Used for Traffic counting.
1999
+ arguments:
2000
+ starttime:
2001
+ type: timestamp
2002
+ description: Time stamp for start of measuring
2003
+ vehicles:
2004
+ type: integer
2005
+ description: Number of vehicles on a given detector logic (since last
2006
+ update)
2007
+ min: 0
2008
+ max: 65535
2009
+ S0202:
2010
+ description: |-
2011
+ Traffic Counting: Vehicle speed.
2012
+ Used for Traffic counting.
2013
+ arguments:
2014
+ starttime:
2015
+ type: timestamp
2016
+ description: Time stamp for start of measuring
2017
+ speed:
2018
+ type: integer
2019
+ description: Average speed in km/h
2020
+ min: 0
2021
+ max: 65535
2022
+ S0203:
2023
+ description: |-
2024
+ Traffic Counting: Occupancy.
2025
+ Used for Traffic counting.
2026
+ arguments:
2027
+ starttime:
2028
+ type: timestamp
2029
+ description: Time stamp for start of measuring
2030
+ occupancy:
2031
+ type: integer
2032
+ description: Occupancy in percent (0-100%)
2033
+ min: 0
2034
+ max: 100
2035
+ S0204:
2036
+ description: |-
2037
+ Traffic Counting: Number of vehicles of given classification.
2038
+ Used for Traffic counting.
2039
+ arguments:
2040
+ starttime:
2041
+ type: timestamp
2042
+ description: Time stamp for start of measuring
2043
+ P:
2044
+ type: integer
2045
+ description: Number of cars
2046
+ min: 0
2047
+ max: 65535
2048
+ PS:
2049
+ type: integer
2050
+ description: Number of cars with trailers
2051
+ min: 0
2052
+ max: 65535
2053
+ L:
2054
+ type: integer
2055
+ description: Number of trucks
2056
+ min: 0
2057
+ max: 65535
2058
+ LS:
2059
+ type: integer
2060
+ description: Number of trucks with trailers
2061
+ min: 0
2062
+ max: 65535
2063
+ B:
2064
+ type: integer
2065
+ description: Number of buses
2066
+ min: 0
2067
+ max: 65535
2068
+ SP:
2069
+ type: integer
2070
+ description: Number of trams
2071
+ min: 0
2072
+ max: 65535
2073
+ MC:
2074
+ type: integer
2075
+ description: Number of motor cycles
2076
+ min: 0
2077
+ max: 65535
2078
+ C:
2079
+ type: integer
2080
+ description: Number of bicycles
2081
+ min: 0
2082
+ max: 65535
2083
+ F:
2084
+ type: integer
2085
+ description: Number of pedestrians
2086
+ min: 0
2087
+ max: 65535
2088
+ commands:
2089
+ M0008:
2090
+ description: |-
2091
+ Sets manual activation of detector logic.
2092
+ Set given detector logic (1-255) to either true or false.
2093
+ Can e.g. be used to connect RSMP compatible detection equipment to the traffic light controller. Can also be used for prioritization.
2094
+ Requires security code 2
2095
+ arguments:
2096
+ status:
2097
+ type: boolean
2098
+ description: |-
2099
+ False: Deactivate manual control of detector logic
2100
+ True: Activate manual control of detector logic
2101
+ securityCode:
2102
+ type: string
2103
+ description: Security code 2
2104
+ mode:
2105
+ type: boolean
2106
+ description: |-
2107
+ False: Deactivate detector logic
2108
+ True: Activate detector logic
2109
+ command: setForceDetectorLogic