rsmp_schemer 0.2.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Gemfile.lock +5 -5
  4. data/lib/rsmp_schemer/schemer.rb +24 -15
  5. data/lib/rsmp_schemer/version.rb +1 -1
  6. data/schemas/tlc_1.0.10/schema/tlc/alarms/A0301.json +1 -1
  7. data/schemas/tlc_1.0.10/schema/tlc/alarms/A0302.json +1 -1
  8. data/schemas/tlc_1.0.10/schema/tlc/commands/M0002.json +1 -1
  9. data/schemas/tlc_1.0.10/schema/tlc/commands/M0003.json +1 -1
  10. data/schemas/tlc_1.0.10/schema/tlc/commands/M0004.json +1 -1
  11. data/schemas/tlc_1.0.10/schema/tlc/commands/M0005.json +1 -1
  12. data/schemas/tlc_1.0.10/schema/tlc/commands/M0006.json +1 -1
  13. data/schemas/tlc_1.0.10/schema/tlc/commands/M0007.json +1 -1
  14. data/schemas/tlc_1.0.10/schema/tlc/commands/M0008.json +2 -2
  15. data/schemas/tlc_1.0.10/schema/tlc/commands/M0010.json +1 -1
  16. data/schemas/tlc_1.0.10/schema/tlc/commands/M0011.json +1 -1
  17. data/schemas/tlc_1.0.10/schema/tlc/commands/M0019.json +100 -0
  18. data/schemas/tlc_1.0.10/schema/tlc/statuses/S0001.json +1 -1
  19. data/schemas/tlc_1.0.10/schema/tlc/statuses/S0005.json +1 -1
  20. data/schemas/tlc_1.0.10/schema/tlc/statuses/S0006.json +1 -1
  21. data/schemas/tlc_1.0.10/schema/tlc/statuses/statuses.json +1 -257
  22. data/schemas/tlc_1.0.13/schema/tlc/alarms/A0301.json +1 -1
  23. data/schemas/tlc_1.0.13/schema/tlc/alarms/A0302.json +1 -1
  24. data/schemas/tlc_1.0.13/schema/tlc/commands/M0002.json +1 -1
  25. data/schemas/tlc_1.0.13/schema/tlc/commands/M0003.json +1 -1
  26. data/schemas/tlc_1.0.13/schema/tlc/commands/M0004.json +1 -1
  27. data/schemas/tlc_1.0.13/schema/tlc/commands/M0005.json +1 -1
  28. data/schemas/tlc_1.0.13/schema/tlc/commands/M0006.json +1 -1
  29. data/schemas/tlc_1.0.13/schema/tlc/commands/M0007.json +1 -1
  30. data/schemas/tlc_1.0.13/schema/tlc/commands/M0008.json +2 -2
  31. data/schemas/tlc_1.0.13/schema/tlc/commands/M0010.json +1 -1
  32. data/schemas/tlc_1.0.13/schema/tlc/commands/M0011.json +1 -1
  33. data/schemas/tlc_1.0.13/schema/tlc/commands/M0019.json +2 -2
  34. data/schemas/tlc_1.0.13/schema/tlc/statuses/S0001.json +1 -1
  35. data/schemas/tlc_1.0.13/schema/tlc/statuses/S0005.json +1 -1
  36. data/schemas/tlc_1.0.13/schema/tlc/statuses/S0006.json +1 -1
  37. data/schemas/tlc_1.0.13/schema/tlc/statuses/S0023.json +1 -1
  38. data/schemas/tlc_1.0.13/schema/tlc/statuses/statuses.json +1 -99
  39. data/schemas/tlc_1.0.13/spec/tlc/S0023_spec.rb +96 -0
  40. data/schemas/tlc_1.0.14/schema/tlc/alarms/A0301.json +1 -1
  41. data/schemas/tlc_1.0.14/schema/tlc/alarms/A0302.json +1 -1
  42. data/schemas/tlc_1.0.14/schema/tlc/commands/M0002.json +1 -1
  43. data/schemas/tlc_1.0.14/schema/tlc/commands/M0003.json +1 -1
  44. data/schemas/tlc_1.0.14/schema/tlc/commands/M0004.json +1 -1
  45. data/schemas/tlc_1.0.14/schema/tlc/commands/M0005.json +1 -1
  46. data/schemas/tlc_1.0.14/schema/tlc/commands/M0006.json +1 -1
  47. data/schemas/tlc_1.0.14/schema/tlc/commands/M0007.json +1 -1
  48. data/schemas/tlc_1.0.14/schema/tlc/commands/M0008.json +2 -2
  49. data/schemas/tlc_1.0.14/schema/tlc/commands/M0010.json +1 -1
  50. data/schemas/tlc_1.0.14/schema/tlc/commands/M0011.json +1 -1
  51. data/schemas/tlc_1.0.14/schema/tlc/commands/M0019.json +2 -2
  52. data/schemas/tlc_1.0.14/schema/tlc/statuses/S0001.json +1 -1
  53. data/schemas/tlc_1.0.14/schema/tlc/statuses/S0005.json +1 -1
  54. data/schemas/tlc_1.0.14/schema/tlc/statuses/S0006.json +1 -1
  55. data/schemas/tlc_1.0.14/schema/tlc/statuses/S0023.json +1 -1
  56. data/schemas/tlc_1.0.14/schema/tlc/statuses/statuses.json +0 -34
  57. data/schemas/tlc_1.0.14/spec/tlc/S0023_spec.rb +96 -0
  58. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0001.json +1 -1
  59. data/schemas/tlc_1.0.15/schema/tlc/statuses/S0023.json +1 -1
  60. data/schemas/tlc_1.0.15/spec/tlc/S0023_spec.rb +96 -0
  61. data/schemas/tlc_1.0.7/schema/tlc/alarms/A0301.json +1 -1
  62. data/schemas/tlc_1.0.7/schema/tlc/alarms/A0302.json +1 -1
  63. data/schemas/tlc_1.0.7/schema/tlc/commands/M0002.json +1 -1
  64. data/schemas/tlc_1.0.7/schema/tlc/commands/M0003.json +1 -1
  65. data/schemas/tlc_1.0.7/schema/tlc/commands/M0004.json +1 -1
  66. data/schemas/tlc_1.0.7/schema/tlc/commands/M0005.json +1 -1
  67. data/schemas/tlc_1.0.7/schema/tlc/commands/M0006.json +1 -1
  68. data/schemas/tlc_1.0.7/schema/tlc/commands/M0007.json +1 -1
  69. data/schemas/tlc_1.0.7/schema/tlc/commands/M0008.json +2 -2
  70. data/schemas/tlc_1.0.7/schema/tlc/commands/M0010.json +1 -1
  71. data/schemas/tlc_1.0.7/schema/tlc/commands/M0011.json +1 -1
  72. data/schemas/tlc_1.0.7/schema/tlc/commands/M0019.json +100 -0
  73. data/schemas/tlc_1.0.7/schema/tlc/statuses/S0001.json +1 -1
  74. data/schemas/tlc_1.0.7/schema/tlc/statuses/S0005.json +1 -1
  75. data/schemas/tlc_1.0.7/schema/tlc/statuses/S0006.json +1 -1
  76. data/schemas/tlc_1.0.7/schema/tlc/statuses/statuses.json +1 -77
  77. data/schemas/tlc_1.0.8/schema/tlc/alarms/A0301.json +1 -1
  78. data/schemas/tlc_1.0.8/schema/tlc/alarms/A0302.json +1 -1
  79. data/schemas/tlc_1.0.8/schema/tlc/commands/M0002.json +1 -1
  80. data/schemas/tlc_1.0.8/schema/tlc/commands/M0003.json +1 -1
  81. data/schemas/tlc_1.0.8/schema/tlc/commands/M0004.json +1 -1
  82. data/schemas/tlc_1.0.8/schema/tlc/commands/M0005.json +1 -1
  83. data/schemas/tlc_1.0.8/schema/tlc/commands/M0006.json +1 -1
  84. data/schemas/tlc_1.0.8/schema/tlc/commands/M0007.json +1 -1
  85. data/schemas/tlc_1.0.8/schema/tlc/commands/M0008.json +2 -2
  86. data/schemas/tlc_1.0.8/schema/tlc/commands/M0010.json +1 -1
  87. data/schemas/tlc_1.0.8/schema/tlc/commands/M0011.json +1 -1
  88. data/schemas/tlc_1.0.8/schema/tlc/commands/M0019.json +100 -0
  89. data/schemas/tlc_1.0.8/schema/tlc/statuses/S0001.json +1 -1
  90. data/schemas/tlc_1.0.8/schema/tlc/statuses/S0005.json +1 -1
  91. data/schemas/tlc_1.0.8/schema/tlc/statuses/S0006.json +1 -1
  92. data/schemas/tlc_1.0.8/schema/tlc/statuses/statuses.json +1 -77
  93. data/schemas/tlc_1.0.9/schema/tlc/alarms/A0301.json +1 -1
  94. data/schemas/tlc_1.0.9/schema/tlc/alarms/A0302.json +1 -1
  95. data/schemas/tlc_1.0.9/schema/tlc/commands/M0002.json +1 -1
  96. data/schemas/tlc_1.0.9/schema/tlc/commands/M0003.json +1 -1
  97. data/schemas/tlc_1.0.9/schema/tlc/commands/M0004.json +1 -1
  98. data/schemas/tlc_1.0.9/schema/tlc/commands/M0005.json +1 -1
  99. data/schemas/tlc_1.0.9/schema/tlc/commands/M0006.json +1 -1
  100. data/schemas/tlc_1.0.9/schema/tlc/commands/M0007.json +1 -1
  101. data/schemas/tlc_1.0.9/schema/tlc/commands/M0008.json +2 -2
  102. data/schemas/tlc_1.0.9/schema/tlc/commands/M0010.json +1 -1
  103. data/schemas/tlc_1.0.9/schema/tlc/commands/M0011.json +1 -1
  104. data/schemas/tlc_1.0.9/schema/tlc/commands/M0019.json +100 -0
  105. data/schemas/tlc_1.0.9/schema/tlc/statuses/S0001.json +1 -1
  106. data/schemas/tlc_1.0.9/schema/tlc/statuses/S0005.json +1 -1
  107. data/schemas/tlc_1.0.9/schema/tlc/statuses/S0006.json +1 -1
  108. data/schemas/tlc_1.0.9/schema/tlc/statuses/statuses.json +1 -77
  109. metadata +10 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fed88025943afac975e48c5ce3345ea888651d74c3b71eca02d20e46448690ec
