rsmp_schema 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/rsmp_schema/convert/export/json_schema.rb +96 -54
  4. data/lib/rsmp_schema/schema.rb +80 -24
  5. data/lib/rsmp_schema/version.rb +1 -1
  6. data/lib/rsmp_schema.rb +2 -0
  7. data/schemas/tlc/1.0.10/sxl.yaml +20 -65
  8. data/schemas/tlc/1.0.13/sxl.yaml +20 -80
  9. data/schemas/tlc/1.0.14/sxl.yaml +20 -80
  10. data/schemas/tlc/1.0.15/sxl.yaml +20 -87
  11. data/schemas/tlc/1.0.7/sxl.yaml +20 -61
  12. data/schemas/tlc/1.0.8/sxl.yaml +20 -65
  13. data/schemas/tlc/1.0.9/sxl.yaml +20 -65
  14. data/schemas/tlc/1.1/alarms/A0303.json +111 -0
  15. data/schemas/tlc/1.1/alarms/A0304.json +137 -0
  16. data/schemas/tlc/1.1/alarms/alarms.json +33 -1
  17. data/schemas/tlc/1.1/commands/M0001.json +2 -2
  18. data/schemas/tlc/1.1/commands/M0005.json +1 -1
  19. data/schemas/tlc/1.1/commands/M0013.json +1 -1
  20. data/schemas/tlc/1.1/commands/M0019.json +1 -1
  21. data/schemas/tlc/1.1/commands/M0022.json +335 -0
  22. data/schemas/tlc/1.1/commands/M0023.json +64 -0
  23. data/schemas/tlc/1.1/commands/commands.json +32 -0
  24. data/schemas/tlc/1.1/statuses/S0001.json +3 -3
  25. data/schemas/tlc/1.1/statuses/S0002.json +1 -1
  26. data/schemas/tlc/1.1/statuses/S0003.json +1 -1
  27. data/schemas/tlc/1.1/statuses/S0004.json +1 -1
  28. data/schemas/tlc/1.1/statuses/S0007.json +1 -1
  29. data/schemas/tlc/1.1/statuses/S0008.json +1 -1
  30. data/schemas/tlc/1.1/statuses/S0009.json +1 -1
  31. data/schemas/tlc/1.1/statuses/S0010.json +1 -1
  32. data/schemas/tlc/1.1/statuses/S0011.json +1 -1
  33. data/schemas/tlc/1.1/statuses/S0012.json +1 -1
  34. data/schemas/tlc/1.1/statuses/S0013.json +2 -2
  35. data/schemas/tlc/1.1/statuses/S0020.json +1 -1
  36. data/schemas/tlc/1.1/statuses/S0032.json +96 -0
  37. data/schemas/tlc/1.1/statuses/S0033.json +93 -0
  38. data/schemas/tlc/1.1/statuses/S0034.json +40 -0
  39. data/schemas/tlc/1.1/statuses/S0205.json +8 -2
  40. data/schemas/tlc/1.1/statuses/S0206.json +8 -2
  41. data/schemas/tlc/1.1/statuses/S0207.json +8 -2
  42. data/schemas/tlc/1.1/statuses/S0208.json +72 -18
  43. data/schemas/tlc/1.1/statuses/statuses.json +48 -0
  44. data/schemas/tlc/1.1/sxl.yaml +596 -241
  45. metadata +9 -2
@@ -34,8 +34,8 @@ objects:
34
34
  NOTE! When dark according to configuration the controller is considered to be in use
35
35
  8:
36
36
  title: Not Connected
37
- functional_position:
38
- functional_state:
37
+ functional_position: not used (set to null)
38
+ functional_state: not used (set to null)
39
39
  alarms:
40
40
  A0001:
41
41
  description: |-
@@ -109,21 +109,44 @@ objects:
109
109
  arguments:
110
110
  signalgroupstatus:
111
111
  type: string
112
- description: Signal group status as text field
113
- range: "[text]"
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
114
117
  pattern: "^[a-hA-G0-9N-P]*$"
115
118
  cyclecounter:
116
119
  type: integer
117
- description: Cycle counter
118
- range: "[0-999]"
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
119
136
  basecyclecounter:
120
137
  type: integer
121
- description: Base cycle counter
122
- range: "[0-999]"
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
123
145
  stage:
124
146
  type: integer
125
147
  description: Current stage (isolated)
126
- range: "[0-999]"
148
+ min: 0
149
+ max: 999
127
150
  S0002:
128
151
  description: |-
129
152
  Detector logic status.
@@ -132,8 +155,12 @@ objects:
132
155
  arguments:
133
156
  detectorlogicstatus:
134
157
  type: string
135
- description: Detector logic status as text field
136
- range: "[text]"
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
137
164
  S0003:
138
165
  description: |-
139
166
  Input status.
@@ -143,11 +170,14 @@ objects:
143
170
  inputstatus:
144
171
  type: string
145
172
  description: Input status as text field
146
- range: "[text]"
147
173
  extendedinputstatus:
148
174
  type: string
149
- description: Extended input status as text field
150
- range: "[text]"
175
+ description: |-
176
+ Extended input status as text field
177
+ Each character represent the state of the detector logic in consecutive order.
178
+ 0 : Detector logic is not active
179
+ 1 : Detector logic is active
180
+ - : Detector logic is undefined/does not exist
151
181
  S0004:
152
182
  description: |-
153
183
  Output status.
@@ -157,11 +187,14 @@ objects:
157
187
  outputstatus:
158
188
  type: string
159
189
  description: Output status as text field
160
- range: "[text]"
161
190
  extendedoutputstatus:
162
191
  type: string
163
- description: Extended output status as text field
164
- range: "[text]"
192
+ description: |-
193
+ Extended output status as text field
194
+ Each character represent the state of the detector logic in consecutive order.
195
+ 0 : Detector logic is not active
196
+ 1 : Detector logic is active
197
+ - : Detector logic is undefined/does not exist
165
198
  S0005:
166
199
  description: |-
167
200
  Traffic Light Controller starting.
@@ -187,7 +220,8 @@ objects:
187
220
  emergencystage:
188
221
  type: integer
189
222
  description: Number of emergency stage
190
- range: "[1-255]"
223
+ min: 1
224
+ max: 255
191
225
  S0007:
192
226
  description: |-
193
227
  Controller switched on.
@@ -196,22 +230,20 @@ objects:
196
230
  During maintenance work the controller might be using dark mode (no output to the signal heads).
197
231
  arguments:
198
232
  intersection:
199
- list: true
200
- type: integer
233
+ type: integer_list
201
234
  description: |-
202
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
203
- Other value: Intersection number
204
- range: "[0-255]"
235
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
236
+ Use “0” for all intersections of the TLC.
237
+ min: 0
238
+ max: 255
205
239
  status:
206
- list: true
207
- type: boolean
240
+ type: boolean_list
208
241
  description: |-
209
242
  False: Traffic Light Controller in dark mode
210
243
  True: Traffic Light Controller not in dark mode
211
244
  source:
212
245
  description: Source of the status change
213
- list: true
214
- type: string
246
+ type: string_list
215
247
  values:
216
248
  operator_panel: Operator panel
