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
@@ -97,7 +97,6 @@ objects:
97
97
  signalgroupstatus:
98
98
  type: string
99
99
  description: Signal group status as text field
100
- range: "[text]"
101
100
  pattern: "^[a-hA-G0-9N-P]*$"
102
101
  cyclecounter:
103
102
  type: integer
@@ -120,7 +119,6 @@ objects:
120
119
  detectorlogicstatus:
121
120
  type: string
122
121
  description: Detector logic status as text field
123
- range: "[text]"
124
122
  S0003:
125
123
  description: |-
126
124
  Input status.
@@ -130,11 +128,9 @@ objects:
130
128
  inputstatus:
131
129
  type: string
132
130
  description: Input status as text field
133
- range: "[text]"
134
131
  extendedinputstatus:
135
132
  type: string
136
133
  description: Extended input status as text field
137
- range: "[text]"
138
134
  S0004:
139
135
  description: |-
140
136
  Output status.
@@ -144,11 +140,9 @@ objects:
144
140
  outputstatus:
145
141
  type: string
146
142
  description: Output status as text field
147
- range: "[text]"
148
143
  extendedoutputstatus:
149
144
  type: string
150
145
  description: Extended output status as text field
151
- range: "[text]"
152
146
  S0005:
153
147
  description: |-
154
148
  Traffic Light Controller starting.
@@ -183,15 +177,13 @@ objects:
183
177
  During maintenance work the controller might be using dark mode (no output to the signal heads).
184
178
  arguments:
185
179
  intersection:
186
- list: true
187
- type: integer
180
+ type: integer_list
188
181
  description: |-
189
182
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
190
183
  Other value: Intersection number
191
184
  range: "[0-255]"
192
185
  status:
193
- list: true
194
- type: boolean
186
+ type: boolean_list
195
187
  description: |-
196
188
  False: Traffic Light Controller in dark mode
197
189
  True: Traffic Light Controller not in dark mode
@@ -202,15 +194,13 @@ objects:
202
194
  Signal timings is controlled manually by service personnel using the operating panel of the controller.
203
195
  arguments:
204
196
  intersection:
205
- list: true
206
- type: integer
197
+ type: integer_list
207
198
  description: |-
208
199
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
209
200
  Other value: Intersection number
210
201
  range: "[0-255]"
211
202
  status:
212
- list: true
213
- type: boolean
203
+ type: boolean_list
214
204
  description: |-
215
205
  False: Manual control inactive
216
206
  True: Manual control active
@@ -221,15 +211,13 @@ objects:
221
211
  Usually only used in case normal detectors can't be used, e.g. during maintenance work.
222
212
  arguments:
223
213
  intersection:
224
- list: true
225
- type: integer
214
+ type: integer_list
226
215
  description: |-
227
216
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
228
217
  Other value: Intersection number
229
218
  range: "[0-255]"
230
219
  status:
231
- list: true
232
- type: boolean
220
+ type: boolean_list
233
221
  description: |-
234
222
  False: Fixed time control inactive
235
223
  True: Fixed time control active
@@ -240,15 +228,13 @@ objects:
240
228
  Used to determine if the controller is operating independently or operating with other controllers (coordination).
241
229
  arguments:
242
230
  intersection:
243
- list: true
244
- type: integer
231
+ type: integer_list
245
232
  description: |-
246
233
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
247
234
  Other value: Intersection number
248
235
  range: "[0-255]"
249
236
  status:
250
- list: true
251
- type: boolean
237
+ type: boolean_list
252
238
  description: |-
253
239
  False: Isolated control disabled
254
240
  True: Isolated control enabled (Vehicle actuated control or Fixed time control)
@@ -259,15 +245,13 @@ objects:
259
245
  Yellow flash may be used during a serious fault (depending on configuration) or maintenance work. It can also be manually set using M0001.
260
246
  arguments:
261
247
  intersection:
262
- list: true
263
- type: integer
248
+ type: integer_list
264
249
  description: |-
265
250
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
266
251
  Other value: Intersection number
267
252
  range: "[0-255]"
