rsmp_schema 0.4.0 → 0.4.1

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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5274777117f3a47d6976f4d3022bbdf5bbf2b0e70b3b491b73977c9477bb2b51
4
- data.tar.gz: 65b3c34396fc8f156ce5f6455f2e7ba1cb3b1de2b157fa5066fef8537ae44dc2
3
+ metadata.gz: 6b9ab01a29dc881ed7479e69c444a4d2088f51035b406f0b8a2e291030059cf6
4
+ data.tar.gz: 55f0ff8f40d5cd1bfd46da69fe8f2ecaa72840763595e3728eae6971a41545a6
5
5
  SHA512:
6
- metadata.gz: 0bec9bbbe8b3347d66aab360a9b8040eab152beeabfa366158363b14b4537513dc168c89fd1db610f71750ee9ae952d3362ddfc190ecfc78be7c100866ad2b59
7
- data.tar.gz: 22bbc28e868edcb7ed1fce7e5e4af13b7039fc46bfaa626c3593c8f32c84baf820a5aa73749a212f3650ec214036ac2c0bb0e8a25daad5672e49dc7ce7a1a114
6
+ metadata.gz: cd7562d99c4875fcaf71e16b969c5aedf9a3c51b711f125253a8e34bf3c2e4f647d0cd42078f1658cbc986271e764d73ea7e85bd37be10810df4111af4ecd309
7
+ data.tar.gz: ea487a4c39756d34c2282cde57d759776777a61bfa30bd56cf2f3cd8f2072a8b9e0f1dd46b42d0bc0ccfb2513cd38fdbfcd862e64c8ece3ee19ffdbf2e332087
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schema (0.4.0)
4
+ rsmp_schema (0.4.1)
5
5
  json_schemer (~> 0.2.21)
6
6
  thor (~> 1.2.1)
7
7
 
@@ -12,13 +12,14 @@ GEM
12
12
  ecma-re-validator (0.4.0)
13
13
  regexp_parser (~> 2.2)
14
14
  hana (1.3.7)
15
- json_schemer (0.2.21)
15
+ json_schemer (0.2.25)
16
16
  ecma-re-validator (~> 0.3)
17
17
  hana (~> 1.3)
18
18
  regexp_parser (~> 2.0)
19
+ simpleidn (~> 0.2)
19
20
  uri_template (~> 0.7)
20
21
  rake (13.0.6)
21
- regexp_parser (2.6.0)
22
+ regexp_parser (2.8.1)
22
23
  rspec (3.11.0)
23
24
  rspec-core (~> 3.11.0)
24
25
  rspec-expectations (~> 3.11.0)
@@ -32,7 +33,12 @@ GEM
32
33
  diff-lcs (>= 1.2.0, < 2.0)
33
34
  rspec-support (~> 3.11.0)
34
35
  rspec-support (3.11.1)
35
- thor (1.2.1)
36
+ simpleidn (0.2.1)
37
+ unf (~> 0.1.4)
38
+ thor (1.2.2)
39
+ unf (0.1.4)
40
+ unf_ext
41
+ unf_ext (0.0.8.2)
36
42
  uri_template (0.7.0)
37
43
 
38
44
  PLATFORMS
@@ -1,5 +1,5 @@
1
1
  module RSMP
2
2
  module Schema
3
- VERSION = "0.4.0"
3
+ VERSION = "0.4.1"
4
4
  end
5
5
  end
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -453,7 +453,7 @@ objects:
453
453
  Requires security code 2.
454
454
  arguments:
455
455
  status:
456
- type: string_list
456
+ type: string
457
457
  description: Set operating mode
458
458
  values:
459
459
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -582,7 +582,7 @@ objects:
582
582
  Requires security code 2.
583
583
  arguments:
584
584
  status:
585
- type: string_list
585
+ type: string
586
586
  description: Set operating mode
587
587
  values:
588
588
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -720,7 +720,7 @@ objects:
720
720
  Requires security code 2.
721
721
  arguments:
722
722
  status:
723
- type: string_list
723
+ type: string
724
724
  description: Set operating mode
725
725
  values:
726
726
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -817,7 +817,7 @@ objects:
817
817
  Requires security code 2.