217
249
  calendar_clock: Calendar/clock
@@ -226,21 +258,19 @@ objects:
226
258
  Signal timings is controlled manually by service personnel using the operating panel of the controller.
227
259
  arguments:
228
260
  intersection:
229
- list: true
230
- type: integer
261
+ type: integer_list
231
262
  description: |-
232
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
233
- Other value: Intersection number
234
- range: "[0-255]"
263
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
264
+ Use “0” for all intersections of the TLC.
265
+ min: 0
266
+ max: 255
235
267
  status:
236
- list: true
237
- type: boolean
268
+ type: boolean_list
238
269
  description: |-
239
270
  False: Manual control inactive
240
271
  True: Manual control active
241
272
  source:
242
- list: true
243
- type: string
273
+ type: string_list
244
274
  description: Source of the status change
245
275
  values:
246
276
  operator_panel: Operator panel
@@ -256,21 +286,19 @@ objects:
256
286
  Usually only used in case normal detectors can't be used, e.g. during maintenance work.
257
287
  arguments:
258
288
  intersection:
259
- list: true
260
- type: integer
289
+ type: integer_list
261
290
  description: |-
262
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
263
- Other value: Intersection number
264
- range: "[0-255]"
291
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
292
+ Use “0” for all intersections of the TLC.
293
+ min: 0
294
+ max: 255
265
295
  status:
266
- list: true
267
- type: boolean
296
+ type: boolean_list
268
297
  description: |-
269
298
  False: Fixed time control inactive
270
299
  True: Fixed time control active
271
300
  source:
272
- list: true
273
- type: string
301
+ type: string_list
274
302
  description: Source of the status change
275
303
  values:
276
304
  operator_panel: Operator panel
@@ -286,21 +314,19 @@ objects:
286
314
  Used to determine if the controller is operating independently or operating with other controllers (coordination).
287
315
  arguments:
288
316
  intersection:
289
- list: true
290
- type: integer
317
+ type: integer_list
291
318
  description: |-
292
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
293
- Other value: Intersection number
294
- range: "[0-255]"
319
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
320
+ Use “0” for all intersections of the TLC.
321
+ min: 0
322
+ max: 255
295
323
  status:
296
- list: true
297
- type: boolean
324
+ type: boolean_list
298
325
  description: |-
299
326
  False: Isolated control disabled
300
327
  True: Isolated control enabled (Vehicle actuated control or Fixed time control)
301
328
  source:
302
- list: true
303
- type: string
329
+ type: string_list
304
330
  description: Source of the status change
305
331
  values:
306
332
  operator_panel: Operator panel
@@ -316,21 +342,19 @@ objects:
316
342
  Yellow flash may be used during a serious fault (depending on configuration) or maintenance work. It can also be manually set using M0001.
317
343
  arguments:
318
344
  intersection:
319
- list: true
320
- type: integer
345
+ type: integer_list
321
346
  description: |-
322
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
323
- Other value: Intersection number
324
- range: "[0-255]"
347
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
348
+ Use “0” for all intersections of the TLC.
349
+ min: 0
350
+ max: 255
325
351
  status:
326
- list: true
327
- type: boolean
352
+ type: boolean_list
328
353
  description: |-
329
354
  False: Yellow flash disabled
330
355
  True: Yellow flash enabled
331
356
  source:
332
- list: true
333
- type: string
357
+ type: string_list
334
358
  description: Source of the status change
335
359
  values:
336
360
  operator_panel: Operator panel
@@ -346,21 +370,19 @@ objects:
346
370
  All red can be manually set using the controllers operating panel during maintenance work.
347
371
  arguments:
348
372
  intersection:
349
- list: true
350
- type: integer
373
+ type: integer_list
351
374
  description: |-
352
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
353
- Other value: Intersection number
354
- range: "[0-255]"
375
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
376
+ Use “0” for all intersections of the TLC.
377
+ min: 0
378
+ max: 255
355
379
  status:
356
- list: true
357
- type: boolean
380
+ type: boolean_list
358
381
  description: |-
359
382
  False: All red disabled
360
383
  True: All red enabled
361
384
  source:
362
- list: true
363
- type: string
385
+ type: string_list
364
386
  description: Source of the status change
365
387
  values:
366
388
  operator_panel: Operator panel
@@ -376,19 +398,19 @@ objects:
376
398
  The "police key" is a external control switch present in some controllers that manually switches the controller to either dark mode or yellow flash.
377
399
  arguments:
378
400
  intersection:
379
- list: true
380
- type: integer
401
+ type: integer_list
381
402
  description: |-
382
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
383
- Other value: Intersection number
384
- range: "[0-255]"
403
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
404
+ Use “0” for all intersections of the TLC.
405
+ min: 0
406
+ max: 255
385
407
  status:
386
- list: true
387
- type: integer
408
+ type: integer_list
388
409
  values:
389
410
  0: disabled
390
411
  1: dark mode
391
412
  2: yellow flash
413
+ 3: all red
392
414
  S0014:
393
415
  description: |-
394
416
  Current time plan.
@@ -398,10 +420,10 @@ objects:
398
420
  status:
399
421
  type: integer
400
422
  description: Current time plan
401
- range: "[1-255]"
423
+ min: 1
424
+ max: 255
402
425
  source:
403
- list: true
404
- type: string
426
+ type: string_list
405
427
  description: Source of the status change
406
428
  values:
407
429
  operator_panel: Operator panel
@@ -420,10 +442,10 @@ objects:
420
442
  status:
421
443
  type: integer
422
444
  description: Current traffic situation
423
- range: "[1-255]"
445
+ min: 1
446
+ max: 255
424
447
  source:
425
- list: true
426
- type: string
448
+ type: string_list
427
449
  description: Source of the status change
428
450
  values:
429
451
  operator_panel: Operator panel
@@ -438,51 +460,54 @@ objects:
438
460
  Can be used by the management system to check the number of detector logics configured in the controller.
439
461
  arguments:
440
462
  number:
441
- type: long
463
+ type: integer
442
464
  description: Number of detector logics
443
- range: "[1-65025]"
465
+ min: 1
466
+ max: 65025
444
467
  S0017:
445
468
  description: |-
446
469
  Number of signal groups.
447
470
  Can be used for the management system to check the number of signal groups configured in the controller.
448
471
  arguments:
449
472
  number:
450
- type: long
473
+ type: integer
451
474
  description: Number of signal groups
452
- range: "[1-65025]"
475
+ min: 1
476
+ max: 65025
453
477
  S0018:
454
478
  description: |-
455
479
  Number of time plans
456
480
  Can be used for the management system to check the number of time plans configured in the controller.
457
481
  arguments:
458
482
  number:
459
- type: long
483
+ type: integer
460
484
  description: Number of time plans (depreciated)
461
- range: "[1-65025]"
485
+ min: 1
486
+ max: 65025
462
487
  S0019:
463
488
  description: |-
464
489
  Number of traffic situations.
465
490
  Can be used for the management system to check the number of traffic situations configured in the controller.
466
491
  arguments:
467
492
  number:
468
- type: long
493
+ type: integer
469
494
  description: Number of traffic situations
