rsmp_schema 0.4.0 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +10 -4
  3. data/lib/rsmp_schema/version.rb +1 -1
  4. data/schemas/tlc/1.0.10/commands/M0001.json +6 -8
  5. data/schemas/tlc/1.0.10/sxl.yaml +1 -1
  6. data/schemas/tlc/1.0.13/commands/M0001.json +6 -8
  7. data/schemas/tlc/1.0.13/sxl.yaml +1 -1
  8. data/schemas/tlc/1.0.14/commands/M0001.json +6 -8
  9. data/schemas/tlc/1.0.14/sxl.yaml +1 -1
  10. data/schemas/tlc/1.0.15/commands/M0001.json +6 -8
  11. data/schemas/tlc/1.0.15/sxl.yaml +1 -1
  12. data/schemas/tlc/1.0.7/commands/M0001.json +6 -8
  13. data/schemas/tlc/1.0.7/sxl.yaml +1 -1
  14. data/schemas/tlc/1.0.8/commands/M0001.json +6 -8
  15. data/schemas/tlc/1.0.8/sxl.yaml +1 -1
  16. data/schemas/tlc/1.0.9/commands/M0001.json +6 -8
  17. data/schemas/tlc/1.0.9/sxl.yaml +1 -1
  18. data/schemas/tlc/1.1/alarms/A0009.json +1 -1
  19. data/schemas/tlc/1.1/commands/M0001.json +10 -18
  20. data/schemas/tlc/1.1/commands/M0013.json +2 -2
  21. data/schemas/tlc/1.1/commands/M0022.json +10 -11
  22. data/schemas/tlc/1.1/commands/M0023.json +1 -1
  23. data/schemas/tlc/1.1/commands/M0104.json +7 -7
  24. data/schemas/tlc/1.1/statuses/S0001.json +1 -1
  25. data/schemas/tlc/1.1/statuses/S0003.json +2 -2
  26. data/schemas/tlc/1.1/statuses/S0004.json +2 -2
  27. data/schemas/tlc/1.1/statuses/S0006.json +2 -2
  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 +1 -1
  35. data/schemas/tlc/1.1/statuses/S0014.json +9 -8
  36. data/schemas/tlc/1.1/statuses/S0015.json +9 -8
  37. data/schemas/tlc/1.1/statuses/S0020.json +1 -1
  38. data/schemas/tlc/1.1/statuses/S0024.json +2 -2
  39. data/schemas/tlc/1.1/statuses/S0032.json +0 -1
  40. data/schemas/tlc/1.1/statuses/S0033.json +3 -3
  41. data/schemas/tlc/1.1/statuses/S0096.json +7 -7
  42. data/schemas/tlc/1.1/statuses/S0097.json +1 -1
  43. data/schemas/tlc/1.1/statuses/S0204.json +1 -1
  44. data/schemas/tlc/1.1/statuses/S0208.json +1 -1
  45. data/schemas/tlc/1.1/sxl.yaml +188 -180
  46. metadata +3 -3
@@ -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: not used (set to null)
38
- functional_state: not used (set to null)
37
+ functional_position: null
38
+ functional_state: null
39
39
  alarms:
40
40
  A0001:
41
41
  description: |-
@@ -90,7 +90,7 @@ objects:
90
90
  A0009:
91
91
  description: |-
92
92
  Other error.
93
- Used for other errors not covered by any other alarm type
93
+ Used for other errors not covered by any other alarm type.
94
94
  Is a "minor fault" defined according to 3.11 in EN12675.
95
95
  priority: 3
96
96
  category: D
@@ -123,7 +123,7 @@ objects:
123
123
  Is counted from 0 until it reaches the cycle time (See S0028).
124
124
 
125
125
  c = (b + o) mod t
126
-
126
+
127
127
  where c = cycle counter,
128
128
  b = base cycle counter,
129
129
  o = offset,
@@ -169,15 +169,21 @@ objects:
169
169
  arguments:
170
170
  inputstatus:
171
171
  type: string
172
- description: Input status as text field
172
+ description: |-
173
+ Input status as text field
174
+ Each character represent the state of the input in consecutive order.
175
+ 0 : Input is not active
176
+ 1 : Input is active
177
+ - : Input is undefined/does not exist
173
178
  extendedinputstatus:
174
179
  type: string
180
+ deprecated: true
175
181
  description: |-
176
182
  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
183
+ Each character represent the state of the extended input status in consecutive order.
184
+ 0 : Input is not active
185
+ 1 : Input is active
186
+ - : Input is undefined/does not exist
181
187
  S0004:
182
188
  description: |-
183
189
  Output status.
@@ -186,15 +192,21 @@ objects:
186
192
  arguments:
187
193
  outputstatus:
188
194
  type: string
