rsmp 0.43.2 → 0.45.0

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.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -11
  3. data/README.md +19 -3
  4. data/Rakefile +2 -2
  5. data/config/supervisor.yaml +2 -1
  6. data/config/tlc.yaml +2 -2
  7. data/lib/rsmp/cli.rb +29 -5
  8. data/lib/rsmp/component/component.rb +0 -4
  9. data/lib/rsmp/component/component_base.rb +15 -2
  10. data/lib/rsmp/component/component_proxy.rb +1 -1
  11. data/lib/rsmp/component/components.rb +22 -1
  12. data/lib/rsmp/convert/export/json_schema/outputs.rb +1 -0
  13. data/lib/rsmp/convert/export/json_schema/values.rb +6 -4
  14. data/lib/rsmp/convert/export/json_schema.rb +7 -3
  15. data/lib/rsmp/helpers/deep_merge.rb +2 -2
  16. data/lib/rsmp/message.rb +32 -0
  17. data/lib/rsmp/node/site/site.rb +34 -10
  18. data/lib/rsmp/node/supervisor/modules/configuration.rb +32 -5
  19. data/lib/rsmp/node/supervisor/modules/connection.rb +0 -2
  20. data/lib/rsmp/node/supervisor/supervisor.rb +0 -7
  21. data/lib/rsmp/options/options.rb +55 -6
  22. data/lib/rsmp/options/schemas/site.json +6 -3
  23. data/lib/rsmp/options/schemas/supervisor.json +5 -2
  24. data/lib/rsmp/options/schemas/supervisor_site.json +5 -2
  25. data/lib/rsmp/options/site_options.rb +3 -2
  26. data/lib/rsmp/options/supervisor_options.rb +3 -1
  27. data/lib/rsmp/proxy/modules/acknowledgements.rb +2 -0
  28. data/lib/rsmp/proxy/modules/receive.rb +5 -2
  29. data/lib/rsmp/proxy/modules/state.rb +1 -0
  30. data/lib/rsmp/proxy/modules/versions.rb +90 -15
  31. data/lib/rsmp/proxy/proxy.rb +52 -3
  32. data/lib/rsmp/proxy/site/modules/status.rb +5 -3
  33. data/lib/rsmp/proxy/site/site_proxy.rb +68 -35
  34. data/lib/rsmp/proxy/site/sxl_selection.rb +54 -0
  35. data/lib/rsmp/proxy/supervisor/supervisor_proxy.rb +54 -18
  36. data/lib/rsmp/schema/message_resolution.rb +104 -0
  37. data/lib/rsmp/schema.rb +104 -22
  38. data/lib/rsmp/schema_error.rb +7 -1
  39. data/lib/rsmp/sxl/interface.rb +48 -0
  40. data/lib/rsmp/sxl/registry.rb +55 -0
  41. data/lib/rsmp/sxl/site_interface.rb +10 -0
  42. data/lib/rsmp/sxl/supervisor_interface.rb +21 -0
  43. data/lib/rsmp/tlc/detector_logic.rb +2 -2
  44. data/lib/rsmp/tlc/signal_group.rb +2 -2
  45. data/lib/rsmp/tlc/site_interface.rb +10 -0
  46. data/lib/rsmp/tlc/{traffic_controller_proxy.rb → supervisor_interface.rb} +19 -34
  47. data/lib/rsmp/tlc/traffic_controller.rb +10 -2
  48. data/lib/rsmp/tlc/traffic_controller_site.rb +4 -2
  49. data/lib/rsmp/tlc.rb +10 -0
  50. data/lib/rsmp/version.rb +1 -1
  51. data/lib/rsmp.rb +8 -1
  52. data/rsmp.gemspec +5 -5
  53. data/schemas/core/3.3.0/aggregated_status.json +25 -0
  54. data/schemas/core/3.3.0/aggregated_status_request.json +9 -0
  55. data/schemas/core/3.3.0/alarm.json +71 -0
  56. data/schemas/core/3.3.0/alarm_acknowledge.json +11 -0
  57. data/schemas/core/3.3.0/alarm_issue.json +44 -0
  58. data/schemas/core/3.3.0/alarm_request.json +3 -0
  59. data/schemas/core/3.3.0/alarm_suspend_resume.json +3 -0
  60. data/schemas/core/3.3.0/alarm_suspended_resumed.json +44 -0
  61. data/schemas/core/3.3.0/command_request.json +24 -0
  62. data/schemas/core/3.3.0/command_response.json +35 -0
  63. data/schemas/core/3.3.0/component_list.json +24 -0
  64. data/schemas/core/3.3.0/core.json +40 -0
  65. data/schemas/core/3.3.0/definitions.json +133 -0
  66. data/schemas/core/3.3.0/message_ack.json +11 -0
  67. data/schemas/core/3.3.0/message_not_ack.json +15 -0
  68. data/schemas/core/3.3.0/rsmp.json +142 -0
  69. data/schemas/core/3.3.0/status.json +21 -0
  70. data/schemas/core/3.3.0/status_request.json +5 -0
  71. data/schemas/core/3.3.0/status_response.json +41 -0
  72. data/schemas/core/3.3.0/status_subscribe.json +31 -0
  73. data/schemas/core/3.3.0/status_unsubscribe.json +5 -0
  74. data/schemas/core/3.3.0/status_update.json +41 -0
  75. data/schemas/core/3.3.0/version.json +144 -0
  76. data/schemas/core/3.3.0/watchdog.json +9 -0
  77. data/schemas/tlc/1.3.0/alarms/A0001.json +4 -0
  78. data/schemas/tlc/1.3.0/alarms/A0002.json +4 -0
  79. data/schemas/tlc/1.3.0/alarms/A0003.json +4 -0
  80. data/schemas/tlc/1.3.0/alarms/A0004.json +4 -0
  81. data/schemas/tlc/1.3.0/alarms/A0005.json +4 -0
  82. data/schemas/tlc/1.3.0/alarms/A0006.json +4 -0
  83. data/schemas/tlc/1.3.0/alarms/A0007.json +34 -0
  84. data/schemas/tlc/1.3.0/alarms/A0008.json +30 -0
  85. data/schemas/tlc/1.3.0/alarms/A0009.json +4 -0
  86. data/schemas/tlc/1.3.0/alarms/A0010.json +4 -0
  87. data/schemas/tlc/1.3.0/alarms/A0101.json +4 -0
  88. data/schemas/tlc/1.3.0/alarms/A0201.json +35 -0
  89. data/schemas/tlc/1.3.0/alarms/A0202.json +35 -0
  90. data/schemas/tlc/1.3.0/alarms/A0301.json +92 -0
  91. data/schemas/tlc/1.3.0/alarms/A0302.json +115 -0
  92. data/schemas/tlc/1.3.0/alarms/A0303.json +92 -0
  93. data/schemas/tlc/1.3.0/alarms/A0304.json +115 -0
  94. data/schemas/tlc/1.3.0/alarms/alarms.json +287 -0
  95. data/schemas/tlc/1.3.0/commands/M0001.json +92 -0
  96. data/schemas/tlc/1.3.0/commands/M0002.json +69 -0
  97. data/schemas/tlc/1.3.0/commands/M0003.json +69 -0
  98. data/schemas/tlc/1.3.0/commands/M0004.json +51 -0
  99. data/schemas/tlc/1.3.0/commands/M0005.json +69 -0
  100. data/schemas/tlc/1.3.0/commands/M0006.json +69 -0
  101. data/schemas/tlc/1.3.0/commands/M0007.json +51 -0
  102. data/schemas/tlc/1.3.0/commands/M0008.json +87 -0
  103. data/schemas/tlc/1.3.0/commands/M0010.json +51 -0
  104. data/schemas/tlc/1.3.0/commands/M0011.json +51 -0
  105. data/schemas/tlc/1.3.0/commands/M0012.json +51 -0
  106. data/schemas/tlc/1.3.0/commands/M0013.json +51 -0
  107. data/schemas/tlc/1.3.0/commands/M0014.json +69 -0
  108. data/schemas/tlc/1.3.0/commands/M0015.json +69 -0
  109. data/schemas/tlc/1.3.0/commands/M0016.json +51 -0
  110. data/schemas/tlc/1.3.0/commands/M0017.json +51 -0
  111. data/schemas/tlc/1.3.0/commands/M0018.json +69 -0
  112. data/schemas/tlc/1.3.0/commands/M0019.json +87 -0
  113. data/schemas/tlc/1.3.0/commands/M0020.json +87 -0
  114. data/schemas/tlc/1.3.0/commands/M0021.json +51 -0
  115. data/schemas/tlc/1.3.0/commands/M0022.json +249 -0
  116. data/schemas/tlc/1.3.0/commands/M0023.json +51 -0
  117. data/schemas/tlc/1.3.0/commands/M0024.json +33 -0
  118. data/schemas/tlc/1.3.0/commands/M0103.json +72 -0
  119. data/schemas/tlc/1.3.0/commands/M0104.json +141 -0
  120. data/schemas/tlc/1.3.0/commands/command_requests.json +8 -0
  121. data/schemas/tlc/1.3.0/commands/command_responses.json +8 -0
  122. data/schemas/tlc/1.3.0/commands/commands.json +415 -0
  123. data/schemas/tlc/1.3.0/defs/definitions.json +72 -0
  124. data/schemas/tlc/1.3.0/defs/guards.json +24 -0
  125. data/schemas/tlc/1.3.0/rsmp.json +74 -0
  126. data/schemas/tlc/1.3.0/statuses/S0001.json +109 -0
  127. data/schemas/tlc/1.3.0/statuses/S0002.json +36 -0
  128. data/schemas/tlc/1.3.0/statuses/S0003.json +36 -0
  129. data/schemas/tlc/1.3.0/statuses/S0004.json +36 -0
  130. data/schemas/tlc/1.3.0/statuses/S0005.json +72 -0
  131. data/schemas/tlc/1.3.0/statuses/S0006.json +54 -0
  132. data/schemas/tlc/1.3.0/statuses/S0007.json +73 -0
  133. data/schemas/tlc/1.3.0/statuses/S0008.json +73 -0
  134. data/schemas/tlc/1.3.0/statuses/S0009.json +73 -0
  135. data/schemas/tlc/1.3.0/statuses/S0010.json +73 -0
  136. data/schemas/tlc/1.3.0/statuses/S0011.json +73 -0
  137. data/schemas/tlc/1.3.0/statuses/S0012.json +73 -0
  138. data/schemas/tlc/1.3.0/statuses/S0013.json +54 -0
  139. data/schemas/tlc/1.3.0/statuses/S0014.json +55 -0
  140. data/schemas/tlc/1.3.0/statuses/S0015.json +55 -0
  141. data/schemas/tlc/1.3.0/statuses/S0016.json +36 -0
  142. data/schemas/tlc/1.3.0/statuses/S0017.json +36 -0
  143. data/schemas/tlc/1.3.0/statuses/S0018.json +61 -0
  144. data/schemas/tlc/1.3.0/statuses/S0019.json +36 -0
  145. data/schemas/tlc/1.3.0/statuses/S0020.json +54 -0
  146. data/schemas/tlc/1.3.0/statuses/S0021.json +37 -0
  147. data/schemas/tlc/1.3.0/statuses/S0022.json +36 -0
  148. data/schemas/tlc/1.3.0/statuses/S0023.json +37 -0
  149. data/schemas/tlc/1.3.0/statuses/S0024.json +36 -0
  150. data/schemas/tlc/1.3.0/statuses/S0025.json +162 -0
  151. data/schemas/tlc/1.3.0/statuses/S0026.json +36 -0
  152. data/schemas/tlc/1.3.0/statuses/S0027.json +36 -0
  153. data/schemas/tlc/1.3.0/statuses/S0028.json +36 -0
  154. data/schemas/tlc/1.3.0/statuses/S0029.json +36 -0
  155. data/schemas/tlc/1.3.0/statuses/S0030.json +36 -0
  156. data/schemas/tlc/1.3.0/statuses/S0031.json +36 -0
  157. data/schemas/tlc/1.3.0/statuses/S0032.json +73 -0
  158. data/schemas/tlc/1.3.0/statuses/S0033.json +77 -0
  159. data/schemas/tlc/1.3.0/statuses/S0034.json +36 -0
  160. data/schemas/tlc/1.3.0/statuses/S0035.json +49 -0
  161. data/schemas/tlc/1.3.0/statuses/S0091.json +40 -0
  162. data/schemas/tlc/1.3.0/statuses/S0092.json +40 -0
  163. data/schemas/tlc/1.3.0/statuses/S0095.json +36 -0
  164. data/schemas/tlc/1.3.0/statuses/S0096.json +126 -0
  165. data/schemas/tlc/1.3.0/statuses/S0097.json +54 -0
  166. data/schemas/tlc/1.3.0/statuses/S0098.json +72 -0
  167. data/schemas/tlc/1.3.0/statuses/S0201.json +54 -0
  168. data/schemas/tlc/1.3.0/statuses/S0202.json +54 -0
  169. data/schemas/tlc/1.3.0/statuses/S0203.json +54 -0
  170. data/schemas/tlc/1.3.0/statuses/S0204.json +198 -0
  171. data/schemas/tlc/1.3.0/statuses/S0205.json +54 -0
  172. data/schemas/tlc/1.3.0/statuses/S0206.json +54 -0
  173. data/schemas/tlc/1.3.0/statuses/S0207.json +54 -0
  174. data/schemas/tlc/1.3.0/statuses/S0208.json +198 -0
  175. data/schemas/tlc/1.3.0/statuses/statuses.json +787 -0
  176. data/schemas/tlc/1.3.0/sxl.yaml +2296 -0
  177. metadata +144 -12