470
- range: "[1-65025]"
495
+ min: 1
496
+ max: 65025
471
497
  S0020:
472
498
  description: |-
473
499
  Control mode.
474
500
  Can be used for the management system to check the current control mode (startup, normal, standby, failure, test).
475
501
  arguments:
476
502
  intersection:
477
- list: true
478
- type: integer
503
+ type: integer_list
479
504
  description: |-
480
- 0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
481
- Other value: Intersection number
482
- range: "[0-255]"
505
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
506
+ Use “0” for all intersections of the TLC.
507
+ min: 0
508
+ max: 255
483
509
  controlmode:
484
- list: true
485
- type: string
510
+ type: string_list
486
511
  values:
487
512
  startup: Startup mode
488
513
  control: Normal control
@@ -498,7 +523,6 @@ objects:
498
523
  detectorlogics:
499
524
  type: string
500
525
  description: Manually set detector logics (1/0) as text field
501
- range: "[text]"
502
526
  pattern: "^[01]*$"
503
527
  S0022:
504
528
  description: |-
@@ -509,7 +533,6 @@ objects:
509
533
  status:
510
534
  type: string
511
535
  description: Comma separated list of configured time plans. E.g. "1,2,3,5"
512
- range: "[text]"
513
536
  S0023:
514
537
  description: |-
515
538
  Dynamic bands.
@@ -529,7 +552,6 @@ objects:
529
552
 
530
553
  E.g.
531
554
  pp-dd-ee,pp-dd-ee
532
- range: "[text]"
533
555
  pattern: "(^$)|(^(?<item>(\\d{1,2})\\-\\d{1,2}-\\d{1,2})(,\\g<item>)*$)"
534
556
  S0024:
535
557
  description: |-
@@ -549,7 +571,6 @@ objects:
549
571
 
550
572
  E.g.
551
573
  pp-tt,pp-tt
552
- range: "[text]"
553
574
  pattern: "^(\\d{1,2}\\-\\d{1,2})(?:,(\\d{1,2}\\-\\d{1,2}))*$"
554
575
  S0026:
555
576
  description: |-
@@ -577,7 +598,6 @@ objects:
577
598
  Each segment is separated with a comma
578
599
  E.g.
579
600
  d-t,d-t
580
- range: "[text]"
581
601
  S0027:
582
602
  description: |-
583
603
  Time tables.
@@ -606,7 +626,6 @@ objects:
606
626
 
607
627
  E.g.
608
628
  t-o-h-m,t-o-h-m
609
- range: "[text]"
610
629
  S0028:
611
630
  description: |-
612
631
  Cycle time.
@@ -625,7 +644,6 @@ objects:
625
644
 
626
645
  E.g.
627
646
  pp-tt,pp-tt
628
- range: "[text]"
629
647
  S0029:
630
648
  description: |-
631
649
  Forced input status.
@@ -635,7 +653,6 @@ objects:
635
653
  status:
636
654
  type: string
637
655
  description: Forced input status as text field
638
- range: "[text]"
639
656
  S0030:
640
657
  description: |-
641
658
  Forced output status.
@@ -645,7 +662,6 @@ objects:
645
662
  status:
646
663
  type: string
647
664
  description: Forced output status as text field
648
- range: "[text]"
649
665
  S0031:
650
666
  description: |-
651
667
  Trigger level sensitivity for loop detector.
@@ -659,7 +675,105 @@ objects:
659
675
  dd=loop detector number
660
676
  ss=sensitivity value
661
677
  Each loop detector is separated with a comma. E.g.dd-ss,dd-ss.
662
- range: "[text]"
678
+ S0032:
679
+ description: |-
680
+ Coordinated control
681
+ This status is used when coordination between traffic light controllers is active. Coordination is described in detail in the corresponding section
682
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “centralized,off”
683
+ arguments:
684
+ intersection:
685
+ type: integer_list
686
+ description: |-
687
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
688
+ Use “0” for all intersections of the TLC.
689
+ min: 0
690
+ max: 255
691
+ status:
692
+ type: string_list
693
+ description: |-
694
+ local: Local coordination
695
+ centralized: Coordination with synchronized clock
696
+ off: Coordination not active
697
+ values:
698
+ local:
699
+ centralized:
700
+ 'off':
701
+ source:
702
+ description: Source of the status change
703
+ type: string_list
704
+ values:
705
+ operator_panel: Operator panel
706
+ calendar_clock: Calendar/clock
707
+ control_block: Control block
708
+ forced: Forced due to external command e.g. supervisor
709
+ startup: Set after startup mode
710
+ other: Other reason
711
+ S0033:
712
+ description: |-
713
+ Signal Priority Status
714
+ 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.
715
+ A list of priorities is returned, referred to by their request ids. The same request id can appear only once.
716
+ 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.
717
+ 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.
718
+ To understand how this status relates to ETSI/J2735, please see the wiki.
719
+ All priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used.
720
+ 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.
721
+ A request always starts in the ‘received’ state. The following table shows the possible state transitions:
722
+ arguments:
723
+ status:
724
+ description: JSON array of priority status items
725
+ type: array
726
+ items:
727
+ r:
728
+ type: string
729
+ description: ID of the priority request
730
+ t:
731
+ type: timestamp
732
+ description: |-
733
+ Timestamp, indicating when the priority last changed state.
734
+ Format according to W3C XML dateTime with a resolution of 3 decimal places.
735
+ All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z
736
+ s:
737
+ type: string
738
+ description: |-
739
+ Current status of the priority request
740
+ values:
741
+ received: A new priority request was received but has not yet been processed
742
+ queued: The priority request has been queued for later activation
743
+ activated: The priority was activated
744
+ completed: The priority was cancelled as expected
745
+ timeout: The priority has been queued for too long
746
+ rejected: The priority request cannot be granted
747
+ cooldown: A similar priority request means the priority request cannot be activated now
748
+ stale: The priority has been active too long without cancellation, and was therefore removed
749
+ e:
750
+ type: integer
751
+ description: |-
752
+ (Optional) Estimated green extension provided by the priority, in seconds
753
+ Only used when state is ‘completed’.
754
+ optional: true
755
+ min: 0
756
+ max: 255
757
+ d:
758
+ type: integer
759
+ description: |-
760
+ (Optional) Estimated red reduction provided by the priority, in seconds
761
+ Only used when state is ‘completed’.
762
+ optional: true
763
+ min: 0
764
+ max: 255
765
+ S0034:
766
+ description: |-
767
+ Timeout for dynamic bands.
768
+ Time until a designated time plan is entered due to lost connection with the supervisor.
769
+ Disabled if set to '0'.
770
+ Used in conjunction with dynamic bands, M0014
771
+ arguments:
772
+ status:
773
+ type: integer
774
+ description: Timeout, in minutes
775
+ min: 0
776
+ max: 65535
663
777
  S0091:
664
778
  description: |-
665
779
  Operator logged in/out OP-panel.
@@ -692,7 +806,6 @@ objects:
692
806
  status:
693
807
  type: string
694
808
  description: Manufacturer, product name and version of traffic light controller
695
- range: "[text]"
696
809
  S0096:
697
810
  description: |-
698
811
  Current date and time
