rsmp 0.43.2 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -11
  3. data/README.md +19 -3
  4. data/Rakefile +2 -2
  5. data/config/supervisor.yaml +2 -1
  6. data/config/tlc.yaml +2 -2
  7. data/lib/rsmp/cli.rb +29 -5
  8. data/lib/rsmp/component/component.rb +0 -4
  9. data/lib/rsmp/component/component_base.rb +15 -2
  10. data/lib/rsmp/component/component_proxy.rb +1 -1
  11. data/lib/rsmp/component/components.rb +22 -1
  12. data/lib/rsmp/convert/export/json_schema/outputs.rb +1 -0
  13. data/lib/rsmp/convert/export/json_schema/values.rb +6 -4
  14. data/lib/rsmp/convert/export/json_schema.rb +7 -3
  15. data/lib/rsmp/helpers/deep_merge.rb +2 -2
  16. data/lib/rsmp/message.rb +32 -0
  17. data/lib/rsmp/node/site/site.rb +34 -10
  18. data/lib/rsmp/node/supervisor/modules/configuration.rb +32 -5
  19. data/lib/rsmp/node/supervisor/modules/connection.rb +0 -2
  20. data/lib/rsmp/node/supervisor/supervisor.rb +0 -7
  21. data/lib/rsmp/options/options.rb +55 -6
  22. data/lib/rsmp/options/schemas/site.json +6 -3
  23. data/lib/rsmp/options/schemas/supervisor.json +5 -2
  24. data/lib/rsmp/options/schemas/supervisor_site.json +5 -2
  25. data/lib/rsmp/options/site_options.rb +3 -2
  26. data/lib/rsmp/options/supervisor_options.rb +3 -1
  27. data/lib/rsmp/proxy/modules/acknowledgements.rb +2 -0
  28. data/lib/rsmp/proxy/modules/receive.rb +5 -2
  29. data/lib/rsmp/proxy/modules/state.rb +1 -0
  30. data/lib/rsmp/proxy/modules/versions.rb +90 -15
  31. data/lib/rsmp/proxy/proxy.rb +52 -3
  32. data/lib/rsmp/proxy/site/modules/status.rb +5 -3
  33. data/lib/rsmp/proxy/site/site_proxy.rb +68 -35
  34. data/lib/rsmp/proxy/site/sxl_selection.rb +54 -0
  35. data/lib/rsmp/proxy/supervisor/supervisor_proxy.rb +54 -18
  36. data/lib/rsmp/schema/message_resolution.rb +104 -0
  37. data/lib/rsmp/schema.rb +104 -22
  38. data/lib/rsmp/schema_error.rb +7 -1
  39. data/lib/rsmp/sxl/interface.rb +48 -0
  40. data/lib/rsmp/sxl/registry.rb +55 -0
  41. data/lib/rsmp/sxl/site_interface.rb +10 -0
  42. data/lib/rsmp/sxl/supervisor_interface.rb +21 -0
  43. data/lib/rsmp/tlc/detector_logic.rb +2 -2
  44. data/lib/rsmp/tlc/signal_group.rb +2 -2
  45. data/lib/rsmp/tlc/site_interface.rb +10 -0
  46. data/lib/rsmp/tlc/{traffic_controller_proxy.rb → supervisor_interface.rb} +19 -34
  47. data/lib/rsmp/tlc/traffic_controller.rb +10 -2
  48. data/lib/rsmp/tlc/traffic_controller_site.rb +4 -2
  49. data/lib/rsmp/tlc.rb +10 -0
  50. data/lib/rsmp/version.rb +1 -1
  51. data/lib/rsmp.rb +8 -1
  52. data/rsmp.gemspec +5 -5
  53. data/schemas/core/3.3.0/aggregated_status.json +25 -0
  54. data/schemas/core/3.3.0/aggregated_status_request.json +9 -0
  55. data/schemas/core/3.3.0/alarm.json +71 -0
  56. data/schemas/core/3.3.0/alarm_acknowledge.json +11 -0
  57. data/schemas/core/3.3.0/alarm_issue.json +44 -0
  58. data/schemas/core/3.3.0/alarm_request.json +3 -0
  59. data/schemas/core/3.3.0/alarm_suspend_resume.json +3 -0
  60. data/schemas/core/3.3.0/alarm_suspended_resumed.json +44 -0
  61. data/schemas/core/3.3.0/command_request.json +24 -0
  62. data/schemas/core/3.3.0/command_response.json +35 -0
  63. data/schemas/core/3.3.0/component_list.json +24 -0
  64. data/schemas/core/3.3.0/core.json +40 -0
  65. data/schemas/core/3.3.0/definitions.json +133 -0
  66. data/schemas/core/3.3.0/message_ack.json +11 -0
  67. data/schemas/core/3.3.0/message_not_ack.json +15 -0
  68. data/schemas/core/3.3.0/rsmp.json +142 -0
  69. data/schemas/core/3.3.0/status.json +21 -0
  70. data/schemas/core/3.3.0/status_request.json +5 -0
  71. data/schemas/core/3.3.0/status_response.json +41 -0
  72. data/schemas/core/3.3.0/status_subscribe.json +31 -0
  73. data/schemas/core/3.3.0/status_unsubscribe.json +5 -0
  74. data/schemas/core/3.3.0/status_update.json +41 -0
  75. data/schemas/core/3.3.0/version.json +144 -0
  76. data/schemas/core/3.3.0/watchdog.json +9 -0
  77. data/schemas/tlc/1.3.0/alarms/A0001.json +4 -0
  78. data/schemas/tlc/1.3.0/alarms/A0002.json +4 -0
  79. data/schemas/tlc/1.3.0/alarms/A0003.json +4 -0
  80. data/schemas/tlc/1.3.0/alarms/A0004.json +4 -0
  81. data/schemas/tlc/1.3.0/alarms/A0005.json +4 -0
  82. data/schemas/tlc/1.3.0/alarms/A0006.json +4 -0
  83. data/schemas/tlc/1.3.0/alarms/A0007.json +34 -0
  84. data/schemas/tlc/1.3.0/alarms/A0008.json +30 -0
  85. data/schemas/tlc/1.3.0/alarms/A0009.json +4 -0
  86. data/schemas/tlc/1.3.0/alarms/A0010.json +4 -0
  87. data/schemas/tlc/1.3.0/alarms/A0101.json +4 -0
  88. data/schemas/tlc/1.3.0/alarms/A0201.json +35 -0
  89. data/schemas/tlc/1.3.0/alarms/A0202.json +35 -0
  90. data/schemas/tlc/1.3.0/alarms/A0301.json +92 -0
  91. data/schemas/tlc/1.3.0/alarms/A0302.json +115 -0
  92. data/schemas/tlc/1.3.0/alarms/A0303.json +92 -0
  93. data/schemas/tlc/1.3.0/alarms/A0304.json +115 -0
  94. data/schemas/tlc/1.3.0/alarms/alarms.json +287 -0
  95. data/schemas/tlc/1.3.0/commands/M0001.json +92 -0
  96. data/schemas/tlc/1.3.0/commands/M0002.json +69 -0
  97. data/schemas/tlc/1.3.0/commands/M0003.json +69 -0
  98. data/schemas/tlc/1.3.0/commands/M0004.json +51 -0
  99. data/schemas/tlc/1.3.0/commands/M0005.json +69 -0
  100. data/schemas/tlc/1.3.0/commands/M0006.json +69 -0
  101. data/schemas/tlc/1.3.0/commands/M0007.json +51 -0
  102. data/schemas/tlc/1.3.0/commands/M0008.json +87 -0
  103. data/schemas/tlc/1.3.0/commands/M0010.json +51 -0
  104. data/schemas/tlc/1.3.0/commands/M0011.json +51 -0
  105. data/schemas/tlc/1.3.0/commands/M0012.json +51 -0
  106. data/schemas/tlc/1.3.0/commands/M0013.json +51 -0
  107. data/schemas/tlc/1.3.0/commands/M0014.json +69 -0
  108. data/schemas/tlc/1.3.0/commands/M0015.json +69 -0
  109. data/schemas/tlc/1.3.0/commands/M0016.json +51 -0
  110. data/schemas/tlc/1.3.0/commands/M0017.json +51 -0
  111. data/schemas/tlc/1.3.0/commands/M0018.json +69 -0
  112. data/schemas/tlc/1.3.0/commands/M0019.json +87 -0
  113. data/schemas/tlc/1.3.0/commands/M0020.json +87 -0
  114. data/schemas/tlc/1.3.0/commands/M0021.json +51 -0
  115. data/schemas/tlc/1.3.0/commands/M0022.json +249 -0
  116. data/schemas/tlc/1.3.0/commands/M0023.json +51 -0
  117. data/schemas/tlc/1.3.0/commands/M0024.json +33 -0
  118. data/schemas/tlc/1.3.0/commands/M0103.json +72 -0
  119. data/schemas/tlc/1.3.0/commands/M0104.json +141 -0
  120. data/schemas/tlc/1.3.0/commands/command_requests.json +8 -0
  121. data/schemas/tlc/1.3.0/commands/command_responses.json +8 -0
  122. data/schemas/tlc/1.3.0/commands/commands.json +415 -0
  123. data/schemas/tlc/1.3.0/defs/definitions.json +72 -0
  124. data/schemas/tlc/1.3.0/defs/guards.json +24 -0
  125. data/schemas/tlc/1.3.0/rsmp.json +74 -0
  126. data/schemas/tlc/1.3.0/statuses/S0001.json +109 -0
  127. data/schemas/tlc/1.3.0/statuses/S0002.json +36 -0
  128. data/schemas/tlc/1.3.0/statuses/S0003.json +36 -0
  129. data/schemas/tlc/1.3.0/statuses/S0004.json +36 -0
  130. data/schemas/tlc/1.3.0/statuses/S0005.json +72 -0
  131. data/schemas/tlc/1.3.0/statuses/S0006.json +54 -0
  132. data/schemas/tlc/1.3.0/statuses/S0007.json +73 -0
  133. data/schemas/tlc/1.3.0/statuses/S0008.json +73 -0
  134. data/schemas/tlc/1.3.0/statuses/S0009.json +73 -0
  135. data/schemas/tlc/1.3.0/statuses/S0010.json +73 -0
  136. data/schemas/tlc/1.3.0/statuses/S0011.json +73 -0
  137. data/schemas/tlc/1.3.0/statuses/S0012.json +73 -0
  138. data/schemas/tlc/1.3.0/statuses/S0013.json +54 -0
  139. data/schemas/tlc/1.3.0/statuses/S0014.json +55 -0
  140. data/schemas/tlc/1.3.0/statuses/S0015.json +55 -0
  141. data/schemas/tlc/1.3.0/statuses/S0016.json +36 -0
  142. data/schemas/tlc/1.3.0/statuses/S0017.json +36 -0
  143. data/schemas/tlc/1.3.0/statuses/S0018.json +61 -0
  144. data/schemas/tlc/1.3.0/statuses/S0019.json +36 -0
  145. data/schemas/tlc/1.3.0/statuses/S0020.json +54 -0
  146. data/schemas/tlc/1.3.0/statuses/S0021.json +37 -0
  147. data/schemas/tlc/1.3.0/statuses/S0022.json +36 -0
  148. data/schemas/tlc/1.3.0/statuses/S0023.json +37 -0
  149. data/schemas/tlc/1.3.0/statuses/S0024.json +36 -0
  150. data/schemas/tlc/1.3.0/statuses/S0025.json +162 -0
  151. data/schemas/tlc/1.3.0/statuses/S0026.json +36 -0
  152. data/schemas/tlc/1.3.0/statuses/S0027.json +36 -0
  153. data/schemas/tlc/1.3.0/statuses/S0028.json +36 -0
  154. data/schemas/tlc/1.3.0/statuses/S0029.json +36 -0
  155. data/schemas/tlc/1.3.0/statuses/S0030.json +36 -0
  156. data/schemas/tlc/1.3.0/statuses/S0031.json +36 -0
  157. data/schemas/tlc/1.3.0/statuses/S0032.json +73 -0
  158. data/schemas/tlc/1.3.0/statuses/S0033.json +77 -0
  159. data/schemas/tlc/1.3.0/statuses/S0034.json +36 -0
  160. data/schemas/tlc/1.3.0/statuses/S0035.json +49 -0
  161. data/schemas/tlc/1.3.0/statuses/S0091.json +40 -0
  162. data/schemas/tlc/1.3.0/statuses/S0092.json +40 -0
  163. data/schemas/tlc/1.3.0/statuses/S0095.json +36 -0
  164. data/schemas/tlc/1.3.0/statuses/S0096.json +126 -0
  165. data/schemas/tlc/1.3.0/statuses/S0097.json +54 -0
  166. data/schemas/tlc/1.3.0/statuses/S0098.json +72 -0
  167. data/schemas/tlc/1.3.0/statuses/S0201.json +54 -0
  168. data/schemas/tlc/1.3.0/statuses/S0202.json +54 -0
  169. data/schemas/tlc/1.3.0/statuses/S0203.json +54 -0
  170. data/schemas/tlc/1.3.0/statuses/S0204.json +198 -0
  171. data/schemas/tlc/1.3.0/statuses/S0205.json +54 -0
  172. data/schemas/tlc/1.3.0/statuses/S0206.json +54 -0
  173. data/schemas/tlc/1.3.0/statuses/S0207.json +54 -0
  174. data/schemas/tlc/1.3.0/statuses/S0208.json +198 -0
  175. data/schemas/tlc/1.3.0/statuses/statuses.json +787 -0
  176. data/schemas/tlc/1.3.0/sxl.yaml +2296 -0
  177. metadata +144 -12