4
- data.tar.gz: 9cb403404dad2d438eb2b5c51eb14eca7c4d937fb3d610cbd2186725e4de6b33
3
+ metadata.gz: a5ded20247c8a17c4c9408c1936de71fe1782041241280ea9e0dcc352e67649f
4
+ data.tar.gz: 85829fef328b91fa96068d01f6b8410370ec34393a2cf631f67f37c2901c9f8d
5
5
  SHA512:
6
- metadata.gz: 374ff54aa6b69e4c3b865e2bae151f0706a908187940fac4ad41971bc3b7d32cee7c3966eb8d5746a2aa8c5289c269367784bd64429a58e5c81d8f92b146afb9
7
- data.tar.gz: e97c1b45d3f90baf44deeee5359263fb8bbc653b1121a7a1f4dbda74f73cf87d0da92d68752bd80a092bb55c1d46b7630e2b15bf4a274e40241d5af70fb81faa
6
+ metadata.gz: e670455f64901cb3cff4b9445309f57f143865dbd67a08f628f0d541aa0b1f934914829d7d85f2f4e5c19a8db8968599ca29005c8ab1f7a8522988b4846b3863
7
+ data.tar.gz: 1fcabd99fd4dcff846fa372e1f6c928a1edeacfc06a0c25014a676e7c5369052f0b502fc21b91aa6ad504981052f080b053b8c78726bc48ab912e86e701eb25f
data/CHANGELOG.md CHANGED
@@ -5,3 +5,10 @@
5
5
 