@@ -701,29 +814,35 @@ objects:
701
814
  year:
702
815
  type: integer
703
816
  description: 'Year according to format YYYY. NOTE: UTC is used'
704
- range: YYYY
817
+ min: 0
818
+ max: 9999
705
819
  month:
706
820
  type: integer
707
821
  description: 'Month (01-12) according to format MM. Note: UTC is used'
708
- range: MM
822
+ min: 1
823
+ max: 12
709
824
  day:
710
825
  type: integer
711
826
  description: 'Day of month (01-31) according to format DD. Note: UTC
712
827
  is used'
713
- range: DD
828
+ min: 1
829
+ max: 31
714
830
  hour:
715
831
  type: integer
716
832
  description: 'Hour of day (00-23) according to format DD. Note: UTC is
717
833
  used'
718
- range: HH
834
+ min: 0
835
+ max: 23
719
836
  minute:
720
837
  type: integer
721
838
  description: 'Minute (00-59) according to format MM. Note: UTC is used'
722
- range: MM
839
+ min: 0
840
+ max: 59
723
841
  second:
724
842
  type: integer
725
843
  description: 'Second (00-59) according to format SS. Note: UTC is used'
726
- range: SS
844
+ min: 0
845
+ max: 59
727
846
  S0097:
728
847
  description: |-
729
848
  Checksum of traffic parameters.
@@ -751,7 +870,6 @@ objects:
751
870
 
752
871
  Note:
753
872
  - The checksum should be calculated using the same data as used in S0098
754
- range: "[text]"
755
873
  timestamp:
756
874
  type: timestamp
757
875
  description: Time stamp of the checksum. Format according to W3C XML dateTime
@@ -784,7 +902,6 @@ objects:
784
902
  Note:
785
903
  - There is no way to upload this binary file to the TLC using RSMP
786
904
  - The format of the binary file is not specified and is not expected to be compatible between suppliers
787
- range: "[binary]"
788
905
  timestamp:
789
906
  type: timestamp
790
907
  description: |-
@@ -794,7 +911,6 @@ objects:
794
911
  description: |-
795
912
  Version information of the configuration. Contains basic information such as controller id, changes to config and other information.
796
913
  The format is not specified in detail.
797
- range: "[text]"
798
914
  S0205:
799
915
  description: |-
800
916
  Traffic Counting: Number of vehicles.
@@ -805,13 +921,14 @@ objects:
805
921
  description: |-
806
922
  Time stamp for start of measuring. Format according to W3C XML dateTime with a resolution of 3 decimal places. All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z
807
923
  vehicles:
808
- type: string
924
+ type: integer_list
809
925
  description: |-
810
926
  Number of vehicles.
811
927
  - Value expressed as an integer with a range of 0-65535.
812
928
  - Contains data from all detector logics. Each detector logic is separated with a comma.
813
929
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
814
- range: "[0-65535,...]"
930
+ min: 0
931
+ max: 65535
815
932
  S0206:
816
933
  description: |-
817
934
  Traffic Counting: Vehicle speed
@@ -824,13 +941,14 @@ objects:
824
941
  XML dateTime with a resolution of 3 decimal places. All time stamps
825
942
  in UTC. E.g. 2009-10-02T14:34:34.341Z
826
943
  speed:
827
- type: string
944
+ type: integer_list
828
945
  description: |-
829
946
  Average speed in km/h (integer).
830
947
  - Value expressed as an integer with a range of 0-65535.
831
948
  - Contains data from all detector logics. Each detector logic is separated with a comma.
832
949
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
833
- range: "[0-65535,...]"
950
+ min: 0
951
+ max: 65535
834
952
  S0207:
835
953
  description: |-
836
954
  Traffic Counting: Occupancy.
@@ -843,13 +961,14 @@ objects:
843
961
  XML dateTime with a resolution of 3 decimal places. All time stamps
844
962
  in UTC. E.g. 2009-10-02T14:34:34.341Z
845
963
  occupancy:
846
- type: string
964
+ type: integer_list
847
965
  description: |-
848
966
  Occupancy in percent (%) (0-100)
849
967
  - Value expressed as an integer with a range of 0-100.
850
968
  - Contains data from all detector logics. Each detector logic is separated with a comma.
851
969
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
852
- range: "[0-100,...]"
970
+ min: 0
971
+ max: 100
853
972
  S0208:
854
973
  description: |-
855
974
  Traffic Counting: Number of vehicles of given classification.
@@ -862,77 +981,86 @@ objects:
862
981
  XML dateTime with a resolution of 3 decimal places. All time stamps
863
982
  in UTC. E.g. 2009-10-02T14:34:34.341Z
864
983
  P:
865
- type: string
984
+ type: integer_list
866
985
  description: |-
867
986
  Number of cars.
868
987
  - Value expressed as an integer with a range of 0-65535.
869
988
  - Contains data from all detector logics. Each detector logic is separated with a comma.
870
989
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
871
- range: "[0-65535,...]"
990
+ min: 0
991
+ max: 65535
872
992
  PS:
873
- type: string
993
+ type: integer_list
874
994
  description: |-
875
995
  Number of cars with trailers.
876
996
  - Value expressed as an integer with a range of 0-65535.
877
997
  - Contains data from all detector logics. Each detector logic is separated with a comma.
878
998
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
879
- range: "[0-65535,...]"
999
+ min: 0
1000
+ max: 65535
880
1001
  L:
881
- type: string
1002
+ type: integer_list
882
1003
  description: |-
883
1004
  Number of trucks.
884
1005
  - Value expressed as an integer with a range of 0-65535.
885
1006
  - Contains data from all detector logics. Each detector logic is separated with a comma.
886
1007
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
887
- range: "[0-65535,...]"
1008
+ min: 0
1009
+ max: 65535
888
1010
  LS:
889
- type: string
1011
+ type: integer_list
890
1012
  description: |-
891
1013
  Number of trucks with trailers.
892
1014
  - Value expressed as an integer with a range of 0-65535.
893
1015
  - Contains data from all detector logics. Each detector logic is separated with a comma.
894
1016
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
895
- range: "[0-65535,...]"
1017
+ min: 0
1018
+ max: 65535
896
1019
  B:
897
- type: string
1020
+ type: integer_list
898
1021
  description: |-
899
1022
  Number of busses.
900
1023
  - Value expressed as an integer with a range of 0-65535.
901
1024
  - Contains data from all detector logics. Each detector logic is separated with a comma.
902
1025
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
903
- range: "[0-65535,...]"
1026
+ min: 0
1027
+ max: 65535
904
1028
  SP:
905
- type: string
1029
+ type: integer_list
906
1030
  description: |-
907
1031
  Number of trams.
908
1032
  - Value expressed as an integer with a range of 0-65535.
909
1033
  - Contains data from all detector logics. Each detector logic is separated with a comma.
910
1034
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
911
- range: "[0-65535,...]"
1035
+ min: 0
1036
+ max: 65535
912
1037
  MC:
913
- type: string
1038
+ type: integer_list
914
1039
  description: |-
915
1040
  Number of motor cycles.
916
1041
  - Value expressed as an integer with a range of 0-65535.
