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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 245c1fa5ecd451992f6fb7ba0386858bc8595f640e08c353ad153ec69e57eb14
4
- data.tar.gz: 71f69beee300e44b98c70b97c06818fea60fe18685e9080f6e796d95109ee20c
3
+ metadata.gz: ce85aa02aabbdb513ce56fc7eb7b11878290d2253a4dbad6e4ca0f308c9e4128
4
+ data.tar.gz: bb30943c2256495cb8346d2ac7808549748deba62aa33d2f15e8582dba55447a
5
5
  SHA512:
6
- metadata.gz: 2aac6ff87441d239b3d0c359c3a42fe489e3f6e6bf7f8363d66032a53095c818d6162db6e9d448bcf20a8cc379815bf7b126f6a2cab122381709d9cc2f387d30
7
- data.tar.gz: 0acb4ca004b780c45eb46736b98b4c30c0709e22dc97e674c62a2ff5a0971447e12940b7c1fb14fdc5b5044cdb8614c6a7447e19307bb8baca6f78f9baa76ec1
6
+ metadata.gz: baf7bd6776dd0be3b9c677cd69ca0ece4705550d81ab5ea4f7465ecd087280d726ee96ba9db8c8df0dc365acce52749ca660f3888f1837f92a596d14437b455f
7
+ data.tar.gz: 77adf09dc7471ff19ec4283cbe9296789085eed108e836589f34b18aed50946b32b24d9f7f9380bfd9f7adc19eab33652af4ef022c8785ae88fd19d07903184d
@@ -22,3 +22,5 @@
22
22
 
23
23
  #areamodel div.section:nth-child(4) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
24
24
  #areamodel div.section:nth-child(4) button[name=loadmodeltype] { white-space: normal; width: 10em; height: 2em; }
25
+
26
+ #model ui-content { height: 6em; }
@@ -0,0 +1,55 @@
1
+ body {
2
+ -webkit-user-select: none;
3
+ -moz-user-select: -moz-none;
4
+ -ms-user-select: none;
5
+ user-select: none;
6
+ font-family: sans-serif;
7
+ font-size: 1em;
8
+ padding: 0;
9
+ margin: 0;
10
+ }
11
+
12
+ #replayer {
13
+ display: flex;
14
+ flex-direction: column;
15
+ flex-wrap: nowrap;
16
+ align-items: stretch;
17
+ height: 100vh;
18
+ }
19
+
20
+ #replay {
21
+ width: 100%;
22
+ display: flex;
23
+ flex-direction: row;
24
+ flex-wrap: nowrap;
25
+ align-items: stretch;
26
+ padding: 1em 0;
27
+ flex: 0 0 auto;
28
+ }
29
+
30
+ #replay span {
31
+ flex: 0 0 auto;
32
+ margin-left: 1em;
33
+ align-self: center;
34
+ }
35
+ #replay input {
36
+ margin: 0em 1em;
37
+ flex: 1 1 auto;
38
+ }
39
+ #replay button {
40
+ margin-right: 1em;
41
+ flex: 0 0 auto;
42
+ }
43
+
44
+ #content {
45
+ width: 100%;
46
+ align-self: center;
47
+ flex: 1 1 auto;
48
+ }
49
+
50
+ iframe {
51
+ border: 0 none;
52
+ padding: 0;
53
+ margin: 0;
54
+ overflow: scroll;
55
+ }
@@ -0,0 +1 @@
1
+ ./index.html
@@ -54,6 +54,7 @@
54
54
  <script type="text/javascript" src="js/details.js"></script>
55
55
  <script type="text/javascript" src="js/parameters.js"></script>
56
56
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
57
+ <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
57
58
  <style>
58
59
  /* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
59
60
  /* shit balls, no elegance is left in this world */
@@ -122,6 +123,7 @@
122
123
  <ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
123
124
  <ui-tab class="inactive hidden" data-tab="execution" id="tabexecution">Execution</ui-tab>
124
125
  <ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
126
+ <ui-last ><a class="logo" href=".."></a></ui-last>
125
127
  </ui-tabbar>
126
128
  <ui-content>
127
129
  <ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
@@ -91,7 +91,6 @@ function cockpit() { //{{{
91
91
  $("button[name=savesvgfile]").click(function(){ save_svgfile(); });
92
92
  $("button[name=state_start]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");start_instance(); });
93
93
  $("button[name=state_stop]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");stop_instance(); });
94
- $("button[name=state_replay]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");replay_instance(); });
95
94
  $("button[name=state_abandon]").click(function(){ aba_instance(); });
96
95
  $("input[name=votecontinue]").click(check_subscription);
97
96
  $("input[name=testsetfile]").change(load_testsetfile_after);