@@ -0,0 +1,287 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "properties" : {
4
+ "aCId" : {
5
+ "enum" : [
6
+ "A0001",
7
+ "A0002",
8
+ "A0003",
9
+ "A0004",
10
+ "A0005",
11
+ "A0006",
12
+ "A0007",
13
+ "A0008",
14
+ "A0009",
15
+ "A0010",
16
+ "A0101",
17
+ "A0201",
18
+ "A0202",
19
+ "A0301",
20
+ "A0302",
21
+ "A0303",
22
+ "A0304"
23
+ ]
24
+ },
25
+ "rvs" : {
26
+ "items" : {
27
+ "allOf" : [
28
+ {
29
+ "if" : {
30
+ "required" : [
31
+ "aCId"
32
+ ],
33
+ "properties" : {
34
+ "aCId" : {
35
+ "const" : "A0001"
36
+ }
37
+ }
38
+ },
39
+ "then" : {
40
+ "$ref" : "A0001.json"
41
+ }
42
+ },
43
+ {
44
+ "if" : {
45
+ "required" : [
46
+ "aCId"
47
+ ],
48
+ "properties" : {
49
+ "aCId" : {
50
+ "const" : "A0002"
51
+ }
52
+ }
53
+ },
54
+ "then" : {
55
+ "$ref" : "A0002.json"
56
+ }
57
+ },
58
+ {
59
+ "if" : {
60
+ "required" : [
61
+ "aCId"
62
+ ],
63
+ "properties" : {
64
+ "aCId" : {
65
+ "const" : "A0003"
66
+ }
67
+ }
68
+ },
69
+ "then" : {
70
+ "$ref" : "A0003.json"
71
+ }
72
+ },
73
+ {
74
+ "if" : {
75
+ "required" : [
76
+ "aCId"
77
+ ],
78
+ "properties" : {
79
+ "aCId" : {
80
+ "const" : "A0004"
81
+ }
82
+ }
83
+ },
84
+ "then" : {
85
+ "$ref" : "A0004.json"
86
+ }
87
+ },
88
+ {
89
+ "if" : {
90
+ "required" : [
91
+ "aCId"
92
+ ],
93
+ "properties" : {
94
+ "aCId" : {
95
+ "const" : "A0005"
96
+ }
97
+ }
98
+ },
99
+ "then" : {
100
+ "$ref" : "A0005.json"
101
+ }
102
+ },
103
+ {
104
+ "if" : {
105
+ "required" : [
106
+ "aCId"
107
+ ],
108
+ "properties" : {
109
+ "aCId" : {
110
+ "const" : "A0006"
111
+ }
112
+ }
113
+ },
114
+ "then" : {
115
+ "$ref" : "A0006.json"
116
+ }
117
+ },
118
+ {
119
+ "if" : {
120
+ "required" : [
121
+ "aCId"
122
+ ],
123
+ "properties" : {
124
+ "aCId" : {
125
+ "const" : "A0007"
126
+ }
127
+ }
128
+ },
129
+ "then" : {
130
+ "$ref" : "A0007.json"
131
+ }
132
+ },
133
+ {
134
+ "if" : {
135
+ "required" : [
136
+ "aCId"
137
+ ],
138
+ "properties" : {
139
+ "aCId" : {
140
+ "const" : "A0008"
141
+ }
142
+ }
143
+ },
144
+ "then" : {
145
+ "$ref" : "A0008.json"
146
+ }
147
+ },
148
+ {
149
+ "if" : {
150
+ "required" : [
151
+ "aCId"
152
+ ],
153
+ "properties" : {
154
+ "aCId" : {
155
+ "const" : "A0009"
156
+ }
157
+ }
158
+ },
159
+ "then" : {
160
+ "$ref" : "A0009.json"
161
+ }
162
+ },
163
+ {
164
+ "if" : {
165
+ "required" : [
166
+ "aCId"
167
+ ],
168
+ "properties" : {
169
+ "aCId" : {
170
+ "const" : "A0010"
171
+ }
172
+ }
173
+ },
174
+ "then" : {
175
+ "$ref" : "A0010.json"
176
+ }
177
+ },
178
+ {
179
+ "if" : {
180
+ "required" : [
181
+ "aCId"
182
+ ],
183
+ "properties" : {
184
+ "aCId" : {
185
+ "const" : "A0101"
186
+ }
187
+ }
188
+ },
189
+ "then" : {
190
+ "$ref" : "A0101.json"
191
+ }
192
+ },
193
+ {
194
+ "if" : {
195
+ "required" : [
196
+ "aCId"
197
+ ],
198
+ "properties" : {
199
+ "aCId" : {
200
+ "const" : "A0201"
201
+ }
202
+ }
203
+ },
204
+ "then" : {
205
+ "$ref" : "A0201.json"
206
+ }
207
+ },
208
+ {
209
+ "if" : {
210
+ "required" : [
211
+ "aCId"
212
+ ],
213
+ "properties" : {
214
+ "aCId" : {
215
+ "const" : "A0202"
216
+ }
217
+ }
218
+ },
219
+ "then" : {
220
+ "$ref" : "A0202.json"
221
+ }
222
+ },
223
+ {
224
+ "if" : {
225
+ "required" : [
226
+ "aCId"
227
+ ],
228
+ "properties" : {
229
+ "aCId" : {
230
+ "const" : "A0301"
231
+ }
232
+ }
233
+ },
234
+ "then" : {
235
+ "$ref" : "A0301.json"
236
+ }
237
+ },
238
+ {
239
+ "if" : {
240
+ "required" : [
241
+ "aCId"
242
+ ],
243
+ "properties" : {
244
+ "aCId" : {
245
+ "const" : "A0302"
246
+ }
247
+ }
248
+ },
249
+ "then" : {
250
+ "$ref" : "A0302.json"
251
+ }
252
+ },
253
+ {
254
+ "if" : {
255
+ "required" : [
256
+ "aCId"
257
+ ],
258
+ "properties" : {
259
+ "aCId" : {
260
+ "const" : "A0303"
261
+ }
262
+ }
263
+ },
264
+ "then" : {
265
+ "$ref" : "A0303.json"
266
+ }
267
+ },
268
+ {
269
+ "if" : {
270
+ "required" : [
271
+ "aCId"
272
+ ],
273
+ "properties" : {
274
+ "aCId" : {
275
+ "const" : "A0304"
276
+ }
277
+ }
278
+ },
279
+ "then" : {
280
+ "$ref" : "A0304.json"
281
+ }
282
+ }
283
+ ]
284
+ }
285
+ }
286
+ }
287
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Sets functional position.\nSets the controller to yellow flash, dark mode or normal control.\nRequires security code 2.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "intersection",
8
+ "securityCode",
9
+ "status",
10
+ "timeout"
11
+ ]
12
+ },
13
+ "cO" : {
14
+ "const" : "setValue"
15
+ }
16
+ },
17
+ "allOf" : [
18
+ {
19
+ "if" : {
20
+ "properties" : {
21
+ "n" : {
22
+ "const" : "status"
23
+ }
24
+ }
25
+ },
26
+ "then" : {
27
+ "properties" : {
28
+ "v" : {
29
+ "description" : "Set operating mode",
30
+ "type" : "string",
31
+ "enum" : [
32
+ "Dark",
33
+ "NormalControl",
34
+ "YellowFlash"
35
+ ]
36
+ }
37
+ }
38
+ }
39
+ },
40
+ {
41
+ "if" : {
42
+ "properties" : {
43
+ "n" : {
44
+ "const" : "securityCode"
45
+ }
46
+ }
47
+ },
48
+ "then" : {
49
+ "properties" : {
50
+ "v" : {
51
+ "description" : "Security code 2",
52
+ "type" : "string"
53
+ }
54
+ }
55
+ }
56
+ },
57
+ {
58
+ "if" : {
59
+ "properties" : {
60
+ "n" : {
61
+ "const" : "timeout"
62
+ }
63
+ }
64
+ },
65
+ "then" : {
66
+ "properties" : {
67
+ "v" : {
68
+ "description" : "Time in minutes until controller automatically reverts to previous functional position.\n0=no automatic return",
69
+ "type" : "string"
70
+ }
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "if" : {
76
+ "properties" : {
77
+ "n" : {
78
+ "const" : "intersection"
79
+ }
80
+ }
81
+ },
82
+ "then" : {
83
+ "properties" : {
84
+ "v" : {
85
+ "description" : "Intersection number.\nCommand only applies to specified intersection. Other intersections remains in their respective operating mode(s).\n0: All intersections",
86
+ "type" : "string"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Sets current time plan.\nChange of traffic program of the traffic light controller.\nTypical usages is scenario based control where change of program is used to change signal timings etc.\nThis command changes the signal timings for optimal traffic flow.\nRequires security code 2",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "securityCode",
8
+ "status",
9
+ "timeplan"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setPlan"
14
+ }
15
+ },
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "status"
22
+ }
23
+ }
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "False: Controller uses time plan according to programming\nTrue: Controller uses time plan according to command",
29
+ "type" : "string"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "if" : {
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "securityCode"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Security code 2",
46
+ "type" : "string"
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "if" : {
53
+ "properties" : {
54
+ "n" : {
55
+ "const" : "timeplan"
56
+ }
57
+ }
58
+ },
59
+ "then" : {
60
+ "properties" : {
61
+ "v" : {
62
+ "description" : "designation of time plan",
63
+ "type" : "string"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Sets traffic situation the controller uses.\nUsed for area-based control where this command can be sent to a master traffic light controller about which predefined traffic situation to use (1-255).\nTraffic situation is a concept used to divide multiple TLC's into areas and sub-areas. The traffic situation gives the possibility to change the TLC sub-area dynamically depending on the time of day and the traffic flow. Depending on the traffic situation each TLC selects the time plan dynamically.\nRequires security code 2",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "securityCode",
8
+ "status",
9
+ "traficsituation"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setTrafficSituation"
14
+ }
15
+ },
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "status"
22
+ }
23
+ }
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "False: Controller uses traffic situation according to own programming\nTrue: Controller uses traffic situation according to command",
29
+ "type" : "string"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "if" : {
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "securityCode"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Security code 2",
46
+ "type" : "string"
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "if" : {
53
+ "properties" : {
54
+ "n" : {
55
+ "const" : "traficsituation"
56
+ }
57
+ }
58
+ },
59
+ "then" : {
60
+ "properties" : {
61
+ "v" : {
62
+ "description" : "designation of traficsituation",
63
+ "type" : "string"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Reset Traffic Light Controller.\n\nThis command is used as a last resort to attempt to remotely fix serious faults.\nIf unsuccessful, manual intervention on site is probably required.\n\nThe controller must attempt all available safe action to reset to a functional state.\nDepending on regulations and controller capabilities, examples actions could be:\n\n- resetting parameters to defaults\n- restarting applications\n- restarting peripheral hardware\n- going through a shutdown/startup sequence and cycling power\n\nThe controller must also clear all alarms.\n\nRequires security code 2.\nThe attribute 'status' is deprecated and must be set to true.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "securityCode",
8
+ "status"
9
+ ]
10
+ },
11
+ "cO" : {
12
+ "const" : "setRestart"
13
+ }
14
+ },
15
+ "allOf" : [
16
+ {
17
+ "if" : {
18
+ "properties" : {
19
+ "n" : {
20
+ "const" : "status"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "properties" : {
26
+ "v" : {
27
+ "description" : "True: Reset controller",
28
+ "type" : "string"
29
+ }
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "if" : {
35
+ "properties" : {
36
+ "n" : {
37
+ "const" : "securityCode"
38
+ }
39
+ }
40
+ },
41
+ "then" : {
42
+ "properties" : {
43
+ "v" : {
44
+ "description" : "Security code 2",
45
+ "type" : "string"
46
+ }
47
+ }
48
+ }
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Activate emergency route.\nThe function is made for emergency prioritization. Works in the same way as the M0006 and M0008 where the traffic light controller responds to an input.\nShould be used in situations where full priority is given in the emergency vehicle program.\nRequires security code 2.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "emergencyroute",
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setEmergency"
14
+ }
15
+ },
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "status"
22
+ }
23
+ }
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "False: Deactivate emergency route\nTrue: Activate emergency route",
29
+ "type" : "string"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "if" : {
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "securityCode"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Security code 2",
46
+ "type" : "string"
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "if" : {
53
+ "properties" : {
54
+ "n" : {
55
+ "const" : "emergencyroute"
56
+ }
57
+ }
58
+ },
59
+ "then" : {
60
+ "properties" : {
61
+ "v" : {
62
+ "description" : "Number of emergency route",
63
+ "type" : "string"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Activate input.\nSet given input (1-255) of the controllers general purpose I/O to either true or false.\nThe function can provide an input to the traffic light controller on which a predefined action can be taken.\nCan be used for all types of input where the traffic light controller must react to external control.\nTypical usages are bus priority, coordination between traffic controllers, external control systems, and much more.\nRequires security code 2.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "input",
8
+ "securityCode",
9
+ "status"
10
+ ]
11
+ },
12
+ "cO" : {
13
+ "const" : "setInput"
14
+ }
15
+ },
16
+ "allOf" : [
17
+ {
18
+ "if" : {
19
+ "properties" : {
20
+ "n" : {
21
+ "const" : "status"
22
+ }
23
+ }
24
+ },
25
+ "then" : {
26
+ "properties" : {
27
+ "v" : {
28
+ "description" : "False: Deactivate input\nTrue: Activate input",
29
+ "type" : "string"
30
+ }
31
+ }
32
+ }
33
+ },
34
+ {
35
+ "if" : {
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "securityCode"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Security code 2",
46
+ "type" : "string"
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ "if" : {
53
+ "properties" : {
54
+ "n" : {
55
+ "const" : "input"
56
+ }
57
+ }
58
+ },
59
+ "then" : {
60
+ "properties" : {
61
+ "v" : {
62
+ "description" : "Number of Input",
63
+ "type" : "string"
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ]
69
+ }