rsmp_schema 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/rsmp_schema/version.rb +1 -1
  4. data/schemas/tlc/1.0.10/sxl.yaml +0 -25
  5. data/schemas/tlc/1.0.13/sxl.yaml +0 -40
  6. data/schemas/tlc/1.0.14/sxl.yaml +0 -40
  7. data/schemas/tlc/1.0.15/sxl.yaml +0 -47
  8. data/schemas/tlc/1.0.7/sxl.yaml +0 -21
  9. data/schemas/tlc/1.0.8/sxl.yaml +0 -25
  10. data/schemas/tlc/1.0.9/sxl.yaml +0 -25
  11. data/schemas/tlc/1.1/alarms/A0303.json +111 -0
  12. data/schemas/tlc/1.1/alarms/A0304.json +137 -0
  13. data/schemas/tlc/1.1/alarms/alarms.json +33 -1
  14. data/schemas/tlc/1.1/commands/M0001.json +1 -1
  15. data/schemas/tlc/1.1/commands/M0005.json +1 -1
  16. data/schemas/tlc/1.1/commands/M0013.json +1 -1
  17. data/schemas/tlc/1.1/commands/M0019.json +1 -1
  18. data/schemas/tlc/1.1/commands/M0022.json +335 -0
  19. data/schemas/tlc/1.1/commands/M0023.json +64 -0
  20. data/schemas/tlc/1.1/commands/commands.json +32 -0
  21. data/schemas/tlc/1.1/statuses/S0001.json +3 -3
  22. data/schemas/tlc/1.1/statuses/S0002.json +1 -1
  23. data/schemas/tlc/1.1/statuses/S0003.json +1 -1
  24. data/schemas/tlc/1.1/statuses/S0004.json +1 -1
  25. data/schemas/tlc/1.1/statuses/S0007.json +1 -1
  26. data/schemas/tlc/1.1/statuses/S0008.json +1 -1
  27. data/schemas/tlc/1.1/statuses/S0009.json +1 -1
  28. data/schemas/tlc/1.1/statuses/S0010.json +1 -1
  29. data/schemas/tlc/1.1/statuses/S0011.json +1 -1
  30. data/schemas/tlc/1.1/statuses/S0012.json +1 -1
  31. data/schemas/tlc/1.1/statuses/S0013.json +2 -2
  32. data/schemas/tlc/1.1/statuses/S0020.json +1 -1
  33. data/schemas/tlc/1.1/statuses/S0032.json +96 -0
  34. data/schemas/tlc/1.1/statuses/S0034.json +40 -0
  35. data/schemas/tlc/1.1/statuses/statuses.json +32 -0
  36. data/schemas/tlc/1.1/sxl.yaml +417 -127
  37. metadata +8 -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,16 +109,36 @@ 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
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.
118
134
  range: "[0-999]"
119
135
  basecyclecounter:
120
136
  type: integer
121
- description: Base cycle counter
137
+ description: |-
138
+ Base cycle counter.
139
+ Used for handling of coordination between TLC’s.
140
+ Synchronized between all TLC’s in an active coordination.
141
+ See the coordination section for more information.
122
142
  range: "[0-999]"
123
143
  stage:
124
144
  type: integer
@@ -132,8 +152,12 @@ objects:
132
152
  arguments:
133
153
  detectorlogicstatus:
134
154
  type: string
135
- description: Detector logic status as text field
136
- range: "[text]"
155
+ description: |-
156
+ Detector logic status as text field
157
+ Each character represent the state of the detector logic in consecutive order.
158
+ 0 : Detector logic is not active
159
+ 1 : Detector logic is active
160
+ - : Detector logic is undefined/does not exist
137
161
  S0003:
138
162
  description: |-
139
163
  Input status.
@@ -143,11 +167,14 @@ objects:
143
167
  inputstatus:
144
168
  type: string
145
169
  description: Input status as text field
146
- range: "[text]"
147
170
  extendedinputstatus:
148
171
  type: string
149
- description: Extended input status as text field
150
- range: "[text]"
172
+ description: |-
173
+ Extended input status as text field
174
+ Each character represent the state of the detector logic in consecutive order.
175
+ 0 : Detector logic is not active
176
+ 1 : Detector logic is active
177
+ - : Detector logic is undefined/does not exist
151
178
  S0004:
152
179
  description: |-
153
180
  Output status.
@@ -157,11 +184,14 @@ objects:
157
184
  outputstatus:
158
185
  type: string
159
186
  description: Output status as text field
160
- range: "[text]"
161
187
  extendedoutputstatus:
162
188
  type: string
163
- description: Extended output status as text field
164
- range: "[text]"
189
+ description: |-
190
+ Extended output status as text field
191
+ Each character represent the state of the detector logic in consecutive order.
192
+ 0 : Detector logic is not active
193
+ 1 : Detector logic is active
194
+ - : Detector logic is undefined/does not exist
165
195
  S0005:
166
196
  description: |-
167
197
  Traffic Light Controller starting.
@@ -199,9 +229,10 @@ objects:
199
229
  list: true
200
230
  type: integer
201
231
  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]"
232
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
233
+ Use “0” for all intersections of the TLC.
234
+ min: 0
235
+ max: 255
205
236
  status:
206
237
  list: true
207
238
  type: boolean
@@ -229,9 +260,10 @@ objects:
229
260
  list: true
230
261
  type: integer
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
268
  list: true
237
269
  type: boolean
@@ -259,9 +291,10 @@ objects:
259
291
  list: true
260
292
  type: integer
261
293
  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]"
294
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
295
+ Use “0” for all intersections of the TLC.
296
+ min: 0
297
+ max: 255
265
298
  status:
266
299
  list: true
267
300
  type: boolean
@@ -289,9 +322,10 @@ objects:
289
322
  list: true
290
323
  type: integer
291
324
  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]"
325
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
326
+ Use “0” for all intersections of the TLC.
327
+ min: 0
328
+ max: 255
295
329
  status:
296
330
  list: true
297
331
  type: boolean
@@ -319,9 +353,10 @@ objects:
319
353
  list: true
320
354
  type: integer
321
355
  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]"
356
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
357
+ Use “0” for all intersections of the TLC.
358
+ min: 0
359
+ max: 255
325
360
  status:
326
361
  list: true
327
362
  type: boolean
@@ -349,9 +384,10 @@ objects:
349
384
  list: true
350
385
  type: integer
351
386
  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]"
387
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
388
+ Use “0” for all intersections of the TLC.
389
+ min: 0
390
+ max: 255
355
391
  status:
356
392
  list: true
357
393
  type: boolean
@@ -379,9 +415,10 @@ objects:
379
415
  list: true
380
416
  type: integer
381
417
  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]"
418
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
419
+ Use “0” for all intersections of the TLC.
420
+ min: 0
421
+ max: 255
385
422
  status:
386
423
  list: true
387
424
  type: integer
@@ -389,6 +426,7 @@ objects:
389
426
  0: disabled
390
427
  1: dark mode
391
428
  2: yellow flash
429
+ 3: all red
392
430
  S0014:
393
431
  description: |-
394
432
  Current time plan.
@@ -438,7 +476,7 @@ objects:
438
476
  Can be used by the management system to check the number of detector logics configured in the controller.
439
477
  arguments:
440
478
  number:
441
- type: long
479
+ type: integer
442
480
  description: Number of detector logics
443
481
  range: "[1-65025]"
444
482
  S0017:
@@ -447,7 +485,7 @@ objects:
447
485
  Can be used for the management system to check the number of signal groups configured in the controller.
448
486
  arguments:
449
487
  number:
450
- type: long
488
+ type: integer
451
489
  description: Number of signal groups
452
490
  range: "[1-65025]"
453
491
  S0018:
@@ -456,7 +494,7 @@ objects:
456
494
  Can be used for the management system to check the number of time plans configured in the controller.
457
495
  arguments:
458
496
  number:
459
- type: long
497
+ type: integer
460
498
  description: Number of time plans (depreciated)
461
499
  range: "[1-65025]"
462
500
  S0019:
@@ -465,7 +503,7 @@ objects:
465
503
  Can be used for the management system to check the number of traffic situations configured in the controller.
466
504
  arguments:
467
505
  number:
468
- type: long
506
+ type: integer
469
507
  description: Number of traffic situations
470
508
  range: "[1-65025]"
471
509
  S0020:
@@ -477,9 +515,10 @@ objects:
477
515
  list: true
478
516
  type: integer
479
517
  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]"
518
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
519
+ Use “0” for all intersections of the TLC.
520
+ min: 0
521
+ max: 255
483
522
  controlmode:
484
523
  list: true
485
524
  type: string
@@ -498,7 +537,6 @@ objects:
498
537
  detectorlogics:
499
538
  type: string
500
539
  description: Manually set detector logics (1/0) as text field
501
- range: "[text]"
502
540
  pattern: "^[01]*$"
503
541
  S0022:
504
542
  description: |-
@@ -509,7 +547,6 @@ objects:
509
547
  status:
510
548
  type: string
511
549
  description: Comma separated list of configured time plans. E.g. "1,2,3,5"
512
- range: "[text]"
513
550
  S0023:
514
551
  description: |-
515
552
  Dynamic bands.
@@ -529,7 +566,6 @@ objects:
529
566
 
530
567
  E.g.
531
568
  pp-dd-ee,pp-dd-ee
532
- range: "[text]"
533
569
  pattern: "(^$)|(^(?<item>(\\d{1,2})\\-\\d{1,2}-\\d{1,2})(,\\g<item>)*$)"
534
570
  S0024:
535
571
  description: |-
@@ -549,7 +585,6 @@ objects:
549
585
 
550
586
  E.g.
551
587
  pp-tt,pp-tt
552
- range: "[text]"
553
588
  pattern: "^(\\d{1,2}\\-\\d{1,2})(?:,(\\d{1,2}\\-\\d{1,2}))*$"
554
589
  S0026:
555
590
  description: |-
@@ -577,7 +612,6 @@ objects:
577
612
  Each segment is separated with a comma
578
613
  E.g.
579
614
  d-t,d-t
580
- range: "[text]"
581
615
  S0027:
582
616
  description: |-
583
617
  Time tables.
@@ -606,7 +640,6 @@ objects:
606
640
 
607
641
  E.g.
608
642
  t-o-h-m,t-o-h-m
609
- range: "[text]"
610
643
  S0028:
611
644
  description: |-
612
645
  Cycle time.
@@ -625,7 +658,6 @@ objects:
625
658
 
626
659
  E.g.
627
660
  pp-tt,pp-tt
628
- range: "[text]"
629
661
  S0029:
630
662
  description: |-
631
663
  Forced input status.
@@ -635,7 +667,6 @@ objects:
635
667
  status:
636
668
  type: string
637
669
  description: Forced input status as text field
638
- range: "[text]"
639
670
  S0030:
640
671
  description: |-
641
672
  Forced output status.
@@ -645,7 +676,6 @@ objects:
645
676
  status:
646
677
  type: string
647
678
  description: Forced output status as text field
648
- range: "[text]"
649
679
  S0031:
650
680
  description: |-
651
681
  Trigger level sensitivity for loop detector.
@@ -659,7 +689,54 @@ objects:
659
689
  dd=loop detector number
660
690
  ss=sensitivity value
661
691
  Each loop detector is separated with a comma. E.g.dd-ss,dd-ss.
662
- range: "[text]"
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
+ list: true
700
+ type: integer
701
+ description: |-
702
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
703
+ Use “0” for all intersections of the TLC.
704
+ min: 0
705
+ max: 255
706
+ status:
707
+ list: true
708
+ type: string
709
+ description: |-
710
+ local: Local coordination
711
+ centralized: Coordination with synchronized clock
712
+ off: Coordination not active
713
+ values:
714
+ local:
715
+ centralized:
716
+ off:
717
+ source:
718
+ description: Source of the status change
719
+ list: true
720
+ type: string
721
+ values:
722
+ operator_panel: Operator panel
723
+ calendar_clock: Calendar/clock
724
+ control_block: Control block
725
+ forced: Forced due to external command e.g. supervisor
726
+ startup: Set after startup mode
727
+ other: Other reason
728
+ S0034:
729
+ description: |-
730
+ Timeout for dynamic bands.
731
+ Time until a designated time plan is entered due to lost connection with the supervisor.
732
+ Disabled if set to '0'.
733
+ Used in conjunction with dynamic bands, M0014
734
+ arguments:
735
+ status:
736
+ type: integer
737
+ description: Timeout, in minutes
738
+ min: 0
739
+ max: 65535
663
740
  S0091:
664
741
  description: |-
665
742
  Operator logged in/out OP-panel.
@@ -692,7 +769,6 @@ objects:
692
769
  status:
693
770
  type: string
694
771
  description: Manufacturer, product name and version of traffic light controller
695
- range: "[text]"
696
772
  S0096:
697
773
  description: |-
698
774
  Current date and time
@@ -701,29 +777,35 @@ objects:
701
777
  year:
702
778
  type: integer
703
779
  description: 'Year according to format YYYY. NOTE: UTC is used'
704
- range: YYYY
780
+ min: 0
781
+ max: 9999
705
782
  month:
706
783
  type: integer
707
784
  description: 'Month (01-12) according to format MM. Note: UTC is used'
708
- range: MM
785
+ min: 1
786
+ max: 12
709
787
  day:
710
788
  type: integer
711
789
  description: 'Day of month (01-31) according to format DD. Note: UTC
712
790
  is used'
713
- range: DD
791
+ min: 1
792
+ max: 31
714
793
  hour:
715
794
  type: integer
716
795
  description: 'Hour of day (00-23) according to format DD. Note: UTC is
717
796
  used'
718
- range: HH
797
+ min: 0
798
+ max: 23
719
799
  minute:
720
800
  type: integer
721
801
  description: 'Minute (00-59) according to format MM. Note: UTC is used'
722
- range: MM
802
+ min: 0
803
+ max: 59
723
804
  second:
724
805
  type: integer
725
806
  description: 'Second (00-59) according to format SS. Note: UTC is used'
726
- range: SS
807
+ min: 0
808
+ max: 59
727
809
  S0097:
728
810
  description: |-
729
811
  Checksum of traffic parameters.
@@ -751,7 +833,6 @@ objects:
751
833
 
752
834
  Note:
753
835
  - The checksum should be calculated using the same data as used in S0098
754
- range: "[text]"
755
836
  timestamp:
756
837
  type: timestamp
757
838
  description: Time stamp of the checksum. Format according to W3C XML dateTime
@@ -794,7 +875,6 @@ objects:
794
875
  description: |-
795
876
  Version information of the configuration. Contains basic information such as controller id, changes to config and other information.
796
877
  The format is not specified in detail.
797
- range: "[text]"
798
878
  S0205:
799
879
  description: |-
800
880
  Traffic Counting: Number of vehicles.
@@ -962,8 +1042,10 @@ objects:
962
1042
  max: 1440
963
1043
  intersection:
964
1044
  list: true
965
- description: Intersection number
966
1045
  type: integer
1046
+ description: |-
1047
+ Comma separated list of intersections which the status relates to, e.g. “1,2”.
1048
+ Use “0” for all intersections of the TLC.
967
1049
  min: 0
968
1050
  max: 255
969
1051
  command: setValue
@@ -983,7 +1065,6 @@ objects:
983
1065
  securityCode:
984
1066
  type: string
985
1067
  description: Security code 2
986
- range: "[text]"
987
1068
  timeplan:
988
1069
  type: integer
989
1070
  description: designation of time plan
@@ -1004,7 +1085,6 @@ objects:
1004
1085
  securityCode:
1005
1086
  type: string
1006
1087
  description: Security code 2
1007
- range: "[text]"
1008
1088
  traficsituation:
1009
1089
  type: integer
1010
1090
  description: designation of traficsituation
@@ -1022,7 +1102,6 @@ objects:
1022
1102
  securityCode:
1023
1103
  type: string
1024
1104
  description: Security code 2
1025
- range: "[text]"
1026
1105
  command: setRestart
1027
1106
  M0005:
1028
1107
  description: |-
@@ -1034,12 +1113,11 @@ objects:
1034
1113
  status:
1035
1114
  type: boolean
1036
1115
  description: |-
1037
- False: Activate emergency route
1038
- True: Deactivate emergency route
1116
+ False: Deactivate emergency route
1117
+ True: Activate emergency route
1039
1118
  securityCode:
1040
1119
  type: string
1041
1120
  description: Security code 2
1042
- range: "[text]"
1043
1121
  emergencyroute:
1044
1122
  type: integer
1045
1123
  description: Number of emergency route
@@ -1062,7 +1140,6 @@ objects:
1062
1140
  securityCode:
1063
1141
  type: string
1064
1142
  description: Security code 2
1065
- range: "[text]"
1066
1143
  input:
1067
1144
  type: integer
1068
1145
  description: Number of Input
@@ -1083,7 +1160,6 @@ objects:
1083
1160
  securityCode:
1084
1161
  type: string
1085
1162
  description: Security code 2
1086
- range: "[text]"
1087
1163
  command: setFixedTime
1088
1164
  M0012:
1089
1165
  description: |-
@@ -1120,19 +1196,33 @@ objects:
1120
1196
  "5,4143,65:22,1,4"
