cpee 2.0.23 → 2.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/model.css +2 -0
  3. data/cockpit/css/replay.css +55 -0
  4. data/cockpit/edit.html +1 -0
  5. data/cockpit/index.html +2 -0
  6. data/cockpit/js/instance.js +0 -13
  7. data/cockpit/js/replay.js +40 -0
  8. data/cockpit/model.html +3 -1
  9. data/cockpit/replay.html +52 -0
  10. data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
  11. data/cockpit/themes/compact/rngs/call.rng +67 -40
  12. data/cockpit/themes/compact/rngs/callmanipulate.rng +81 -38
  13. data/cockpit/themes/control/rngs/alternative.rng +25 -0
  14. data/cockpit/themes/control/rngs/call.rng +149 -0
  15. data/cockpit/themes/control/rngs/callmanipulate.rng +188 -0
  16. data/cockpit/themes/control/rngs/choose.rng +14 -0
  17. data/cockpit/themes/control/rngs/closed_loop.rng +62 -0
  18. data/cockpit/themes/control/rngs/closed_loop_cancel.rng +5 -0
  19. data/cockpit/themes/control/rngs/closed_loop_control.rng +31 -0
  20. data/cockpit/themes/control/rngs/closed_loop_measuring.rng +12 -0
  21. data/cockpit/themes/control/rngs/critical.rng +5 -0
  22. data/cockpit/themes/control/rngs/escape.rng +1 -0
  23. data/cockpit/themes/control/rngs/group.rng +3 -0
  24. data/cockpit/themes/control/rngs/loop.rng +22 -0
  25. data/cockpit/themes/control/rngs/manipulate.rng +9 -0
  26. data/cockpit/themes/control/rngs/otherwise.rng +22 -0
  27. data/cockpit/themes/control/rngs/parallel.rng +21 -0
  28. data/cockpit/themes/control/rngs/parallel_branch.rng +8 -0
  29. data/cockpit/themes/control/rngs/scripts.rng +23 -0
  30. data/cockpit/themes/control/rngs/stop.rng +5 -0
  31. data/cockpit/themes/control/rngs/terminate.rng +1 -0
  32. data/cockpit/themes/control/symbols/alternative.svg +5 -0
  33. data/cockpit/themes/control/symbols/arrow.svg +3 -0
  34. data/cockpit/themes/control/symbols/call.svg +6 -0
  35. data/cockpit/themes/control/symbols/callmanipulate.svg +8 -0
  36. data/cockpit/themes/control/symbols/choose.svg +5 -0
  37. data/cockpit/themes/control/symbols/choose_exclusive.svg +5 -0
  38. data/cockpit/themes/control/symbols/choose_inclusive.svg +4 -0
  39. data/cockpit/themes/control/symbols/closed_loop.svg +5 -0
  40. data/cockpit/themes/control/symbols/closed_loop_cancel.svg +5 -0
  41. data/cockpit/themes/control/symbols/closed_loop_control.svg +5 -0
  42. data/cockpit/themes/control/symbols/closed_loop_measuring.svg +6 -0
  43. data/cockpit/themes/control/symbols/complex.svg +8 -0
  44. data/cockpit/themes/control/symbols/critical.svg +4 -0
  45. data/cockpit/themes/control/symbols/end.svg +3 -0
  46. data/cockpit/themes/control/symbols/escape.svg +5 -0
  47. data/cockpit/themes/control/symbols/event_end.svg +3 -0
  48. data/cockpit/themes/control/symbols/loop.svg +5 -0
  49. data/cockpit/themes/control/symbols/manipulate.svg +4 -0
  50. data/cockpit/themes/control/symbols/otherwise.svg +5 -0
  51. data/cockpit/themes/control/symbols/parallel.svg +5 -0
  52. data/cockpit/themes/control/symbols/parallel_branch.svg +5 -0
  53. data/cockpit/themes/control/symbols/parallel_branch_compact.svg +4 -0
  54. data/cockpit/themes/control/symbols/parallel_branch_event.svg +14 -0
  55. data/cockpit/themes/control/symbols/parallel_branch_normal.svg +5 -0
  56. data/cockpit/themes/control/symbols/scripts.svg +4 -0
  57. data/cockpit/themes/control/symbols/start.svg +3 -0
  58. data/cockpit/themes/control/symbols/stop.svg +5 -0
  59. data/cockpit/themes/control/symbols/terminate.svg +4 -0
  60. data/cockpit/themes/control/theme.js +1665 -0
  61. data/cockpit/themes/default/rngs/call.rng +67 -40
  62. data/cockpit/themes/default/rngs/callmanipulate.rng +81 -38
  63. data/cockpit/themes/default/theme.js +1287 -0
  64. data/cockpit/themes/diana/rngs/call.rng +67 -40
  65. data/cockpit/themes/diana/rngs/callmanipulate.rng +81 -38
  66. data/cockpit/themes/extended/rngs/call.rng +67 -40
  67. data/cockpit/themes/extended/rngs/callmanipulate.rng +81 -38
  68. data/cockpit/themes/packed/rngs/call.rng +67 -40
  69. data/cockpit/themes/packed/rngs/callmanipulate.rng +81 -38
  70. data/cockpit/themes/preset/rngs/call.rng +67 -40
  71. data/cockpit/themes/preset/rngs/callmanipulate.rng +81 -38
  72. data/cockpit/track.html +0 -7
  73. data/cpee.gemspec +2 -2
  74. data/server/handlerwrappers/default.rb +2 -2
  75. data/server/routing/end.pid +1 -0
  76. data/server/routing/forward-events.pid +1 -0
  77. data/server/routing/forward-votes.pid +1 -0
  78. data/server/routing/persist.pid +1 -0
  79. data/server/server.pid +1 -0
  80. metadata +60 -2