268
253
  status:
269
- list: true
270
- type: boolean
254
+ type: boolean_list
271
255
  description: |-
272
256
  False: Yellow flash disabled
273
257
  True: Yellow flash enabled
@@ -278,15 +262,13 @@ objects:
278
262
  All red can be manually set using the controllers operating panel during maintenance work.
279
263
  arguments:
280
264
  intersection:
281
- list: true
282
- type: integer
265
+ type: integer_list
283
266
  description: |-
284
267
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
285
268
  Other value: Intersection number
286
269
  range: "[0-255]"
287
270
  status:
288
- list: true
289
- type: boolean
271
+ type: boolean_list
290
272
  description: |-
291
273
  False: All red disabled
292
274
  True: All red enabled
@@ -297,15 +279,13 @@ objects:
297
279
  The "police key" is a external control switch present in some controllers that manually switches the controller to either dark mode or yellow flash.
298
280
  arguments:
299
281
  intersection:
300
- list: true
301
- type: integer
282
+ type: integer_list
302
283
  description: |-
303
284
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
304
285
  Other value: Intersection number
305
286
  range: "[0-255]"
306
287
  status:
307
- list: true
308
- type: integer
288
+ type: integer_list
309
289
  values:
310
290
  0: disabled
311
291
  1: dark mode
@@ -373,15 +353,13 @@ objects:
373
353
  Can be used for the management system to check the current control mode (startup, normal, standby, failure, test).
374
354
  arguments:
375
355
  intersection:
376
- list: true
377
- type: integer
356
+ type: integer_list
378
357
  description: |-
379
358
  0: Not applicable (only one intersection exists or applicable for all intersection of the traffic light controller)
380
359
  Other value: Intersection number
381
360
  range: "[0-255]"
382
361
  controlmode:
383
- list: true
384
- type: string
362
+ type: string_list
385
363
  values:
386
364
  startup: Startup mode
387
365
  control: Normal control
@@ -397,7 +375,6 @@ objects:
397
375
  detectorlogics:
398
376
  type: string
399
377
  description: Manually set detector logics (1/0) as text field
400
- range: "[text]"
401
378
  pattern: "^[01]*$"
402
379
  S0091:
403
380
  description: |-
@@ -437,7 +414,6 @@ objects:
437
414
  status:
438
415
  type: string
439
416
  description: Manufacturer, product name and version of traffic light controller
440
- range: "[text]"
441
417
  S0096:
442
418
  description: |-
443
419
  Current date and time
@@ -477,29 +453,25 @@ objects:
477
453
  Requires security code 2.
478
454
  arguments:
479
455
  status:
480
- list: true
456
+ type: string_list
481
457
  description: Set operating mode
482
- type: string
483
458
  values:
484
459
  NormalControl: Normal Control
485
460
  YellowFlash: Enables yellow flash
486
461
  Dark: Enables dark mode
487
462
  securityCode:
488
- list: true
463
+ type: string_list
489
464
  description: Security code 2
490
- type: string
491
465
  timeout:
492
- list: true
466
+ type: integer_list
493
467
  description: |-
494
468
  Time in minutes until controller automatically reverts to previous functional position.
495
469
  0=no automatic return
496
- type: integer
497
470
  min: 0
498
471
  max: 1440
499
472
  intersection:
500
- list: true
473
+ type: integer_list
501
474
  description: Intersection number
502
- type: integer
503
475
  min: 0
504
476
  max: 255
505
477
  command: setValue
@@ -519,7 +491,6 @@ objects:
519
491
  securityCode:
520
492
  type: string
521
493
  description: Security code 2
522
- range: "[text]"
523
494
  timeplan:
524
495
  type: integer
525
496
  description: designation of time plan
@@ -540,7 +511,6 @@ objects:
540
511
  securityCode:
541
512
  type: string
542
513
  description: Security code 2
543
- range: "[text]"
544
514
  traficsituation:
545
515
  type: integer
546
516
  description: designation of traficsituation
@@ -558,7 +528,6 @@ objects:
558
528
  securityCode:
559
529
  type: string
560
530
  description: Security code 2
561
- range: "[text]"
562
531
  command: setRestart
563
532
  M0005:
564
533
  description: |-
@@ -575,7 +544,6 @@ objects:
575
544
  securityCode:
576
545
  type: string
577
546
  description: Security code 2
578
- range: "[text]"
579
547
  emergencyroute:
580
548
  type: integer
581
549
  description: Number of emergency route
@@ -598,7 +566,6 @@ objects:
598
566
  securityCode:
599
567
  type: string
600
568
  description: Security code 2
601
- range: "[text]"
602
569
  input:
603
570
  type: integer
604
571
  description: Number of Input
@@ -619,7 +586,6 @@ objects:
619
586
  securityCode:
620
587
  type: string
621
588
  description: Security code 2
622
- range: "[text]"
623
589
  command: setFixedTime
624
590
  M0012:
625
591
  description: |-
@@ -656,11 +622,9 @@ objects:
656
622
  "5,4143,65:22,1,4"
657
623
 
658
624
  Such a message would order signal group 6,7,10,17,22 to green and signal group 5,11,24 to red
659
- range: "[text]"
660
625
  securityCode:
661
626
  type: string
662
627
  description: Security code 2
663
- range: "[text]"
664
628
  command: setStart
665
629
  M0013:
666
630
  description: |-
@@ -691,11 +655,9 @@ objects:
691
655
  "5,4143:65:22,1,4"
692
656
 
693
657
  Such a message would activate input 6,7,10,17,22 and deactivate input 5,11,24
694
- range: "[text]"
695
658
  securityCode:
696
659
  type: string
697
660
  description: Security code 2
698
- range: "[text]"
699
661
  command: setInput
700
662
  M0019:
701
663
  description: |-
@@ -712,7 +674,6 @@ objects:
712
674
  securityCode:
713
675
  type: string
714
676
  description: Security code 2
715
- range: "[text]"
716
677
  input:
717
678
  type: integer
718
679
  description: Number of Input
@@ -737,11 +698,9 @@ objects:
737
698
  oldSecurityCode:
738
699
  type: string
739
700
  description: Previous security code
740
- range: "[text]"
741
701
  newSecurityCode:
742
702
  type: string
743
703
  description: New security code
744
- range: "[text]"
745
704
  command: setSecurityCode
746
705
  M0104:
747
706
  description: |-
@@ -752,7 +711,6 @@ objects:
752
711
  securityCode:
753
712
  type: string
754
713
  description: Security code 1
755
- range: "[text]"
756
714
  year:
757
715
  type: integer
758
716
  description: |-
@@ -859,7 +817,6 @@ objects:
859
817
  securityCode:
860
818
  type: string
861
819
  description: Security code 2
862
- range: "[text]"
863
820
  command: setStart
864
821
  M0011:
865
822
  description: |-
@@ -876,7 +833,6 @@ objects:
876
833
  securityCode:
877
834
  type: string
878
835
  description: Security code 2
879
- range: "[text]"
880
836
  command: setStop
881
837
  Detector logic:
882
838
  description:
@@ -1050,7 +1006,6 @@ objects:
1050
1006
  securityCode:
1051
1007
  type: string
1052
1008
  description: Security code 2
1053
- range: "[text]"
1054
1009
  mode:
1055
1010
  type: boolean
1056
1011
  description: |-