6
6
  ## [0.2.0] - 2021-05-19
7
7
  - Updated interface
8
+
9
+ ## [0.2.1] - 2021-06-17
10
+ - Updated schemas
11
+
12
+ ## [0.2.2] - 2021-06-18
13
+ - Option for lenient version string parsing
14
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schemer (0.2.0)
4
+ rsmp_schemer (0.3.2)
5
5
  json_schemer (~> 0.2.18)
6
6
 
7
7
  GEM
@@ -22,15 +22,15 @@ GEM
22
22
  rspec-core (~> 3.9.0)
23
23
  rspec-expectations (~> 3.9.0)
24
24
  rspec-mocks (~> 3.9.0)
25
- rspec-core (3.9.1)
26
- rspec-support (~> 3.9.1)
27
- rspec-expectations (3.9.1)
25
+ rspec-core (3.9.3)
26
+ rspec-support (~> 3.9.3)
27
+ rspec-expectations (3.9.4)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
29
  rspec-support (~> 3.9.0)
30
30
  rspec-mocks (3.9.1)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
32
  rspec-support (~> 3.9.0)
33
- rspec-support (3.9.2)
33
+ rspec-support (3.9.4)
34
34
  uri_template (0.7.0)
35
35
 
36
36
  PLATFORMS
@@ -52,35 +52,44 @@ module RSMP::Schemer
52
52
  schemas