@@ -701,19 +700,16 @@ function monitor_instance_state_change(notification) { //{{{
701
700
  $('#state_extended').show();
702
701
  $("button[name=state_start]").show();
703
702
  $("button[name=state_stop]").hide();
704
- $("button[name=state_replay]").show();
705
703
  $("button[name=state_abandon]").show();
706
704
  } else if (notification == "running") {
707
705
  $('#state_extended').hide();
708
706
  $("button[name=state_start]").hide();
709
707
  $("button[name=state_stop]").show();
710
- $("button[name=state_replay]").hide();
711
708
  $("button[name=state_abandon]").hide();
712
709
  } else {
713
710
  $('#state_extended').hide();
714
711
  $("button[name=state_start]").hide();
715
712
  $("button[name=state_stop]").hide();
716
- $("button[name=state_replay]").hide();
717
713
  $("button[name=state_abandon]").hide();
718
714
  }
719
715
 
@@ -781,15 +777,6 @@ function start_instance() {// {{{
781
777
  error: report_failure
782
778
  });
783
779
  }// }}}
784
- function replay_instance() {// {{{
785
- var url = $('body').attr('current-instance');
786
- $.ajax({
787
- type: "PUT",
788
- url: url + "/properties/state/",
789
- data: ({value: "replaying"}),
790
- error: report_failure
791
- });
792
- }// }}}
793
780
  function aba_instance() {// {{{
794
781
  monitor_instance_state_change('abandoned');
795
782
  var url = $('body').attr('current-instance');
@@ -0,0 +1,40 @@
1
+ $(document).ready(function() {
2
+ $("#replay button").click(e => {
3
+ $.ajax({
4
+ url: $('#replay input').val(),
5
+ type: 'GET',
6
+ success: function(re) {
7
+ var de;
8
+ var ep;
9
+ var at;
10
+ var desc;
11
+ try {
12
+ jsyaml.loadAll(re,e => {
13
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'dataelements/change') {
14
+ de = e.event.data.data_values;
15
+ }
16
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'endpoints/change') {
17
+ ep = e.event.data.data_values;
18
+ }
19
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'attributes/change') {
20
+ at = e.event.data.data_values;
21
+ }
22
+ if (e.event && e.event['cpee:description']) {
23
+ desc = e.event['cpee:description'];
24
+ }
25
+ if (e.event && e.event['cpee:state'] == 'running') {
26
+ throw BreakException;
27
+ }
28
+ });
29
+ } catch(e) { /* just to break out of the iterator. what a shitty language */ }
30
+ }
31
+ });
32
+
33
+
34
+ // load log with ajax
35
+ // extract process model
36
+ // initialize process model
37
+ // set attributes
38
+ // change start button to do replay
39
+ });
40
+ });
@@ -56,6 +56,7 @@
56
56
  <script type="text/javascript" src="js/model.js"></script>
57
57
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
58
58
  <link rel="stylesheet" href="css/model.css" type="text/css"/>
59
+ <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
59
60
  <style>
60
61
  /* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
61
62
  /* shit balls, no elegance is left in this world */
@@ -119,7 +120,8 @@
119
120
  <ui-tab class="switch" ></ui-tab>
120
121
  <ui-tab class="" data-tab="model" id="tabmodel" >Model</ui-tab>
121
122
  <ui-tab class="inactive" data-tab="dataelements" id="tabdataelements">Data Elements</ui-tab>
122
- <ui-behind ><button title='add entry' class="hidden">New</button></ui-behind>
123
+ <ui-behind ></ui-behind>
124
+ <ui-last ><a class="logo" href=".."></a></ui-last>
123
125
  </ui-tabbar>
124
126
  <ui-content>
