rsmp_schema 0.4.5 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rspec.yaml +1 -1
  3. data/.tool-versions +1 -0
  4. data/Gemfile.lock +2 -2
  5. data/lib/rsmp_schema/schema.rb +6 -3
  6. data/lib/rsmp_schema/version.rb +1 -1
  7. data/schemas/core/3.2/status_response.json +1 -1
  8. data/schemas/core/3.2.1/core.json +39 -0
  9. data/schemas/core/3.2.1/rsmp.json +133 -0
  10. data/schemas/tlc/1.2/alarms/A0001.json +3 -0
  11. data/schemas/tlc/1.2/alarms/A0002.json +3 -0
  12. data/schemas/tlc/1.2/alarms/A0003.json +3 -0
  13. data/schemas/tlc/1.2/alarms/A0004.json +3 -0
  14. data/schemas/tlc/1.2/alarms/A0005.json +3 -0
  15. data/schemas/tlc/1.2/alarms/A0006.json +3 -0
  16. data/schemas/tlc/1.2/alarms/A0007.json +59 -0
  17. data/schemas/tlc/1.2/alarms/A0008.json +61 -0
  18. data/schemas/tlc/1.2/alarms/A0009.json +3 -0
  19. data/schemas/tlc/1.2/alarms/A0010.json +3 -0
  20. data/schemas/tlc/1.2/alarms/A0101.json +3 -0
  21. data/schemas/tlc/1.2/alarms/A0201.json +60 -0
  22. data/schemas/tlc/1.2/alarms/A0202.json +60 -0
  23. data/schemas/tlc/1.2/alarms/A0301.json +132 -0
  24. data/schemas/tlc/1.2/alarms/A0302.json +158 -0
  25. data/schemas/tlc/1.2/alarms/A0303.json +132 -0
  26. data/schemas/tlc/1.2/alarms/A0304.json +158 -0
  27. data/schemas/tlc/1.2/alarms/alarms.json +286 -0
  28. data/schemas/tlc/1.2/commands/M0001.json +138 -0
  29. data/schemas/tlc/1.2/commands/M0002.json +112 -0
  30. data/schemas/tlc/1.2/commands/M0003.json +112 -0
  31. data/schemas/tlc/1.2/commands/M0004.json +85 -0
  32. data/schemas/tlc/1.2/commands/M0005.json +112 -0
  33. data/schemas/tlc/1.2/commands/M0006.json +112 -0
  34. data/schemas/tlc/1.2/commands/M0007.json +85 -0
  35. data/schemas/tlc/1.2/commands/M0008.json +112 -0
  36. data/schemas/tlc/1.2/commands/M0010.json +85 -0
  37. data/schemas/tlc/1.2/commands/M0011.json +85 -0
  38. data/schemas/tlc/1.2/commands/M0012.json +79 -0
  39. data/schemas/tlc/1.2/commands/M0013.json +79 -0
  40. data/schemas/tlc/1.2/commands/M0014.json +106 -0
  41. data/schemas/tlc/1.2/commands/M0015.json +112 -0
  42. data/schemas/tlc/1.2/commands/M0016.json +79 -0
  43. data/schemas/tlc/1.2/commands/M0017.json +79 -0
  44. data/schemas/tlc/1.2/commands/M0018.json +112 -0
  45. data/schemas/tlc/1.2/commands/M0019.json +139 -0
  46. data/schemas/tlc/1.2/commands/M0020.json +139 -0
  47. data/schemas/tlc/1.2/commands/M0021.json +79 -0
  48. data/schemas/tlc/1.2/commands/M0022.json +355 -0
  49. data/schemas/tlc/1.2/commands/M0023.json +85 -0
  50. data/schemas/tlc/1.2/commands/M0103.json +103 -0
  51. data/schemas/tlc/1.2/commands/M0104.json +220 -0
  52. data/schemas/tlc/1.2/commands/command_requests.json +7 -0
  53. data/schemas/tlc/1.2/commands/command_responses.json +7 -0
  54. data/schemas/tlc/1.2/commands/commands.json +398 -0
  55. data/schemas/tlc/1.2/rsmp.json +73 -0
  56. data/schemas/tlc/1.2/statuses/S0001.json +137 -0
  57. data/schemas/tlc/1.2/statuses/S0002.json +55 -0
  58. data/schemas/tlc/1.2/statuses/S0003.json +55 -0
  59. data/schemas/tlc/1.2/statuses/S0004.json +55 -0
  60. data/schemas/tlc/1.2/statuses/S0005.json +112 -0
  61. data/schemas/tlc/1.2/statuses/S0006.json +88 -0
  62. data/schemas/tlc/1.2/statuses/S0007.json +116 -0
  63. data/schemas/tlc/1.2/statuses/S0008.json +116 -0
  64. data/schemas/tlc/1.2/statuses/S0009.json +116 -0
  65. data/schemas/tlc/1.2/statuses/S0010.json +116 -0
  66. data/schemas/tlc/1.2/statuses/S0011.json +116 -0
  67. data/schemas/tlc/1.2/statuses/S0012.json +116 -0
  68. data/schemas/tlc/1.2/statuses/S0013.json +88 -0
  69. data/schemas/tlc/1.2/statuses/S0014.json +90 -0
  70. data/schemas/tlc/1.2/statuses/S0015.json +90 -0
  71. data/schemas/tlc/1.2/statuses/S0016.json +61 -0
  72. data/schemas/tlc/1.2/statuses/S0017.json +61 -0
  73. data/schemas/tlc/1.2/statuses/S0018.json +61 -0
  74. data/schemas/tlc/1.2/statuses/S0019.json +61 -0
  75. data/schemas/tlc/1.2/statuses/S0020.json +88 -0
  76. data/schemas/tlc/1.2/statuses/S0021.json +56 -0
  77. data/schemas/tlc/1.2/statuses/S0022.json +55 -0
  78. data/schemas/tlc/1.2/statuses/S0023.json +56 -0
  79. data/schemas/tlc/1.2/statuses/S0024.json +56 -0
  80. data/schemas/tlc/1.2/statuses/S0025.json +250 -0
  81. data/schemas/tlc/1.2/statuses/S0026.json +55 -0
  82. data/schemas/tlc/1.2/statuses/S0027.json +55 -0
  83. data/schemas/tlc/1.2/statuses/S0028.json +55 -0
  84. data/schemas/tlc/1.2/statuses/S0029.json +55 -0
  85. data/schemas/tlc/1.2/statuses/S0030.json +55 -0
  86. data/schemas/tlc/1.2/statuses/S0031.json +55 -0
  87. data/schemas/tlc/1.2/statuses/S0032.json +116 -0
  88. data/schemas/tlc/1.2/statuses/S0033.json +114 -0
  89. data/schemas/tlc/1.2/statuses/S0034.json +61 -0
  90. data/schemas/tlc/1.2/statuses/S0035.json +74 -0
  91. data/schemas/tlc/1.2/statuses/S0091.json +65 -0
  92. data/schemas/tlc/1.2/statuses/S0092.json +65 -0
  93. data/schemas/tlc/1.2/statuses/S0095.json +55 -0
  94. data/schemas/tlc/1.2/statuses/S0096.json +196 -0
  95. data/schemas/tlc/1.2/statuses/S0097.json +82 -0
  96. data/schemas/tlc/1.2/statuses/S0098.json +103 -0
  97. data/schemas/tlc/1.2/statuses/S0201.json +88 -0
  98. data/schemas/tlc/1.2/statuses/S0202.json +88 -0
  99. data/schemas/tlc/1.2/statuses/S0203.json +88 -0
  100. data/schemas/tlc/1.2/statuses/S0204.json +304 -0
  101. data/schemas/tlc/1.2/statuses/S0205.json +88 -0
  102. data/schemas/tlc/1.2/statuses/S0206.json +88 -0
  103. data/schemas/tlc/1.2/statuses/S0207.json +88 -0
  104. data/schemas/tlc/1.2/statuses/S0208.json +304 -0
  105. data/schemas/tlc/1.2/statuses/statuses.json +786 -0
  106. data/schemas/tlc/1.2/sxl.yaml +2082 -0
  107. metadata +102 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c357f707bd7797ccad36b5b4a86d1599d2b8b1351007037a87ea1e56b2601a7
