rsmp_schema 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/rsmp_schema/convert/export/json_schema.rb +96 -54
  4. data/lib/rsmp_schema/schema.rb +80 -24
  5. data/lib/rsmp_schema/version.rb +1 -1
  6. data/lib/rsmp_schema.rb +2 -0
  7. data/schemas/tlc/1.0.10/sxl.yaml +20 -65
  8. data/schemas/tlc/1.0.13/sxl.yaml +20 -80
  9. data/schemas/tlc/1.0.14/sxl.yaml +20 -80
  10. data/schemas/tlc/1.0.15/sxl.yaml +20 -87
  11. data/schemas/tlc/1.0.7/sxl.yaml +20 -61
  12. data/schemas/tlc/1.0.8/sxl.yaml +20 -65
  13. data/schemas/tlc/1.0.9/sxl.yaml +20 -65
  14. data/schemas/tlc/1.1/alarms/A0303.json +111 -0
  15. data/schemas/tlc/1.1/alarms/A0304.json +137 -0
  16. data/schemas/tlc/1.1/alarms/alarms.json +33 -1
  17. data/schemas/tlc/1.1/commands/M0001.json +2 -2
  18. data/schemas/tlc/1.1/commands/M0005.json +1 -1
  19. data/schemas/tlc/1.1/commands/M0013.json +1 -1
  20. data/schemas/tlc/1.1/commands/M0019.json +1 -1
  21. data/schemas/tlc/1.1/commands/M0022.json +335 -0
  22. data/schemas/tlc/1.1/commands/M0023.json +64 -0
  23. data/schemas/tlc/1.1/commands/commands.json +32 -0
  24. data/schemas/tlc/1.1/statuses/S0001.json +3 -3
  25. data/schemas/tlc/1.1/statuses/S0002.json +1 -1
  26. data/schemas/tlc/1.1/statuses/S0003.json +1 -1
  27. data/schemas/tlc/1.1/statuses/S0004.json +1 -1
  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 +2 -2
  35. data/schemas/tlc/1.1/statuses/S0020.json +1 -1
  36. data/schemas/tlc/1.1/statuses/S0032.json +96 -0
  37. data/schemas/tlc/1.1/statuses/S0033.json +93 -0
  38. data/schemas/tlc/1.1/statuses/S0034.json +40 -0
  39. data/schemas/tlc/1.1/statuses/S0205.json +8 -2
  40. data/schemas/tlc/1.1/statuses/S0206.json +8 -2
  41. data/schemas/tlc/1.1/statuses/S0207.json +8 -2
  42. data/schemas/tlc/1.1/statuses/S0208.json +72 -18
  43. data/schemas/tlc/1.1/statuses/statuses.json +48 -0
  44. data/schemas/tlc/1.1/sxl.yaml +596 -241
  45. metadata +9 -2