@@ -0,0 +1,25 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="alternative" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="condition" rngui:label="Condition">
3
+ <data type="string" rngui:label="Condition"/>
4
+ </attribute>
5
+ <element name="_probability" rngui:mark="true" rngui:header="Execution Probability">
6
+ <element name="_probability_min" rngui:label="Min in %">
7
+ <data type="integer" rngui:label="Percent 0-100">
8
+ <param name="minInclusive">1</param>
9
+ <param name="maxInclusive">100</param>
10
+ </data>
11
+ </element>
12
+ <element name="_probability_max" rngui:label="Max in %">
13
+ <data type="integer" rngui:label="Percent 0-100">
14
+ <param name="minInclusive">1</param>
15
+ <param name="maxInclusive">100</param>
16
+ </data>
17
+ </element>
18
+ <element name="_probability_avg" rngui:label="Avg in %">
19
+ <data type="integer" rngui:label="Percent 0-100">
20
+ <param name="minInclusive">1</param>
21
+ <param name="maxInclusive">100</param>
22
+ </data>
23
+ </element>
24
+ </element>
25
+ </element>
@@ -0,0 +1,149 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ <attribute name="endpoint" rngui:label="Endpoint">
6
+ <data type="string"/>
7
+ </attribute>
8
+ <element name="parameters" rngui:header="Properties">
9
+ <element name="label" rngui:label="Label">
10
+ <data type="string" rngui:label="Short description of the task"/>
11
+ </element>
12
+ <element name="method" rngui:label="Method">
13
+ <choice>
14
+ <value>:post</value>
15
+ <value>:get</value>
16
+ <value>:put</value>
17
+ <value>:delete</value>
18
+ </choice>
19
+ </element>
20
+ <element name="arguments" rngui:header="Arguments">
21
+ <zeroOrMore rngui:label="Create Argument Pair">
22
+ <element rngui:label="Name" rngui:labeltype="xml">
23
+ <anyName/>
24
+ <data type="string" rngui:label="Value"/>
25
+ </element>
26
+ </zeroOrMore>
27
+ </element>
28
+ <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
31
+ <zeroOrMore rngui:label="Add Sensor">
32
+ <element name="sensor">
33
+ <element name="name" rngui:label="Label">
34
+ <data type="string" rngui:label="Label"/>
35
+ </element>
36
+ <element name="extractor_url" rngui:label="Extractor Url">
37
+ <data type="string" rngui:label="Service Url"/>
38
+ </element>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
46
+ </element>
47
+ <element name="visualizer_url" rngui:label="Visualizer Url">
48
+ <data type="string" rngui:label="Service Url"/>
49
+ </element>
50
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
51
+ <zeroOrMore rngui:label="Create Visualizer Argument Pairs">
52
+ <element rngui:label="Name">
53
+ <anyName/>
54
+ <data type="string" rngui:label="Value / Json"/>
55
+ </element>
56
+ </zeroOrMore>
57
+ </element>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
65
+ <element name="name" rngui:label="Label">
66
+ <data type="string" rngui:label="Label"/>
67
+ </element>
68
+ <element name="target" rngui:label="Target Value">
69
+ <data type="string" rngui:label="Value"/>
70
+ </element>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="aggregator_url" rngui:label="Aggregator Url">
81
+ <data type="string" rngui:label="Service Url + Parameters"/>
82
+ </element>
83
+ </element>
84
+ </zeroOrMore>
85
+ </element>
86
+ <element name="aggregator_url" rngui:label="Impact Function Url">
87
+ <data type="string" rngui:label="Service Url + Parameters"/>
88
+ </element>
89
+ </element>
90
+ </zeroOrMore>
91
+ </element>
92
+ <element name="vfunc_url" rngui:label="Violation Function Url">
93
+ <data type="string" rngui:label="Service Url + Parameters"/>
94
+ </element>
95
+ </element>
96
+ </zeroOrMore>
97
+ </element>
98
+
99
+ </element>
100
+ <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
101
+ <element name="url" rngui:label='HTML Snippet'>
102
+ <data type="string" rngui:label="url to report snippet"/>
103
+ </element>
104
+ </element>
105
+ </element>
106
+ <element name="annotations" rngui:header="Annotations">
107
+ <element name="_timing" rngui:header="Timing" rngui:fold="closed">
108
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
109
+ <data type="float" rngui:label="[0,1]"/>
110
+ </element>
111
+ <element name="_timing_avg" rngui:label="Avg in min">
112
+ <data type="float" rngui:label="Minutes"/>
113
+ </element>
114
+ <element name="explanations" rngui:header="Explanations">
115
+ <zeroOrMore rngui:label="Add Explanation">
116
+ <element name="explanation">
117
+ <element name="type" rngui:label="Type">
118
+ <choice>
119
+ <value>&gt;</value>
120
+ <value>&lt;</value>
121
+ </choice>
122
+ </element>
123
+ <element name="deviation" rngui:label="Deviation">
124
+ <data type="float" rngui:label="Minutes"/>
125
+ </element>
126
+ <element name="behaviour" rngui:label="Behaviour">
127
+ <choice>
128
+ <value>Immediately</value>
129
+ <value>Wait until next</value>
130
+ <value>Use grace period value</value>
131
+ </choice>
132
+ </element>
133
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
134
+ <data type="float" rngui:label="Minutes"/>
135
+ </element>
136
+ <element name="text" rngui:label="Explanation">
137
+ <data type="string" rngui:label="Patterns"/>
138
+ </element>
139
+ </element>
140
+ </zeroOrMore>
141
+ </element>
142
+ </element>
143
+ <element name="_notes" rngui:header="Notes" rngui:fold="closed">
144
+ <element name="_notes_general" rngui:label="General">
145
+ <text rngui:wrap="true" rngui:label="Notes"/>
146
+ </element>
147
+ </element>
148
+ </element>
149
+ </element>
@@ -0,0 +1,188 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ <attribute name="endpoint" rngui:label="Endpoint">
6
+ <data type="string"/>
7
+ </attribute>
8
+ <element name="parameters" rngui:header="Properties">
9
+ <element name="label" rngui:label="Label">
10
+ <data type="string" rngui:label="Short description of the task"/>
11
+ </element>
12
+ <element name="method" rngui:label="Method">
13
+ <choice>
14
+ <value>:post</value>
15
+ <value>:get</value>
16
+ <value>:put</value>
17
+ <value>:delete</value>
18
+ </choice>
19
+ </element>
20
+ <element name="arguments" rngui:header="Arguments">
21
+ <zeroOrMore rngui:label="Create Argument Pair">
22
+ <element rngui:label="Name" rngui:labeltype="xml">
23
+ <anyName/>
24
+ <data type="string" rngui:label="Value"/>
25
+ </element>
26
+ </zeroOrMore>
27
+ </element>
28
+ <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
31
+ <zeroOrMore rngui:label="Add Sensor">
32
+ <element name="sensor">
33
+ <element name="name" rngui:label="Label">
34
+ <data type="string" rngui:label="Label"/>
35
+ </element>
36
+ <element name="extractor_url" rngui:label="Extractor Url">
37
+ <data type="string" rngui:label="Service Url"/>
38
+ </element>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
46
+ </element>
47
+ <element name="visualizer_url" rngui:label="Visualizer Url">
48
+ <data type="string" rngui:label="Service Url"/>
49
+ </element>
50
+ <element name="visualizer_params" rngui:header="Visualizer Arguments">
51
+ <zeroOrMore rngui:label="Create Visualizer Argument Pairs">
52
+ <element rngui:label="Name">
53
+ <anyName/>
54
+ <data type="string" rngui:label="Value / Json"/>
55
+ </element>
56
+ </zeroOrMore>
57
+ </element>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
65
+ <element name="name" rngui:label="Label">
66
+ <data type="string" rngui:label="Label"/>
67
+ </element>
68
+ <element name="target" rngui:label="Target Value">
69
+ <data type="string" rngui:label="Value"/>
70
+ </element>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="extractor_params" rngui:header="Extractor Arguments">
81
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
82
+ <element rngui:label="Name">
83
+ <anyName/>
84
+ <data type="string" rngui:label="Value / Json"/>
85
+ </element>
86
+ </zeroOrMore>
87
+ </element>
88
+ <element name="aggregator_url" rngui:label="Aggregator Url">
89
+ <data type="string" rngui:label="Service Url + Parameters"/>
90
+ </element>
91
+ <element name="aggregator_params" rngui:header="Extractor Arguments">
92
+ <zeroOrMore rngui:label="Create Aggregator Argument Pairs">
93
+ <element rngui:label="Name">
94
+ <anyName/>
95
+ <data type="string" rngui:label="Value / Json"/>
96
+ </element>
97
+ </zeroOrMore>
98
+ </element>
99
+ </element>
100
+ </zeroOrMore>
101
+ </element>
102
+ <element name="aggregator_url" rngui:label="Impact Function Url">
103
+ <data type="string" rngui:label="Service Url + Parameters"/>
104
+ </element>
105
+ </element>
106
+ </zeroOrMore>
107
+ </element>
108
+ <element name="vfunc_url" rngui:label="Violation Function Url">
109
+ <data type="string" rngui:label="Service Url + Parameters"/>
110
+ </element>
111
+ </element>
112
+ </zeroOrMore>
113
+ </element>
114
+
115
+ </element>
116
+ <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
117
+ <element name="url" rngui:label='HTML Snippet'>
118
+ <data type="string" rngui:label="url to report snippet"/>
119
+ </element>
120
+ </element>
121
+ </element>
122
+ <element name="code" rngui:header="Implementation">
123
+ <element name="prepare" rngui:header="Prepare" rngui:label="Code" rngui:fold="closed_conditional">
124
+ <text rngui:label="Script that is executed, before a service call"/>
125
+ </element>
126
+ <element name="finalize" rngui:header="Finalize" rngui:label="Code" rngui:fold="closed_conditional">
127
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
128
+ <data type="string" rngui:readonly="true"/>
129
+ </attribute>
130
+ <text rngui:label="Script that is executed, when a service returns data"/>
131
+ </element>
132
+ <element name="update" rngui:header="Update" rngui:label="Code" rngui:fold="closed_conditional">
133
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
134
+ <data type="string" rngui:readonly="true"/>
135
+ </attribute>
136
+ <text rngui:label="Script that is executed, when a service sends intermediate data"/>
137
+ </element>
138
+ <element name="rescue" rngui:header="Rescue" rngui:label="Code" rngui:fold="closed_conditional">
139
+ <attribute name="output" rngui:label="Access Variable" rngui:default="result">
140
+ <data type="string" rngui:readonly="true"/>
141
+ </attribute>
142
+ <text rngui:label="Script that is executed, if a service call fails"/>
143
+ </element>
144
+ </element>
145
+ <element name="annotations" rngui:header="Annotations">
146
+ <element name="_timing" rngui:header="Timing" rngui:fold="closed">
147
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
148
+ <data type="float" rngui:label="[0,1]"/>
149
+ </element>
150
+ <element name="_timing_avg" rngui:label="Avg in min">
151
+ <data type="float" rngui:label="Minutes"/>
152
+ </element>
153
+ <element name="explanations" rngui:header="Explanations">
154
+ <zeroOrMore rngui:label="Add Explanation">
155
+ <element name="explanation">
156
+ <element name="type" rngui:label="Type">
157
+ <choice>
158
+ <value>&gt;</value>
159
+ <value>&lt;</value>
160
+ </choice>
161
+ </element>
162
+ <element name="deviation" rngui:label="Deviation">
163
+ <data type="float" rngui:label="Minutes"/>
164
+ </element>
165
+ <element name="behaviour" rngui:label="Behaviour">
166
+ <choice>
167
+ <value>Immediately</value>
168
+ <value>Wait until next</value>
169
+ <value>Use grace period value</value>
170
+ </choice>
171
+ </element>
172
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
173
+ <data type="float" rngui:label="Minutes"/>
174
+ </element>
175
+ <element name="text" rngui:label="Explanation">
176
+ <data type="string" rngui:label="Patterns"/>
177
+ </element>
178
+ </element>
179
+ </zeroOrMore>
180
+ </element>
181
+ </element>
182
+ <element name="_notes" rngui:header="Notes" rngui:fold="closed">
183
+ <element name="_notes_general" rngui:label="General">
184
+ <text rngui:wrap="true" rngui:label="Notes"/>
185
+ </element>
186
+ </element>
187
+ </element>
188
+ </element>
@@ -0,0 +1,14 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="choose" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="mode" rngui:label="Mode" rngui:default="exclusive">
3
+ <choice>
4
+ <value>exclusive</value>
5
+ <value>inclusive</value>
6
+ </choice>
7
+ </attribute>
8
+ <element rngui:ignore="true" name="alternative">
9
+ <attribute name="condition">
10
+ <data type="string"/>
11
+ </attribute>
12
+ </element>
13
+ <element rngui:ignore="true" name="otherwise"/>
14
+ </element>
@@ -0,0 +1,62 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="closed_loop" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="overrun" rngui:label="Interval duration overrun">
3
+ <choice>
4
+ <value>wait</value>
5
+ <value>cancel</value>
6
+ </choice>
7
+ </attribute>
8
+ <attribute name="execution" rngui:label="Measure-control cycle execution">
9
+ <choice>
10
+ <value>sequential</value>
11
+ <value>parallel</value>
12
+ </choice>
13
+ </attribute>
14
+ <element name="_probability" rngui:mark="true" rngui:header="Execution Probability">
15
+ <element name="_probability_min" rngui:label="Min times">
16
+ <data type="nonNegativeInteger" rngui:label="Times"/>
17
+ </element>
18
+ <element name="_probability_max" rngui:label="Max times">
19
+ <data type="nonNegativeInteger" rngui:label="Times"/>
20
+ </element>
21
+ <element name="_probability_avg" rngui:label="Avg times">
22
+ <data type="nonNegativeInteger" rngui:label="Times"/>
23
+ </element>
24
+ </element>
25
+ <element rngui:ignore="true" name="closed_loop_measuring">
26
+ <attribute name="frequency" rngui:label="Interval frequency in Hz" rngui:default="0.1">
27
+ <data type="float" rngui:label="Hz"/>
28
+ </attribute>
29
+ <element name="_expected" rngui:header="Values Expected to Change">
30
+ <zeroOrMore rngui:label="Add Value">
31
+ <element name="value" rngui:label="Value">
32
+ <data type="string" rngui:label="a dataelement"/>
33
+ </element>
34
+ </zeroOrMore>
35
+ </element>
36
+ </element>
37
+ <element rngui:ignore="true" name="closed_loop_control">
38
+ <attribute name="frequency" rngui:label="Interval frequency in Hz" rngui:default="0.1">
39
+ <data type="float" rngui:label="Hz"/>
40
+ </attribute>
41
+ <element name="_expected" rngui:header="Values Expected to Change">
42
+ <zeroOrMore rngui:label="Add Value">
43
+ <element name="change">
44
+ <element name="value" rngui:label="Value">
45
+ <data type="string" rngui:label="a dataelement"/>
46
+ </element>
47
+ <element name="upper" rngui:label="Upper Limit">
48
+ <data type="float" rngui:label="Max value after next measure"/>
49
+ </element>
50
+ <element name="lower" rngui:label="Lower Limit">
51
+ <data type="float" rngui:label="Min value after next measure"/>
52
+ </element>
53
+ </element>
54
+ </zeroOrMore>
55
+ </element>
56
+ </element>
57
+ <element rngui:ignore="true" name="closed_loop_cancel">
58
+ <attribute name="condition" rngui:label="Condition">
59
+ <data type="string" rngui:label="Condition"/>
60
+ </attribute>
61
+ </element>
62
+ </element>
@@ -0,0 +1,5 @@
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="closed_loop_cancel" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
+ <attribute name="condition" rngui:label="Condition">
3
+ <data type="string" rngui:label="Condition"/>
4
+ </attribute>
5
+ </element>