4
- data.tar.gz: 41c02d05f87b281b4bff551ca790458ab2a860c459a59ca34c1f5d1f9bfb3ec1
3
+ metadata.gz: b0fe667b2e56247b88fa296646f5722440c9e8e6fa39b1df0a100ac9e41428b0
4
+ data.tar.gz: e15a00378c0e0d111f5fb2e7a9c4a36b6ade8b5ff81ac228dd6d47ef29dca223
5
5
  SHA512:
6
- metadata.gz: 3e7254f157c26648285d3a7e44f921023fe3233792d5207e9b6081d4a849f0357e0a46971e93b642133d1f180d962f466fd08dea901768c4a83cc038dbe2229f
7
- data.tar.gz: 6bc084b220bcf1b9d2dea02c7bba7c296c5b64c204d4e4641972fc4f6a99c86e52944fbc176d137f59ed1251d89b910d3bc1e9e8a8aa8780b98495d82ca80c62
6
+ metadata.gz: ebae7d8552ff121ed8c6e7f33b7c71d16aba8a344daf9d74d9cceddb701400f6117f8a49e97b996a190bce7adc115132e1d940114f95bd8f71446c6ca9300eee
7
+ data.tar.gz: f3a2b02f947c1da1bb3081898e16d0c5669bfbb3f4a97c220f0eeb1db435186cd61c911504af584b5c2bdb62ec89ed8645d00c42cf59458f6dfdef34d1b4f82f
@@ -9,7 +9,7 @@ jobs:
9
9
  fail-fast: false