1121
1197
 
1122
1198
  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
1199
  securityCode:
1125
1200
  type: string
1126
1201
  description: Security code 2
1127
- range: "[text]"
1128
1202
  command: setStart
1129
1203
  M0013:
1130
1204
  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
1205
+ Activate a series of inputs
1206
+
1207
+ 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.
1208
+
1209
+ Requires security code 2.
1210
+
1211
+ 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];…
1212
+
1213
+ - ‘Offset’ defines where the 16 inputs starts from
1214
+ - ‘Bits to set’ defines which bit(s) to set. ‘0’ if unsed
1215
+ - ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused
1216
+
1217
+ 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
1218
+
1219
+ 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
1220
+
1221
+ And both these examples could be sent in the same message as: “3,4143,65;12,1,4”
1222
+
1223
+ Such a message would set input 4,5,8,12,15 and unset input 3,9,14
1224
+
1225
+ 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
1226
  arguments:
1137
1227
  status:
1138
1228
  type: string
@@ -1155,11 +1245,9 @@ objects:
1155
1245
  "5,4143:65:22,1,4"
1156
1246
 
1157
1247
  Such a message would activate input 6,7,10,17,22 and deactivate input 5,11,24
1158
- range: "[text]"
1159
1248
  securityCode:
1160
1249
  type: string
1161
1250
  description: Security code 2
1162
- range: "[text]"
1163
1251
  command: setInput
1164
1252
  M0014:
1165
1253
  description: |-
@@ -1184,11 +1272,9 @@ objects:
1184
1272
 
1185
1273
  E.g.
1186
1274
  dd-ee,dd-ee
1187
- range: "[text]"
1188
1275
  securityCode:
1189
1276
  type: string
1190
1277
  description: Security code 2
1191
- range: "[text]"
1192
1278
  command: setCommands
1193
1279
  M0015:
1194
1280
  description: |-
@@ -1208,7 +1294,6 @@ objects:
1208
1294
  securityCode:
1209
1295
  type: string
1210
1296
  description: Security code 2
1211
- range: "[text]"
1212
1297
  command: setOffset
1213
1298
  M0016:
1214
1299
  description: |-
@@ -1238,11 +1323,9 @@ objects:
1238
1323
 
1239
1324
  E.g.
1240
1325
  d-t,d-t
1241
- range: "[text]"
1242
1326
  securityCode:
1243
1327
  type: string
1244
1328
  description: Security code 2
1245
- range: "[text]"
1246
1329
  command: setWeekTable
1247
1330
  M0017:
1248
1331
  description: |-
@@ -1273,11 +1356,9 @@ objects:
1273
1356
 
1274
1357
  E.g.
1275
1358
  t-o-h-m,t-o-h-m
1276
- range: "[text]"
1277
1359
  securityCode:
1278
1360
  type: string
1279
1361
  description: Security code 2
1280
- range: "[text]"
1281
1362
  command: setTimeTable
1282
1363
  M0018:
1283
1364
  description: |-
@@ -1297,7 +1378,6 @@ objects:
1297
1378
  securityCode:
1298
1379
  type: string
1299
1380
  description: Security code 2
1300
- range: "[text]"
1301
1381
  command: setCycleTime
1302
1382
  M0019:
1303
1383
  description: |-
@@ -1309,12 +1389,11 @@ objects:
1309
1389
  status:
1310
1390
  type: boolean
1311
1391
  description: |-
1312
- False: Force input
1313
- True: Release input
1392
+ False: Release input
1393
+ True: Force input
1314
1394
  securityCode:
1315
1395
  type: string
1316
1396
  description: Security code 2
1317
- range: "[text]"
1318
1397
  input:
1319
1398
  type: integer
1320
1399
  description: Number of Input
@@ -1340,7 +1419,6 @@ objects:
1340
1419
  securityCode:
1341
1420
  type: string
1342
1421
  description: Security code 2
1343
- range: "[text]"
1344
1422
  output:
1345
1423
  type: integer
1346
1424
  description: Number of Output
@@ -1364,12 +1442,167 @@ objects:
1364
1442
  Loop detector trigger level sensitivity is written as dd-ss where:
1365
1443
  dd=loop detector number
1366
1444
  ss=sensitivity value
1367
- range: "[text]"
1368
1445
  securityCode:
1369
1446
  type: string
1370
1447
  description: Security code 2