189
- description: Output status as text field
195
+ description: |-
196
+ Output status as text field
197
+ Each character represent the state of the output status in consecutive order.
198
+ 0 : Output is not active
199
+ 1 : Output is active
200
+ - : Output is undefined/does not exist
190
201
  extendedoutputstatus:
191
202
  type: string
203
+ deprecated: true
192
204
  description: |-
193
205
  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
206
+ Each character represent the state of the extended output status in consecutive order.
207
+ 0 : Output is not active
208
+ 1 : Output is active
209
+ - : Output is undefined/does not exist
198
210
  S0005:
199
211
  description: |-
200
212
  Traffic Light Controller starting.
@@ -208,9 +220,10 @@ objects:
208
220
  True: Controller is currently in start up mode
209
221
  S0006:
210
222
  description: |-
211
- Emergency stage.
223
+ Emergency route.
212
224
  The status is active during emergency prioritization.
213
225
  Used in situations where full priority is given in the emergency vehicle program.
226
+ If no emergency route is active, status should be set to False, and emergencystage to zero.
214
227
  arguments:
215
228
  status:
216
229
  type: boolean
@@ -219,8 +232,8 @@ objects:
219
232
  True: Emergency stage active
220
233
  emergencystage:
221
234
  type: integer
222
- description: Number of emergency stage
223
- min: 1
235
+ description: Number of emergency stage (set to zero if no route is active)
236
+ min: 0
224
237
  max: 255
225
238
  S0007:
226
239
  description: |-
@@ -228,6 +241,7 @@ objects:
228
241
  The controller is active and is not in dark mode.
229
242
  Used to determine if the controller is operating, e.g. it shows red, green or yellow to the vehicles.
230
243
  During maintenance work the controller might be using dark mode (no output to the signal heads).
244
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "0" and "True" (one intersection) or "1,2" and "True,False" (two intersections).
231
245
  arguments:
232
246
  intersection:
233
247
  type: integer_list
@@ -245,17 +259,18 @@ objects:
245
259
  description: Source of the status change
246
260
  type: string_list
247
261
  values:
248
- operator_panel: Operator panel
249
- calendar_clock: Calendar/clock
250
- control_block: Control block
251
- forced: Forced due to external command e.g. supervisor
252
- startup: Set after startup mode
262
+ operator_panel: Operator panel
263
+ calendar_clock: Calendar/clock
264
+ control_block: Control block
265
+ forced: Forced due to external command e.g. supervisor
266
+ startup: Set after startup mode
253
267
  other: Other reason
254
268
  S0008:
255
269
  description: |-
256
270
  Manual control.
257
- Traffic control deactivated in controller
271
+ Traffic control deactivated in controller.
258
272
  Signal timings is controlled manually by service personnel using the operating panel of the controller.
273
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "0" and "True" (one intersection) or "1,2" and "True,False" (two intersections).
259
274
  arguments:
260
275
  intersection:
261
276
  type: integer_list
@@ -273,17 +288,18 @@ objects:
273
288
  type: string_list
274
289
  description: Source of the status change
275
290
  values:
276
- operator_panel: Operator panel
277
- calendar_clock: Calendar/clock
278
- control_block: Control block
279
- forced: Forced due to external command e.g. supervisor
280
- startup: Set after startup mode
291
+ operator_panel: Operator panel
292
+ calendar_clock: Calendar/clock
293
+ control_block: Control block
294
+ forced: Forced due to external command e.g. supervisor
295
+ startup: Set after startup mode
281
296
  other: Other reason
282
297
  S0009:
283
298
  description: |-
284
299
  Fixed time control.
285
300
  Traffic actuated control deactivated and a pre-timed control is used.
286
301
  Usually only used in case normal detectors can't be used, e.g. during maintenance work.
302
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "0" and "True" (one intersection) or "1,2" and "True,False" (two intersections).
287
303
  arguments:
288
304
  intersection:
289
305
  type: integer_list
@@ -301,17 +317,18 @@ objects:
301
317
  type: string_list
302
318
  description: Source of the status change
303
319
  values:
304
- operator_panel: Operator panel
305
- calendar_clock: Calendar/clock
306
- control_block: Control block
307
- forced: Forced due to external command e.g. supervisor
308
- startup: Set after startup mode
320
+ operator_panel: Operator panel
321
+ calendar_clock: Calendar/clock
322
+ control_block: Control block
323
+ forced: Forced due to external command e.g. supervisor
324
+ startup: Set after startup mode
309
325
  other: Other reason
310
326
  S0010:
311
327
  description: |-
312
328
  Isolated control.
313
- Isolated control mode indicates that the controller operates independently of any other traffic light controllers. This may different depending on traffic program (time plan).
329
+ Isolated control mode indicates that the controller operates independently of any other traffic light controller. This may be different depending on traffic program (time plan).
314
330
  Used to determine if the controller is operating independently or operating with other controllers (coordination).