@@ -0,0 +1,96 @@
1
+ {
2
+ "allOf" : [
3
+ {
4
+ "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”",
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "intersection",
9
+ "source",
10
+ "status"
11
+ ]
12
+ }
13
+ }
14
+ },
15
+ {
16
+ "if" : {
17
+ "required" : [
18
+ "n"
19
+ ],
20
+ "properties" : {
21
+ "n" : {
22
+ "const" : "intersection"
23
+ }
24
+ }
25
+ },
26
+ "then" : {
27
+ "properties" : {
28
+ "s" : {
29
+ "allOf" : [
30
+ {
31
+ "description" : "Comma separated list of intersections which the status relates to, e.g. “1,2”.\nUse “0” for all intersections of the TLC."
32
+ },
33
+ {
34
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
35
+ }
36
+ ]
37
+ }
38
+ }
39
+ }
40
+ },
41
+ {
42
+ "if" : {
43
+ "required" : [
44
+ "n"
45
+ ],
46
+ "properties" : {
47
+ "n" : {
48
+ "const" : "status"
49
+ }
50
+ }
51
+ },
52
+ "then" : {
53
+ "properties" : {
54
+ "s" : {
55
+ "allOf" : [
56
+ {
57
+ "description" : "local: Local coordination\ncentralized: Coordination with synchronized clock\noff: Coordination not active",
58
+ "pattern" : "(?-mix:^(local|centralized|off)(?:,(local|centralized|off))*$)"
59
+ },
60
+ {
61
+ "$ref" : "../../../core/3.1.1/definitions.json#/string_list"
62
+ }
63
+ ]
64
+ }
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "if" : {
70
+ "required" : [
71
+ "n"
72
+ ],
73
+ "properties" : {
74
+ "n" : {
75
+ "const" : "source"
76
+ }
77
+ }
78
+ },
79
+ "then" : {
80
+ "properties" : {
81
+ "s" : {
82
+ "allOf" : [
83
+ {
84
+ "description" : "Source of the status change",
85
+ "pattern" : "(?-mix:^(operator_panel|calendar_clock|control_block|forced|startup|other)(?:,(operator_panel|calendar_clock|control_block|forced|startup|other))*$)"
86
+ },
87
+ {
88
+ "$ref" : "../../../core/3.1.1/definitions.json#/string_list"
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ }
94
+ }
95
+ ]
96
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "allOf" : [
3
+ {
4
+ "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.\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:",
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "status"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "n"
17
+ ],
18
+ "properties" : {
19
+ "n" : {
20
+ "const" : "status"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "properties" : {
26
+ "s" : {
27
+ "description" : "JSON array of priority status items",
28
+ "type" : "array",
29
+ "items" : {
30
+ "type" : "object",
31
+ "required" : [
32
+ "r",
33
+ "s",
34
+ "t"
35
+ ],
36
+ "additionalProperties" : false,
37
+ "properties" : {
38
+ "r" : {
39
+ "description" : "ID of the priority request",
40
+ "type" : "string"
41
+ },
42
+ "t" : {
43
+ "allOf" : [
44
+ {
45
+ "description" : "Timestamp, indicating when the priority last changed state.\nFormat according to W3C XML dateTime with a resolution of 3 decimal places.\nAll time stamps in UTC. E.g. 2009-10-02T14:34:34.341Z"
46
+ },
47
+ {
48
+ "$ref" : "../../../core/3.1.1/definitions.json#/timestamp"
49
+ }
50
+ ]
51
+ },
52
+ "s" : {
53
+ "description" : "Current status of the priority request",
54
+ "type" : "string",
55
+ "enum" : [
56
+ "activated",
57
+ "completed",
58
+ "cooldown",
59
+ "queued",
60
+ "received",
61
+ "rejected",
62
+ "stale",
63
+ "timeout"
64
+ ]
65
+ },
66
+ "e" : {
67
+ "allOf" : [
68
+ {
69
+ "description" : "(Optional) Estimated green extension provided by the priority, in seconds\nOnly used when state is ‘completed’."
70
+ },
71
+ {
72
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer"
73
+ }
74
+ ]
75
+ },
76
+ "d" : {
77
+ "allOf" : [
78
+ {
79
+ "description" : "(Optional) Estimated red reduction provided by the priority, in seconds\nOnly used when state is ‘completed’."
80
+ },
81
+ {
82
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer"
83
+ }
84
+ ]
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ]
93
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "allOf" : [
3
+ {
4
+ "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",
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "status"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "n"
17
+ ],
18
+ "properties" : {
19
+ "n" : {
20
+ "const" : "status"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "properties" : {
26
+ "s" : {
27
+ "allOf" : [
28
+ {
29
+ "description" : "Timeout, in minutes"
30
+ },
31
+ {
32
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer"
33
+ }
34
+ ]
35
+ }
36
+ }
37
+ }
38
+ }
39
+ ]
40
+ }
@@ -51,8 +51,14 @@
51
51
  "then" : {
52
52
  "properties" : {
53
53
  "s" : {
54
- "description" : "Number of vehicles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
55
- "type" : "string"
54
+ "allOf" : [
55
+ {
56
+ "description" : "Number of vehicles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
57
+ },
58
+ {
59
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
60
+ }
61
+ ]
56
62
  }
57
63
  }
58
64
  }
@@ -51,8 +51,14 @@
51
51
  "then" : {
52
52
  "properties" : {
53
53
  "s" : {
54
- "description" : "Average speed in km/h (integer).\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
55
- "type" : "string"
54
+ "allOf" : [
55
+ {
56
+ "description" : "Average speed in km/h (integer).\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
57
+ },
58
+ {
59
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
60
+ }
61
+ ]
56
62
  }
57
63
  }
58
64
  }
@@ -51,8 +51,14 @@
51
51
  "then" : {
52
52
  "properties" : {
53
53
  "s" : {
54
- "description" : "Occupancy in percent (%) (0-100)\n- Value expressed as an integer with a range of 0-100.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
55
- "type" : "string"
54
+ "allOf" : [
55
+ {
56
+ "description" : "Occupancy in percent (%) (0-100)\n- Value expressed as an integer with a range of 0-100.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
57
+ },
58
+ {
59
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
60
+ }
61
+ ]
56
62
  }
57
63
  }
58
64
  }
@@ -59,8 +59,14 @@
59
59
  "then" : {
60
60
  "properties" : {
61
61
  "s" : {
62
- "description" : "Number of cars.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
63
- "type" : "string"
62
+ "allOf" : [
63
+ {
64
+ "description" : "Number of cars.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
65
+ },
66
+ {
67
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
68
+ }
69
+ ]
64
70
  }
65
71
  }
66
72
  }
@@ -79,8 +85,14 @@
79
85
  "then" : {
80
86
  "properties" : {
81
87
  "s" : {
82
- "description" : "Number of cars with trailers.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
83
- "type" : "string"
88
+ "allOf" : [
89
+ {
90
+ "description" : "Number of cars with trailers.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
91
+ },
92
+ {
93
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
94
+ }
95
+ ]
84
96
  }
85
97
  }
86
98
  }
@@ -99,8 +111,14 @@
99
111
  "then" : {
100
112
  "properties" : {
101
113
  "s" : {
102
- "description" : "Number of trucks.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
103
- "type" : "string"
114
+ "allOf" : [
115
+ {
116
+ "description" : "Number of trucks.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
117
+ },
118
+ {
119
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
120
+ }
121
+ ]
104
122
  }
105
123
  }
106
124
  }
@@ -119,8 +137,14 @@
119
137
  "then" : {
120
138
  "properties" : {
121
139
  "s" : {
122
- "description" : "Number of trucks with trailers.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
123
- "type" : "string"
140
+ "allOf" : [
141
+ {
142
+ "description" : "Number of trucks with trailers.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
143
+ },
144
+ {
145
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
146
+ }
147
+ ]
124
148
  }
125
149
  }
126
150
  }
@@ -139,8 +163,14 @@
139
163
  "then" : {
140
164
  "properties" : {
141
165
  "s" : {
142
- "description" : "Number of busses.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
143
- "type" : "string"
166
+ "allOf" : [
167
+ {
168
+ "description" : "Number of busses.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
169
+ },
170
+ {
171
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
172
+ }
173
+ ]
144
174
  }
145
175
  }
146
176
  }
@@ -159,8 +189,14 @@
159
189
  "then" : {
160
190
  "properties" : {
161
191
  "s" : {
162
- "description" : "Number of trams.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
163
- "type" : "string"
192
+ "allOf" : [
193
+ {
194
+ "description" : "Number of trams.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
195
+ },
196
+ {
197
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
198
+ }
199
+ ]
164
200
  }
165
201
  }
166
202
  }
@@ -179,8 +215,14 @@
179
215
  "then" : {
180
216
  "properties" : {
181
217
  "s" : {
182
- "description" : "Number of motor cycles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
183
- "type" : "string"
218
+ "allOf" : [
219
+ {
220
+ "description" : "Number of motor cycles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
221
+ },
222
+ {
223
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
224
+ }
225
+ ]
184
226
  }
185
227
  }
186
228
  }
@@ -199,8 +241,14 @@
199
241
  "then" : {
200
242
  "properties" : {
201
243
  "s" : {
202
- "description" : "Number of bicycles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
203
- "type" : "string"
244
+ "allOf" : [
245
+ {
246
+ "description" : "Number of bicycles.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
247
+ },
248
+ {
249
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
250
+ }
251
+ ]
204
252
  }
205
253
  }
206
254
  }
@@ -219,8 +267,14 @@
219
267
  "then" : {
220
268
  "properties" : {
221
269
  "s" : {
222
- "description" : "Number of pedestrians.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)",
223
- "type" : "string"
270
+ "allOf" : [
271
+ {
272
+ "description" : "Number of pedestrians.\n- Value expressed as an integer with a range of 0-65535.\n- Contains data from all detector logics. Each detector logic is separated with a comma.\n- The value is set to “-1” if no data could be measured (e.g. detector fault)"
273
+ },
274
+ {
275
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
276
+ }
277
+ ]
224
278
  }
225
279
  }
226
280
  }
@@ -38,6 +38,9 @@
38
38
  "S0029",
39
39
  "S0030",
40
40
  "S0031",
41
+ "S0032",
42
+ "S0033",
43
+ "S0034",
41
44
  "S0091",
42
45
  "S0092",
43
46
  "S0095",
@@ -521,6 +524,51 @@
521
524
  "$ref" : "S0031.json"
522
525
  }
523
526
  },
527
+ {
528
+ "if" : {
529
+ "required" : [
530
+ "sCI"
531
+ ],
532
+ "properties" : {
533
+ "sCI" : {
534
+ "const" : "S0032"
535
+ }
536
+ }
537
+ },
538
+ "then" : {
539
+ "$ref" : "S0032.json"
540
+ }
541
+ },
542
+ {
543
+ "if" : {
544
+ "required" : [
545
+ "sCI"
546
+ ],
547
+ "properties" : {
548
+ "sCI" : {
549
+ "const" : "S0033"
550
+ }
551
+ }
552
+ },
553
+ "then" : {
554
+ "$ref" : "S0033.json"
555
+ }
556
+ },
557
+ {
558
+ "if" : {
559
+ "required" : [
560
+ "sCI"
561
+ ],
562
+ "properties" : {
563
+ "sCI" : {
564
+ "const" : "S0034"
565
+ }
566
+ }
567
+ },
568
+ "then" : {
569
+ "$ref" : "S0034.json"
570
+ }
571
+ },
524
572
  {
525
573
  "if" : {
526
574
  "required" : [