@@ -0,0 +1,111 @@
1
+ {
2
+ "allOf" : [
3
+ {
4
+ "description" : "Serious detector error (hardware).\nIs a “major fault” defined according to 3.8 i EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675.",
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "detector",
9
+ "errormode",
10
+ "manual",
11
+ "type"
12
+ ]
13
+ }
14
+ }
15
+ },
16
+ {
17
+ "if" : {
18
+ "required" : [
19
+ "n"
20
+ ],
21
+ "properties" : {
22
+ "n" : {
23
+ "const" : "detector"
24
+ }
25
+ }
26
+ },
27
+ "then" : {
28
+ "properties" : {
29
+ "v" : {
30
+ "description" : "Designation of the detector (hardware)",
31
+ "type" : "string"
32
+ }
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "if" : {
38
+ "required" : [
39
+ "n"
40
+ ],
41
+ "properties" : {
42
+ "n" : {
43
+ "const" : "type"
44
+ }
45
+ }
46
+ },
47
+ "then" : {
48
+ "properties" : {
49
+ "v" : {
50
+ "description" : "Type of detector.",
51
+ "type" : "string",
52
+ "enum" : [
53
+ "input",
54
+ "loop"
55
+ ]
56
+ }
57
+ }
58
+ }
59
+ },
60
+ {
61
+ "if" : {
62
+ "required" : [
63
+ "n"
64
+ ],
65
+ "properties" : {
66
+ "n" : {
67
+ "const" : "errormode"
68
+ }
69
+ }
70
+ },
71
+ "then" : {
72
+ "properties" : {
73
+ "v" : {
74
+ "description" : "Detector forced on/off while detector error",
75
+ "type" : "string",
76
+ "enum" : [
77
+ "off",
78
+ "on"
79
+ ]
80
+ }
81
+ }
82
+ }
83
+ },
84
+ {
85
+ "if" : {
86
+ "required" : [
87
+ "n"
88
+ ],
89
+ "properties" : {
90
+ "n" : {
91
+ "const" : "manual"
92
+ }
93
+ }
94
+ },
95
+ "then" : {
96
+ "properties" : {
97
+ "v" : {
98
+ "allOf" : [
99
+ {
100
+ "description" : "Manually controlled detector logic (True/False)"
101
+ },
102
+ {
103
+ "$ref" : "../../../core/3.1.1/definitions.json#/boolean"
104
+ }
105
+ ]
106
+ }
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ }
@@ -0,0 +1,137 @@
1
+ {
2
+ "allOf" : [
3
+ {
4
+ "description" : "Serious detector error (logic error).\nFor instance; detector continuously on or off during an extended time.\nIs a “major fault” defined according to 3.8 i EN12675 which causes the controller to switch to a “failure mode” according to 3.6 in EN12675",
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "detector",
9
+ "errormode",
10
+ "logicerror",
11
+ "manual",
12
+ "type"
13
+ ]
14
+ }
15
+ }
16
+ },
17
+ {
18
+ "if" : {
19
+ "required" : [
20
+ "n"
21
+ ],
22
+ "properties" : {
23
+ "n" : {
24
+ "const" : "detector"
25
+ }
26
+ }
27
+ },
28
+ "then" : {
29
+ "properties" : {
30
+ "v" : {
31
+ "description" : "Designation of the detector (hardware)",
32
+ "type" : "string"
33
+ }
34
+ }
35
+ }
36
+ },
37
+ {
38
+ "if" : {
39
+ "required" : [
40
+ "n"
41
+ ],
42
+ "properties" : {
43
+ "n" : {
44
+ "const" : "type"
45
+ }
46
+ }
47
+ },
48
+ "then" : {
49
+ "properties" : {
50
+ "v" : {
51
+ "description" : "Type of detector.",
52
+ "type" : "string",
53
+ "enum" : [
54
+ "input",
55
+ "loop"
56
+ ]
57
+ }
58
+ }
59
+ }
60
+ },
61
+ {
62
+ "if" : {
63
+ "required" : [
64
+ "n"
65
+ ],
66
+ "properties" : {
67
+ "n" : {
68
+ "const" : "errormode"
69
+ }
70
+ }
71
+ },
72
+ "then" : {
73
+ "properties" : {
74
+ "v" : {
75
+ "description" : "Detector forced on/off while detector error",
76
+ "type" : "string",
77
+ "enum" : [
78
+ "off",
79
+ "on"
80
+ ]
81
+ }
82
+ }
83
+ }
84
+ },
85
+ {
86
+ "if" : {
87
+ "required" : [
88
+ "n"
89
+ ],
90
+ "properties" : {
91
+ "n" : {
92
+ "const" : "manual"
93
+ }
94
+ }
95
+ },
96
+ "then" : {
97
+ "properties" : {
98
+ "v" : {
99
+ "allOf" : [
100
+ {
101
+ "description" : "Manually controlled detector logic (True/False)"
102
+ },
103
+ {
104
+ "$ref" : "../../../core/3.1.1/definitions.json#/boolean"
105
+ }
106
+ ]
107
+ }
108
+ }
109
+ }
110
+ },
111
+ {
112
+ "if" : {
113
+ "required" : [
114
+ "n"
115
+ ],
116
+ "properties" : {
117
+ "n" : {
118
+ "const" : "logicerror"
119
+ }
120
+ }
121
+ },
122
+ "then" : {
123
+ "properties" : {
124
+ "v" : {
125
+ "description" : "Type of logic error",
126
+ "type" : "string",
127
+ "enum" : [
128
+ "always_off",
129
+ "always_on",
130
+ "intermittent"
131
+ ]
132
+ }
133
+ }
134
+ }
135
+ }
136
+ ]
137
+ }
@@ -16,7 +16,9 @@
16
16
  "A0201",
17
17
  "A0202",
18
18
  "A0301",
19
- "A0302"
19
+ "A0302",
20
+ "A0303",
21
+ "A0304"
20
22
  ]