331
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "0" and "True" (one intersection) or "1,2" and "True,False" (two intersections).
315
332
  arguments:
316
333
  intersection:
317
334
  type: integer_list
@@ -329,17 +346,19 @@ objects:
329
346
  type: string_list
330
347
  description: Source of the status change
331
348
  values:
332
- operator_panel: Operator panel
333
- calendar_clock: Calendar/clock
334
- control_block: Control block
335
- forced: Forced due to external command e.g. supervisor
336
- startup: Set after startup mode
349
+ operator_panel: Operator panel
350
+ calendar_clock: Calendar/clock
351
+ control_block: Control block
352
+ forced: Forced due to external command e.g. supervisor
353
+ startup: Set after startup mode
337
354
  other: Other reason
338
355
  S0011:
339
356
  description: |-
340
357
  Yellow flash.
341
358
  The controller shows yellow flash.
342
359
  Yellow flash may be used during a serious fault (depending on configuration) or maintenance work. It can also be manually set using M0001.
360
+ Some countries may use yellow flash as an normal operating mode, and not necessarily during fault.
361
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "True,False"
343
362
  arguments:
344
363
  intersection:
345
364
  type: integer_list
@@ -357,17 +376,18 @@ objects:
357
376
  type: string_list
358
377
  description: Source of the status change
359
378
  values:
360
- operator_panel: Operator panel
361
- calendar_clock: Calendar/clock
362
- control_block: Control block
363
- forced: Forced due to external command e.g. supervisor
364
- startup: Set after startup mode
379
+ operator_panel: Operator panel
380
+ calendar_clock: Calendar/clock
381
+ control_block: Control block
382
+ forced: Forced due to external command e.g. supervisor
383
+ startup: Set after startup mode
365
384
  other: Other reason
366
385
  S0012:
367
386
  description: |-
368
387
  All red.
369
388
  The controller show all red.
370
389
  All red can be manually set using the controllers operating panel during maintenance work.
390
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "True,False"
371
391
  arguments:
372
392
  intersection:
373
393
  type: integer_list
@@ -385,17 +405,18 @@ objects:
385
405
  type: string_list
386
406
  description: Source of the status change
387
407
  values:
388
- operator_panel: Operator panel
389
- calendar_clock: Calendar/clock
390
- control_block: Control block
391
- forced: Forced due to external command e.g. supervisor
392
- startup: Set after startup mode
408
+ operator_panel: Operator panel
409
+ calendar_clock: Calendar/clock
410
+ control_block: Control block
411
+ forced: Forced due to external command e.g. supervisor
412
+ startup: Set after startup mode
393
413
  other: Other reason
394
414
  S0013:
395
415
  description: |-
396
416
  Police key
397
417
  The controller is forced to dark mode or yellow flash.
398
418
  The "police key" is a external control switch present in some controllers that manually switches the controller to either dark mode or yellow flash.
419
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "0,1"
399
420
  arguments:
400
421
  intersection:
401
422
  type: integer_list
@@ -423,14 +444,14 @@ objects:
423
444
  min: 1
424
445
  max: 255
425
446
  source:
426
- type: string_list
447
+ type: string
427
448
  description: Source of the status change
428
449
  values:
429
- operator_panel: Operator panel
430
- calendar_clock: Calendar/clock
431
- control_block: Control block
432
- forced: Forced due to external command e.g. supervisor
433
- startup: Set after startup mode
450
+ operator_panel: Operator panel
451
+ calendar_clock: Calendar/clock
452
+ control_block: Control block
453
+ forced: Forced due to external command e.g. supervisor
454
+ startup: Set after startup mode
434
455
  other: Other reason
435
456
  S0015:
436
457
  description: |-
@@ -445,14 +466,14 @@ objects:
445
466
  min: 1
446
467
  max: 255
447
468
  source:
448
- type: string_list
469
+ type: string
449
470
  description: Source of the status change
450
471
  values:
451
- operator_panel: Operator panel
452
- calendar_clock: Calendar/clock
453
- control_block: Control block
454
- forced: Forced due to external command e.g. supervisor
455
- startup: Set after startup mode
472
+ operator_panel: Operator panel
473
+ calendar_clock: Calendar/clock
474
+ control_block: Control block
475
+ forced: Forced due to external command e.g. supervisor
476
+ startup: Set after startup mode
456
477
  other: Other reason
457
478
  S0016:
458
479
  description: |-
@@ -498,6 +519,7 @@ objects:
498
519
  description: |-
499
520
  Control mode.
500
521
  Can be used for the management system to check the current control mode (startup, normal, standby, failure, test).
522
+ Please note that all values in this status uses comma-separated lists - one value for each intersection, e.g. "1,2" and "startup,control"
501
523
  arguments:
502
524
  intersection:
503
525
  type: integer_list
@@ -563,15 +585,15 @@ objects:
563
585
  type: string
564
586
  description: |-
565
587
  Offset table
566
- Each offset time is written as pp-tt where:
567
- pp=time plan
568
- tt=offset time in seconds
588
+ Each offset time is written as p-t where:
589
+ p=time plan number (from 1 to 255)
590
+ t=offset time in seconds (from 0 to 255)
569
591
 
570
592
  Each offset time is separated with a comma
571
593
 
572
594
  E.g.
573
- pp-tt,pp-tt
574
- pattern: "^(\\d{1,2}\\-\\d{1,2})(?:,(\\d{1,2}\\-\\d{1,2}))*$"
595
+ 1-0,2-13-3-7
596
+ pattern: "^(\\d{1,3}\\-\\d{1,3})(?:,(\\d{1,3}\\-\\d{1,3}))*$"
575
597
  S0026:
576
598
  description: |-
577
599
  Week time table.
@@ -690,14 +712,10 @@ objects:
690
712
  max: 255
691
713
  status:
692
714
  type: string_list
693
- description: |-
715
+ values:
694
716
  local: Local coordination
695
717
  centralized: Coordination with synchronized clock
696
- off: Coordination not active
697
- values:
698
- local:
699
- centralized:
700
- 'off':
718
+ 'off': Coordination not active
701
719
  source:
702
720
  description: Source of the status change
703
721
  type: string_list
@@ -715,10 +733,21 @@ objects:
715
733
  A list of priorities is returned, referred to by their request ids. The same request id can appear only once.
716
734
  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
735
  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.