125
127
  <ui-area data-belongs-to-tab="model" id="areamodel"> <!--{{{-->
@@ -0,0 +1,52 @@
1
+ <!--
2
+ This file is part of CPEE.
3
+
4
+ CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE (file COPYING in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ -->
16
+
17
+ <!DOCTYPE html>
18
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
19
+ <head>
20
+ <meta charset="utf-8"/>
21
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
22
+ <title>CPEE Cockpit</title>
23
+
24
+ <!-- libs, do not modify. When local than load local libs. -->
25
+ <script type="text/javascript" src="/js_libs/jquery.min.js"></script>
26
+ <script type="text/javascript" src="/js_libs/jquery.browser.js"></script>
27
+ <script type="text/javascript" src="/js_libs/jquery.svg.min.js"></script>
28
+ <script type="text/javascript" src="/js_libs/jquery.svgdom.min.js"></script>
29
+ <script type="text/javascript" src="/js_libs/vkbeautify.js"></script>
30
+ <script type="text/javascript" src="/js_libs/util.js"></script>
31
+ <script type="text/javascript" src="/js_libs/printf.js"></script>
32
+ <script type="text/javascript" src="/js_libs/strftime.min.js"></script>
33
+ <script type="text/javascript" src="/js_libs/parsequery.js"></script>
34
+ <script type="text/javascript" src="/js_libs/underscore.min.js"></script>
35
+ <script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
36
+ <script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
37
+ <script type="text/javascript" src="/js_libs/js-yaml.min.js"></script>
38
+
39
+ <script type="text/javascript" src="/js_libs/ui.js"></script>
40
+
41
+ <!-- custom stuff, play arround -->
42
+ <script type="text/javascript" src="js/replay.js"></script>
43
+ <link rel="stylesheet" href="css/ui.css" type="text/css"/>
44
+ <link rel="stylesheet" href="css/replay.css" type="text/css"/>
45
+ </head>
46
+ <body is="x-ui">
47
+ <div id="replayer">
48
+ <div id="replay"><span>Replay:</span><input type="text" value="http://localhost/logs/4b92138d-1f68-4d18-b676-92fb1cbe2c78.xes.yaml"/><button>Prepare!</button></div>
49
+ <iframe id="content" src=""></iframe>
50
+ </div>
51
+ </body>
52
+ </html>
@@ -15,7 +15,7 @@
15
15
  <method>:post</method>
16
16
  <arguments>
17
17
  <behavior>wait_running</behavior>
18
- <url>https://cpee.org/flow/templates/instantiate/Take_Perf.xml</url
18
+ <url>https://cpee.org/flow/templates/instantiate/Take_Perf.xml</url>
19
19
  <init/>
20
20
  <endpoints/>
21
21
  <stream/>
@@ -26,7 +26,8 @@
26
26
  </zeroOrMore>
27
27
  </element>
28
28
  <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
- <element name="sensors" rngui:header="Sensors" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
30
31
  <zeroOrMore rngui:label="Add Sensor">
31
32
  <element name="sensor">
32
33
  <element name="name" rngui:label="Label">
@@ -35,13 +36,18 @@
35
36
  <element name="extractor_url" rngui:label="Extractor Url">
36
37
  <data type="string" rngui:label="Service Url"/>
37
38
  </element>
38
- <element name="extractor_arg" rngui:label="Extractor Argument">
39
- <data type="string" rngui:label="Value / Json"/>
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>
40
46
  </element>
41
47
  <element name="visualizer_url" rngui:label="Visualizer Url">
42
48
  <data type="string" rngui:label="Service Url"/>
43
49
  </element>
44
- <element name="visualizer_params" rngui:header="Visualizer Arguments">
50
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
45
51
  <zeroOrMore rngui:label="Create Visualizer Argument Pairs">
46
52
  <element rngui:label="Name">
47
53
  <anyName/>
@@ -52,42 +58,44 @@
52
58
  </element>
53
59
  </zeroOrMore>
54
60
  </element>
55
- <element name="aggregators" rngui:header="Aggregators" rngui:fold="closed">
56
- <zeroOrMore rngui:label="Add Aggregator">
57
- <element name="aggregator">
58
- <element name="name" rngui:label="Label">
59
- <data type="string" rngui:label="Label"/>
60
- </element>
61
- <element name="aggregator_url" rngui:label="Aggregator Url">
62
- <data type="string" rngui:label="Service Url"/>
63
- </element>
64
- <element name="aggregator_arg" rngui:label="Aggregator Argument">
65
- <data type="string" rngui:label="Value / Json"/>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
- <element name="costs" rngui:header="Costs" rngui:fold="closed">
71
- <zeroOrMore rngui:label="Create Cost Factor">
72
- <element name="cost_factor">
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
73
65
  <element name="name" rngui:label="Label">
74
66
  <data type="string" rngui:label="Label"/>
75
67
  </element>
76
68
  <element name="target" rngui:label="Target Value">
77
69
  <data type="string" rngui:label="Value"/>
78
70
  </element>
79
- <element name="vfunc_url" rngui:label="Violation Function Url">
80
- <data type="string" rngui:label="Service Url"/>
81
- </element>
82
- <element name="vfunc_arg" rngui:label="Violation Function Argument">
83
- <data type="string" rngui:label="Service Url"/>
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>
84
91
  </element>
85
- <element name="vcost" rngui:label="Violation Cost">
86
- <data type="string" rngui:label="Value"/>
92
+ <element name="vfunc_url" rngui:label="Violation Function Url">
93
+ <data type="string" rngui:label="Service Url + Parameters"/>
87
94
  </element>
88
95
  </element>
89
96
  </zeroOrMore>
90
97
  </element>
98
+
91
99
  </element>
92
100
  <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
93
101
  <element name="url" rngui:label='HTML Snippet'>
@@ -97,21 +105,40 @@
97
105
  </element>
98
106
  <element name="annotations" rngui:header="Annotations">
99
107
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
100
- <element name="_timing_wait" rngui:label="&#x3C9; - Wait">
101
- <data type="float" rngui:label="[0,1]" rngui:default="0.5"/>
102
- </element>
103
- <element name="_timing_threshold" rngui:label="&#x3BA; - Threshold">
104
- <data type="float" rngui:label="[0,3,n]" rngui:default="3"/>
105
- </element>
106
- <element name="_timing_min" rngui:label="Min in min">
107
- <data type="float" rngui:label="Minutes"/>
108
- </element>
109
- <element name="_timing_max" rngui:label="Max in min">
110
- <data type="float" rngui:label="Minutes"/>
108
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
109
+ <data type="float" rngui:label="[0,1]"/>
111
110
  </element>
112
111
  <element name="_timing_avg" rngui:label="Avg in min">
113
112
  <data type="float" rngui:label="Minutes"/>
114
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>
115
142
  </element>
116
143
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
117
144
  <element name="_notes_general" rngui:label="General">
@@ -26,7 +26,8 @@
26
26
  </zeroOrMore>
27
27
  </element>
28
28
  <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
- <element name="sensors" rngui:header="Sensors" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
30
31
  <zeroOrMore rngui:label="Add Sensor">
31
32
  <element name="sensor">
32
33
  <element name="name" rngui:label="Label">
@@ -35,8 +36,13 @@
35
36
  <element name="extractor_url" rngui:label="Extractor Url">
36
37
  <data type="string" rngui:label="Service Url"/>
37
38
  </element>
38
- <element name="extractor_arg" rngui:label="Extractor Argument">
39
- <data type="string" rngui:label="Value / Json"/>
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>
40
46
  </element>
41
47
  <element name="visualizer_url" rngui:label="Visualizer Url">
42
48
  <data type="string" rngui:label="Service Url"/>
@@ -52,42 +58,60 @@
52
58
  </element>
53
59
  </zeroOrMore>
54
60
  </element>
55
- <element name="aggregators" rngui:header="Aggregators" rngui:fold="closed">
56
- <zeroOrMore rngui:label="Add Aggregator">
57
- <element name="aggregator">
58
- <element name="name" rngui:label="Label">
59
- <data type="string" rngui:label="Label"/>
60
- </element>
61
- <element name="aggregator_url" rngui:label="Aggregator Url">
62
- <data type="string" rngui:label="Service Url"/>
63
- </element>
64
- <element name="aggregator_arg" rngui:label="Aggregator Argument">
65
- <data type="string" rngui:label="Value / Json"/>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
- <element name="costs" rngui:header="Costs" rngui:fold="closed">
71
- <zeroOrMore rngui:label="Create Cost Factor">
72
- <element name="cost_factor">
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
73
65
  <element name="name" rngui:label="Label">
74
66
  <data type="string" rngui:label="Label"/>
75
67
  </element>
76
68
  <element name="target" rngui:label="Target Value">
77
69
  <data type="string" rngui:label="Value"/>
78
70
  </element>
79
- <element name="vfunc_url" rngui:label="Violation Function Url">
80
- <data type="string" rngui:label="Service Url"/>
81
- </element>
82
- <element name="vfunc_arg" rngui:label="Violation Function Argument">
83
- <data type="string" rngui:label="Service Url"/>
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>
84
107
  </element>
85
- <element name="vcost" rngui:label="Violation Cost">
86
- <data type="string" rngui:label="Value"/>
108
+ <element name="vfunc_url" rngui:label="Violation Function Url">
109
+ <data type="string" rngui:label="Service Url + Parameters"/>
87
110
  </element>
88
111
  </element>
89
112
  </zeroOrMore>
90
113
  </element>
114
+
91
115
  </element>
92
116
  <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
93
117
  <element name="url" rngui:label='HTML Snippet'>
@@ -120,21 +144,40 @@
120
144
  </element>
121
145
  <element name="annotations" rngui:header="Annotations">
122
146
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
123
- <element name="_timing_wait" rngui:label="&#x3C9; - Wait">
147
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
124
148
  <data type="float" rngui:label="[0,1]"/>
125
149
  </element>
126
- <element name="_timing_threshold" rngui:label="&#x3BA; - Threshold">
127
- <data type="float" rngui:label="[0,3,n]"/>
128
- </element>
129
- <element name="_timing_min" rngui:label="Min in min">
130
- <data type="float" rngui:label="Minutes"/>
131
- </element>
132
- <element name="_timing_max" rngui:label="Max in min">
133
- <data type="float" rngui:label="Minutes"/>
134
- </element>
135
150
  <element name="_timing_avg" rngui:label="Avg in min">
136
151
  <data type="float" rngui:label="Minutes"/>
137
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>
138
181
  </element>
139
182
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
140
183
  <element name="_notes_general" rngui:label="General">