917
1042
  - Contains data from all detector logics. Each detector logic is separated with a comma.
918
1043
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
919
- range: "[0-65535,...]"
1044
+ min: 0
1045
+ max: 65535
920
1046
  C:
921
- type: string
1047
+ type: integer_list
922
1048
  description: |-
923
1049
  Number of bicycles.
924
1050
  - Value expressed as an integer with a range of 0-65535.
925
1051
  - Contains data from all detector logics. Each detector logic is separated with a comma.
926
1052
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
927
- range: "[0-65535,...]"
1053
+ min: 0
1054
+ max: 65535
928
1055
  F:
929
- type: string
1056
+ type: integer_list
930
1057
  description: |-
931
1058
  Number of pedestrians.
932
1059
  - Value expressed as an integer with a range of 0-65535.
933
1060
  - Contains data from all detector logics. Each detector logic is separated with a comma.
934
1061
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
935
- range: "[0-65535,...]"
1062
+ min: 0
1063
+ max: 65535
936
1064
  commands:
937
1065
  M0001:
938
1066
  description: |-
@@ -941,29 +1069,27 @@ objects:
941
1069
  Requires security code 2.
942
1070
  arguments:
943
1071
  status:
944
- list: true
1072
+ type: string_list
945
1073
  description: Set operating mode
946
- type: string
947
1074
  values:
948
1075
  NormalControl: Normal Control
949
1076
  YellowFlash: Enables yellow flash
950
1077
  Dark: Enables dark mode
951
1078
  securityCode:
952
- list: true
1079
+ type: string_list
953
1080
  description: Security code 2
954
- type: string
955
1081
  timeout:
956
- list: true
1082
+ type: integer
957
1083
  description: |-
958
1084
  Time in minutes until controller automatically reverts to previous functional position.
959
1085
  0=no automatic return
960
- type: integer
961
1086
  min: 0
962
1087
  max: 1440
963
1088
  intersection:
964
- list: true
965
- description: Intersection number
966
- type: integer
1089
+ type: integer_list
1090
+ description: |-
1091
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
1092
+ Use “0” for all intersections of the TLC.
967
1093
  min: 0
968
1094
  max: 255
969
1095
  command: setValue
@@ -983,11 +1109,11 @@ objects:
983
1109
  securityCode:
984
1110
  type: string
985
1111
  description: Security code 2
986
- range: "[text]"
987
1112
  timeplan:
988
1113
  type: integer
989
1114
  description: designation of time plan
990
- range: "[1-255]"
1115
+ min: 1
1116
+ max: 255
991
1117
  command: setPlan
992
1118
  M0003:
993
1119
  description: |-
@@ -1004,11 +1130,11 @@ objects:
1004
1130
  securityCode:
1005
1131
  type: string
1006
1132
  description: Security code 2
1007
- range: "[text]"
1008
1133
  traficsituation:
1009
1134
  type: integer
1010
1135
  description: designation of traficsituation
1011
- range: "[1-255]"
1136
+ min: 1
1137
+ max: 255
1012
1138
  command: setTrafficSituation
1013
1139
  M0004:
1014
1140
  description: |-
@@ -1022,7 +1148,6 @@ objects:
1022
1148
  securityCode:
1023
1149
  type: string
1024
1150
  description: Security code 2
1025
- range: "[text]"
1026
1151
  command: setRestart
1027
1152
  M0005:
1028
1153
  description: |-
@@ -1034,16 +1159,16 @@ objects:
1034
1159
  status:
1035
1160
  type: boolean
1036
1161
  description: |-
1037
- False: Activate emergency route
1038
- True: Deactivate emergency route
1162
+ False: Deactivate emergency route
1163
+ True: Activate emergency route
1039
1164
  securityCode:
1040
1165
  type: string
1041
1166
  description: Security code 2
1042
- range: "[text]"
1043
1167
  emergencyroute:
1044
1168
  type: integer
1045
1169
  description: Number of emergency route
1046
- range: "[1-255]"
1170
+ min: 1
1171
+ max: 255
1047
1172
  command: setEmergency
1048
1173
  M0006:
1049
1174
  description: |-
@@ -1062,11 +1187,11 @@ objects:
1062
1187
  securityCode:
1063
1188
  type: string
1064
1189
  description: Security code 2
1065
- range: "[text]"
1066
1190
  input:
1067
1191
  type: integer
1068
1192
  description: Number of Input
1069
- range: "[1-255]"
1193
+ min: 1
1194
+ max: 255
1070
1195
  command: setInput
1071
1196
  M0007:
1072
1197
  description: |-
@@ -1083,7 +1208,6 @@ objects:
1083
1208
  securityCode:
1084
1209
  type: string
1085
1210
  description: Security code 2
1086
- range: "[text]"
1087
1211
  command: setFixedTime
1088
1212
  M0012:
1089
1213
  description: |-
@@ -1120,19 +1244,33 @@ objects:
1120
1244
  "5,4143,65:22,1,4"
1121
1245
 
1122
1246
  Such a message would order signal group 6,7,10,17,22 to green and signal group 5,11,24 to red
1123
- range: "[text]"
1124
1247
  securityCode:
1125
1248
  type: string
1126
1249
  description: Security code 2
1127
- range: "[text]"
1128
1250
  command: setStart
1129
1251
  M0013:
1130
1252
  description: |-
1131
- Activate a series of inputs.
1132
- Set given inputs (1-255) of the controllers general purpose I/O to either true or false.
1133
- 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 RSMP message.
1134
- 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.
1135
- Requires security code 2
1253
+ Activate a series of inputs
1254
+
1255
+ 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.
1256
+
1257
+ Requires security code 2.
1258
+
1259
+ 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];…
1260
+
1261
+ - ‘Offset’ defines where the 16 inputs starts from
1262
+ - ‘Bits to set’ defines which bit(s) to set. ‘0’ if unsed
1263
+ - ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused
1264
+
1265
+ Example 1: “3,4134,65” sets input 4,5,8,15 and unsets 3,9 - Input starts from no. 5 - “4134” is 1 0000 0010 0110 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 1000 0001 0011 0000 which are bits 4,5,8,15 - “65” is 100 0001 in binary, but since input starts from 3, it is shifted 3 bits, e.g. 10 0000 1000 which are bits 3,9
1266
+
1267
+ Example 2: “12,1,4” sets input 12 and unsets 14 - Input starts from no. 12 - “1” is 1 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 1 0000 0000 0000, which is bit 12 - “4” is 100 in binary, but since input starts at 12 it is shifted 12 bits, e.g. 100 0000 0000 0000, which is bit 14
1268
+
1269
+ And both these examples could be sent in the same message as: “3,4143,65;12,1,4”
1270
+
1271
+ Such a message would set input 4,5,8,12,15 and unset input 3,9,14
1272
+
1273
+ Example 3: “0,1,2” sets input 0 and unsets 1 - Input starts from 0 - “1” is 1 in binary, which is bit 0 - “2” is 10 in binary, which is bit 1
1136
1274
  arguments:
1137
1275
  status:
1138
1276
  type: string
@@ -1155,11 +1293,9 @@ objects:
1155
1293
  "5,4143:65:22,1,4"
1156
1294
 