1371
- range: "[text]"
1372
1448
  command: setLevel
1449
+ M0022:
1450
+ description: |-
1451
+ Request Signal Priority
1452
+
1453
+ Useful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.
1454
+
1455
+ 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.
1456
+
1457
+ To understand how this command relates to ETSI/J2735, please see the wiki.
1458
+
1459
+ 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.
1460
+
1461
+ 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:
1462
+
1463
+ - 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.
1464
+ - 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.
1465
+ - Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.
1466
+ - Reference an intersection approach by setting ‘approachId’.
1467
+ - Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.
1468
+
1469
+ Referencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:
1470
+
1471
+ - signalGroupId
1472
+ - inputId
1473
+ - connectionId
1474
+ - approachId
1475
+ - laneInId
1476
+ - laneOutId
1477
+
1478
+ 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.
1479
+
1480
+ 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.
1481
+
1482
+ 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.
1483
+
1484
+ Like ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.
1485
+
1486
+ 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.
1487
+
1488
+ 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.
1489
+
1490
+ When you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.
1491
+
1492
+ 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.
1493
+
1494
+ 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.
1495
+
1496
+ 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.
1497
+
1498
+ 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’.
1499
+
1500
+ 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.
1501
+ arguments:
1502
+ requestId:
1503
+ type: string
1504
+ description: A string that uniquely identifies the request on the controller
1505
+ signalGroupId:
1506
+ type: string
1507
+ description: (Optional) ID of a signal group component.
1508
+ inputId:
1509
+ type: integer
1510
+ description: (Optional) ID of an input, using the same numbering scheme as M0006
1511
+ min: 0
1512
+ max: 255
1513
+ connectionId:
1514
+ type: integer
1515
+ description: (Optional) ID of a connection, connecting an ingoing and an outgoing lane
1516
+ min: 0
1517
+ max: 255
1518
+ approachId:
1519
+ type: integer
1520
+ description: (Optional) ID of an intersection approach
1521
+ min: 0
1522
+ max: 16
1523
+ laneInId:
1524
+ type: integer
1525
+ description: (Optional) ID of an ingoing lane
1526
+ min: 0
1527
+ max: 255
1528
+ laneOutId:
1529
+ type: integer
1530
+ description: (Optional) ID of an outgoing lane
1531
+ min: 0
1532
+ max: 255
1533
+ priorityId:
1534
+ type: integer
1535
+ description: (Optional) ID of a priority
1536
+ min: 0
1537
+ max: 255
1538
+ type:
1539
+ type: string
1540
+ description: |-
1541
+ new: New priority request
1542
+ update: Update to existing priority request
1543
+ cancel: Cancel an existing priority
1544
+ values:
1545
+ new:
1546
+ update:
1547
+ cancel:
1548
+ level:
1549
+ type: integer
1550
+ description: |-
1551
+ 0: Lowest, 14: Highest
1552
+ min: 0
1553
+ max: 14
1554
+ eta:
1555
+ type: integer
1556
+ description: (Optional) Estimated time of arrival to the intersection, in seconds
1557
+ min: 0
1558
+ max: 255
1559
+ vehicleType:
1560
+ type: string
1561
+ description: |-
1562
+ (Optional) Vehicle type
1563
+
1564
+ pedestrian: Pedestrians
1565
+ bicycle: Bicycles
1566
+ motorcycle: Motorcycles
1567
+ car: Passenger vehicle
1568
+ bus: Bus used for public transport
1569
+ lightTruck: Light truck
1570
+ heavyTruck: Heavy truck
1571
+ tram: Trams used for Public transport
1572
+ emergency: Police, fire or ambulance
1573
+ safetyCar: For e.g. escort vehicles
1574
+ specialTransport: For e.g. heavy load
1575
+ other: Other type of vehicle
1576
+ values:
1577
+ pedestrian:
1578
+ bicycle:
1579
+ motorcycle:
1580
+ car:
1581
+ bus:
1582
+ lightTruck:
1583
+ heavyTruck:
1584
+ tram:
1585
+ emergency:
1586
+ safetyCar:
1587
+ specialTransport:
1588
+ other:
1589
+ command: requestPriority
1590
+ M0023:
1591
+ description: |-
1592
+ Set timeout for dynamic bands
1593
+ Switch to a designated time plan if this timeout is reached due to lost connection with the supervisor.
1594
+ Disable by setting timeout to '0'.
1595
+ Used in conjunction with dynamic bands, M0014
1596
+ arguments:
1597
+ status:
1598
+ type: integer
1599
+ min: 0
1600
+ max: 65535
1601
+ description: Timeout, in minutes
1602
+ securityCode:
1603
+ type: string
1604
+ description: Security code 2
1605
+ command: setTimeout
1373
1606
  M0103:
1374
1607
  description: |-
1375
1608
  Set security code.
@@ -1384,11 +1617,9 @@ objects:
1384
1617
  oldSecurityCode:
1385
1618
  type: string
1386
1619
  description: Previous security code
1387
- range: "[text]"
1388
1620
  newSecurityCode:
1389
1621
  type: string
1390
1622
  description: New security code
1391
- range: "[text]"
1392
1623
  command: setSecurityCode
1393
1624
  M0104:
1394
1625
  description: |-
@@ -1399,43 +1630,48 @@ objects:
1399
1630
  securityCode:
1400
1631
  type: string
1401
1632
  description: Security code 1
1402
- range: "[text]"
1403
1633
  year:
1404
1634
  type: integer
1405
1635
  description: |-
1406
1636
  Changes internal clock. Note: UTC is used
1407
1637
  Year according to YYYY
1408
- range: "[YYYY]"
1638
+ min: 0
1639
+ max: 9999
1409
1640
  month:
1410
1641
  type: integer
1411
1642
  description: |-
1412
1643
  Changes internal clock. Note: UTC is used
1413
1644
  Month according to MM (01-12)
1414
- range: "[MM]"
1645
+ min: 1
1646
+ max: 12
1415
1647
  day:
1416
1648
  type: integer
1417
1649
  description: |-
1418
1650
  Changes internal clock. Note: UTC is used
1419
1651
  Day in month according to DD (01-31)
1420
- range: "[DD]"
1652
+ min: 1
1653
+ max: 31
1421
1654
  hour:
1422
1655
  type: integer
1423
1656
  description: |-
1424
1657
  Changes internal clock. Note: UTC is used
1425
1658
  Hour according to HH (00-23)
1426
- range: "[HH]"
1659
+ min: 0
1660
+ max: 23
1427
1661
  minute:
1428
1662
  type: integer
1429
1663
  description: |-
1430
1664
  Changes internal clock. Note: UTC is used
1431
1665
  Minute according to MM (00-59)
1432
- range: "[MM]"
1666
+ min: 0
1667
+ max: 59
1433
1668
  second:
1434
1669
  type: integer
1435
1670
  description: |-
1436
1671
  Changes internal clock. Note: UTC is used
1437
1672
  Second according to SS (00-59)
1438
- range: "[SS]"
1673
+ min: 0
1674
+ max: 59
1439
1675
  command: setDate
1440
1676
  Signal group:
1441
1677
  description:
@@ -1452,7 +1688,8 @@ objects:
1452
1688
  timeplan:
1453
1689
  type: integer
1454
1690
  description: Current time plan
1455
- range: "[designation]"
1691
+ min: 1
1692
+ max: 255
1456
1693
  A0101:
1457
1694
  description: |-
1458
1695
  Pushbutton error.
@@ -1549,7 +1786,6 @@ objects:
1549
1786
  securityCode:
1550
1787
  type: string
1551
1788
  description: Security code 2
1552
- range: "[text]"
1553
1789
  command: setStart
1554
1790
  M0011:
1555
1791
  description: |-
@@ -1566,7 +1802,6 @@ objects:
1566
1802
  securityCode:
1567
1803
  type: string
1568
1804
  description: Security code 2
1569
- range: "[text]"
1570
1805
  command: setStop
1571
1806
  Detector logic:
1572
1807
  description:
@@ -1631,6 +1866,61 @@ objects:
1631
1866
  always_off: no detection during predefined max time
1632
1867
  always_on: detection constantly on during predefined max time
1633
1868
  intermittent: intermittent logic fault (flutter)