53
53
  end
54
54
 
55
- def self.find_schema type, version
55
+ def self.find_schema type, version, options={}
56
56
  raise ArgumentError.new("version missing") unless version
57
- schemas = find_schemas type
58
- if schemas
59
- schemas[version]
60
- else
61
- nil
57
+ version = sanitize_version version if options[:lenient]
58
+ if version
59
+ schemas = find_schemas type
60
+ return schemas[version] if schemas
62
61
  end
62
+ nil
63
63
  end
64
64
 
65
- def self.find_schema! type, version
65
+ def self.sanitize_version version
66
+ matched = /^\d+\.\d+\.\d+/.match version
67
+ matched.to_s if matched
68
+ end
69
+
70
+ def self.find_schema! type, version, options={}
71
+ schema = find_schema type, version, options
66
72
  raise ArgumentError.new("version missing") unless version
67
- schemas = find_schemas! type
68
- schema = schemas[version]
69
- raise UnknownSchemaVersionError.new("Unknown schema version #{type} #{version}") unless schema
70
- schema
73
+ version = sanitize_version version if options[:lenient]
74
+ if version
75
+ schemas = find_schemas! type
76
+ schema = schemas[version]
77
+ return schema if schema
78
+ end
79
+ raise UnknownSchemaVersionError.new("Unknown schema version #{type} #{version}")
71
80
  end
72
81
 
73
- def self.has_schema? type, version
74
- find_schema(type,version) != nil
82
+ def self.has_schema? type, version, options={}
83
+ find_schema(type,version, options) != nil
75
84
  end
76
85
 
77
- def self.validate message, schemas
86
+ def self.validate message, schemas, options={}
78
87
  raise ArgumentError.new("message missing") unless message
79
88
  raise ArgumentError.new("schemas missing") unless schemas
80
89
  raise ArgumentError.new("schemas must be a Hash") unless schemas.is_a?(Hash)
81
90
  raise ArgumentError.new("schemas cannot be empty") unless schemas.any?
82
91
  errors = schemas.flat_map do |type, version|
83
- schema = find_schema! type, version
92
+ schema = find_schema! type, version, options
84
93
  validate_using_schema(message, schema)
85
94
  end
86
95
  return nil if errors.empty?
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSMP
4
4
  module Schemer
5
- VERSION = "0.2.0"
5
+ VERSION = "0.3.2"
6
6
  end
7
7
  end
@@ -96,7 +96,7 @@
96
96
  "properties" : {
97
97
  "v" : {
98
98
  "description" : "Manually controlled detector logic (True/False)",
99
- "type" : "boolean"
99
+ "$ref" : "../../core/definitions.json#/boolean"
100
100
  }
101
101
  }
102
102
  }
@@ -97,7 +97,7 @@
97
97
  "properties" : {
98
98
  "v" : {
99
99
  "description" : "Manually controlled detector logic (True/False)",
100
- "type" : "boolean"
100
+ "$ref" : "../../core/definitions.json#/boolean"
101
101
  }
102
102
  }