10
10
  matrix:
11
11
  os: [ubuntu-latest, macos-latest, windows-latest]
12
- ruby: ['3.0', '3.1']
12
+ ruby: ['3.0', '3.1', '3.2']
13
13
  runs-on: ${{ matrix.os }}
14
14
  steps:
15
15
  - uses: actions/checkout@v2
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rsmp_schema (0.4.5)
4
+ rsmp_schema (0.5)
5
5
  json_schemer (~> 0.2.21)
6
6
  thor (~> 1.2.1)
7
7
 
@@ -52,4 +52,4 @@ DEPENDENCIES
52
52
  rspec-expectations (~> 3.11.0)
53
53
 
54
54
  BUNDLED WITH
55
- 2.3.19
55
+ 2.4.20
@@ -30,9 +30,12 @@ module RSMP::Schema
30
30
  @@schemas[type] = {}
31
31
  Dir.glob("#{type_path}/*").select {|f| File.directory? f}.each do |schema_path|
32
32
  version = File.basename(schema_path)
33
- @@schemas[type][version] = JSONSchemer.schema(
34
- Pathname.new(File.join(schema_path,'rsmp.json'))
35
- )
33
+ file_path = File.join(schema_path,'rsmp.json')
34
+ if File.exist? file_path
35
+ @@schemas[type][version] = JSONSchemer.schema(
36
+ Pathname.new(File.join(schema_path,'rsmp.json'))
37
+ )
38
+ end
36
39
  end
37
40
  end
38
41
 
@@ -1,5 +1,5 @@
1
1
  module RSMP
2
2
  module Schema
3
- VERSION = "0.4.5"
3
+ VERSION = "0.5"
4
4
  end
5
5
  end
@@ -17,7 +17,7 @@
17
17
  "additionalProperties" : false,