1157
1295
  Such a message would activate input 6,7,10,17,22 and deactivate input 5,11,24
1158
- range: "[text]"
1159
1296
  securityCode:
1160
1297
  type: string
1161
1298
  description: Security code 2
1162
- range: "[text]"
1163
1299
  command: setInput
1164
1300
  M0014:
1165
1301
  description: |-
@@ -1171,7 +1307,8 @@ objects:
1171
1307
  plan:
1172
1308
  type: integer
1173
1309
  description: Plan to be changed
1174
- range: "[0-255]"
1310
+ min: 0
1311
+ max: 255
1175
1312
  status:
1176
1313
  type: string
1177
1314
  description: |-
@@ -1184,11 +1321,9 @@ objects:
1184
1321
 
1185
1322
  E.g.
1186
1323
  dd-ee,dd-ee
1187
- range: "[text]"
1188
1324
  securityCode:
1189
1325
  type: string
1190
1326
  description: Security code 2
1191
- range: "[text]"
1192
1327
  command: setCommands
1193
1328
  M0015:
1194
1329
  description: |-
@@ -1200,15 +1335,16 @@ objects:
1200
1335
  status:
1201
1336
  type: integer
1202
1337
  description: Set offset time in seconds
1203
- range: "[0-255]"
1338
+ min: 0
1339
+ max: 255
1204
1340
  plan:
1205
1341
  type: integer
1206
1342
  description: Time plan nr
1207
- range: "[0-255]"
1343
+ min: 0
1344
+ max: 255
1208
1345
  securityCode:
1209
1346
  type: string
1210
1347
  description: Security code 2
1211
- range: "[text]"
1212
1348
  command: setOffset
1213
1349
  M0016:
1214
1350
  description: |-
@@ -1238,11 +1374,9 @@ objects:
1238
1374
 
1239
1375
  E.g.
1240
1376
  d-t,d-t
1241
- range: "[text]"
1242
1377
  securityCode:
1243
1378
  type: string
1244
1379
  description: Security code 2
1245
- range: "[text]"
1246
1380
  command: setWeekTable
1247
1381
  M0017:
1248
1382
  description: |-
@@ -1273,11 +1407,9 @@ objects:
1273
1407
 
1274
1408
  E.g.
1275
1409
  t-o-h-m,t-o-h-m
1276
- range: "[text]"
1277
1410
  securityCode:
1278
1411
  type: string
1279
1412
  description: Security code 2
1280
- range: "[text]"
1281
1413
  command: setTimeTable
1282
1414
  M0018:
1283
1415
  description: |-
@@ -1289,15 +1421,16 @@ objects:
1289
1421
  status:
1290
1422
  type: integer
1291
1423
  description: Set cycle time in seconds
1292
- range: "[1-255]"
1424
+ min: 1
1425
+ max: 255
1293
1426
  plan:
1294
1427
  type: integer
1295
1428
  description: Time plan nr
1296
- range: "[0-255]"
1429
+ min: 0
1430
+ max: 255
1297
1431
  securityCode:
1298
1432
  type: string
1299
1433
  description: Security code 2
1300
- range: "[text]"
1301
1434
  command: setCycleTime
1302
1435
  M0019:
1303
1436
  description: |-
@@ -1309,16 +1442,16 @@ objects:
1309
1442
  status:
1310
1443
  type: boolean
1311
1444
  description: |-
1312
- False: Force input
1313
- True: Release input
1445
+ False: Release input
1446
+ True: Force input
1314
1447
  securityCode:
1315
1448
  type: string
1316
1449
  description: Security code 2
1317
- range: "[text]"
1318
1450
  input:
1319
1451
  type: integer
1320
1452
  description: Number of Input
1321
- range: "[1-255]"
1453
+ min: 1
1454
+ max: 255
1322
1455
  inputValue:
1323
1456
  type: boolean
1324
1457
  description: |-
@@ -1340,11 +1473,11 @@ objects:
1340
1473
  securityCode:
1341
1474
  type: string
1342
1475
  description: Security code 2
1343
- range: "[text]"
1344
1476
  output:
1345
1477
  type: integer
1346
1478
  description: Number of Output
1347
- range: "[1-255]"
1479
+ min: 1
1480
+ max: 255
1348
1481
  outputValue:
1349
1482
  type: boolean
1350
1483
  description: |-
@@ -1364,12 +1497,176 @@ objects:
1364
1497
  Loop detector trigger level sensitivity is written as dd-ss where:
1365
1498
  dd=loop detector number
1366
1499
  ss=sensitivity value
1367
- range: "[text]"
1368
1500
  securityCode:
1369
1501
  type: string
1370
1502
  description: Security code 2
1371
- range: "[text]"
1372
1503
  command: setLevel
1504
+ M0022:
1505
+ description: |-
1506
+ Request Signal Priority
1507
+
1508
+ Useful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.
1509
+
1510
+ 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.
1511
+
1512
+ To understand how this command relates to ETSI/J2735, please see the wiki.
1513
+
1514
+ 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.
1515
+
1516
+ 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:
1517
+
1518
+ - 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.
1519
+ - 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.
1520
+ - Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.
1521
+ - Reference an intersection approach by setting ‘approachId’.
1522
+ - Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.
1523
+
1524
+ Referencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:
1525
+
1526
+ - signalGroupId
1527
+ - inputId
1528
+ - connectionId
1529
+ - approachId
1530
+ - laneInId
1531
+ - laneOutId
1532
+
1533
+ 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.
1534
+
1535
+ 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.
1536
+
1537
+ 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.
1538
+
1539
+ Like ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.
1540
+
1541
+ 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.
1542
+
1543
+ 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.
1544
+
1545
+ When you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.
1546
+
1547
+ 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.
1548
+
1549
+ 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.
1550
+
1551
+ 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.
1552
+
1553
+ 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’.
1554
+
1555
+ 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.
1556
+ arguments:
1557
+ requestId:
1558
+ type: string
1559
+ description: A string that uniquely identifies the request on the controller
1560
+ signalGroupId:
1561
+ type: string
1562
+ optional: true
1563
+ description: (Optional) ID of a signal group component.
1564
+ inputId:
1565
+ type: integer
1566
+ optional: true
1567
+ description: (Optional) ID of an input, using the same numbering scheme as M0006
1568
+ min: 0
1569
+ max: 255
1570
+ connectionId:
1571
+ type: integer
1572
+ optional: true
1573
+ description: (Optional) ID of a connection, connecting an ingoing and an outgoing lane
1574
+ min: 0
1575
+ max: 255
1576
+ approachId:
1577
+ type: integer
1578
+ optional: true
1579
+ description: (Optional) ID of an intersection approach
1580
+ min: 0
1581
+ max: 16
1582
+ laneInId:
1583
+ type: integer
1584
+ optional: true
1585
+ description: (Optional) ID of an ingoing lane
1586
+ min: 0
1587
+ max: 255
1588
+ laneOutId:
1589
+ type: integer
1590
+ optional: true
1591
+ description: (Optional) ID of an outgoing lane
1592
+ min: 0
1593
+ max: 255
1594
+ priorityId:
1595
+ type: integer
1596
+ optional: true
1597
+ description: (Optional) ID of a priority
1598
+ min: 0
1599
+ max: 255
1600
+ type:
1601
+ type: string
1602
+ description: |-
1603
+ new: New priority request
1604
+ update: Update to existing priority request
1605
+ cancel: Cancel an existing priority
1606
+ values:
1607
+ new:
1608
+ update:
1609
+ cancel:
1610
+ level:
1611
+ type: integer
1612
+ description: |-
1613
+ 0: Lowest, 14: Highest
1614
+ min: 0
1615
+ max: 14
1616
+ eta:
1617
+ type: integer
1618
+ optional: true
1619
+ description: (Optional) Estimated time of arrival to the intersection, in seconds
1620
+ min: 0
1621
+ max: 255
1622
+ vehicleType:
1623
+ type: string
1624
+ optional: true
1625
+ description: |-
1626
+ (Optional) Vehicle type
1627
+
1628
+ pedestrian: Pedestrians
1629
+ bicycle: Bicycles
1630
+ motorcycle: Motorcycles
1631
+ car: Passenger vehicle
1632
+ bus: Bus used for public transport
1633
+ lightTruck: Light truck
1634
+ heavyTruck: Heavy truck
1635
+ tram: Trams used for Public transport
1636
+ emergency: Police, fire or ambulance
1637
+ safetyCar: For e.g. escort vehicles
1638
+ specialTransport: For e.g. heavy load
1639
+ other: Other type of vehicle
1640
+ values:
1641
+ pedestrian:
1642
+ bicycle:
1643
+ motorcycle:
1644
+ car:
1645
+ bus:
1646
+ lightTruck:
1647
+ heavyTruck:
1648
+ tram:
1649
+ emergency:
1650
+ safetyCar:
1651
+ specialTransport:
1652
+ other:
1653
+ command: requestPriority
1654
+ M0023:
1655
+ description: |-
1656
+ Set timeout for dynamic bands
1657
+ Switch to a designated time plan if this timeout is reached due to lost connection with the supervisor.
1658
+ Disable by setting timeout to '0'.
1659
+ Used in conjunction with dynamic bands, M0014
1660
+ arguments:
1661
+ status:
1662
+ type: integer
1663
+ min: 0
1664
+ max: 65535
1665
+ description: Timeout, in minutes
1666
+ securityCode:
1667
+ type: string
1668
+ description: Security code 2
1669
+ command: setTimeout
1373
1670
  M0103:
1374
1671
  description: |-
1375
1672
  Set security code.
@@ -1384,11 +1681,9 @@ objects:
1384
1681
  oldSecurityCode:
1385
1682
  type: string
1386
1683
  description: Previous security code
1387
- range: "[text]"
1388
1684
  newSecurityCode:
1389
1685
  type: string
1390
1686
  description: New security code
1391
- range: "[text]"
1392
1687
  command: setSecurityCode
1393
1688
  M0104:
1394
1689
  description: |-
@@ -1399,43 +1694,48 @@ objects:
1399
1694
  securityCode:
1400
1695
  type: string
1401
1696
  description: Security code 1
1402
- range: "[text]"
1403
1697
  year:
1404
1698
  type: integer
1405
1699
  description: |-
1406
1700
  Changes internal clock. Note: UTC is used
1407
1701
  Year according to YYYY
1408
- range: "[YYYY]"
1702
+ min: 0
1703
+ max: 9999
1409
1704
  month:
1410
1705
  type: integer
1411
1706
  description: |-
1412
1707
  Changes internal clock. Note: UTC is used
1413
1708
  Month according to MM (01-12)
1414
- range: "[MM]"
1709
+ min: 1
1710
+ max: 12
1415
1711
  day:
1416
1712
  type: integer
1417
1713
  description: |-
1418
1714
  Changes internal clock. Note: UTC is used
1419
1715
  Day in month according to DD (01-31)
1420
- range: "[DD]"
1716
+ min: 1
1717
+ max: 31
1421
1718
  hour:
1422
1719
  type: integer
1423
1720
  description: |-
1424
1721
  Changes internal clock. Note: UTC is used
1425
1722
  Hour according to HH (00-23)
1426
- range: "[HH]"
1723
+ min: 0
1724
+ max: 23
1427
1725
  minute:
1428
1726
  type: integer
1429
1727
  description: |-
1430
1728
  Changes internal clock. Note: UTC is used
1431
1729
  Minute according to MM (00-59)
1432
- range: "[MM]"
1730
+ min: 0
1731
+ max: 59
1433
1732
  second:
1434
1733
  type: integer
1435
1734
  description: |-
1436
1735
  Changes internal clock. Note: UTC is used
1437
1736
  Second according to SS (00-59)
1438
- range: "[SS]"
1737
+ min: 0
1738
+ max: 59
1439
1739
  command: setDate
1440
1740
  Signal group:
1441
1741
  description:
@@ -1452,7 +1752,8 @@ objects:
1452
1752
  timeplan:
1453
1753
  type: integer
1454
1754
  description: Current time plan
1455
- range: "[designation]"
1755
+ min: 1
1756
+ max: 255
1456
1757
  A0101:
1457
1758
  description: |-
1458
1759
  Pushbutton error.
@@ -1495,17 +1796,17 @@ objects:
1495
1796
  Time-of-Green / Time-of-Red.
1496
1797
  Provides predicted signal timings of green and red for each signal group. Max, min and likely time to green and red.
1497
1798
  arguments:
1498
- minToGEstimate :
1799
+ minToGEstimate:
1499
1800
  type: timestamp
1500
1801
  description: |-
1501
1802
  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.
1502
1803
  Format according to W3C XML dateTime with a resolution of 3 decimal places. All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z
1503
- maxToGEstimate :
1804
+ maxToGEstimate:
1504
1805
  type: timestamp
1505
1806
  description: |-
1506
1807
  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.
1507
1808
  Format according to W3C XML dateTime with a resolution of 3 decimal places. All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z
1508
- likelyToGEstimate :
1809
+ likelyToGEstimate:
1509
1810
  type: timestamp
1510
1811
  description: |-
1511
1812
  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.
@@ -1513,8 +1814,9 @@ objects:
1513
1814
  ToGConfidence:
1514
1815
  type: integer
1515
1816
  description: Confidence of the likelyToGEstimate. 0-100%
1516
- range: "[0-100]"
1517
- minToREstimate :
1817
+ min: 0
1818
+ max: 100
1819
+ minToREstimate:
1518
1820
  type: timestamp
1519
1821
  description: |-
1520
1822
  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.
@@ -1524,7 +1826,7 @@ objects:
1524
1826
  description: |-
1525
1827
  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.
1526
1828
  Format according to W3C XML dateTime with a resolution of 3 decimal places. All time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z
1527
- likelyToREstimate :
1829
+ likelyToREstimate:
1528
1830
  type: timestamp
1529
1831
  description: |-
1530
1832
  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.
@@ -1532,7 +1834,8 @@ objects:
1532
1834
  ToRConfidence:
1533
1835
  type: integer
1534
1836
  description: Confidence of the likelyToREstimate. 0-100%
1535
- range: "[0-100]"
1837
+ min: 0
1838
+ max: 100
1536
1839
  commands:
1537
1840
  M0010:
1538
1841
  description: |-
@@ -1549,7 +1852,6 @@ objects:
1549
1852
  securityCode:
1550
1853
  type: string
1551
1854
  description: Security code 2
1552
- range: "[text]"
1553
1855
  command: setStart
1554
1856
  M0011:
1555
1857
  description: |-
@@ -1566,7 +1868,6 @@ objects:
1566
1868
  securityCode:
1567
1869
  type: string
1568
1870
  description: Security code 2
1569
- range: "[text]"
1570
1871
  command: setStop
1571
1872
  Detector logic:
1572
1873
  description:
@@ -1581,7 +1882,6 @@ objects:
1581
1882
  detector:
1582
1883
  type: string
1583
1884
  description: Designation of the detector (hardware)
1584
- range: "[designation]"
1585
1885
  type:
1586
1886
  type: string
1587
1887
  description: Type of detector
@@ -1592,8 +1892,8 @@ objects:
1592
1892
  type: string
1593
1893
  description: Detector forced on/off while detector error
1594
1894
  values:
1595
- 'on': ''
1596
- 'off': ''
1895
+ 'on': # on/off must be quoted, otherwise they are converted to true/false
1896
+ 'off':
1597
1897
  manual:
1598
1898
  type: boolean
1599
1899
  description: Manually controlled detector logic (True/False)
@@ -1608,7 +1908,6 @@ objects:
1608
1908
  detector:
1609
1909
  type: string
1610
1910
  description: Designation of the detector (hardware)
1611
- range: "[designation]"
1612
1911
  type:
1613
1912
  type: string
1614
1913
  description: Type of detector.
@@ -1631,6 +1930,61 @@ objects:
1631
1930
  always_off: no detection during predefined max time
1632
1931
  always_on: detection constantly on during predefined max time
1633
1932
  intermittent: intermittent logic fault (flutter)
1933
+ A0303:
1934
+ description: |-
1935
+ Serious detector error (hardware).
1936
+ 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.
1937
+ priority: 3
1938
+ category: D
1939
+ arguments:
1940
+ detector:
1941
+ type: string
1942
+ description: Designation of the detector (hardware)
1943
+ type:
1944
+ type: string
1945
+ description: Type of detector.
1946
+ values:
1947
+ loop: Inductive detector loop
1948
+ input: External input
1949
+ errormode:
1950
+ type: string
1951
+ description: Detector forced on/off while detector error
1952
+ # note that on and off must be quoted, otherwise they are parsed as true and false
1953
+ values: ['on','off']
1954
+ manual:
1955
+ type: boolean
1956
+ description: Manually controlled detector logic (True/False)
1957
+ A0304:
1958
+ description: |-
1959
+ Serious detector error (logic error).
1960
+ For instance; detector continuously on or off during an extended time.
1961
+ 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
1962
+ priority: 3
1963
+ category: D
1964
+ arguments:
1965
+ detector:
1966
+ type: string
1967
+ description: Designation of the detector (hardware)
1968
+ type:
1969
+ type: string
1970
+ description: Type of detector.
1971
+ values:
1972
+ loop: Inductive detector loop
1973
+ input: External input
1974
+ errormode:
1975
+ type: string
1976
+ description: Detector forced on/off while detector error
1977
+ values: ['on','off']
1978
+ manual:
1979
+ type: boolean
1980
+ description: Manually controlled detector logic (True/False)
1981
+ logicerror:
1982
+ type: string
1983
+ description: Type of logic error
1984
+ values:
1985
+ always_off: no detection during predefined max time
1986
+ always_on: detection constantly on during predefined max time
1987
+ intermittent: intermittent logic fault (flutter)
1634
1988
  statuses:
1635
1989
  S0201:
1636
1990
  description: |-
@@ -1643,10 +1997,11 @@ objects:
1643
1997
  XML dateTime with a resolution of 3 decimal places. All time stamps
1644
1998
  in UTC. E.g. 2009-10-02T14:34:34.341Z
1645
1999
  vehicles:
1646
- type: long
2000
+ type: integer
1647
2001
  description: Number of vehicles on a given detector logic (since last
1648
2002
  update)
1649
- range: "[number]"
2003
+ min: 0
2004
+ max: 65535
1650
2005
  S0202:
1651
2006
  description: |-
1652
2007
  Traffic Counting: Vehicle speed.
@@ -1661,7 +2016,7 @@ objects:
1661
2016
  speed:
1662
2017
  type: integer
1663
2018
  description: Average speed in km/h
1664
- range: "[speed]"
2019
+ min: 0
1665
2020
  S0203:
1666
2021
  description: |-
1667
2022
  Traffic Counting: Occupancy.
@@ -1676,7 +2031,8 @@ objects:
1676
2031
  occupancy:
1677
2032
  type: integer
1678
2033
  description: Occupancy in percent (0-100%)
1679
- range: "[0-100]"
2034
+ min: 0
2035
+ max: 100
1680
2036
  S0204:
1681
2037
  description: |-
1682
2038
  Traffic Counting: Number of vehicles of given classification.
@@ -1689,41 +2045,41 @@ objects:
1689
2045
  XML dateTime with a resolution of 3 decimal places. All time stamps
1690
2046
  in UTC. E.g. 2009-10-02T14:34:34.341Z
1691
2047
  P:
1692
- type: long
2048
+ type: integer
1693
2049
  description: Number of cars
1694
- range: "[number]"
2050
+ min: 0
1695
2051
  PS:
1696
- type: long
2052
+ type: integer
1697
2053
  description: Number of cars with trailers
1698
- range: "[number]"
2054
+ min: 0
1699
2055
  L:
1700
- type: long
2056
+ type: integer
1701
2057
  description: Number of trucks
1702
- range: "[number]"
2058
+ min: 0
1703
2059
  LS:
1704
- type: long
2060
+ type: integer
1705
2061
  description: Number of trucks with trailers
1706
- range: "[number]"
2062
+ min: 0
1707
2063
  B:
1708
- type: long
2064
+ type: integer
1709
2065
  description: Number of busses
1710
- range: "[number]"
2066
+ min: 0
1711
2067
  SP:
1712
- type: long
2068
+ type: integer
1713
2069
  description: Number of trams
1714
- range: "[number]"
2070
+ min: 0
1715
2071
  MC:
1716
- type: long
2072
+ type: integer
1717
2073
  description: Number of motor cycles
1718
- range: "[number]"
2074
+ min: 0
1719
2075
  C:
1720
- type: long
2076
+ type: integer
1721
2077
  description: Number of bicycles
1722
- range: "[number]"
2078
+ min: 0
1723
2079
  F:
1724
- type: long
2080
+ type: integer
1725
2081
  description: Number of pedestrians
1726
- range: "[number]"
2082
+ min: 0
1727
2083
  commands:
1728
2084
  M0008:
1729
2085
  description: |-
@@ -1740,7 +2096,6 @@ objects:
1740
2096
  securityCode:
1741
2097
  type: string
1742
2098
  description: Security code 2
1743
- range: "[text]"
1744
2099
  mode:
1745
2100
  type: boolean
1746
2101
  description: |-