103
103
  }
@@ -30,7 +30,7 @@
30
30
  "properties" : {
31
31
  "v" : {
32
32
  "description" : "False: Controller uses time plan according to programming\nTrue: Controller uses time plan according to command",
33
- "type" : "boolean"
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: Controller uses traffic situation according to own programming\nTrue: Controller uses traffic situation according to command",
33
- "type" : "boolean"
33
+ "$ref" : "../../core/definitions.json#/boolean"
34
34
  }
35
35
  }
36
36
  }
@@ -29,7 +29,7 @@
29
29
  "properties" : {
30
30
  "v" : {
31
31
  "description" : "True: Restart controller",
32
- "type" : "boolean"
32
+ "$ref" : "../../core/definitions.json#/boolean"
33
33
  }
34
34
  }
35
35
  }
@@ -30,7 +30,7 @@
30
30
  "properties" : {
31
31
  "v" : {
32
32
  "description" : "False: Activate emergency route\nTrue: Deactivate emergency route",
33
- "type" : "boolean"
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 input\nTrue: Activate input",
33
- "type" : "boolean"
33
+ "$ref" : "../../core/definitions.json#/boolean"
34
34
  }
35
35
  }
36
36
  }
@@ -29,7 +29,7 @@
29
29
  "properties" : {
30
30
  "v" : {
31
31
  "description" : "False: Deactivate fixed time control\nTrue: Activate fixed time control",
32
- "type" : "boolean"
32
+ "$ref" : "../../core/definitions.json#/boolean"
33
33
  }
34
34
  }
35
35
  }
@@ -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
- "type" : "boolean"
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
- "type" : "boolean"
73
+ "$ref" : "../../core/definitions.json#/boolean"
74
74
  }
75
75
  }
76
76
  }
@@ -29,7 +29,7 @@
29
29
  "properties" : {
30
30
  "v" : {
31
31
  "description" : "False: No command (default)\nTrue: Order a signal group to green",
32
- "type" : "boolean"
32
+ "$ref" : "../../core/definitions.json#/boolean"
33
33
  }
34
34
  }
35
35
  }
@@ -29,7 +29,7 @@
29
29
  "properties" : {
30
30
  "v" : {
31
31
  "description" : "False: No command (default)\nTrue: Order a signal group to red",
32
- "type" : "boolean"
32
+ "$ref" : "../../core/definitions.json#/boolean"
33
33
  }
34
34
  }
35
35
  }
@@ -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
+ }
@@ -29,7 +29,7 @@
29
29
  "s" : {
30
30
  "description" : "Signal group status as text field",
31
31
  "type" : "string",
32
- "pattern" : "^[a-hA-G0-9N-P]+$"
32
+ "pattern" : "^[a-hA-G0-9N-P]*$"
33
33
  }
34
34
  }
35
35
  }
@@ -25,7 +25,7 @@
25
25
  "properties" : {
26
26
  "s" : {
27
27
  "description" : "False: Controller is not in start up mode\nTrue: Controller is currently in start up mode",
28
- "type" : "boolean"
28
+ "$ref" : "../../core/definitions.json#/boolean"
29
29
  }
30
30
  }
31
31
  }
@@ -26,7 +26,7 @@
26
26
  "properties" : {
27
27
  "s" : {
28
28
  "description" : "False: Emergency stage inactive\nTrue: Emergency stage active",
29
- "type" : "boolean"
29
+ "$ref" : "../../core/definitions.json#/boolean"
30
30
  }
31
31
  }
32
32
  }
@@ -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
  }
@@ -371,156 +355,6 @@
371
355
  "$ref" : "S0021.json"
372
356
  }
373
357
  },