736
+ To understand how this status relates to ETSI/J2735, please see the [wiki](https://github.com/rsmp-nordic/rsmp_sxl_traffic_lights/wiki/Signal-priority-and-ETSI-J2735).
719
737
  All priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used.
720
738
  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
739
  A request always starts in the ‘received’ state. The following table shows the possible state transitions:
740
+
741
+ State | Possible next states
742
+ ---------- | -------------------------------------
743
+ received | queued, activated, rejected, cooldown
744
+ queued | activated, timeout
745
+ activated | completed, stale
746
+ completed |
747
+ timeout |
748
+ rejected |
749
+ cooldown |
750
+ stale |
722
751
  arguments:
723
752
  status:
724
753
  description: JSON array of priority status items
@@ -749,7 +778,7 @@ objects:
749
778
  e:
750
779
  type: integer
751
780
  description: |-
752
- (Optional) Estimated green extension provided by the priority, in seconds
781
+ Estimated green extension provided by the priority, in seconds
753
782
  Only used when state is ‘completed’.
754
783
  optional: true
755
784
  min: 0
@@ -757,7 +786,7 @@ objects:
757
786
  d:
758
787
  type: integer
759
788
  description: |-
760
- (Optional) Estimated red reduction provided by the priority, in seconds
789
+ Estimated red reduction provided by the priority, in seconds
761
790
  Only used when state is ‘completed’.
762
791
  optional: true
763
792
  min: 0
@@ -782,8 +811,8 @@ objects:
782
811
  user:
783
812
  type: integer
784
813
  values:
785
- 0: Nobody logged in
786
- 1: Operator logged in at level 1 (read only)
814
+ 0: Nobody logged in
815
+ 1: Operator logged in at level 1 (read only)
787
816
  2: Operator logged in at level 2 (read/write)
788
817
  S0092:
789
818
  description: |-
@@ -793,8 +822,8 @@ objects:
793
822
  user:
794
823
  type: integer
795
824
  values:
796
- 0: Nobody logged in
797
- 1: Operator logged in at level 1 (read only)
825
+ 0: Nobody logged in
826
+ 1: Operator logged in at level 1 (read only)
798
827
  2: Operator logged in at level 2 (read/write)
799
828
  S0095:
800
829
  description: |-
@@ -806,39 +835,38 @@ objects:
806
835
  description: Manufacturer, product name and version of traffic light controller
807
836
  S0096:
808
837
  description: |-
809
- Current date and time
838
+ Current date and time.
839
+ Note: UTC is used.
810
840
  Provides diagnostic information about the current date and time set in the controller.
811
841
  arguments:
812
842
  year:
813
843
  type: integer
814
- description: 'Year according to format YYYY. NOTE: UTC is used'
844
+ description: Year
815
845
  min: 0
816
846
  max: 9999
817
847
  month:
818
848
  type: integer
819
- description: 'Month (01-12) according to format MM. Note: UTC is used'
849
+ description: Month
820
850
  min: 1
821
851
  max: 12
822
852
  day:
823
853
  type: integer
824
- description: 'Day of month (01-31) according to format DD. Note: UTC
825
- is used'
854
+ description: Day of month
826
855
  min: 1
827
856
  max: 31
828
857
  hour:
829
858
  type: integer
830
- description: 'Hour of day (00-23) according to format DD. Note: UTC is
831
- used'
859
+ description: Hour
832
860
  min: 0
833
861
  max: 23
834
862
  minute:
835
863
  type: integer
836
- description: 'Minute (00-59) according to format MM. Note: UTC is used'
864
+ description: Minute
837
865
  min: 0
838
866
  max: 59
839
867
  second:
840
868
  type: integer
841
- description: 'Second (00-59) according to format SS. Note: UTC is used'
869
+ description: Second
842
870
  min: 0
843
871
  max: 59
844
872
  S0097:
@@ -868,6 +896,7 @@ objects:
868
896
 
869
897
  Note:
870
898
  - The checksum should be calculated using the same data as used in S0098
899
+ - Data Downloaded with S0098 and hashed with SHA-2 should match this value.
871
900
  timestamp:
872
901
  type: timestamp
873
902
  description: Time stamp of the checksum. Format according to W3C XML dateTime
@@ -925,7 +954,7 @@ objects:
925
954
  - Value expressed as an integer with a range of 0-65535.
926
955
  - Contains data from all detector logics. Each detector logic is separated with a comma.
927
956
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
928
- min: 0
957
+ min: -1
929
958
  max: 65535
930
959
  S0206:
931
960
  description: |-
@@ -945,7 +974,7 @@ objects:
945
974
  - Value expressed as an integer with a range of 0-65535.
946
975
  - Contains data from all detector logics. Each detector logic is separated with a comma.
947
976
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
948
- min: 0
977
+ min: -1
949
978
  max: 65535
950
979
  S0207:
951
980
  description: |-
@@ -965,7 +994,7 @@ objects:
965
994
  - Value expressed as an integer with a range of 0-100.
966
995
  - Contains data from all detector logics. Each detector logic is separated with a comma.
967
996
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
968
- min: 0
997
+ min: -1
969
998
  max: 100
970
999
  S0208:
971
1000
  description: |-
@@ -985,7 +1014,7 @@ objects:
985
1014
  - Value expressed as an integer with a range of 0-65535.
986
1015
  - Contains data from all detector logics. Each detector logic is separated with a comma.
987
1016
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
988
- min: 0
1017
+ min: -1
989
1018
  max: 65535
990
1019
  PS:
991
1020
  type: integer_list
@@ -994,7 +1023,7 @@ objects:
994
1023
  - Value expressed as an integer with a range of 0-65535.
995
1024
  - Contains data from all detector logics. Each detector logic is separated with a comma.
996
1025
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
997
- min: 0
1026
+ min: -1
998
1027
  max: 65535
999
1028
  L:
1000
1029
  type: integer_list
@@ -1003,7 +1032,7 @@ objects:
1003
1032
  - Value expressed as an integer with a range of 0-65535.
1004
1033
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1005
1034
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1006
- min: 0
1035
+ min: -1
1007
1036
  max: 65535
1008
1037
  LS:
1009
1038
  type: integer_list
@@ -1012,16 +1041,16 @@ objects:
1012
1041
  - Value expressed as an integer with a range of 0-65535.
1013
1042
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1014
1043
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1015
- min: 0
1044
+ min: -1
1016
1045
  max: 65535
1017
1046
  B:
1018
1047
  type: integer_list
1019
1048
  description: |-
1020
- Number of busses.
1049
+ Number of buses.
1021
1050
  - Value expressed as an integer with a range of 0-65535.
1022
1051
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1023
1052
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1024
- min: 0
1053
+ min: -1
1025
1054
  max: 65535
1026
1055
  SP:
1027
1056
  type: integer_list
@@ -1030,7 +1059,7 @@ objects:
1030
1059
  - Value expressed as an integer with a range of 0-65535.
1031
1060
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1032
1061
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1033
- min: 0
1062
+ min: -1
1034
1063
  max: 65535
1035
1064
  MC:
1036
1065
  type: integer_list
@@ -1039,7 +1068,7 @@ objects:
1039
1068
  - Value expressed as an integer with a range of 0-65535.
1040
1069
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1041
1070
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1042
- min: 0
1071
+ min: -1
1043
1072
  max: 65535
1044
1073
  C:
1045
1074
  type: integer_list
@@ -1048,7 +1077,7 @@ objects:
1048
1077
  - Value expressed as an integer with a range of 0-65535.
1049
1078
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1050
1079
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1051
- min: 0
1080
+ min: -1
1052
1081
  max: 65535
1053
1082
  F:
1054
1083
  type: integer_list
@@ -1057,7 +1086,7 @@ objects:
1057
1086
  - Value expressed as an integer with a range of 0-65535.
1058
1087
  - Contains data from all detector logics. Each detector logic is separated with a comma.
1059
1088
  - The value is set to “-1” if no data could be measured (e.g. detector fault)
1060
- min: 0
1089
+ min: -1
1061
1090
  max: 65535
1062
1091
  commands:
1063
1092
  M0001:
@@ -1067,14 +1096,14 @@ objects:
1067
1096
  Requires security code 2.
1068
1097
  arguments:
1069
1098
  status:
1070
- type: string_list
1099
+ type: string
1071
1100
  description: Set operating mode
1072
1101
  values:
1073
1102
  NormalControl: Normal Control
1074
1103
  YellowFlash: Enables yellow flash
1075
1104
  Dark: Enables dark mode
1076
1105
  securityCode:
1077
- type: string_list
1106
+ type: string
1078
1107
  description: Security code 2
1079
1108
  timeout:
1080
1109
  type: integer
@@ -1084,10 +1113,8 @@ objects:
1084
1113
  min: 0
1085
1114
  max: 1440
1086
1115
  intersection:
1087
- type: integer_list
1088
- description: |-
1089
- Comma separated list of intersections which the status relates to, e.g. “1,2”.
1090
- Use “0” for all intersections of the TLC.
1116
+ type: integer
1117
+ description: Intersection number
1091
1118
  min: 0
1092
1119
  max: 255
1093
1120
  command: setValue
@@ -1217,6 +1244,7 @@ objects:
1217
1244
  Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1218
1245
  May also include purposes for adaptive control where a UTC system or a local traffic light controller takes over the phase control (stage control).
1219
1246
  Requires security code 2.
1247
+ reserved: true
1220
1248
  arguments:
1221
1249
  status:
1222
1250
  type: string
@@ -1257,40 +1285,36 @@ objects:
1257
1285
  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];…