1869
+ A0303:
1870
+ description: |-
1871
+ Serious detector error (hardware).
1872
+ 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.
1873
+ priority: 3
1874
+ category: D
1875
+ arguments:
1876
+ detector:
1877
+ type: string
1878
+ description: Designation of the detector (hardware)
1879
+ type:
1880
+ type: string
1881
+ description: Type of detector.
1882
+ values:
1883
+ loop: Inductive detector loop
1884
+ input: External input
1885
+ errormode:
1886
+ type: string
1887
+ description: Detector forced on/off while detector error
1888
+ # note that on and off must be quoted, otherwise they are parsed as true and false
1889
+ values: ['on','off']
1890
+ manual:
1891
+ type: boolean
1892
+ description: Manually controlled detector logic (True/False)
1893
+ A0304:
1894
+ description: |-
1895
+ Serious detector error (logic error).
1896
+ For instance; detector continuously on or off during an extended time.
1897
+ 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
1898
+ priority: 3
1899
+ category: D
1900
+ arguments:
1901
+ detector:
1902
+ type: string
1903
+ description: Designation of the detector (hardware)
1904
+ type:
1905
+ type: string
1906
+ description: Type of detector.
1907
+ values:
1908
+ loop: Inductive detector loop
1909
+ input: External input
1910
+ errormode:
1911
+ type: string
1912
+ description: Detector forced on/off while detector error
1913
+ values: ['on','off']
1914
+ manual:
1915
+ type: boolean
1916
+ description: Manually controlled detector logic (True/False)
1917
+ logicerror:
1918
+ type: string
1919
+ description: Type of logic error
1920
+ values:
1921
+ always_off: no detection during predefined max time
1922
+ always_on: detection constantly on during predefined max time
1923
+ intermittent: intermittent logic fault (flutter)
1634
1924
  statuses:
1635
1925
  S0201:
1636
1926
  description: |-
@@ -1643,10 +1933,11 @@ objects:
1643
1933
  XML dateTime with a resolution of 3 decimal places. All time stamps
1644
1934
  in UTC. E.g. 2009-10-02T14:34:34.341Z
1645
1935
  vehicles:
1646
- type: long
1936
+ type: integer
1647
1937
  description: Number of vehicles on a given detector logic (since last
1648
1938
  update)
1649
- range: "[number]"
1939
+ min: 0
1940
+ max: 65535
1650
1941
  S0202:
1651
1942
  description: |-
1652
1943
  Traffic Counting: Vehicle speed.
@@ -1661,7 +1952,7 @@ objects:
1661
1952
  speed:
1662
1953
  type: integer
1663
1954
  description: Average speed in km/h
1664
- range: "[speed]"
1955
+ min: 0
1665
1956
  S0203:
1666
1957
  description: |-
1667
1958
  Traffic Counting: Occupancy.
@@ -1689,41 +1980,41 @@ objects:
1689
1980
  XML dateTime with a resolution of 3 decimal places. All time stamps
1690
1981
  in UTC. E.g. 2009-10-02T14:34:34.341Z
1691
1982
  P:
1692
- type: long
1983
+ type: integer
1693
1984
  description: Number of cars
1694
- range: "[number]"
1985
+ min: 0
1695
1986
  PS:
1696
- type: long
1987
+ type: integer
1697
1988
  description: Number of cars with trailers
1698
- range: "[number]"
1989
+ min: 0
1699
1990
  L:
1700
- type: long
1991
+ type: integer
1701
1992
  description: Number of trucks
1702
- range: "[number]"
1993
+ min: 0
1703
1994
  LS:
1704
- type: long
1995
+ type: integer
1705
1996
  description: Number of trucks with trailers
1706
- range: "[number]"
1997
+ min: 0
1707
1998
  B:
1708
- type: long
1999
+ type: integer
1709
2000
  description: Number of busses
1710
- range: "[number]"
2001
+ min: 0
1711
2002
  SP:
1712
- type: long
2003
+ type: integer
1713
2004
  description: Number of trams
1714
- range: "[number]"
2005
+ min: 0
1715
2006
  MC:
1716
- type: long
2007
+ type: integer
1717
2008
  description: Number of motor cycles
1718
- range: "[number]"
2009
+ min: 0
1719
2010
  C:
1720
- type: long
2011
+ type: integer
1721
2012
  description: Number of bicycles
1722
- range: "[number]"
2013
+ min: 0
1723
2014
  F:
1724
- type: long
2015
+ type: integer
1725
2016
  description: Number of pedestrians
1726
- range: "[number]"
2017
+ min: 0
1727
2018
  commands:
1728
2019
  M0008:
1729
2020
  description: |-
@@ -1740,7 +2031,6 @@ objects:
1740
2031
  securityCode:
1741
2032
  type: string
1742
2033
  description: Security code 2
1743
- range: "[text]"
1744
2034
  mode:
1745
2035
  type: boolean
1746
2036
  description: |-