374
- {
375
- "if" : {
376
- "required" : [
377
- "sCI"
378
- ],
379
- "properties" : {
380
- "sCI" : {
381
- "const" : "S0022"
382
- }
383
- }
384
- },
385
- "then" : {
386
- "$ref" : "S0022.json"
387
- }
388
- },
389
- {
390
- "if" : {
391
- "required" : [
392
- "sCI"
393
- ],
394
- "properties" : {
395
- "sCI" : {
396
- "const" : "S0023"
397
- }
398
- }
399
- },
400
- "then" : {
401
- "$ref" : "S0023.json"
402
- }
403
- },
404
- {
405
- "if" : {
406
- "required" : [
407
- "sCI"
408
- ],
409
- "properties" : {
410
- "sCI" : {
411
- "const" : "S0024"
412
- }
413
- }
414
- },
415
- "then" : {
416
- "$ref" : "S0024.json"
417
- }
418
- },
419
- {
420
- "if" : {
421
- "required" : [
422
- "sCI"
423
- ],
424
- "properties" : {
425
- "sCI" : {
426
- "const" : "S0025"
427
- }
428
- }
429
- },
430
- "then" : {
431
- "$ref" : "S0025.json"
432
- }
433
- },
434
- {
435
- "if" : {
436
- "required" : [
437
- "sCI"
438
- ],
439
- "properties" : {
440
- "sCI" : {
441
- "const" : "S0026"
442
- }
443
- }
444
- },
445
- "then" : {
446
- "$ref" : "S0026.json"
447
- }
448
- },
449
- {
450
- "if" : {
451
- "required" : [
452
- "sCI"
453
- ],
454
- "properties" : {
455
- "sCI" : {
456
- "const" : "S0027"
457
- }
458
- }
459
- },
460
- "then" : {
461
- "$ref" : "S0027.json"
462
- }
463
- },
464
- {
465
- "if" : {
466
- "required" : [
467
- "sCI"
468
- ],
469
- "properties" : {
470
- "sCI" : {
471
- "const" : "S0028"
472
- }
473
- }
474
- },
475
- "then" : {
476
- "$ref" : "S0028.json"
477
- }
478
- },
479
- {
480
- "if" : {
481
- "required" : [
482
- "sCI"
483
- ],
484
- "properties" : {
485
- "sCI" : {
486
- "const" : "S0029"
487
- }
488
- }
489
- },
490
- "then" : {
491
- "$ref" : "S0029.json"
492
- }
493
- },
494
- {
495
- "if" : {
496
- "required" : [
497
- "sCI"
498
- ],
499
- "properties" : {
500
- "sCI" : {
501
- "const" : "S0030"
502
- }
503
- }
504
- },
505
- "then" : {
506
- "$ref" : "S0030.json"
507
- }
508
- },
509
- {
510
- "if" : {
511
- "required" : [
512
- "sCI"
513
- ],
514
- "properties" : {
515
- "sCI" : {
516
- "const" : "S0031"
517
- }
518
- }
519
- },
520
- "then" : {
521
- "$ref" : "S0031.json"
522
- }
523
- },
524
358
  {
525
359
  "if" : {
526
360
  "required" : [
@@ -581,36 +415,6 @@
581
415
  "$ref" : "S0096.json"
582
416
  }
583
417
  },
584
- {
585
- "if" : {
586
- "required" : [
587
- "sCI"
588
- ],
589
- "properties" : {
590
- "sCI" : {
591
- "const" : "S0097"
592
- }
593
- }
594
- },
595
- "then" : {
596
- "$ref" : "S0097.json"
597
- }
598
- },
599
- {
600
- "if" : {
601
- "required" : [
602
- "sCI"
603
- ],
604
- "properties" : {
605
- "sCI" : {
606
- "const" : "S0098"
607
- }
608
- }
609
- },
610
- "then" : {
611
- "$ref" : "S0098.json"
612
- }
613
- },
614
418
  {
615
419
  "if" : {
616
420
  "required" : [
@@ -670,66 +474,6 @@
670
474
  "then" : {
671
475
  "$ref" : "S0204.json"
672
476
  }
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
477
  }
734
478
  ]
735
479
  }
@@ -96,7 +96,7 @@
96
96
  "properties" : {
97
97
  "v" : {
98
98
  "description" : "Manually controlled detector logic (True/False)",
99
- "type" : "boolean"
99
+ "$ref" : "../../core/definitions.json#/boolean"
100
100
  }
101
101
  }
102
102
  }