rsmp_schema 0.5.2 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yaml +1 -1
  3. data/.tool-versions +1 -1
  4. data/Gemfile.lock +24 -22
  5. data/examples/validate.rb +1 -1
  6. data/lib/rsmp_schema/version.rb +1 -1
  7. data/rsmp_schema.gemspec +5 -5
  8. data/schemas/core/3.2/alarm_suspended_resumed.json +2 -2
  9. data/schemas/tlc/1.2/statuses/S0006.json +3 -3
  10. data/schemas/tlc/1.2/sxl.yaml +4 -4
  11. data/schemas/tlc/1.2.1/alarms/A0001.json +3 -0
  12. data/schemas/tlc/1.2.1/alarms/A0002.json +3 -0
  13. data/schemas/tlc/1.2.1/alarms/A0003.json +3 -0
  14. data/schemas/tlc/1.2.1/alarms/A0004.json +3 -0
  15. data/schemas/tlc/1.2.1/alarms/A0005.json +3 -0
  16. data/schemas/tlc/1.2.1/alarms/A0006.json +3 -0
  17. data/schemas/tlc/1.2.1/alarms/A0007.json +59 -0
  18. data/schemas/tlc/1.2.1/alarms/A0008.json +61 -0
  19. data/schemas/tlc/1.2.1/alarms/A0009.json +3 -0
  20. data/schemas/tlc/1.2.1/alarms/A0010.json +3 -0
  21. data/schemas/tlc/1.2.1/alarms/A0101.json +3 -0
  22. data/schemas/tlc/1.2.1/alarms/A0201.json +60 -0
  23. data/schemas/tlc/1.2.1/alarms/A0202.json +60 -0
  24. data/schemas/tlc/1.2.1/alarms/A0301.json +132 -0
  25. data/schemas/tlc/1.2.1/alarms/A0302.json +158 -0
  26. data/schemas/tlc/1.2.1/alarms/A0303.json +132 -0
  27. data/schemas/tlc/1.2.1/alarms/A0304.json +158 -0
  28. data/schemas/tlc/1.2.1/alarms/alarms.json +286 -0
  29. data/schemas/tlc/1.2.1/commands/M0001.json +138 -0
  30. data/schemas/tlc/1.2.1/commands/M0002.json +112 -0
  31. data/schemas/tlc/1.2.1/commands/M0003.json +112 -0
  32. data/schemas/tlc/1.2.1/commands/M0004.json +85 -0
  33. data/schemas/tlc/1.2.1/commands/M0005.json +112 -0
  34. data/schemas/tlc/1.2.1/commands/M0006.json +112 -0
  35. data/schemas/tlc/1.2.1/commands/M0007.json +85 -0
  36. data/schemas/tlc/1.2.1/commands/M0008.json +112 -0
  37. data/schemas/tlc/1.2.1/commands/M0010.json +85 -0
  38. data/schemas/tlc/1.2.1/commands/M0011.json +85 -0
  39. data/schemas/tlc/1.2.1/commands/M0012.json +79 -0
  40. data/schemas/tlc/1.2.1/commands/M0013.json +79 -0
  41. data/schemas/tlc/1.2.1/commands/M0014.json +106 -0
  42. data/schemas/tlc/1.2.1/commands/M0015.json +112 -0
  43. data/schemas/tlc/1.2.1/commands/M0016.json +79 -0
  44. data/schemas/tlc/1.2.1/commands/M0017.json +79 -0
  45. data/schemas/tlc/1.2.1/commands/M0018.json +112 -0
  46. data/schemas/tlc/1.2.1/commands/M0019.json +139 -0
  47. data/schemas/tlc/1.2.1/commands/M0020.json +139 -0
  48. data/schemas/tlc/1.2.1/commands/M0021.json +79 -0
  49. data/schemas/tlc/1.2.1/commands/M0022.json +355 -0
  50. data/schemas/tlc/1.2.1/commands/M0023.json +85 -0
  51. data/schemas/tlc/1.2.1/commands/M0103.json +103 -0
  52. data/schemas/tlc/1.2.1/commands/M0104.json +220 -0
  53. data/schemas/tlc/1.2.1/commands/command_requests.json +7 -0
  54. data/schemas/tlc/1.2.1/commands/command_responses.json +7 -0
  55. data/schemas/tlc/1.2.1/commands/commands.json +398 -0
  56. data/schemas/tlc/1.2.1/rsmp.json +73 -0
  57. data/schemas/tlc/1.2.1/statuses/S0001.json +137 -0
  58. data/schemas/tlc/1.2.1/statuses/S0002.json +55 -0
  59. data/schemas/tlc/1.2.1/statuses/S0003.json +55 -0
  60. data/schemas/tlc/1.2.1/statuses/S0004.json +55 -0
  61. data/schemas/tlc/1.2.1/statuses/S0005.json +112 -0
  62. data/schemas/tlc/1.2.1/statuses/S0006.json +88 -0
  63. data/schemas/tlc/1.2.1/statuses/S0007.json +116 -0
  64. data/schemas/tlc/1.2.1/statuses/S0008.json +116 -0
  65. data/schemas/tlc/1.2.1/statuses/S0009.json +116 -0
  66. data/schemas/tlc/1.2.1/statuses/S0010.json +116 -0
  67. data/schemas/tlc/1.2.1/statuses/S0011.json +116 -0
  68. data/schemas/tlc/1.2.1/statuses/S0012.json +116 -0
  69. data/schemas/tlc/1.2.1/statuses/S0013.json +88 -0
  70. data/schemas/tlc/1.2.1/statuses/S0014.json +90 -0
  71. data/schemas/tlc/1.2.1/statuses/S0015.json +90 -0
  72. data/schemas/tlc/1.2.1/statuses/S0016.json +61 -0
  73. data/schemas/tlc/1.2.1/statuses/S0017.json +61 -0
  74. data/schemas/tlc/1.2.1/statuses/S0018.json +61 -0
  75. data/schemas/tlc/1.2.1/statuses/S0019.json +61 -0
  76. data/schemas/tlc/1.2.1/statuses/S0020.json +88 -0
  77. data/schemas/tlc/1.2.1/statuses/S0021.json +56 -0
  78. data/schemas/tlc/1.2.1/statuses/S0022.json +55 -0
  79. data/schemas/tlc/1.2.1/statuses/S0023.json +56 -0
  80. data/schemas/tlc/1.2.1/statuses/S0024.json +56 -0
  81. data/schemas/tlc/1.2.1/statuses/S0025.json +250 -0
  82. data/schemas/tlc/1.2.1/statuses/S0026.json +55 -0
  83. data/schemas/tlc/1.2.1/statuses/S0027.json +55 -0
  84. data/schemas/tlc/1.2.1/statuses/S0028.json +55 -0
  85. data/schemas/tlc/1.2.1/statuses/S0029.json +55 -0
  86. data/schemas/tlc/1.2.1/statuses/S0030.json +55 -0
  87. data/schemas/tlc/1.2.1/statuses/S0031.json +55 -0
  88. data/schemas/tlc/1.2.1/statuses/S0032.json +116 -0
  89. data/schemas/tlc/1.2.1/statuses/S0033.json +114 -0
  90. data/schemas/tlc/1.2.1/statuses/S0034.json +61 -0
  91. data/schemas/tlc/1.2.1/statuses/S0035.json +74 -0
  92. data/schemas/tlc/1.2.1/statuses/S0091.json +65 -0
  93. data/schemas/tlc/1.2.1/statuses/S0092.json +65 -0
  94. data/schemas/tlc/1.2.1/statuses/S0095.json +55 -0
  95. data/schemas/tlc/1.2.1/statuses/S0096.json +196 -0
  96. data/schemas/tlc/1.2.1/statuses/S0097.json +82 -0
  97. data/schemas/tlc/1.2.1/statuses/S0098.json +103 -0
  98. data/schemas/tlc/1.2.1/statuses/S0201.json +88 -0
  99. data/schemas/tlc/1.2.1/statuses/S0202.json +88 -0
  100. data/schemas/tlc/1.2.1/statuses/S0203.json +88 -0
  101. data/schemas/tlc/1.2.1/statuses/S0204.json +304 -0
  102. data/schemas/tlc/1.2.1/statuses/S0205.json +88 -0
  103. data/schemas/tlc/1.2.1/statuses/S0206.json +88 -0
  104. data/schemas/tlc/1.2.1/statuses/S0207.json +88 -0
  105. data/schemas/tlc/1.2.1/statuses/S0208.json +304 -0
  106. data/schemas/tlc/1.2.1/statuses/statuses.json +786 -0
  107. data/schemas/tlc/1.2.1/sxl.yaml +2109 -0
  108. metadata +110 -13
