rsmp_schemer 0.2.0 → 0.3.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +5 -5
- data/lib/rsmp_schemer/schemer.rb +24 -15
- data/lib/rsmp_schemer/version.rb +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/commands/M0019.json +100 -0
- data/schemas/tlc_1.0.10/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.10/schema/tlc/statuses/statuses.json +1 -257
- data/schemas/tlc_1.0.13/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/commands/M0019.json +2 -2
- data/schemas/tlc_1.0.13/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/statuses/S0023.json +1 -1
- data/schemas/tlc_1.0.13/schema/tlc/statuses/statuses.json +1 -99
- data/schemas/tlc_1.0.13/spec/tlc/S0023_spec.rb +96 -0
- data/schemas/tlc_1.0.14/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/commands/M0019.json +2 -2
- data/schemas/tlc_1.0.14/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/statuses/S0023.json +1 -1
- data/schemas/tlc_1.0.14/schema/tlc/statuses/statuses.json +0 -34
- data/schemas/tlc_1.0.14/spec/tlc/S0023_spec.rb +96 -0
- data/schemas/tlc_1.0.15/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.15/schema/tlc/statuses/S0023.json +1 -1
- data/schemas/tlc_1.0.15/spec/tlc/S0023_spec.rb +96 -0
- data/schemas/tlc_1.0.7/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/commands/M0019.json +100 -0
- data/schemas/tlc_1.0.7/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.7/schema/tlc/statuses/statuses.json +1 -77
- data/schemas/tlc_1.0.8/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/commands/M0019.json +100 -0
- data/schemas/tlc_1.0.8/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.8/schema/tlc/statuses/statuses.json +1 -77
- data/schemas/tlc_1.0.9/schema/tlc/alarms/A0301.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/alarms/A0302.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0002.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0003.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0004.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0005.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0006.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0007.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0008.json +2 -2
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0010.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0011.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/commands/M0019.json +100 -0
- data/schemas/tlc_1.0.9/schema/tlc/statuses/S0001.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/statuses/S0005.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/statuses/S0006.json +1 -1
- data/schemas/tlc_1.0.9/schema/tlc/statuses/statuses.json +1 -77
- metadata +10 -3
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
|
|
2
|
+
let(:message) {{
|
|
3
|
+
"mType" => "rSMsg",
|
|
4
|
+
"mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
|
|
5
|
+
"type" => "StatusResponse",
|
|
6
|
+
"cId" => "O+14439=481WA001",
|
|
7
|
+
"sTs" => "2015-06-08T09:15:18.266Z",
|
|
8
|
+
"sS" => [
|
|
9
|
+
{ "sCI" => "S0023", "n" => "status", "s" => "", "q" => "recent" }
|
|
10
|
+
]
|
|
11
|
+
}}
|
|
12
|
+
|
|
13
|
+
it 'accepts empty list' do
|
|
14
|
+
message["sS"][0]['s'] = ''
|
|
15
|
+
expect( validate(message) ).to be_nil
|
|
16
|
+
end
|
|
17
|
+
it 'accepts one digit' do
|
|
18
|
+
message["sS"][0]['s'] = '1-1-0'
|
|
19
|
+
expect( validate(message) ).to be_nil
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'accepts two digits' do
|
|
23
|
+
message["sS"][0]['s'] = '01-01-20'
|
|
24
|
+
expect( validate(message) ).to be_nil
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'rejects three digits or more' do
|
|
28
|
+
message["sS"][0]['s'] = '01-01-100'
|
|
29
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
30
|
+
|
|
31
|
+
message["sS"][0]['s'] = '100-01-01'
|
|
32
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'accepts comma-separated items' do
|
|
36
|
+
message["sS"][0]['s'] = '1-1-0,1-2-0'
|
|
37
|
+
expect( validate(message) ).to be_nil
|
|
38
|
+
|
|
39
|
+
message["sS"][0]['s'] = '1-1-0,1-2-0,2-4-5'
|
|
40
|
+
expect( validate(message) ).to be_nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'rejects comma-separated lists with spaces' do
|
|
44
|
+
message["sS"][0]['s'] = '1-1-0, 1-2-0'
|
|
45
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
46
|
+
|
|
47
|
+
message["sS"][0]['s'] = '1-1-0 ,1-2-0'
|
|
48
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'rejects comma-separated lists with trailing comma' do
|
|
52
|
+
message["sS"][0]['s'] = '1-1-0,'
|
|
53
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'rejects comma-separated lists with leading comma' do
|
|
57
|
+
message["sS"][0]['s'] = ',1-1-0'
|
|
58
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'rejects comma-separated lists with empty items' do
|
|
62
|
+
message["sS"][0]['s'] = '1-1-0,,1-2-0'
|
|
63
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'rejects negatives' do
|
|
67
|
+
message["sS"][0]['s'] = '-1-2-3'
|
|
68
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
69
|
+
|
|
70
|
+
message["sS"][0]['s'] = '1--2-3'
|
|
71
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
72
|
+
|
|
73
|
+
message["sS"][0]['s'] = '1-2--3'
|
|
74
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'rejects floats' do
|
|
78
|
+
message["sS"][0]['s'] = '.1-2-3'
|
|
79
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
80
|
+
|
|
81
|
+
message["sS"][0]['s'] = '1-.2-3'
|
|
82
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
83
|
+
|
|
84
|
+
message["sS"][0]['s'] = '1-2-.3'
|
|
85
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
86
|
+
|
|
87
|
+
message["sS"][0]['s'] = '1.-2-3'
|
|
88
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
89
|
+
|
|
90
|
+
message["sS"][0]['s'] = '1-2.-3'
|
|
91
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
92
|
+
|
|
93
|
+
message["sS"][0]['s'] = '1-2-3.'
|
|
94
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"s" : {
|
|
27
27
|
"description" : "Dynamic bands.\nEach dynamic band are written as pp-dd-ee where:\npp=Time plan\ndd=Dynamic band number (from 1-10)\nee=Extension in seconds in this band\n\nEach dynamic band is separated with a comma.\n\nE.g.\npp-dd-ee,pp-dd-ee",
|
|
28
28
|
"type" : "string",
|
|
29
|
-
"pattern" : "
|
|
29
|
+
"pattern" : "(^$)|(^(?<item>(\\d{1,2})\\-\\d{1,2}-\\d{1,2})(,\\g<item>)*$)"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
RSpec.describe "Traffic Light Controller RSMP SXL Schema validation" do
|
|
2
|
+
let(:message) {{
|
|
3
|
+
"mType" => "rSMsg",
|
|
4
|
+
"mId" => "4173c2c8-a933-43cb-9425-66d4613731ed",
|
|
5
|
+
"type" => "StatusResponse",
|
|
6
|
+
"cId" => "O+14439=481WA001",
|
|
7
|
+
"sTs" => "2015-06-08T09:15:18.266Z",
|
|
8
|
+
"sS" => [
|
|
9
|
+
{ "sCI" => "S0023", "n" => "status", "s" => "", "q" => "recent" }
|
|
10
|
+
]
|
|
11
|
+
}}
|
|
12
|
+
|
|
13
|
+
it 'accepts empty list' do
|
|
14
|
+
message["sS"][0]['s'] = ''
|
|
15
|
+
expect( validate(message) ).to be_nil
|
|
16
|
+
end
|
|
17
|
+
it 'accepts one digit' do
|
|
18
|
+
message["sS"][0]['s'] = '1-1-0'
|
|
19
|
+
expect( validate(message) ).to be_nil
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'accepts two digits' do
|
|
23
|
+
message["sS"][0]['s'] = '01-01-20'
|
|
24
|
+
expect( validate(message) ).to be_nil
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it 'rejects three digits or more' do
|
|
28
|
+
message["sS"][0]['s'] = '01-01-100'
|
|
29
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
30
|
+
|
|
31
|
+
message["sS"][0]['s'] = '100-01-01'
|
|
32
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it 'accepts comma-separated items' do
|
|
36
|
+
message["sS"][0]['s'] = '1-1-0,1-2-0'
|
|
37
|
+
expect( validate(message) ).to be_nil
|
|
38
|
+
|
|
39
|
+
message["sS"][0]['s'] = '1-1-0,1-2-0,2-4-5'
|
|
40
|
+
expect( validate(message) ).to be_nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it 'rejects comma-separated lists with spaces' do
|
|
44
|
+
message["sS"][0]['s'] = '1-1-0, 1-2-0'
|
|
45
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
46
|
+
|
|
47
|
+
message["sS"][0]['s'] = '1-1-0 ,1-2-0'
|
|
48
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'rejects comma-separated lists with trailing comma' do
|
|
52
|
+
message["sS"][0]['s'] = '1-1-0,'
|
|
53
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'rejects comma-separated lists with leading comma' do
|
|
57
|
+
message["sS"][0]['s'] = ',1-1-0'
|
|
58
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it 'rejects comma-separated lists with empty items' do
|
|
62
|
+
message["sS"][0]['s'] = '1-1-0,,1-2-0'
|
|
63
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'rejects negatives' do
|
|
67
|
+
message["sS"][0]['s'] = '-1-2-3'
|
|
68
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
69
|
+
|
|
70
|
+
message["sS"][0]['s'] = '1--2-3'
|
|
71
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
72
|
+
|
|
73
|
+
message["sS"][0]['s'] = '1-2--3'
|
|
74
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'rejects floats' do
|
|
78
|
+
message["sS"][0]['s'] = '.1-2-3'
|
|
79
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
80
|
+
|
|
81
|
+
message["sS"][0]['s'] = '1-.2-3'
|
|
82
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
83
|
+
|
|
84
|
+
message["sS"][0]['s'] = '1-2-.3'
|
|
85
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
86
|
+
|
|
87
|
+
message["sS"][0]['s'] = '1.-2-3'
|
|
88
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
89
|
+
|
|
90
|
+
message["sS"][0]['s'] = '1-2.-3'
|
|
91
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
92
|
+
|
|
93
|
+
message["sS"][0]['s'] = '1-2-3.'
|
|
94
|
+
expect( validate(message) ).to eq([["/sS/0/s", "pattern"]])
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"properties" : {
|
|
31
31
|
"v" : {
|
|
32
32
|
"description" : "False: Controller uses traffic situation according to own programming\nTrue: Controller uses traffic situation according to command",
|
|
33
|
-
"
|
|
33
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"properties" : {
|
|
31
31
|
"v" : {
|
|
32
32
|
"description" : "False: Deactivate manual control of detector logic\nTrue: Activate manual control of detector logic",
|
|
33
|
-
"
|
|
33
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"properties" : {
|
|
71
71
|
"v" : {
|
|
72
72
|
"description" : "False: Deactivate detector logic\nTrue: Activate detector logic",
|
|
73
|
-
"
|
|
73
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"allOf" : [
|
|
3
|
+
{
|
|
4
|
+
"description" : "Force input\n\nForce a given input (1-255) of the controllers general purpose I/O to either True or False. Can be used for all types of input where the traffic light controller must react to external control.\n\nCan be used for bus priority, coordination between traffic controllers, external control systems, and much more.\n\nRequires security code 2.",
|
|
5
|
+
"properties" : {
|
|
6
|
+
"n" : {
|
|
7
|
+
"enum" : [
|
|
8
|
+
"input",
|
|
9
|
+
"inputValue",
|
|
10
|
+
"securityCode",
|
|
11
|
+
"status"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"cO" : {
|
|
15
|
+
"const" : "setInput"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"if" : {
|
|
21
|
+
"required" : [
|
|
22
|
+
"n"
|
|
23
|
+
],
|
|
24
|
+
"properties" : {
|
|
25
|
+
"n" : {
|
|
26
|
+
"const" : "status"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"then" : {
|
|
31
|
+
"properties" : {
|
|
32
|
+
"v" : {
|
|
33
|
+
"description" : "False: Force input\nTrue: Release input",
|
|
34
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"if" : {
|
|
41
|
+
"required" : [
|
|
42
|
+
"n"
|
|
43
|
+
],
|
|
44
|
+
"properties" : {
|
|
45
|
+
"n" : {
|
|
46
|
+
"const" : "securityCode"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"then" : {
|
|
51
|
+
"properties" : {
|
|
52
|
+
"v" : {
|
|
53
|
+
"description" : "Security code 2",
|
|
54
|
+
"type" : "string"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"if" : {
|
|
61
|
+
"required" : [
|
|
62
|
+
"n"
|
|
63
|
+
],
|
|
64
|
+
"properties" : {
|
|
65
|
+
"n" : {
|
|
66
|
+
"const" : "input"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"then" : {
|
|
71
|
+
"properties" : {
|
|
72
|
+
"v" : {
|
|
73
|
+
"description" : "Number of Input",
|
|
74
|
+
"$ref" : "../../core/definitions.json#/integer"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"if" : {
|
|
81
|
+
"required" : [
|
|
82
|
+
"n"
|
|
83
|
+
],
|
|
84
|
+
"properties" : {
|
|
85
|
+
"n" : {
|
|
86
|
+
"const" : "inputValue"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"then" : {
|
|
91
|
+
"properties" : {
|
|
92
|
+
"v" : {
|
|
93
|
+
"description" : "False: input forced to False\nTrue: input forced to True",
|
|
94
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
@@ -28,30 +28,14 @@
|
|
|
28
28
|
"S0019",
|
|
29
29
|
"S0020",
|
|
30
30
|
"S0021",
|
|
31
|
-
"S0022",
|
|
32
|
-
"S0023",
|
|
33
|
-
"S0024",
|
|
34
|
-
"S0025",
|
|
35
|
-
"S0026",
|
|
36
|
-
"S0027",
|
|
37
|
-
"S0028",
|
|
38
|
-
"S0029",
|
|
39
|
-
"S0030",
|
|
40
|
-
"S0031",
|
|
41
31
|
"S0091",
|
|
42
32
|
"S0092",
|
|
43
33
|
"S0095",
|
|
44
34
|
"S0096",
|
|
45
|
-
"S0097",
|
|
46
|
-
"S0098",
|
|
47
35
|
"S0201",
|
|
48
36
|
"S0202",
|
|
49
37
|
"S0203",
|
|
50
|
-
"S0204"
|
|
51
|
-
"S0205",
|
|
52
|
-
"S0206",
|
|
53
|
-
"S0207",
|
|
54
|
-
"S0208"
|
|
38
|
+
"S0204"
|
|
55
39
|
]
|
|
56
40
|
}
|
|
57
41
|
}
|
|
@@ -670,66 +654,6 @@
|
|
|
670
654
|
"then" : {
|
|
671
655
|
"$ref" : "S0204.json"
|
|
672
656
|
}
|
|
673
|
-
},
|
|
674
|
-
{
|
|
675
|
-
"if" : {
|
|
676
|
-
"required" : [
|
|
677
|
-
"sCI"
|
|
678
|
-
],
|
|
679
|
-
"properties" : {
|
|
680
|
-
"sCI" : {
|
|
681
|
-
"const" : "S0205"
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
},
|
|
685
|
-
"then" : {
|
|
686
|
-
"$ref" : "S0205.json"
|
|
687
|
-
}
|
|
688
|
-
},
|
|
689
|
-
{
|
|
690
|
-
"if" : {
|
|
691
|
-
"required" : [
|
|
692
|
-
"sCI"
|
|
693
|
-
],
|
|
694
|
-
"properties" : {
|
|
695
|
-
"sCI" : {
|
|
696
|
-
"const" : "S0206"
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
},
|
|
700
|
-
"then" : {
|
|
701
|
-
"$ref" : "S0206.json"
|
|
702
|
-
}
|
|
703
|
-
},
|
|
704
|
-
{
|
|
705
|
-
"if" : {
|
|
706
|
-
"required" : [
|
|
707
|
-
"sCI"
|
|
708
|
-
],
|
|
709
|
-
"properties" : {
|
|
710
|
-
"sCI" : {
|
|
711
|
-
"const" : "S0207"
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
},
|
|
715
|
-
"then" : {
|
|
716
|
-
"$ref" : "S0207.json"
|
|
717
|
-
}
|
|
718
|
-
},
|
|
719
|
-
{
|
|
720
|
-
"if" : {
|
|
721
|
-
"required" : [
|
|
722
|
-
"sCI"
|
|
723
|
-
],
|
|
724
|
-
"properties" : {
|
|
725
|
-
"sCI" : {
|
|
726
|
-
"const" : "S0208"
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
},
|
|
730
|
-
"then" : {
|
|
731
|
-
"$ref" : "S0208.json"
|
|
732
|
-
}
|
|
733
657
|
}
|
|
734
658
|
]
|
|
735
659
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"properties" : {
|
|
31
31
|
"v" : {
|
|
32
32
|
"description" : "False: Controller uses traffic situation according to own programming\nTrue: Controller uses traffic situation according to command",
|
|
33
|
-
"
|
|
33
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"properties" : {
|
|
31
31
|
"v" : {
|
|
32
32
|
"description" : "False: Deactivate manual control of detector logic\nTrue: Activate manual control of detector logic",
|
|
33
|
-
"
|
|
33
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"properties" : {
|
|
71
71
|
"v" : {
|
|
72
72
|
"description" : "False: Deactivate detector logic\nTrue: Activate detector logic",
|
|
73
|
-
"
|
|
73
|
+
"$ref" : "../../core/definitions.json#/boolean"
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|