21
23
  },
22
24
  "rvs" : {
@@ -246,6 +248,36 @@
246
248
  "then" : {
247
249
  "$ref" : "A0302.json"
248
250
  }
251
+ },
252
+ {
253
+ "if" : {
254
+ "required" : [
255
+ "aCId"
256
+ ],
257
+ "properties" : {
258
+ "aCId" : {
259
+ "const" : "A0303"
260
+ }
261
+ }
262
+ },
263
+ "then" : {
264
+ "$ref" : "A0303.json"
265
+ }
266
+ },
267
+ {
268
+ "if" : {
269
+ "required" : [
270
+ "aCId"
271
+ ],
272
+ "properties" : {
273
+ "aCId" : {
274
+ "const" : "A0304"
275
+ }
276
+ }
277
+ },
278
+ "then" : {
279
+ "$ref" : "A0304.json"
280
+ }
249
281
  }
250
282
  ]
251
283
  }
@@ -88,7 +88,7 @@
88
88
  "description" : "Time in minutes until controller automatically reverts to previous functional position.\n0=no automatic return"
89
89
  },
90
90
  {
91
- "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
91
+ "$ref" : "../../../core/3.1.1/definitions.json#/integer"
92
92
  }
93
93
  ]
94
94
  }
@@ -111,7 +111,7 @@
111
111
  "v" : {
112
112
  "allOf" : [
113
113
  {
114
- "description" : "Intersection number"
114
+ "description" : "Comma separated list of intersections which the status relates to, e.g. “1,2”.\nUse “0” for all intersections of the TLC."
115
115
  },
116
116
  {
117
117
  "$ref" : "../../../core/3.1.1/definitions.json#/integer_list"
@@ -31,7 +31,7 @@
31
31
  "v" : {
32
32
  "allOf" : [
33
33
  {
34
- "description" : "False: Activate emergency route\nTrue: Deactivate emergency route"
34
+ "description" : "False: Deactivate emergency route\nTrue: Activate emergency route"
35
35
  },
36
36
  {
37
37
  "$ref" : "../../../core/3.1.1/definitions.json#/boolean"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "allOf" : [
3
3
  {
4
- "description" : "Activate a series of inputs.\nSet given inputs (1-255) of the controllers general purpose I/O to either true or false.\nThis 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 RSMP message.\nCan 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.\nRequires security code 2",
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",
5
5
  "properties" : {
6
6
  "n" : {
7
7
  "enum" : [
@@ -32,7 +32,7 @@
32
32
  "v" : {
33
33
  "allOf" : [
34
34
  {
35
- "description" : "False: Force input\nTrue: Release input"
35
+ "description" : "False: Release input\nTrue: Force input"
36
36
  },
37
37
  {
38
38
  "$ref" : "../../../core/3.1.1/definitions.json#/boolean"