rsmp_schema 0.4.5 → 0.5.1

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