1258
1286
 
1259
1287
  - ‘Offset’ defines where the 16 inputs starts from
1260
- - ‘Bits to set’ defines which bit(s) to set. ‘0’ if unsed
1288
+ - ‘Bits to set’ defines which bit(s) to set. ‘0’ if unused
1261
1289
  - ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused
1262
1290
 
1263
- 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
1291
+ Example 1:
1292
+ “3,4134,65” sets input 4,5,8,15 and unsets 3,9
1293
+ - Input starts from no. 5
1294
+ - “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
1295
+ - “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
1264
1296
 
1265
- 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
1297
+ Example 2:
1298
+ “12,1,4” sets input 12 and unsets 14
1299
+ - Input starts from no. 12
1300
+ - “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
1301
+ - “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
1266
1302
 
1267
1303
  And both these examples could be sent in the same message as: “3,4143,65;12,1,4”
1268
1304
 
1269
1305
  Such a message would set input 4,5,8,12,15 and unset input 3,9,14
1270
1306
 
1271
- 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
1307
+ Example 3:
1308
+ “0,1,2” sets input 0 and unsets 1
1309
+ - Input starts from 0
1310
+ - “1” is 1 in binary, which is bit 0
1311
+ - “2” is 10 in binary, which is bit 1
1272
1312
  arguments:
1273
1313
  status:
1274
1314
  type: string
1275
1315
  description: |-
1276
- Sets/Unsets a block of 16 inputs at a time. Can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon. Since semicolon breaks the SXL csv-format, colon, ":" is used in example below.
1277
-
1278
- Format: [Offset],[Bits to set],[Bits to unset]:…
1279
-
1280
- Offset sets where the 16 inputs starts from followed by two 16 bit values telling which bit to set and unset in binary format, i.e. first bit have value 1 and last bit have value 32768.
1281
-
1282
- Example 1:
1283
- "5, 4134, 65" sets input 6,7,10,17 = on and 5,11 = off
1284
- (Input starts from no. 5 and bit 1,2,5,12 = 1 and bit 0,6 = 0)
1285
-
1286
- Example 2:
1287
- "22, 1, 4" sets input 22 = on and 24 = off
1288
- (Input starts from no. 22 and bit 0 = 1 and bit 2 = 0)
1289
-
1290
- And both thease examples could be sent in the same message as:
1291
- "5,4143:65:22,1,4"
1292
-
1293
- Such a message would activate input 6,7,10,17,22 and deactivate input 5,11,24
1316
+ Sets/Unsets a block of 16 inputs at a time. Can be repeated to set several blocks of 16 inputs. Values are separated with comma. Blocks are separated with semicolon.
1317
+ Format: [Offset];[Bits to set];[Bits to unset];…
1294
1318
  securityCode:
1295
1319
  type: string
1296
1320
  description: Security code 2
@@ -1507,7 +1531,7 @@ objects:
1507
1531
 
1508
1532
  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.
1509
1533
 
