cpee 2.1.29 → 2.1.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/cockpit/config.json +1 -1
  4. data/cockpit/css/graph.css +13 -0
  5. data/cockpit/css/track.css +1 -1
  6. data/cockpit/css/wfadaptor.css +9 -2
  7. data/cockpit/edit.html +1 -1
  8. data/cockpit/graph.html +1 -0
  9. data/cockpit/index.html +2 -2
  10. data/cockpit/js/details.js +2 -2
  11. data/cockpit/js/instance.js +162 -112
  12. data/cockpit/js/wfadaptor.js +20 -14
  13. data/cockpit/js_libs.zip +0 -0
  14. data/cockpit/templates/Coopis 2010.xml +109 -14
  15. data/cockpit/templates/Frames.xml +297 -0
  16. data/cockpit/templates/Subprocess.xml +54 -6
  17. data/cockpit/templates/Wait.xml +5 -11
  18. data/cockpit/templates/Worklist.xml +58 -26
  19. data/cockpit/themes/compact/rngs/call.rng +127 -86
  20. data/cockpit/themes/compact/rngs/callmanipulate.rng +32 -7
  21. data/cockpit/themes/compact/rngs/closed_loop_control.rng +2 -2
  22. data/cockpit/themes/compact/rngs/closed_loop_measuring.rng +3 -3
  23. data/cockpit/themes/compact/rngs/start.rng +110 -72
  24. data/cockpit/themes/compact/symbols/call_sensor.svg +9 -0
  25. data/cockpit/themes/compact/symbols/callmanipulate.svg +3 -3
  26. data/cockpit/themes/compact/symbols/callmanipulate_sensor.svg +11 -0
  27. data/cockpit/themes/compact/symbols/delete.svg +4 -0
  28. data/cockpit/themes/compact/symbols/start_event.svg +5 -0
  29. data/cockpit/themes/compact/symbols/test.svg +74 -0
  30. data/cockpit/themes/compact/theme.js +105 -9
  31. data/cockpit/themes/control/rngs/call.rng +127 -86
  32. data/cockpit/themes/control/rngs/callmanipulate.rng +32 -7
  33. data/cockpit/themes/control/rngs/closed_loop_control.rng +2 -2
  34. data/cockpit/themes/control/rngs/closed_loop_measuring.rng +3 -3
  35. data/cockpit/themes/control/rngs/start.rng +110 -72
  36. data/cockpit/themes/control/symbols/call_sensor.svg +9 -0
  37. data/cockpit/themes/control/symbols/callmanipulate.svg +3 -3
  38. data/cockpit/themes/control/symbols/callmanipulate_sensor.svg +11 -0
  39. data/cockpit/themes/control/symbols/delete.svg +4 -0
  40. data/cockpit/themes/control/symbols/start_event.svg +5 -0
  41. data/cockpit/themes/control/symbols/test.svg +74 -0
  42. data/cockpit/themes/control/theme.js +53 -7
  43. data/cockpit/themes/default/rngs/call.rng +127 -86
  44. data/cockpit/themes/default/rngs/callmanipulate.rng +32 -7
  45. data/cockpit/themes/default/rngs/closed_loop_control.rng +2 -2
  46. data/cockpit/themes/default/rngs/closed_loop_measuring.rng +3 -3
  47. data/cockpit/themes/default/rngs/start.rng +110 -72
  48. data/cockpit/themes/default/symbols/call_sensor.svg +9 -0
  49. data/cockpit/themes/default/symbols/callmanipulate.svg +3 -3
  50. data/cockpit/themes/default/symbols/callmanipulate_sensor.svg +11 -0
  51. data/cockpit/themes/default/symbols/delete.svg +4 -0
  52. data/cockpit/themes/default/symbols/start_event.svg +5 -0
  53. data/cockpit/themes/default/symbols/test.svg +74 -0
  54. data/cockpit/themes/default/theme.js +105 -9
  55. data/cockpit/themes/extended/rngs/call.rng +127 -86
  56. data/cockpit/themes/extended/rngs/callmanipulate.rng +32 -7
  57. data/cockpit/themes/extended/rngs/closed_loop_control.rng +2 -2
  58. data/cockpit/themes/extended/rngs/closed_loop_measuring.rng +3 -3
  59. data/cockpit/themes/extended/rngs/start.rng +110 -72
  60. data/cockpit/themes/extended/symbols/call_sensor.svg +9 -0
  61. data/cockpit/themes/extended/symbols/callmanipulate.svg +3 -3
  62. data/cockpit/themes/extended/symbols/callmanipulate_sensor.svg +11 -0
  63. data/cockpit/themes/extended/symbols/delete.svg +4 -0
  64. data/cockpit/themes/extended/symbols/start_event.svg +5 -0
  65. data/cockpit/themes/extended/symbols/test.svg +74 -0
  66. data/cockpit/themes/extended/theme.js +105 -9
  67. data/cockpit/themes/model/symbols/call_sensor.svg +9 -0
  68. data/cockpit/themes/model/symbols/callmanipulate.svg +3 -3
  69. data/cockpit/themes/model/symbols/callmanipulate_sensor.svg +11 -0
  70. data/cockpit/themes/model/symbols/delete.svg +4 -0
  71. data/cockpit/themes/model/symbols/start_event.svg +5 -0
  72. data/cockpit/themes/model/symbols/test.svg +74 -0
  73. data/cockpit/themes/model/theme.js +50 -4
  74. data/cockpit/themes/packed/rngs/call.rng +127 -86
  75. data/cockpit/themes/packed/rngs/callmanipulate.rng +32 -7
  76. data/cockpit/themes/packed/rngs/closed_loop_control.rng +2 -2
  77. data/cockpit/themes/packed/rngs/closed_loop_measuring.rng +3 -3
  78. data/cockpit/themes/packed/rngs/start.rng +110 -72
  79. data/cockpit/themes/packed/symbols/call_sensor.svg +9 -0
  80. data/cockpit/themes/packed/symbols/callmanipulate.svg +3 -3
  81. data/cockpit/themes/packed/symbols/callmanipulate_sensor.svg +11 -0
  82. data/cockpit/themes/packed/symbols/delete.svg +4 -0
  83. data/cockpit/themes/packed/symbols/start_event.svg +5 -0
  84. data/cockpit/themes/packed/symbols/test.svg +74 -0
  85. data/cockpit/themes/packed/theme.js +105 -9
  86. data/cockpit/themes/preset/rngs/call.rng +127 -86
  87. data/cockpit/themes/preset/rngs/callmanipulate.rng +32 -7
  88. data/cockpit/themes/preset/rngs/closed_loop_control.rng +2 -2
  89. data/cockpit/themes/preset/rngs/closed_loop_measuring.rng +3 -3
  90. data/cockpit/themes/preset/rngs/start.rng +110 -72
  91. data/cockpit/themes/preset/symbols/call_sensor.svg +9 -0
  92. data/cockpit/themes/preset/symbols/callmanipulate.svg +3 -3
  93. data/cockpit/themes/preset/symbols/callmanipulate_sensor.svg +11 -0
  94. data/cockpit/themes/preset/symbols/delete.svg +4 -0
  95. data/cockpit/themes/preset/symbols/start_event.svg +5 -0
  96. data/cockpit/themes/preset/symbols/test.svg +74 -0
  97. data/cockpit/themes/preset/theme.js +105 -9
  98. data/cpee.gemspec +6 -5
  99. data/lib/cpee/fail.rb +23 -0
  100. data/lib/cpee/implementation.rb +144 -49
  101. data/lib/cpee/implementation_callbacks.rb +11 -10
  102. data/lib/cpee/implementation_notifications.rb +4 -3
  103. data/lib/cpee/implementation_properties.rb +2 -2
  104. data/lib/cpee/message.rb +49 -15
  105. data/lib/cpee/persistence.rb +34 -12
  106. data/lib/cpee.xml +1 -1
  107. data/server/executionhandlers/ruby/backend/instance.template +1 -1
  108. data/server/executionhandlers/ruby/backend/run +4 -4
  109. data/server/executionhandlers/ruby/connection.rb +93 -34
  110. data/server/executionhandlers/ruby/controller.rb +29 -19
  111. data/server/executionhandlers/ruby/desc.xml +107 -0
  112. data/server/executionhandlers/ruby/dsl_to_dslx.xsl +67 -24
  113. data/server/executionhandlers/ruby/execution.rb +1 -0
  114. data/server/resources/states.xml +3 -0
  115. data/server/resources/test.pdf +0 -0
  116. data/server/resources/topics.xml +4 -2
  117. data/server/routing/end.pid +1 -0
  118. data/server/routing/end.rb +3 -2
  119. data/server/routing/forward-events-00.pid +1 -0
  120. data/server/routing/forward-events.rb +26 -13
  121. data/server/routing/forward-votes.pid +1 -0
  122. data/server/routing/forward-votes.rb +4 -4
  123. data/server/routing/persist.pid +1 -0
  124. data/server/routing/persist.rb +41 -31
  125. data/server/server.pid +1 -0
  126. data/tools/cpee +99 -24
  127. metadata +80 -32
  128. data/cockpit/templates/Coopis 2010.xml.active +0 -1
  129. data/cockpit/templates/Coopis 2010.xml.active-uuid +0 -1
  130. data/cockpit/templates/Subprocess.xml.active +0 -1
  131. data/cockpit/templates/Subprocess.xml.active-uuid +0 -1
  132. data/cockpit/templates/Track Test.xml.active +0 -1
  133. data/cockpit/templates/Track Test.xml.active-uuid +0 -1
  134. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml.active +0 -1
  135. data/cockpit/templates/UR-VUE 2020 Solution Baseline.xml.active-uuid +0 -1
  136. data/cockpit/templates/Wait.xml.active +0 -1
  137. data/cockpit/templates/Wait.xml.active-uuid +0 -1
  138. data/cockpit/templates/Wait.xml.attrs +0 -13
  139. data/server/executionhandlers/ruby/test.xml +0 -43