18
18
  "properties": {
19
19
  "sCI" : { "$ref": "../3.1.2/definitions.json#/status_code" },
20
- "n" : { "description" : "Value name", "type" : "string" },
20
+ "n" : { "description" : "Unique reference of the value", "type" : "string" },
21
21
  "q" : { "description" : "Quality", "type" : "string" },
22
22
  "s" : { "description" : "Value" }
23
23
  }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema" : "http://json-schema.org/draft-07/schema#",
3
+ "name" : "core",
4
+ "description" : "Core",
5
+ "version" : "3.2.1",
6
+ "type" : "object",
7
+ "allOf" : [
8
+ {
9
+ "properties" : {
10
+ "mType" : {
11
+ "description" : "Supported RSMP versions",
12
+ "type" : "string",
13
+ "const" : "rSMsg"
14
+ },
15
+ "type" : {
16
+ "description" : "Type of RMSP message",
17
+ "type" : "string",
18
+ "enum" : [
19
+ "MessageAck",
20
+ "MessageNotAck",
21
+ "Version",
22
+ "AggregatedStatus",
23
+ "AggregatedStatusRequest",
24
+ "Watchdog",
25
+ "Alarm",
26
+ "CommandRequest",
27
+ "CommandResponse",
28
+ "StatusRequest",
29
+ "StatusResponse",
30
+ "StatusSubscribe",
31
+ "StatusUnsubscribe",
32
+ "StatusUpdate"
33
+ ]
34
+ }
35
+ },
36
+ "required" : [ "mType", "type" ]
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,133 @@
1
+ {
2
+ "allOf": [
3
+ {
4
+ "$ref": "../3.2/core.json"
5
+ },
6
+ {
7
+ "if": {
8
+ "required" : ["type"],
9
+ "properties": { "type": { "const": "MessageAck" } }
10
+ },
11
+ "then": {
12
+ "$ref": "../3.1.2/message_ack.json"
13
+ }
14
+ },
15
+ {
16
+ "if": {
17
+ "required" : ["type"],
18
+ "properties": { "type": { "const": "MessageNotAck" } }
19
+ },
20
+ "then": {
21
+ "$ref": "../3.1.2/message_not_ack.json"
22
+ }
23
+ },
24
+ {
25
+ "if": {
26
+ "required" : ["type"],
27
+ "properties": { "type": { "const": "Version" } }
28
+ },
29
+ "then": {
30
+ "$ref": "../3.1.2/version.json"
31
+ }
32
+ },
33
+ {
34
+ "if": {
35
+ "required" : ["type"],
36
+ "properties": { "type": { "const": "AggregatedStatus" } }
37
+ },
38
+ "then": {
39
+ "$ref": "../3.1.2/aggregated_status.json"
40
+ }
41
+ },
42
+ {
43
+ "if": {
44
+ "required" : ["type"],
45
+ "properties": { "type": { "const": "AggregatedStatusRequest" } }
46
+ },
47
+ "then": {
48
+ "$ref": "../3.1.5/aggregated_status_request.json"
49
+ }
50
+ },
51
+ {
52
+ "if": {
53
+ "required" : ["type"],
54
+ "properties": { "type": { "const": "Watchdog" } }
55
+ },
56
+ "then": {
57
+ "$ref": "../3.1.2/watchdog.json"
58
+ }
59
+ },
60
+ {
61
+ "if": {
62
+ "required" : ["type"],
63
+ "properties": { "type": { "const": "Alarm" } }
64
+ },
65
+ "then": {
66
+ "$ref": "../3.2/alarm.json"
67
+ }
68
+ },
69
+ {
70
+ "if": {
71
+ "required" : ["type"],
72
+ "properties": { "type": { "const": "CommandRequest" } }
73
+ },
74
+ "then": {
75
+ "$ref": "../3.1.2/command_request.json"
76
+ }
77
+ },
78
+ {
79
+ "if": {
80
+ "required" : ["type"],
81
+ "properties": { "type": { "const": "CommandResponse" } }
82
+ },
83
+ "then": {
84
+ "$ref": "../3.1.2/command_response.json"
85
+ }
86
+ },
87
+ {
88
+ "if": {
89
+ "required" : ["type"],
90
+ "properties": { "type": { "const": "StatusRequest" } }
91
+ },
92
+ "then": {
93
+ "$ref": "../3.1.2/status_request.json"
94
+ }
95
+ },
96
+ {
97
+ "if": {
98
+ "required" : ["type"],
99
+ "properties": { "type": { "const": "StatusResponse" } }
100
+ },
101
+ "then": {
102
+ "$ref": "../3.2/status_response.json"
103
+ }
104
+ },
105
+ {
106
+ "if": {
107
+ "required" : ["type"],
108
+ "properties": { "type": { "const": "StatusSubscribe" } }
109
+ },
110
+ "then": {
111
+ "$ref": "../3.1.5/status_subscribe.json"
112
+ }
113
+ },
114
+ {
115
+ "if": {
116
+ "required" : ["type"],
117
+ "properties": { "type": { "const": "StatusUnsubscribe" } }
118
+ },
119
+ "then": {
120
+ "$ref": "../3.1.2/status_unsubscribe.json"
121
+ }
122
+ },
123
+ {
124
+ "if": {
125
+ "required" : ["type"],
126
+ "properties": { "type": { "const": "StatusUpdate" } }
127
+ },
128
+ "then": {
129
+ "$ref": "../3.2/status_update.json"
130
+ }
131
+ }
132
+ ]
133
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Serious hardware error.\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."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Less serious hardware error.\nIs a \"minor fault\" defined according to 3.11 in EN12675."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Serious configuration error.\nIs a \"major fault\" defined according to 3.8 in EN12675 which causes the controller to switch to a \"failure mode\" according to 3.6 in EN12675."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Less serious configuration error.\nIs a \"minor fault\" defined according to 3.11 in EN12675."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Synchronisation error (coordination).\nIs a \"minor fault\" defined according to 3.11 in EN12675."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Safety error\nIs a \"major fault\" defined according to 3.8 in EN12675 which causes the controller to switch to a \"failure mode\" according to 3.6 in EN12675."
3
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "description" : "Communication error.\nUsed for communication errors with the central system. Includes NTP connection loss if the TLC is configured to use NTP.\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "protocol"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "protocol"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Type of communication error, e.g. NTP or RSMP",
46
+ "type" : "string",
47
+ "enum" : [
48
+ "ntp",
49
+ "rsmp"
50
+ ]
51
+ }
52
+ }
53
+ }
54
+ }
55
+ ]
56
+ }
57
+ }
58
+ ]
59
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "description" : "Dead lock error.\nUsed for dead lock errors.\nFor instance; a signal group has requested green but is unable to switch due to a conflicting signal group for an extended period of time. At some point the request times out and the controller goes failure mode. The cause for this error is due to configuration errors or external sources.\nIs a \"major fault\" defined according to 3.8 in EN12675 which causes the controller to switch to a \"failure mode\" according to 3.6 in EN12675.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "timeplan"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "timeplan"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "allOf" : [
46
+ {
47
+ "description" : "Current time plan"
48
+ },
49
+ {
50
+ "$ref" : "../../../core/3.1.2/definitions.json#/integer"
51
+ }
52
+ ]
53
+ }
54
+ }
55
+ }
56
+ }
57
+ ]
58
+ }
59
+ }
60
+ ]
61
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Other error.\nUsed for other errors not covered by any other alarm type.\nIs a \"minor fault\" defined according to 3.11 in EN12675."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Door open.\nUsed for open door (room or cabinet)."
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "description" : "Pushbutton error.\nUsed for push buttons."
3
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "description" : "Serious lamp error.\nUsed for lamp errors.\nIs a \"major fault\" defined according to 3.8 in EN12675 which causes the controller to switch to a \"failure mode\" according to 3.6 in EN12675.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "color"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "color"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Color of lamp",
46
+ "type" : "string",
47
+ "enum" : [
48
+ "green",
49
+ "red",
50
+ "yellow"
51
+ ]
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ ]
60
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "description" : "Less serious lamp error.\nUsed for lamp errors.\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "color"
9
+ ]
10
+ }
11
+ }
12
+ },
13
+ {
14
+ "if" : {
15
+ "required" : [
16
+ "q"
17
+ ],
18
+ "properties" : {
19
+ "q" : {
20
+ "const" : "undefined"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "s" : {
26
+ "type" : "null"
27
+ }
28
+ },
29
+ "else" : {
30
+ "allOf" : [
31
+ {
32
+ "if" : {
33
+ "required" : [
34
+ "n"
35
+ ],
36
+ "properties" : {
37
+ "n" : {
38
+ "const" : "color"
39
+ }
40
+ }
41
+ },
42
+ "then" : {
43
+ "properties" : {
44
+ "v" : {
45
+ "description" : "Color of lamp",
46
+ "type" : "string",
47
+ "enum" : [
48
+ "green",
49
+ "red",
50
+ "yellow"
51
+ ]
52
+ }
53
+ }
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ ]
60
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "description" : "Detector error (hardware).\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
3
+ "allOf" : [
4
+ {
5
+ "properties" : {
6
+ "n" : {
7
+ "enum" : [
8
+ "detector",
9
+ "errormode",
10
+ "manual",
11
+ "type"
12
+ ]
13
+ }
14
+ }
15
+ },
16
+ {
17
+ "if" : {
18
+ "required" : [
19
+ "q"
20
+ ],
21
+ "properties" : {
22
+ "q" : {
23
+ "const" : "undefined"
24
+ }
25
+ }
26
+ },
27
+ "then" : {
28
+ "s" : {
29
+ "type" : "null"
30
+ }
31
+ },
32
+ "else" : {
33
+ "allOf" : [
34
+ {
35
+ "if" : {
36
+ "required" : [
37
+ "n"
38
+ ],
39
+ "properties" : {
40
+ "n" : {
41
+ "const" : "detector"
42
+ }
43
+ }
44
+ },
45
+ "then" : {
46
+ "properties" : {
47
+ "v" : {
48
+ "description" : "Designation of the detector (hardware)",
49
+ "type" : "string"
50
+ }
51
+ }
52
+ }
53
+ },
54
+ {
55
+ "if" : {
56
+ "required" : [
57
+ "n"
58
+ ],
59
+ "properties" : {
60
+ "n" : {
61
+ "const" : "type"
62
+ }
63
+ }
64
+ },
65
+ "then" : {
66
+ "properties" : {
67
+ "v" : {
68
+ "description" : "Type of detector",
69
+ "type" : "string",
70
+ "enum" : [
71
+ "input",
72
+ "loop"
73
+ ]
74
+ }
75
+ }
76
+ }
77
+ },
78
+ {
79
+ "if" : {
80
+ "required" : [
81
+ "n"
82
+ ],
83
+ "properties" : {
84
+ "n" : {
85
+ "const" : "errormode"
86
+ }
87
+ }
88
+ },
89
+ "then" : {
90
+ "properties" : {
91
+ "v" : {
92
+ "description" : "Detector forced on/off while detector error",
93
+ "type" : "string",
94
+ "enum" : [
95
+ "off",
96
+ "on"
97
+ ]
98
+ }
99
+ }
100
+ }
101
+ },
102
+ {
103
+ "if" : {
104
+ "required" : [
105
+ "n"
106
+ ],
107
+ "properties" : {
108
+ "n" : {
109
+ "const" : "manual"
110
+ }
111
+ }
112
+ },
113
+ "then" : {
114
+ "properties" : {
115
+ "v" : {
116
+ "allOf" : [
117
+ {
118
+ "description" : "Manually controlled detector logic (True/False)"
119
+ },
120
+ {
121
+ "$ref" : "../../../core/3.1.2/definitions.json#/boolean"
122
+ }
123
+ ]
124
+ }
125
+ }
126
+ }
127
+ }
128
+ ]
129
+ }
130
+ }
131
+ ]
132
+ }