818
818
  arguments:
819
819
  status:
820
- type: string_list
820
+ type: string
821
821
  description: Set operating mode
822
822
  values:
823
823
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -453,7 +453,7 @@ objects:
453
453
  Requires security code 2.
454
454
  arguments:
455
455
  status:
456
- type: string_list
456
+ type: string
457
457
  description: Set operating mode
458
458
  values:
459
459
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -453,7 +453,7 @@ objects:
453
453
  Requires security code 2.
454
454
  arguments:
455
455
  status:
456
- type: string_list
456
+ type: string
457
457
  description: Set operating mode
458
458
  values:
459
459
  NormalControl: Normal Control
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -453,7 +453,7 @@ objects:
453
453
  Requires security code 2.
454
454
  arguments:
455
455
  status:
456
- type: string_list
456
+ type: string
457
457
  description: Set operating mode
458
458
  values:
459
459
  NormalControl: Normal Control
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Other error.\nUsed for other errors not covered by any other alarm type\nIs a \"minor fault\" defined according to 3.11 in EN12675."
4
+ "description" : "Other error.\nUsed for other errors not covered by any other alarm type.\nIs a \"minor fault\" defined according to 3.11 in EN12675."
5
5
  }
6
6
  ]
7
7
  }
@@ -30,14 +30,12 @@
30
30
  "then" : {
31
31
  "properties" : {
32
32
  "v" : {
33
- "allOf" : [
34
- {
35
- "description" : "Set operating mode",
36
- "pattern" : "(?-mix:^(NormalControl|YellowFlash|Dark)(?:,(NormalControl|YellowFlash|Dark))*$)"
37
- },
38
- {
39
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
40
- }
33
+ "description" : "Set operating mode",
34
+ "type" : "string",
35
+ "enum" : [
36
+ "Dark",
37
+ "NormalControl",
38
+ "YellowFlash"
41
39
  ]
42
40
  }
43
41
  }
@@ -57,14 +55,8 @@
57
55
  "then" : {
58
56
  "properties" : {
59
57
  "v" : {
60
- "allOf" : [
61
- {
62
- "description" : "Security code 2"
63
- },
64
- {
65
- "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
66
- }
67
- ]
58
+ "description" : "Security code 2",
59
+ "type" : "string"
68
60
  }
69
61
  }
70
62
  }
@@ -111,10 +103,10 @@
111
103
  "v" : {
112
104
  "allOf" : [
113
105
  {
114
- "description" : "Comma separated list of intersections which the status relates to, e.g. “1,2”.\nUse “0” for all intersections of the TLC."
106
+ "description" : "Intersection number"
115
107
  },
116
108
  {
117
- "$ref" : "../../../core/3.1.2/definitions.json#/integer_list"
109
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
118
110
  }
119
111
  ]
120
112
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Activate a series of inputs\n\nSet 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.\n\nRequires security code 2.\n\nThe 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];…\n\n- ‘Offset’ defines where the 16 inputs starts from\n- ‘Bits to set’ defines which bit(s) to set. ‘0’ if unsed\n- ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused\n\nExample 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\n\nExample 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\n\nAnd both these examples could be sent in the same message as: “3,4143,65;12,1,4”\n\nSuch a message would set input 4,5,8,12,15 and unset input 3,9,14\n\nExample 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",
4
+ "description" : "Activate a series of inputs\n\nSet 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.\n\nRequires security code 2.\n\nThe 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];…\n\n- ‘Offset’ defines where the 16 inputs starts from\n- ‘Bits to set’ defines which bit(s) to set. ‘0’ if unused\n- ‘Bits to unset’ defines which bit(s) to unset. ‘0’ if unused\n\nExample 1:\n“3,4134,65” sets input 4,5,8,15 and unsets 3,9\n- Input starts from no. 5\n- “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\n- “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\n\nExample 2:\n“12,1,4” sets input 12 and unsets 14\n- Input starts from no. 12\n- “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\n- “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\n\nAnd both these examples could be sent in the same message as: “3,4143,65;12,1,4”\n\nSuch a message would set input 4,5,8,12,15 and unset input 3,9,14\n\nExample 3:\n“0,1,2” sets input 0 and unsets 1\n- Input starts from 0\n- “1” is 1 in binary, which is bit 0\n- “2” is 10 in binary, which is bit 1",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -28,7 +28,7 @@
28
28
  "then" : {
29
29
  "properties" : {
30
30
  "v" : {
31
- "description" : "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.\n\nFormat: [Offset],[Bits to set],[Bits to unset]:…\n\nOffset 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.\n\nExample 1:\n\"5, 4134, 65\" sets input 6,7,10,17 = on and 5,11 = off\n(Input starts from no. 5 and bit 1,2,5,12 = 1 and bit 0,6 = 0)\n\nExample 2:\n\"22, 1, 4\" sets input 22 = on and 24 = off\n(Input starts from no. 22 and bit 0 = 1 and bit 2 = 0)\n\nAnd both thease examples could be sent in the same message as:\n\"5,4143:65:22,1,4\"\n\nSuch a message would activate input 6,7,10,17,22 and deactivate input 5,11,24",
31
+ "description" : "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.\nFormat: [Offset];[Bits to set];[Bits to unset];…",
32
32
  "type" : "string"
33
33
  }
34
34
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Request Signal Priority\n\nUseful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.\n\nThe 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.\n\nTo understand how this command relates to ETSI/J2735, please see the wiki.\n\nActivating 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.\n\nThe 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:\n\n- 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.\n- 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.\n- Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.\n- Reference an intersection approach by setting ‘approachId’.\n- Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.\n\nReferencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:\n\n- signalGroupId\n- inputId\n- connectionId\n- approachId\n- laneInId\n- laneOutId\n\nReferencing 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.\n\nYou 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.\n\nProviding 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.\n\nLike ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.\n\nThe 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.\n\nIf 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.\n\nWhen you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.\n\nIf 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.\n\nIf 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.\n\nWhen 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.\n\nOnce 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’.\n\nIf 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.",
4
+ "description" : "Request Signal Priority\n\nUseful for bus priority or other type of priorities like emergency vehicles or groups of cyclists.\n\nThe 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.\n\nTo 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).\n\nActivating 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.\n\nThe 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:\n\n- 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.\n- 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.\n- Reference a connection by setting ‘connectionId’. A connection is a movement from a specific ingoing lane to a specific outgoing lane.\n- Reference an intersection approach by setting ‘approachId’.\n- Reference an ingoing lane by setting ‘laneInId’, and optionally also reference an outgoing lane by setting ‘laneOutId’.\n\nReferencing attributes that are not used must be left out, rather than set to null or empty strings. This includes:\n\n- signalGroupId\n- inputId\n- connectionId\n- approachId\n- laneInId\n- laneOutId\n\nReferencing 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.\n\nYou 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.\n\nProviding 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.\n\nLike ETA, providing a vehicle type is optional, but can help the controller decide how to best handle the request.\n\nThe 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.\n\nIf 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.\n\nWhen you send a priority request, it will be processed to decide if it’s possible to activate the requested priority.\n\nIf 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.\n\nIf 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.\n\nWhen 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.\n\nOnce 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’.\n\nIf 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.",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -58,7 +58,7 @@
58
58
  "then" : {
59
59
  "properties" : {
60
60
  "v" : {
61
- "description" : "(Optional) ID of a signal group component.",
61
+ "description" : "ID of a signal group component.",
62
62
  "type" : "string"
63
63
  }
64
64
  }
@@ -80,7 +80,7 @@
80
80
  "v" : {
81
81
  "allOf" : [
82
82
  {
83
- "description" : "(Optional) ID of an input, using the same numbering scheme as M0006"
83
+ "description" : "ID of an input, using the same numbering scheme as M0006"
84
84
  },
85
85
  {
86
86
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -106,7 +106,7 @@
106
106
  "v" : {
107
107
  "allOf" : [
108
108
  {
109
- "description" : "(Optional) ID of a connection, connecting an ingoing and an outgoing lane"
109
+ "description" : "ID of a connection, connecting an ingoing and an outgoing lane"
110
110
  },
111
111
  {
112
112
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -132,7 +132,7 @@
132
132
  "v" : {
133
133
  "allOf" : [
134
134
  {
135
- "description" : "(Optional) ID of an intersection approach"
135
+ "description" : "ID of an intersection approach"
136
136
  },
137
137
  {
138
138
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -158,7 +158,7 @@
158
158
  "v" : {
159
159
  "allOf" : [
160
160
  {
161
- "description" : "(Optional) ID of an ingoing lane"
161
+ "description" : "ID of an ingoing lane"
162
162
  },
163
163
  {
164
164
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -184,7 +184,7 @@
184
184
  "v" : {
185
185
  "allOf" : [
186
186
  {
187
- "description" : "(Optional) ID of an outgoing lane"
187
+ "description" : "ID of an outgoing lane"
188
188
  },
189
189
  {
190
190
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -210,7 +210,7 @@
210
210
  "v" : {
211
211
  "allOf" : [
212
212
  {
213
- "description" : "(Optional) ID of a priority"
213
+ "description" : "ID of a priority"
214
214
  },
215
215
  {
216
216
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -234,7 +234,6 @@
234
234
  "then" : {
235
235
  "properties" : {
236
236
  "v" : {
237
- "description" : "new: New priority request\nupdate: Update to existing priority request\ncancel: Cancel an existing priority",
238
237
  "type" : "string",
239
238
  "enum" : [
240
239
  "cancel",
@@ -287,7 +286,7 @@
287
286
  "v" : {
288
287
  "allOf" : [
289
288
  {
290
- "description" : "(Optional) Estimated time of arrival to the intersection, in seconds"
289
+ "description" : "Estimated time of arrival to the intersection, in seconds"
291
290
  },
292
291
  {
293
292
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -311,7 +310,7 @@
311
310
  "then" : {
312
311
  "properties" : {
313
312
  "v" : {
314
- "description" : "(Optional) Vehicle type\n\npedestrian: Pedestrians\nbicycle: Bicycles\nmotorcycle: Motorcycles\ncar: Passenger vehicle\nbus: Bus used for public transport\nlightTruck: Light truck\nheavyTruck: Heavy truck\ntram: Trams used for Public transport\nemergency: Police, fire or ambulance\nsafetyCar: For e.g. escort vehicles\nspecialTransport: For e.g. heavy load\nother: Other type of vehicle",
313
+ "description" : "Vehicle type",
315
314
  "type" : "string",
316
315
  "enum" : [
317
316
  "bicycle",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Set timeout for dynamic bands\nSwitch to a designated time plan if this timeout is reached due to lost connection with the supervisor.\nDisable by setting timeout to '0'.\nUsed in conjunction with dynamic bands, M0014",
4
+ "description" : "Set timeout for dynamic bands\nSwitch to a designated time plan if this timeout is reached due to lost connection with the supervisor.\nDisable by setting timeout to '0'.\nUsed in conjunction with dynamic bands, M0014\nRequires security code 2.",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Set clock.\nCan 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.\nRequires security code 1",
4
+ "description" : "Set clock.\nCan 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.\nNote: UTC is used.\nRequires security code 1",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -55,7 +55,7 @@
55
55
  "v" : {
56
56
  "allOf" : [
57
57
  {
58
- "description" : "Changes internal clock. Note: UTC is used\nYear according to YYYY"
58
+ "description" : "Year"
59
59
  },
60
60
  {
61
61
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -81,7 +81,7 @@
81
81
  "v" : {
82
82
  "allOf" : [
83
83
  {
84
- "description" : "Changes internal clock. Note: UTC is used\nMonth according to MM (01-12)"
84
+ "description" : "Month"
85
85
  },
86
86
  {
87
87
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -107,7 +107,7 @@
107
107
  "v" : {
108
108
  "allOf" : [
109
109
  {
110
- "description" : "Changes internal clock. Note: UTC is used\nDay in month according to DD (01-31)"
110
+ "description" : "Day of month"
111
111
  },
112
112
  {
113
113
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -133,7 +133,7 @@
133
133
  "v" : {
134
134
  "allOf" : [
135
135
  {
136
- "description" : "Changes internal clock. Note: UTC is used\nHour according to HH (00-23)"
136
+ "description" : "Hour"
137
137
  },
138
138
  {
139
139
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -159,7 +159,7 @@
159
159
  "v" : {
160
160
  "allOf" : [
161
161
  {
162
- "description" : "Changes internal clock. Note: UTC is used\nMinute according to MM (00-59)"
162
+ "description" : "Minute"
163
163
  },
164
164
  {
165
165
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -185,7 +185,7 @@
185
185
  "v" : {
186
186
  "allOf" : [
187
187
  {
188
- "description" : "Changes internal clock. Note: UTC is used\nSecond according to SS (00-59)"
188
+ "description" : "Second"
189
189
  },
190
190
  {
191
191
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -50,7 +50,7 @@
50
50
  "s" : {
51
51
  "allOf" : [
52
52
  {
53
- "description" : "Cycle counter.\nUsed for handling of coordination between TLC’s.\nIs counted from 0 until it reaches the cycle time (See S0028).\n\nc = (b + o) mod t\n \nwhere c = cycle counter,\nb = base cycle counter,\no = offset,\nt = cycle time,\nmod = modulo\n\nSee the coordination section for more information."
53
+ "description" : "Cycle counter.\nUsed for handling of coordination between TLC’s.\nIs counted from 0 until it reaches the cycle time (See S0028).\n\nc = (b + o) mod t\n\nwhere c = cycle counter,\nb = base cycle counter,\no = offset,\nt = cycle time,\nmod = modulo\n\nSee the coordination section for more information."
54
54
  },
55
55
  {
56
56
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"
@@ -25,7 +25,7 @@
25
25
  "then" : {
26
26
  "properties" : {
27
27
  "s" : {
28
- "description" : "Input status as text field",
28
+ "description" : "Input status as text field\nEach character represent the state of the input in consecutive order.\n0 : Input is not active\n1 : Input is active\n- : Input is undefined/does not exist",
29
29
  "type" : "string"
30
30
  }
31
31
  }
@@ -45,7 +45,7 @@
45
45
  "then" : {
46
46
  "properties" : {
47
47
  "s" : {
48
- "description" : "Extended input status as text field\nEach character represent the state of the detector logic in consecutive order.\n0 : Detector logic is not active\n1 : Detector logic is active\n- : Detector logic is undefined/does not exist",
48
+ "description" : "Extended input status as text field\nEach character represent the state of the extended input status in consecutive order.\n0 : Input is not active\n1 : Input is active\n- : Input is undefined/does not exist",
49
49
  "type" : "string"
50
50
  }
51
51
  }
@@ -25,7 +25,7 @@
25
25
  "then" : {
26
26
  "properties" : {
27
27
  "s" : {
28
- "description" : "Output status as text field",
28
+ "description" : "Output status as text field\nEach character represent the state of the output status in consecutive order.\n0 : Output is not active\n1 : Output is active\n- : Output is undefined/does not exist",
29
29
  "type" : "string"
30
30
  }
31
31
  }
@@ -45,7 +45,7 @@
45
45
  "then" : {
46
46
  "properties" : {
47
47
  "s" : {
48
- "description" : "Extended output status as text field\nEach character represent the state of the detector logic in consecutive order.\n0 : Detector logic is not active\n1 : Detector logic is active\n- : Detector logic is undefined/does not exist",
48
+ "description" : "Extended output status as text field\nEach character represent the state of the extended output status in consecutive order.\n0 : Output is not active\n1 : Output is active\n- : Output is undefined/does not exist",
49
49
  "type" : "string"
50
50
  }
51
51
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Emergency stage.\nThe status is active during emergency prioritization.\nUsed in situations where full priority is given in the emergency vehicle program.",
4
+ "description" : "Emergency route.\nThe status is active during emergency prioritization.\nUsed in situations where full priority is given in the emergency vehicle program.\nIf no emergency route is active, status should be set to False, and emergencystage to zero.",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -53,7 +53,7 @@
53
53
  "s" : {
54
54
  "allOf" : [
55
55
  {
56
- "description" : "Number of emergency stage"
56
+ "description" : "Number of emergency stage (set to zero if no route is active)"
57
57
  },
58
58
  {
59
59
  "$ref" : "../../../core/3.1.2/definitions.json#/integer"