1510
- To understand how this command relates to ETSI/J2735, please see the wiki.
1534
+ To understand how this command relates to ETSI/J2735, please see the [wiki](https://github.com/rsmp-nordic/rsmp_sxl_traffic_lights/wiki/Signal-priority-and-ETSI-J2735).
1511
1535
 
1512
1536
  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.
1513
1537
 
@@ -1558,53 +1582,49 @@ objects:
1558
1582
  signalGroupId:
1559
1583
  type: string
1560
1584
  optional: true
1561
- description: (Optional) ID of a signal group component.
1585
+ description: ID of a signal group component.
1562
1586
  inputId:
1563
1587
  type: integer
1564
1588
  optional: true
1565
- description: (Optional) ID of an input, using the same numbering scheme as M0006
1589
+ description: ID of an input, using the same numbering scheme as M0006
1566
1590
  min: 0
1567
1591
  max: 255
1568
1592
  connectionId:
1569
1593
  type: integer
1570
1594
  optional: true
1571
- description: (Optional) ID of a connection, connecting an ingoing and an outgoing lane
1595
+ description: ID of a connection, connecting an ingoing and an outgoing lane
1572
1596
  min: 0
1573
1597
  max: 255
1574
1598
  approachId:
1575
1599
  type: integer
1576
1600
  optional: true
1577
- description: (Optional) ID of an intersection approach
1601
+ description: ID of an intersection approach
1578
1602
  min: 0
1579
1603
  max: 16
1580
1604
  laneInId:
1581
1605
  type: integer
1582
1606
  optional: true
1583
- description: (Optional) ID of an ingoing lane
1607
+ description: ID of an ingoing lane
1584
1608
  min: 0
1585
1609
  max: 255
1586
1610
  laneOutId:
1587
1611
  type: integer
1588
1612
  optional: true
1589
- description: (Optional) ID of an outgoing lane
1613
+ description: ID of an outgoing lane
1590
1614
  min: 0
1591
1615
  max: 255
1592
1616
  priorityId:
1593
1617
  type: integer
1594
1618
  optional: true
1595
- description: (Optional) ID of a priority
1619
+ description: ID of a priority
1596
1620
  min: 0
1597
1621
  max: 255
1598
1622
  type:
1599
1623
  type: string
1600
- description: |-
1624
+ values:
1601
1625
  new: New priority request
1602
1626
  update: Update to existing priority request
1603
1627
  cancel: Cancel an existing priority
1604
- values:
1605
- new:
1606
- update:
1607
- cancel:
1608
1628
  level:
1609
1629
  type: integer
1610
1630
  description: |-
@@ -1614,15 +1634,14 @@ objects:
1614
1634
  eta:
1615
1635
  type: integer
1616
1636
  optional: true
1617
- description: (Optional) Estimated time of arrival to the intersection, in seconds
1637
+ description: Estimated time of arrival to the intersection, in seconds
1618
1638
  min: 0
1619
1639
  max: 255
1620
1640
  vehicleType:
1621
1641
  type: string
1622
1642
  optional: true
1623
- description: |-
1624
- (Optional) Vehicle type
1625
-
1643
+ description: Vehicle type
1644
+ values:
1626
1645
  pedestrian: Pedestrians
1627
1646
  bicycle: Bicycles
1628
1647
  motorcycle: Motorcycles
@@ -1635,19 +1654,6 @@ objects:
1635
1654
  safetyCar: For e.g. escort vehicles
1636
1655
  specialTransport: For e.g. heavy load
1637
1656
  other: Other type of vehicle
1638
- values:
1639
- pedestrian:
1640
- bicycle:
1641
- motorcycle:
1642
- car:
1643
- bus:
1644
- lightTruck:
1645
- heavyTruck:
1646
- tram:
1647
- emergency:
1648
- safetyCar:
1649
- specialTransport:
1650
- other:
1651
1657
  command: requestPriority
1652
1658
  M0023:
1653
1659
  description: |-
@@ -1655,6 +1661,7 @@ objects:
1655
1661
  Switch to a designated time plan if this timeout is reached due to lost connection with the supervisor.
1656
1662
  Disable by setting timeout to '0'.
1657
1663
  Used in conjunction with dynamic bands, M0014
1664
+ Requires security code 2.
1658
1665
  arguments:
1659
1666
  status:
1660
1667
  type: integer
@@ -1687,6 +1694,7 @@ objects:
1687
1694
  description: |-
1688
1695
  Set clock.
1689
1696
  Can be used to manually set the clock of the traffic light controller if automatic time synchronization (NTP or watchdog sync) is not available. For instance, during maintenance work.
1697
+ Note: UTC is used.
1690
1698
  Requires security code 1
1691
1699
  arguments:
1692
1700
  securityCode:
@@ -1694,44 +1702,32 @@ objects:
1694
1702
  description: Security code 1
1695
1703
  year:
1696
1704
  type: integer
1697
- description: |-
1698
- Changes internal clock. Note: UTC is used
1699
- Year according to YYYY
1705
+ description: Year
1700
1706
  min: 0
1701
1707
  max: 9999
1702
1708
  month:
1703
1709
  type: integer
1704
- description: |-
1705
- Changes internal clock. Note: UTC is used
1706
- Month according to MM (01-12)
1710
+ description: Month
1707
1711
  min: 1
1708
1712
  max: 12
1709
1713
  day:
1710
1714
  type: integer
1711
- description: |-
1712
- Changes internal clock. Note: UTC is used
1713
- Day in month according to DD (01-31)
1715
+ description: Day of month
1714
1716
  min: 1
1715
1717
  max: 31
1716
1718
  hour:
1717
1719
  type: integer
1718
- description: |-
1719
- Changes internal clock. Note: UTC is used
1720
- Hour according to HH (00-23)
1720
+ description: Hour
1721
1721
  min: 0
1722
1722
  max: 23
1723
1723
  minute:
1724
1724
  type: integer
1725
- description: |-
1726
- Changes internal clock. Note: UTC is used
1727
- Minute according to MM (00-59)
1725
+ description: Minute
1728
1726
  min: 0
1729
1727
  max: 59
1730
1728
  second:
1731
1729
  type: integer
1732
- description: |-
1733
- Changes internal clock. Note: UTC is used
1734
- Second according to SS (00-59)
1730
+ description: Second
1735
1731
  min: 0
1736
1732
  max: 59
1737
1733
  command: setDate
@@ -1841,6 +1837,7 @@ objects:
1841
1837
  Although this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.
1842
1838
  Intended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers. Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1843
1839
  Requires security code 2
1840
+ reserved: true
1844
1841
  arguments:
1845
1842
  status:
1846
1843
  type: boolean
@@ -1857,6 +1854,7 @@ objects:
1857
1854
  Although this command is intended to be used with coordination it is not actually specified to be used for this yet. It is reserved in the SXL for possible future use.
1858
1855
  Intended for use with coordination of signaling systems where a traffic light controller communicates with neighboring controllers. Only used when a primary controller orders signal group of other controller to green or red (Coordination with external control bits).
1859
1856
  Requires security code 2
1857
+ reserved: true
1860
1858
  arguments:
1861
1859
  status:
1862
1860
  type: boolean
@@ -1932,7 +1930,7 @@ objects:
1932
1930
  description: |-
1933
1931
  Serious detector error (hardware).
1934
1932
  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.
1935
- priority: 3
1933
+ priority: 2
1936
1934
  category: D
1937
1935
  arguments:
1938
1936
  detector:
@@ -1957,7 +1955,7 @@ objects:
1957
1955
  Serious detector error (logic error).
1958
1956
  For instance; detector continuously on or off during an extended time.
1959
1957
  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
1960
- priority: 3
1958
+ priority: 2
1961
1959
  category: D
1962
1960
  arguments:
1963
1961
  detector:
@@ -2015,6 +2013,7 @@ objects:
2015
2013
  type: integer
2016
2014
  description: Average speed in km/h
2017
2015
  min: 0
2016
+ max: 65535
2018
2017
  S0203:
2019
2018
  description: |-
2020
2019
  Traffic Counting: Occupancy.
@@ -2046,38 +2045,47 @@ objects:
2046
2045
  type: integer
2047
2046
  description: Number of cars
2048
2047
  min: 0
2048
+ max: 65535
2049
2049
  PS:
2050
2050
  type: integer
2051
2051
  description: Number of cars with trailers
2052
2052
  min: 0
2053
+ max: 65535
2053
2054
  L:
2054
2055
  type: integer
2055
2056
  description: Number of trucks
2056
2057
  min: 0
2058
+ max: 65535
2057
2059
  LS:
2058
2060
  type: integer
2059
2061
  description: Number of trucks with trailers
2060
2062
  min: 0
2063
+ max: 65535
2061
2064
  B:
2062
2065
  type: integer
2063
- description: Number of busses
2066
+ description: Number of buses
2064
2067
  min: 0
2068
+ max: 65535
2065
2069
  SP:
2066
2070
  type: integer
2067
2071
  description: Number of trams
2068
2072
  min: 0
2073
+ max: 65535
2069
2074
  MC:
2070
2075
  type: integer
2071
2076
  description: Number of motor cycles
2072
2077
  min: 0
2078
+ max: 65535
2073
2079
  C:
2074
2080
  type: integer
2075
2081
  description: Number of bicycles
2076
2082
  min: 0
2083
+ max: 65535
2077
2084
  F:
2078
2085
  type: integer
2079
2086
  description: Number of pedestrians
2080
2087
  min: 0
2088
+ max: 65535
2081
2089
  commands:
2082
2090
  M0008:
2083
2091
  description: |-