@@ -0,0 +1,116 @@
1
+ {
2
+ "description" : "Coordinated control\nThis status is used when coordination between traffic light controllers is active. Coordination is described in detail in the corresponding section\nPlease note that all values in this status uses comma-separated lists - one value for each intersection, e.g. “1,2” and “centralized,off”",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "intersection",
9
+ "source",
10
+ "status"
11
+ ]
12
+ }
13
+ }
14
+ },
15
+ {
16
+ "if" : {
17
+ "required" : [
18
+ "q"
19
+ ],
20
+ "properties" : {
21
+ "q" : {
22
+ "const" : "undefined"
23
+ }
24
+ }
25
+ },
26
+ "then" : {
27
+ "s" : {
28
+ "type" : "null"
29
+ }
30
+ },
31
+ "else" : {
32
+ "allOf" : [
33
+ {
34
+ "if" : {
35
+ "required" : [
36
+ "n"
37
+ ],
38
+ "properties" : {
39
+ "n" : {
40
+ "const" : "intersection"
41
+ }
42
+ }
43
+ },
44
+ "then" : {
45
+ "properties" : {
46
+ "s" : {
47
+ "allOf" : [
48
+ {
49
+ "description" : "Comma separated list of intersections which the status relates to, e.g. “1,2”.\nUse “0” for all intersections of the TLC."
50
+ },
51
+ {
52
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer_list"
53
+ }
54
+ ]
55
+ }
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "if" : {
61
+ "required" : [
62
+ "n"
63
+ ],
64
+ "properties" : {
65
+ "n" : {
66
+ "const" : "status"
67
+ }
68
+ }
69
+ },
70
+ "then" : {
71
+ "properties" : {
72
+ "s" : {
73
+ "allOf" : [
74
+ {
75
+ "pattern" : "(?-mix:^(local|centralized|off)(?:,(local|centralized|off))*$)"
76
+ },
77
+ {
78
+ "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
79
+ }
80
+ ]
81
+ }
82
+ }
83
+ }
84
+ },
85
+ {
86
+ "if" : {
87
+ "required" : [
88
+ "n"
89
+ ],
90
+ "properties" : {
91
+ "n" : {
92
+ "const" : "source"
93
+ }
94
+ }
95
+ },
96
+ "then" : {
97
+ "properties" : {
98
+ "s" : {
99
+ "allOf" : [
100
+ {
101
+ "description" : "Source of the status change",
102
+ "pattern" : "(?-mix:^(operator_panel|calendar_clock|control_block|forced|startup|other)(?:,(operator_panel|calendar_clock|control_block|forced|startup|other))*$)"
103
+ },
104
+ {
105
+ "$ref" : "../../../core/3.1.2/definitions.json#/string_list"
106
+ }
107
+ ]
108
+ }
109
+ }
110
+ }
111
+ }
112
+ ]
113
+ }
114
+ }
115
+ ]
116
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "description" : "Signal Priority Status\nThis status can be used to get updates about priority requests. For example, you can use it to know when priority requests are activated or cancelled.\nA list of priorities is returned, referred to by their request ids. The same request id can appear only once.\nAll 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.\nIf 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.\nTo 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).\nAll priorities are send on every status update, regardless of whether an interval, or sendOnChange (or both) is used.\nWhen 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.\nA request always starts in the ‘received’ state. The following table shows the possible state transitions:\n\nState | Possible next states\n---------- | -------------------------------------\nreceived | queued, activated, rejected, cooldown\nqueued | activated, timeout\nactivated | completed, stale\ncompleted |\ntimeout |\nrejected |\ncooldown |\nstale |",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "status"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "status"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "description" : "JSON array of priority status items",
46
+ "type" : "array",
47
+ "items" : {
48
+ "type" : "object",
49
+ "required" : [
50
+ "r",
51
+ "s",
52
+ "t"
53
+ ],
54
+ "additionalProperties" : false,
55
+ "properties" : {
56
+ "r" : {
57
+ "description" : "ID of the priority request",
58
+ "type" : "string"
59
+ },
60
+ "t" : {
61
+ "allOf" : [
62
+ {
63
+ "description" : "Timestamp, indicating when the priority last changed state."
64
+ },
65
+ {
66
+ "$ref" : "../../../core/3.1.2/definitions.json#/timestamp"
67
+ }
68
+ ]
69
+ },
70
+ "s" : {
71
+ "description" : "Current status of the priority request",
72
+ "type" : "string",
73
+ "enum" : [
74
+ "activated",
75
+ "completed",
76
+ "cooldown",
77
+ "queued",
78
+ "received",
79
+ "rejected",
80
+ "stale",
81
+ "timeout"
82
+ ]
83
+ },
84
+ "e" : {
85
+ "allOf" : [
86
+ {
87
+ "description" : "Estimated green extension provided by the priority, in seconds\nOnly used when state is ‘completed’."
88
+ },
89
+ {
90
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
91
+ }
92
+ ]
93
+ },
94
+ "d" : {
95
+ "allOf" : [
96
+ {
97
+ "description" : "Estimated red reduction provided by the priority, in seconds\nOnly used when state is ‘completed’."
98
+ },
99
+ {
100
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
101
+ }
102
+ ]
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ }
112
+ }
113
+ ]
114
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "description" : "Timeout for dynamic bands.\nTime until a designated time plan is entered due to lost connection with the supervisor.\nDisabled if set to '0'.\nUsed in conjunction with dynamic bands, M0014",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "status"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "status"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "allOf" : [
46
+ {
47
+ "description" : "Timeout, in minutes"
48
+ },
49
+ {
50
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
51
+ }
52
+ ]
53
+ }
54
+ }
55
+ }
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "description" : "Emergency route.\nThe status is active during emergency prioritization.\nUsed in situations where full priority is given in the emergency vehicle program\nor for other types of priority in some cases.\n\nThis status is similar to S0006, but supports multiple routes",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "emergencyroutes"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "emergencyroutes"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "description" : "Active emergency routes",
46
+ "type" : "array",
47
+ "items" : {
48
+ "type" : "object",
49
+ "required" : [
50
+ "id"
51
+ ],
52
+ "additionalProperties" : false,
53
+ "properties" : {
54
+ "id" : {
55
+ "allOf" : [
56
+ {
57
+ "description" : "ID of active emergency route"
58
+ },
59
+ {
60
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
61
+ }
62
+ ]
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ]
71
+ }
72
+ }
73
+ ]
74
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "description" : "Operator logged in/out OP-panel.\nProvides information if maintenance personnel is currently working on site.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "user"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "user"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "allOf" : [
46
+ {
47
+ "enum" : [
48
+ "0",
49
+ "1",
50
+ "2"
51
+ ]
52
+ },
53
+ {
54
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ }
60
+ }
61
+ ]
62
+ }
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "description" : "Operator logged in/out web-interface.\nProvides information if maintenance personnel is currently working with the controller.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "user"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "user"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "allOf" : [
46
+ {
47
+ "enum" : [
48
+ "0",
49
+ "1",
50
+ "2"
51
+ ]
52
+ },
53
+ {
54
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ }
60
+ }
61
+ ]
62
+ }
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "description" : "Version of Traffic Light Controller.\nProvides diagnostic version information.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "status"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "status"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "s" : {
45
+ "description" : "Manufacturer, product name and version of traffic light controller",
46
+ "type" : "string"
47
+ }
48
+ }
49
+ }
50
+ }
51
+ ]
52
+ }
53
+ }
54
+ ]
55
+ }