@@ -0,0 +1,74 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
4
+ xmlns:cc="http://creativecommons.org/ns#"
5
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
+ xmlns:svg="http://www.w3.org/2000/svg"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
+ class="clickable"
11
+ version="1.1"
12
+ id="svg10"
13
+ sodipodi:docname="test.svg"
14
+ inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
15
+ <metadata
16
+ id="metadata16">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <defs
27
+ id="defs14" />
28
+ <sodipodi:namedview
29
+ pagecolor="#ffffff"
30
+ bordercolor="#666666"
31
+ borderopacity="1"
32
+ objecttolerance="10"
33
+ gridtolerance="10"
34
+ guidetolerance="10"
35
+ inkscape:pageopacity="0"
36
+ inkscape:pageshadow="2"
37
+ inkscape:window-width="2062"
38
+ inkscape:window-height="1298"
39
+ id="namedview12"
40
+ showgrid="false"
41
+ inkscape:zoom="35.146667"
42
+ inkscape:cx="13.036699"
43
+ inkscape:cy="13.350011"
44
+ inkscape:window-x="0"
45
+ inkscape:window-y="27"
46
+ inkscape:window-maximized="0"
47
+ inkscape:current-layer="svg10" />
48
+ <rect
49
+ transform="rotate(45,14,12)"
50
+ x="7"
51
+ y="3"
52
+ width="21"
53
+ height="21"
54
+ class="cline hfill stand"
55
+ id="rect2"
56
+ style="fill:#3465a4" />
57
+ <circle
58
+ cx="15.5"
59
+ cy="15.5"
60
+ r="7"
61
+ class="stand"
62
+ id="circle4" />
63
+ <circle
64
+ cx="15.5"
65
+ cy="15.5"
66
+ r="7"
67
+ class="stand"
68
+ id="circle6" />
69
+ <path
70
+ d="m 15.500001,11.435193 3.825246,2.779205 -1.461114,4.496849 h -4.728265 l -1.461115,-4.496849 z"
71
+ class="stand"
72
+ id="path8"
73
+ style="fill:#ef2929;stroke-width:1" />
74
+ </svg>
@@ -93,7 +93,7 @@ function WFAdaptorManifestation(adaptor) {
93
93
 
94
94
  nodes = JSON.parse(nodes);
95
95
  $(nodes).each(function(key,str) {
96
- nodes[key] = $X(str);;
96
+ nodes[key] = $X(str);
97
97
  });
98
98
 
99
99
  var check1 = [];
@@ -176,14 +176,44 @@ function WFAdaptorManifestation(adaptor) {
176
176
 
177
177
  if(xml_node.get(0).tagName != 'description' && !self.elements[xml_node.get(0).tagName].neverdelete) {
178
178
  var icon = self.elements[xml_node.get(0).tagName].illustrator.svg.clone();
179
- icon.children('.rfill').addClass('menu');
179
+ icon.find('.rfill').addClass('menu');
180
+ icon.find('.hfill').addClass('menu');
180
181
  menu['Delete'] = [{
181
182
  'label': 'Remove Element',
182
- 'function_call': function(selector,target,selected){ self.adaptor.description.remove(selector,target); self.adaptor.illustrator.get_label_by_svg_id(selected).addClass('selected'); },
183
+ 'function_call': function(selector,target,selected){
184
+ del_ui_pos(target)
185
+ self.adaptor.description.remove(selector,target);
186
+ localStorage.removeItem('marked');
187
+ localStorage.removeItem('marked_from');
188
+ },
183
189
  'menu_icon': icon,
184
190
  'type': undefined,
185
191
  'params': [null, xml_node, self.selected()]
186
192
  }];
193
+ var nodes = localStorage.getItem('marked');
194
+ nodes = JSON.parse(nodes);
195
+ if (nodes && nodes.length > 0) {
196
+ var icond = self.resources['delete'].clone();
197
+ icond.children('.standfat').addClass('menu');
198
+ menu['Delete'].push({
199
+ 'label': 'Remove Marked Elements',
200
+ 'function_call': function(){
201
+ $(nodes).each(function(key,str) {
202
+ nodes[key] = $X(str);
203
+ });
204
+ $(nodes).each(function(key,node){
205
+ var target = self.adaptor.description.get_node_by_svg_id($(node).attr('svg-id'));
206
+ del_ui_pos(target)
207
+ self.adaptor.description.remove(null,target);
208
+ localStorage.removeItem('marked');
209
+ localStorage.removeItem('marked_from');
210
+ });
211
+ },
212
+ 'menu_icon': icond,
213
+ 'type': undefined,
214
+ 'params': []
215
+ })
216
+ }
187
217
  }
188
218
  if($('> code', xml_node).length > 0 && xml_node.get(0).tagName == 'call') {
189
219
  var icon = self.elements.callmanipulate.illustrator.svg.clone();
@@ -198,7 +228,7 @@ function WFAdaptorManifestation(adaptor) {
198
228
  }
199
229
  if (xml_node.get(0).tagName == "call" || xml_node.get(0).tagName == "manipulate" || xml_node.get(0).tagName == "stop") {
200
230
  var icon = self.elements.call.illustrator.svg.clone();
201
- icon.children('g.replace').addClass('active');
231
+ icon.children('g.replace').addClass('passive');
202
232
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
203
233
  if (vtarget.length > 0) {
204
234
  if (vtarget.parents('g.activities.passive, g.activities.active').length > 0) {
@@ -223,6 +253,18 @@ function WFAdaptorManifestation(adaptor) {
223
253
  new CustomMenu(e).contextmenu(menu);
224
254
  } //}}}
225
255
 
256
+ function positionHandling(svgid) {
257
+ var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
258
+ var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
259
+ if (vtarget.length > 0) {
260
+ if (vtarget.parents('g.activities.passive, g.activities.active').length > 0) {
261
+ del_ui_pos(xml_node);
262
+ } else {
263
+ add_ui_pos(xml_node);
264
+ }
265
+ }
266
+ }
267
+
226
268
  // Events
227
269
  this.events.touchend = function(svgid, e) { // {{{
228
270
  clearTimeout(self.presstimer);
@@ -234,6 +276,7 @@ function WFAdaptorManifestation(adaptor) {
234
276
  this.events.mousedown = function(svgid, e, child, sibling) { // {{{
235
277
  if(e.button == 0) { // left-click
236
278
  } else if(e.button == 1) { // middle-click
279
+ positionHandling(svgid);
237
280
  } else if(e.button == 2) { // right-click
238
281
  contextMenuHandling(svgid,e,child,sibling);
239
282
  }
@@ -266,6 +309,8 @@ function WFAdaptorManifestation(adaptor) {
266
309
  localStorage.removeItem('marked_from');
267
310
  }
268
311
  }
312
+ } else if (e && (e.shiftKey)) {
313
+ positionHandling(svgid);
269
314
  } else {
270
315
  self.adaptor.illustrator.get_elements().removeClass('marked');
271
316
  localStorage.removeItem('marked');
@@ -299,6 +344,7 @@ function WFAdaptorManifestation(adaptor) {
299
344
 
300
345
  // other resources
301
346
  this.resources.arrow = self.adaptor.theme_dir + 'symbols/arrow.svg';
347
+ this.resources.delete = self.adaptor.theme_dir + 'symbols/delete.svg';
302
348
 
303
349
  // Primitive Elements
304
350
  this.elements.call = { /*{{{*/
@@ -311,10 +357,18 @@ function WFAdaptorManifestation(adaptor) {
311
357
  },
312
358
  'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
313
359
  'resolve_symbol': function(node) {
314
- if($('code', node).length > 0) {
315
- return 'callmanipulate';
360
+ if ($('> annotations > _context_data_analysis > probes > probe', node).length > 0) {
361
+ if ($('> code', node).length > 0) {
362
+ return 'callmanipulate_sensor';
363
+ } else {
364
+ return 'call_sensor';
365
+ }
316
366
  } else {
317
- return 'call';
367
+ if ($('> code', node).length > 0) {
368
+ return 'callmanipulate';
369
+ } else {
370
+ return 'call';
371
+ }
318
372
  }
319
373
  },
320
374
  'svg': self.adaptor.theme_dir + 'symbols/call.svg'
@@ -1169,6 +1223,30 @@ function WFAdaptorManifestation(adaptor) {
1169
1223
  'expansion': function(node) {
1170
1224
  return 'vertical';
1171
1225
  },
1226
+ 'resolve_symbol': function(node) {
1227
+ let plist = []
1228
+ let dirty = false
1229
+ $('*:not(:has(*))',node).each(function(i,n) {
1230
+ let lines = n.textContent.split(/(\r\n)|\n|;/)
1231
+ for (const l of lines) {
1232
+ if (l != null) {
1233
+ let m0 = l.match(/^[^=]*data\.([a-z0-9A-Z_]+)[^=]*=/)
1234
+ if (m0 != null) {
1235
+ plist.push(m0[1])
1236
+ }
1237
+ let m1 = l.match(/=[^=].*data\.([a-z0-9A-Z_]+)/)
1238
+ let m2 = l.match(/^[^=]*data\.([a-z0-9A-Z_]+)[^=]*$/)
1239
+ if (m1 != null && !plist.includes(m1[1])) {
1240
+ dirty = true
1241
+ }
1242
+ if (m2 != null && !plist.includes(m2[1])) {
1243
+ dirty = true
1244
+ }
1245
+ }
1246
+ }
1247
+ })
1248
+ if (dirty) { return 'start_event'; }
1249
+ },
1172
1250
  'closing_symbol': 'end',
1173
1251
  'col_shift': function(node) {
1174
1252
  return true;
@@ -1242,13 +1320,31 @@ function WFAdaptorManifestation(adaptor) {
1242
1320
  // Abstract Elements
1243
1321
  // * they may only have an illustrator (or other parts)
1244
1322
  // * they HAVE TO have a parent
1323
+ this.elements.start_event = { /*{{{*/
1324
+ 'parent': 'start',
1325
+ 'illustrator': {//{{{
1326
+ 'svg': self.adaptor.theme_dir + 'symbols/start_event.svg'
1327
+ }//}}}
1328
+ }; /*}}}*/
1329
+ this.elements.call_sensor = { /*{{{*/
1330
+ 'parent': 'call',
1331
+ 'illustrator': {//{{{
1332
+ 'svg': self.adaptor.theme_dir + 'symbols/call_sensor.svg'
1333
+ }//}}}
1334
+ }; /*}}}*/
1245
1335
  this.elements.callmanipulate = { /*{{{*/
1246
1336
  'parent': 'call',
1247
1337
  'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
1248
1338
  'illustrator': {//{{{
1249
- 'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
1250
1339
  'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
1251
- },//}}}
1340
+ }//}}}
1341
+ }; /*}}}*/
1342
+ this.elements.callmanipulate_sensor = { /*{{{*/
1343
+ 'parent': 'call',
1344
+ 'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
1345
+ 'illustrator': {//{{{
1346
+ 'svg': self.adaptor.theme_dir + 'symbols/callmanipulate_sensor.svg'
1347
+ }//}}}
1252
1348
  }; /*}}}*/
1253
1349
  this.elements.loop_head = { /*{{{*/
1254
1350
  'parent': 'loop',
@@ -27,6 +27,14 @@
27
27
  </element>
28
28
  </element>
29
29
  <element name="annotations" rngui:header="Annotations">
30
+ <element name="_generic" rngui:header="Generic" rngui:fold="closed">
31
+ <zeroOrMore rngui:label="Create Annotation Pair">
32
+ <element rngui:label="Name" rngui:labeltype="xml">
33
+ <anyName/>
34
+ <data type="string" rngui:label="Value"/>
35
+ </element>
36
+ </zeroOrMore>
37
+ </element>
30
38
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
31
39
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
32
40
  <data type="float" rngui:label="[0,1]"/>
@@ -34,92 +42,6 @@
34
42
  <element name="_timing_avg" rngui:label="Avg in min">
35
43
  <data type="float" rngui:label="Minutes"/>
36
44
  </element>
37
- <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
38
-
39
- <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed">
40
- <zeroOrMore rngui:label="Add Probe">
41
- <element name="probe">
42
- <element name="name" rngui:label="Label">
43
- <data type="string" rngui:label="Label"/>
44
- </element>
45
- <element name="extractor_type" rngui:label="Extractor Type">
46
- <choice>
47
- <value id='code'>Code</value>
48
- <value id='service'>Service</value>
49
- </choice>
50
- </element>
51
- <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For extrinsic data'>
52
- <text rngui:label="Code"/>
53
- </element>
54
- <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For extrinsic &amp; discrete data'>
55
- <data type="string" rngui:label="Service Url"/>
56
- </element>
57
- <element name="extractor_params" rngui:label="Extractor Service Arguments:">
58
- <zeroOrMore rngui:label="Create Argument Pairs">
59
- <element rngui:label="Name">
60
- <anyName/>
61
- <data type="string" rngui:label="Value / Json"/>
62
- </element>
63
- </zeroOrMore>
64
- </element>
65
- <element name="visualizer_url" rngui:label="Visualizer Url">
66
- <data type="string" rngui:label="Service Url"/>
67
- </element>
68
- <element name="visualizer_params" rngui:label="Visualizer Arguments">
69
- <zeroOrMore rngui:label="Create Argument Pairs">
70
- <element rngui:label="Name">
71
- <anyName/>
72
- <data type="string" rngui:label="Value / Json"/>
73
- </element>
74
- </zeroOrMore>
75
- </element>
76
- </element>
77
- </zeroOrMore>
78
- </element>
79
-
80
- <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
81
- <zeroOrMore rngui:label="Add Impact Profile">
82
- <element name="ip">
83
- <element name="name" rngui:label="Label">
84
- <data type="string" rngui:label="Label"/>
85
- </element>
86
- <element name="target" rngui:label="Target Value">
87
- <data type="string" rngui:label="Value"/>
88
- </element>
89
- <element name="ifs" rngui:header="Impact Factors">
90
- <zeroOrMore rngui:label="Add Impact Factor">
91
- <element name="if">
92
- <element name="ivs" rngui:header="Impact Values">
93
- <zeroOrMore rngui:label="Add Impact Value ">
94
- <element name="iv">
95
- <element name="extractor_url" rngui:label="Extractor Url">
96
- <data type="string" rngui:label="Service Url + Parameters"/>
97
- </element>
98
- <element name="aggregator_url" rngui:label="Aggregator Url">
99
- <data type="string" rngui:label="Service Url + Parameters"/>
100
- </element>
101
- </element>
102
- </zeroOrMore>
103
- </element>
104
- <element name="aggregator_url" rngui:label="Impact Function Url">
105
- <data type="string" rngui:label="Service Url + Parameters"/>
106
- </element>
107
- </element>
108
- </zeroOrMore>
109
- </element>
110
- <element name="vfunc_url" rngui:label="Violation Function Url">
111
- <data type="string" rngui:label="Service Url + Parameters"/>
112
- </element>
113
- </element>
114
- </zeroOrMore>
115
- </element>
116
-
117
- </element>
118
- <element name="report" rngui:header="Reporting" rngui:fold="closed">
119
- <element name="url" rngui:label='HTML Snippet'>
120
- <data type="string" rngui:label="url to report snippet"/>
121
- </element>
122
- </element>
123
45
  <element name="explanations" rngui:header="Explanations">
124
46
  <zeroOrMore rngui:label="Add Explanation">
125
47
  <element name="explanation">
@@ -149,12 +71,131 @@
149
71
  </zeroOrMore>
150
72
  </element>
151
73
  </element>
74
+ <element name="_shifting" rngui:header="Log Time Shifting" rngui:fold="closed_conditional">
75
+ <element name="_shifting_type" rngui:label="Type">
76
+ <choice>
77
+ <value>Duration</value>
78
+ <value>Ends</value>
79
+ </choice>
80
+ </element>
81
+ <optional>
82
+ <element name="_shifting_expression" rngui:label="Expression">
83
+ <data type="string" rngui:label="e.g.: same day, 16:00; 2 and a half weeks"/>
84
+ </element>
85
+ </optional>
86
+ </element>
87
+ <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
88
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed_conditional">
89
+ <zeroOrMore rngui:label="Add Probe">
90
+ <element name="probe">
91
+ <element name="id" rngui:label="ID">
92
+ <data type="string" rngui:label="ID"/>
93
+ </element>
94
+ <element name="source" rngui:label="Source">
95
+ <data type="string" rngui:label="Where does the sensor value come from?"/>
96
+ </element>
97
+ <element name="extractor_type" rngui:label="Extractor Type">
98
+ <choice>
99
+ <value id='intrinsic'>Intrinsic</value>
100
+ <value id='extrinsic'>Extrinsic</value>
101
+ <value id='separate'>Separate</value>
102
+ </choice>
103
+ </element>
104
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For intrinsic &amp; extrinsic data'>
105
+ <text rngui:label="Code"/>
106
+ </element>
107
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For separate data'>
108
+ <data type="string" rngui:label="Service Url"/>
109
+ </element>
110
+ <element name="extractor_params" rngui:label="Extractor Service Arguments:">
111
+ <zeroOrMore rngui:label="Create Argument Pairs">
112
+ <element rngui:label="Name">
113
+ <anyName/>
114
+ <data type="string" rngui:label="Value / Json"/>
115
+ </element>
116
+ </zeroOrMore>
117
+ </element>
118
+ <element name="visualizer_url" rngui:label="Visualizer Url">
119
+ <data type="string" rngui:label="Service Url"/>
120
+ </element>
121
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
122
+ <zeroOrMore rngui:label="Create Argument Pairs">
123
+ <element rngui:label="Name">
124
+ <anyName/>
125
+ <data type="string" rngui:label="Value / Json"/>
126
+ </element>
127
+ </zeroOrMore>
128
+ </element>
129
+ </element>
130
+ </zeroOrMore>
131
+ </element>
132
+
133
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
134
+ <zeroOrMore rngui:label="Add Impact Profile">
135
+ <element name="ip">
136
+ <element name="name" rngui:label="Label">
137
+ <data type="string" rngui:label="Label"/>
138
+ </element>
139
+ <element name="target" rngui:label="Target Value">
140
+ <data type="string" rngui:label="Value"/>
141
+ </element>
142
+ <element name="ifs" rngui:header="Impact Factors">
143
+ <zeroOrMore rngui:label="Add Impact Factor">
144
+ <element name="if">
145
+ <element name="ivs" rngui:header="Impact Values">
146
+ <zeroOrMore rngui:label="Add Impact Value ">
147
+ <element name="iv">
148
+ <element name="extractor_url" rngui:label="Extractor Url">
149
+ <data type="string" rngui:label="Service Url + Parameters"/>
150
+ </element>
151
+ <element name="extractor_params" rngui:header="Extractor Arguments">
152
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
153
+ <element rngui:label="Name">
154
+ <anyName/>
155
+ <data type="string" rngui:label="Value / Json"/>
156
+ </element>
157
+ </zeroOrMore>
158
+ </element>
159
+ <element name="aggregator_url" rngui:label="Aggregator Url">
160
+ <data type="string" rngui:label="Service Url + Parameters"/>
161
+ </element>
162
+ <element name="aggregator_params" rngui:header="Extractor Arguments">
163
+ <zeroOrMore rngui:label="Create Aggregator Argument Pairs">
164
+ <element rngui:label="Name">
165
+ <anyName/>
166
+ <data type="string" rngui:label="Value / Json"/>
167
+ </element>
168
+ </zeroOrMore>
169
+ </element>
170
+ </element>
171
+ </zeroOrMore>
172
+ </element>
173
+ <element name="aggregator_url" rngui:label="Impact Function Url">
174
+ <data type="string" rngui:label="Service Url + Parameters"/>
175
+ </element>
176
+ </element>
177
+ </zeroOrMore>
178
+ </element>
179
+ <element name="vfunc_url" rngui:label="Violation Function Url">
180
+ <data type="string" rngui:label="Service Url + Parameters"/>
181
+ </element>
182
+ </element>
183
+ </zeroOrMore>
184
+ </element>
185
+
186
+ </element>
187
+ <element name="report" rngui:header="Reporting" rngui:fold="closed">
188
+ <element name="url" rngui:label='HTML Snippet'>
189
+ <data type="string" rngui:label="url to report snippet"/>
190
+ </element>
191
+ </element>
152
192
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
153
193
  <element name="_notes_general" rngui:label="General">
154
194
  <text rngui:wrap="true" rngui:label="Notes"/>
155
195
  </element>
156
196
  </element>
157
197
  </element>
198
+
158
199
  <element name="documentation" rngui:header="Documentation">
159
200
  <element name="input" rngui:header="Input Arguments" rngui:fold="closed">
160
201
  <zeroOrMore rngui:label="Create Argument">
@@ -50,6 +50,14 @@
50
50
  </element>
51
51
  </element>
52
52
  <element name="annotations" rngui:header="Annotations">
53
+ <element name="_generic" rngui:header="Generic" rngui:fold="closed">
54
+ <zeroOrMore rngui:label="Create Annotation Pair">
55
+ <element rngui:label="Name" rngui:labeltype="xml">
56
+ <anyName/>
57
+ <data type="string" rngui:label="Value"/>
58
+ </element>
59
+ </zeroOrMore>
60
+ </element>
53
61
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
54
62
  <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
55
63
  <data type="float" rngui:label="[0,1]"/>
@@ -86,24 +94,41 @@
86
94
  </zeroOrMore>
87
95
  </element>
88
96
  </element>
97
+ <element name="_shifting" rngui:header="Log Time Shifting" rngui:fold="closed_conditional">
98
+ <element name="_shifting_type" rngui:label="Type">
99
+ <choice>
100
+ <value>Duration</value>
101
+ <value>Ends</value>
102
+ </choice>
103
+ </element>
104
+ <optional>
105
+ <element name="_shifting_expression" rngui:label="Expression">
106
+ <data type="string" rngui:label="e.g.: same day, 16:00; 2 and a half weeks"/>
107
+ </element>
108
+ </optional>
109
+ </element>
89
110
  <element name="_context_data_analysis" rngui:header="Context Data Analysis" rngui:hint="All data returned from the endpoint implementing this task as well as arbitray external data streams can be consumed and transformed in data probes. All probes can be the basis for impact factors. Please go to start to define instance data probes.">
90
111
 
91
- <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed">
112
+ <element name="probes" rngui:header="Data Probes - Context Data Extraction" rngui:fold="closed_conditional">
92
113
  <zeroOrMore rngui:label="Add Probe">
93
114
  <element name="probe">
94
- <element name="name" rngui:label="Label">
95
- <data type="string" rngui:label="Label"/>
115
+ <element name="id" rngui:label="ID">
116
+ <data type="string" rngui:label="ID"/>
117
+ </element>
118
+ <element name="source" rngui:label="Source">
119
+ <data type="string" rngui:label="Where does the sensor value come from?"/>
96
120
  </element>
97
121
  <element name="extractor_type" rngui:label="Extractor Type">
98
122
  <choice>
99
- <value id='code'>Code</value>
100
- <value id='service'>Service</value>
123
+ <value id='intrinsic'>Intrinsic</value>
124
+ <value id='extrinsic'>Extrinsic</value>
125
+ <value id='separate'>Separate</value>
101
126
  </choice>
102
127
  </element>
103
- <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For extrinsic data'>
128
+ <element name="extractor_code" rngui:label="Extractor Code" rngui:hint='For intrinsic &amp; extrinsic data'>
104
129
  <text rngui:label="Code"/>
105
130
  </element>
106
- <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For extrinsic &amp; discrete data'>
131
+ <element name="extractor_url" rngui:label="Extractor Service" rngui:hint='For separate data'>
107
132
  <data type="string" rngui:label="Service Url"/>
108
133
  </element>
109
134
  <element name="extractor_params" rngui:label="Extractor Service Arguments:">
@@ -1,6 +1,6 @@
1
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_control" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
- <attribute name="frequency" rngui:label="Interval frequency in Hz" rngui:default="0.1">
3
- <data type="float" rngui:label="Hz"/>
2
+ <attribute name="ctime" rngui:label="Cycle time in ms" rngui:default="100">
3
+ <data type="integer" rngui:label="ms"/>
4
4
  </attribute>
5
5
  <element name="_expected" rngui:header="Values Expected to Change">
6
6
  <zeroOrMore rngui:label="Add Value">
@@ -1,8 +1,8 @@
1
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_measuring" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
- <attribute name="frequency" rngui:label="Interval frequency in Hz" rngui:default="0.1">
3
- <data type="float" rngui:label="Hz"/>
2
+ <attribute name="ctime" rngui:label="Cycle time in ms" rngui:default="100">
3
+ <data type="integer" rngui:label="ms"/>
4
4
  </attribute>
5
- <element name="_expected" rngui:header="Values Expected to Change">
5
+ <element name="_expected" rngui:header="Measured Values">
6
6
  <zeroOrMore rngui:label="Add Value">
7
7
  <element name="value" rngui:label="Value">
8
8
  <data type="string" rngui:label="a dataelement"/>