@@ -0,0 +1,30 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "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 into 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.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "timeplan"
8
+ ]
9
+ }
10
+ },
11
+ "allOf" : [
12
+ {
13
+ "if" : {
14
+ "properties" : {
15
+ "n" : {
16
+ "const" : "timeplan"
17
+ }
18
+ }
19
+ },
20
+ "then" : {
21
+ "properties" : {
22
+ "v" : {
23
+ "description" : "Current time plan",
24
+ "type" : "string"
25
+ }
26
+ }
27
+ }
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "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."
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Door open.\nUsed for open door (room or cabinet)."
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Pushbutton error.\nUsed for push buttons."
4
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "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.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "color"
8
+ ]
9
+ }
10
+ },
11
+ "allOf" : [
12
+ {
13
+ "if" : {
14
+ "properties" : {
15
+ "n" : {
16
+ "const" : "color"
17
+ }
18
+ }
19
+ },
20
+ "then" : {
21
+ "properties" : {
22
+ "v" : {
23
+ "description" : "Color of lamp",
24
+ "type" : "string",
25
+ "enum" : [
26
+ "green",
27
+ "red",
28
+ "yellow"
29
+ ]
30
+ }
31
+ }
32
+ }
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Less serious lamp error.\nUsed for lamp errors.\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "color"
8
+ ]
9
+ }
10
+ },
11
+ "allOf" : [
12
+ {
13
+ "if" : {
14
+ "properties" : {
15
+ "n" : {
16
+ "const" : "color"
17
+ }
18
+ }
19
+ },
20
+ "then" : {
21
+ "properties" : {
22
+ "v" : {
23
+ "description" : "Color of lamp",
24
+ "type" : "string",
25
+ "enum" : [
26
+ "green",
27
+ "red",
28
+ "yellow"
29
+ ]
30
+ }
31
+ }
32
+ }
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Detector error (hardware).\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "detector",
8
+ "errormode",
9
+ "manual",
10
+ "type"
11
+ ]
12
+ }
13
+ },
14
+ "allOf" : [
15
+ {
16
+ "if" : {
17
+ "properties" : {
18
+ "n" : {
19
+ "const" : "detector"
20
+ }
21
+ }
22
+ },
23
+ "then" : {
24
+ "properties" : {
25
+ "v" : {
26
+ "description" : "Designation of the detector (hardware)",
27
+ "type" : "string"
28
+ }
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "if" : {
34
+ "properties" : {
35
+ "n" : {
36
+ "const" : "type"
37
+ }
38
+ }
39
+ },
40
+ "then" : {
41
+ "properties" : {
42
+ "v" : {
43
+ "description" : "Type of detector",
44
+ "type" : "string",
45
+ "enum" : [
46
+ "input",
47
+ "loop"
48
+ ]
49
+ }
50
+ }
51
+ }
52
+ },
53
+ {
54
+ "if" : {
55
+ "properties" : {
56
+ "n" : {
57
+ "const" : "errormode"
58
+ }
59
+ }
60
+ },
61
+ "then" : {
62
+ "properties" : {
63
+ "v" : {
64
+ "description" : "Detector forced on/off while detector error",
65
+ "type" : "string",
66
+ "enum" : [
67
+ "off",
68
+ "on"
69
+ ]
70
+ }
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "if" : {
76
+ "properties" : {
77
+ "n" : {
78
+ "const" : "manual"
79
+ }
80
+ }
81
+ },
82
+ "then" : {
83
+ "properties" : {
84
+ "v" : {
85
+ "description" : "Manually controlled detector logic (True/False)",
86
+ "type" : "string"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "description" : "Detector error (logic error).\nFor instance; detector continuously on or off during an extended time.\nIs a \"minor fault\" defined according to 3.11 in EN12675.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "detector",
8
+ "errormode",
9
+ "logicerror",
10
+ "manual",
11
+ "type"
12
+ ]
13
+ }
14
+ },
15
+ "allOf" : [
16
+ {
17
+ "if" : {
18
+ "properties" : {
19
+ "n" : {
20
+ "const" : "detector"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "properties" : {
26
+ "v" : {
27
+ "description" : "Designation of the detector (hardware)",
28
+ "type" : "string"
29
+ }
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "if" : {
35
+ "properties" : {
36
+ "n" : {
37
+ "const" : "type"
38
+ }
39
+ }
40
+ },
41
+ "then" : {
42
+ "properties" : {
43
+ "v" : {
44
+ "description" : "Type of detector.",
45
+ "type" : "string",
46
+ "enum" : [
47
+ "input",
48
+ "loop"
49
+ ]
50
+ }
51
+ }
52
+ }
53
+ },
54
+ {
55
+ "if" : {
56
+ "properties" : {
57
+ "n" : {
58
+ "const" : "errormode"
59
+ }
60
+ }
61
+ },
62
+ "then" : {
63
+ "properties" : {
64
+ "v" : {
65
+ "description" : "Detector forced on/off while detector error",
66
+ "type" : "string",
67
+ "enum" : [
68
+ "off",
69
+ "on"
70
+ ]
71
+ }
72
+ }
73
+ }
74
+ },
75
+ {
76
+ "if" : {
77
+ "properties" : {
78
+ "n" : {
79
+ "const" : "manual"
80
+ }
81
+ }
82
+ },
83
+ "then" : {
84
+ "properties" : {
85
+ "v" : {
86
+ "description" : "Manually controlled detector logic (True/False)",
87
+ "type" : "string"
88
+ }
89
+ }
90
+ }
91
+ },
92
+ {
93
+ "if" : {
94
+ "properties" : {
95
+ "n" : {
96
+ "const" : "logicerror"
97
+ }
98
+ }
99
+ },
100
+ "then" : {
101
+ "properties" : {
102
+ "v" : {
103
+ "description" : "Type of logic error",
104
+ "type" : "string",
105
+ "enum" : [
106
+ "always_off",
107
+ "always_on",
108
+ "intermittent"
109
+ ]
110
+ }
111
+ }
112
+ }
113
+ }
114
+ ]
115
+ }
@@ -0,0 +1,92 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "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.",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "detector",
8
+ "errormode",
9
+ "manual",
10
+ "type"
11
+ ]
12
+ }
13
+ },
14
+ "allOf" : [
15
+ {
16
+ "if" : {
17
+ "properties" : {
18
+ "n" : {
19
+ "const" : "detector"
20
+ }
21
+ }
22
+ },
23
+ "then" : {
24
+ "properties" : {
25
+ "v" : {
26
+ "description" : "Designation of the detector (hardware)",
27
+ "type" : "string"
28
+ }
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "if" : {
34
+ "properties" : {
35
+ "n" : {
36
+ "const" : "type"
37
+ }
38
+ }
39
+ },
40
+ "then" : {
41
+ "properties" : {
42
+ "v" : {
43
+ "description" : "Type of detector.",
44
+ "type" : "string",
45
+ "enum" : [
46
+ "input",
47
+ "loop"
48
+ ]
49
+ }
50
+ }
51
+ }
52
+ },
53
+ {
54
+ "if" : {
55
+ "properties" : {
56
+ "n" : {
57
+ "const" : "errormode"
58
+ }
59
+ }
60
+ },
61
+ "then" : {
62
+ "properties" : {
63
+ "v" : {
64
+ "description" : "Detector forced on/off while detector error",
65
+ "type" : "string",
66
+ "enum" : [
67
+ "off",
68
+ "on"
69
+ ]
70
+ }
71
+ }
72
+ }
73
+ },
74
+ {
75
+ "if" : {
76
+ "properties" : {
77
+ "n" : {
78
+ "const" : "manual"
79
+ }
80
+ }
81
+ },
82
+ "then" : {
83
+ "properties" : {
84
+ "v" : {
85
+ "description" : "Manually controlled detector logic (True/False)",
86
+ "type" : "string"
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "$schema" : "https://json-schema.org/draft/2020-12/schema",
3
+ "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",
4
+ "properties" : {
5
+ "n" : {
6
+ "enum" : [
7
+ "detector",
8
+ "errormode",
9
+ "logicerror",
10
+ "manual",
11
+ "type"
12
+ ]
13
+ }
14
+ },
15
+ "allOf" : [
16
+ {
17
+ "if" : {
18
+ "properties" : {
19
+ "n" : {
20
+ "const" : "detector"
21
+ }
22
+ }
23
+ },
24
+ "then" : {
25
+ "properties" : {
26
+ "v" : {
27
+ "description" : "Designation of the detector (hardware)",
28
+ "type" : "string"
29
+ }
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "if" : {
35
+ "properties" : {
36
+ "n" : {
37
+ "const" : "type"
38
+ }
39
+ }
40
+ },
41
+ "then" : {
42
+ "properties" : {
43
+ "v" : {
44
+ "description" : "Type of detector.",
45
+ "type" : "string",
46
+ "enum" : [
47
+ "input",
48
+ "loop"
49
+ ]
50
+ }
51
+ }
52
+ }
53
+ },
54
+ {
55
+ "if" : {
56
+ "properties" : {
57
+ "n" : {
58
+ "const" : "errormode"
59
+ }
60
+ }
61
+ },
62
+ "then" : {
63
+ "properties" : {
64
+ "v" : {
65
+ "description" : "Detector forced on/off while detector error",
66
+ "type" : "string",
67
+ "enum" : [
68
+ "off",
69
+ "on"
70
+ ]
71
+ }
72
+ }
73
+ }
74
+ },
75
+ {
76
+ "if" : {
77
+ "properties" : {
78
+ "n" : {
79
+ "const" : "manual"
80
+ }
81
+ }
82
+ },
83
+ "then" : {
84
+ "properties" : {
85
+ "v" : {
86
+ "description" : "Manually controlled detector logic (True/False)",
87
+ "type" : "string"
88
+ }
89
+ }
90
+ }
91
+ },
92
+ {
93
+ "if" : {
94
+ "properties" : {
95
+ "n" : {
96
+ "const" : "logicerror"
97
+ }
98
+ }
99
+ },
100
+ "then" : {
101
+ "properties" : {
102
+ "v" : {
103
+ "description" : "Type of logic error",
104
+ "type" : "string",
105
+ "enum" : [
106
+ "always_off",
107
+ "always_on",
108
+ "intermittent"
109
+ ]
110
+ }
111
+ }
112
+ }
113
+ }
114
+ ]
115
+ }