cpee 1.5.24 → 1.5.25

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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/index.html +2 -2
  3. data/cockpit/js/instance.js +6 -6
  4. data/cockpit/rngs/attributes.rng +2 -2
  5. data/cockpit/rngs/dataelements.rng +2 -2
  6. data/cockpit/rngs/endpoints.rng +2 -2
  7. data/cockpit/{testsets → templates.legacy}/Async.xml +0 -0
  8. data/cockpit/{testsets → templates.legacy}/BCO.xml +0 -0
  9. data/cockpit/{testsets → templates.legacy}/BCS.xml +0 -0
  10. data/cockpit/{testsets → templates.legacy}/Centurio.xml +0 -0
  11. data/cockpit/{testsets → templates.legacy}/Concurrent.xml +0 -0
  12. data/cockpit/testsets/Coopis Testset.xml b/data/cockpit/templates.legacy/Coopis → Testset.xml +0 -0
  13. data/cockpit/testsets/Endpoints and Data Manipulation.xml b/data/cockpit/templates.legacy/Endpoints and Data → Manipulation.xml +0 -0
  14. data/cockpit/testsets/ICSOC Testset.xml b/data/cockpit/templates.legacy/ICSOC → Testset.xml +0 -0
  15. data/cockpit/{testsets → templates.legacy}/Infinity.xml +0 -0
  16. data/cockpit/testsets/Lego Boxer.xml b/data/cockpit/templates.legacy/Lego → Boxer.xml +0 -0
  17. data/cockpit/testsets/Lego Conveyor.xml b/data/cockpit/templates.legacy/Lego → Conveyor.xml +0 -0
  18. data/cockpit/testsets/Lego Crane.xml b/data/cockpit/templates.legacy/Lego → Crane.xml +0 -0
  19. data/cockpit/testsets/Lego Ejector.xml b/data/cockpit/templates.legacy/Lego → Ejector.xml +0 -0
  20. data/cockpit/testsets/Lego Full.xml b/data/cockpit/templates.legacy/Lego → Full.xml +0 -0
  21. data/cockpit/testsets/Lego Liddy.xml b/data/cockpit/templates.legacy/Lego → Liddy.xml +0 -0
  22. data/cockpit/testsets/Lego Plate.xml b/data/cockpit/templates.legacy/Lego → Plate.xml +0 -0
  23. data/cockpit/testsets/Lego Transporter.xml b/data/cockpit/templates.legacy/Lego → Transporter.xml +0 -0
  24. data/cockpit/{testsets → templates.legacy}/Lego_Part_1.xml +0 -0
  25. data/cockpit/{testsets → templates.legacy}/LgLinear.xml +0 -0
  26. data/cockpit/{testsets → templates.legacy}/Linear.xml +0 -0
  27. data/cockpit/{testsets → templates.legacy}/Log.xml +0 -0
  28. data/cockpit/testsets/Mangler 1.xml b/data/cockpit/templates.legacy/Mangler → 1.xml +0 -0
  29. data/cockpit/testsets/Mangler 2.xml b/data/cockpit/templates.legacy/Mangler → 2.xml +0 -0
  30. data/cockpit/testsets/Manuel Labels.xml b/data/cockpit/templates.legacy/Manuel → Labels.xml +0 -0
  31. data/cockpit/{testsets → templates.legacy}/Promise.xml +0 -0
  32. data/cockpit/testsets/SOPROMO Test Sonification.xml b/data/cockpit/templates.legacy/SOPROMO Test → Sonification.xml +0 -0
  33. data/cockpit/testsets/Syncing P34 1.xml b/data/cockpit/templates.legacy/Syncing P34 → 1.xml +0 -0
  34. data/cockpit/testsets/Syncing P34 2.xml b/data/cockpit/templates.legacy/Syncing P34 → 2.xml +0 -0
  35. data/cockpit/testsets/Syncing P34 3.xml b/data/cockpit/templates.legacy/Syncing P34 → 3.xml +0 -0
  36. data/cockpit/testsets/Syncing P34.xml b/data/cockpit/templates.legacy/Syncing → P34.xml +0 -0
  37. data/cockpit/testsets/TEST - Bad Loop.xml b/data/cockpit/templates.legacy/TEST - Bad → Loop.xml +0 -0
  38. data/cockpit/testsets/TEST - Wrong Positions.xml b/data/cockpit/templates.legacy/TEST - Wrong → Positions.xml +0 -0
  39. data/cockpit/{testsets → templates.legacy}/Update.xml +0 -0
  40. data/cockpit/testsets/Worklist Parallel.xml b/data/cockpit/templates.legacy/Worklist → Parallel.xml +0 -0
  41. data/cockpit/testsets/Worklist Test CPEE.xml b/data/cockpit/templates.legacy/Worklist Test → CPEE.xml +0 -0
  42. data/cockpit/testsets/Worklist Test.xml b/data/cockpit/templates.legacy/Worklist → Test.xml +0 -0
  43. data/cockpit/testsets/Worklist Test2.xml b/data/cockpit/templates.legacy/Worklist → Test2.xml +0 -0
  44. data/cockpit/{testsets → templates.legacy}/convert_preset.rb +0 -0
  45. data/cockpit/{testsets → templates.legacy}/testsets.xml +0 -0
  46. data/cockpit/{testsets → templates.legacy}/transformations.xml +0 -0
  47. data/cockpit/templates/BPM 2020 Manual Adjust.xml +235 -0
  48. data/cockpit/templates/BPM 2020 Solution Baseline.xml +250 -0
  49. data/cockpit/templates/BPM 2020 Solution NN.xml +243 -0
  50. data/cockpit/templates/BPM 2020 Solution View.xml +200 -0
  51. data/cockpit/templates/BPM 2020.xml +15 -0
  52. data/cockpit/templates/Coopis 2010.xml +76 -0
  53. data/cockpit/templates/IUPC arXiv:1104.3609 P34 1.xml +80 -0
  54. data/cockpit/templates/IUPC arXiv:1104.3609 P34 2.xml +80 -0
  55. data/cockpit/templates/IUPC arXiv:1104.3609 P34 3.xml +80 -0
  56. data/cockpit/{testsets/Take_5.xml → templates/Worklist.xml} +15 -21
  57. data/cockpit/templates/convert_preset.rb +32 -0
  58. data/cockpit/templates/testsets.xml +11 -0
  59. data/cockpit/templates/transformations.xml +4 -0
  60. data/cockpit/themes/compact/rngs/call.rng +6 -0
  61. data/cockpit/themes/compact/rngs/callmanipulate.rng +6 -0
  62. data/cockpit/themes/compact/theme.js +1 -1
  63. data/cockpit/themes/default/theme.js +1 -1
  64. data/cockpit/themes/extended/rngs/call.rng +6 -0
  65. data/cockpit/themes/extended/rngs/callmanipulate.rng +6 -0
  66. data/cockpit/themes/extended/theme.js +7 -22
  67. data/cockpit/themes/model/theme.js +1 -1
  68. data/cockpit/themes/packed/rngs/call.rng +6 -0
  69. data/cockpit/themes/packed/rngs/callmanipulate.rng +6 -0
  70. data/cockpit/themes/packed/theme.js +1 -1
  71. data/cockpit/themes/preset/rngs/call.rng +6 -0
  72. data/cockpit/themes/preset/rngs/callmanipulate.rng +6 -0
  73. data/cockpit/themes/preset/theme.js +1 -1
  74. data/cpee.gemspec +1 -1
  75. data/lib/cpee/controller.rb +1 -1
  76. data/log/sic.rb +1 -0
  77. data/server/handlerwrappers/default.rb +1 -1
  78. data/tools/instantiation/instantiation +1 -0
  79. data/tools/server/server.rb +1 -0
  80. metadata +55 -51
  81. data/cockpit/test.html +0 -40
  82. data/cockpit/testsets/Subprocess.xml +0 -56
  83. data/server/resources/notifications/logging/consumer-secret +0 -1
  84. data/server/resources/notifications/logging/producer-secret +0 -1
  85. data/server/resources/notifications/logging/subscription.xml +0 -19
  86. data/server/resources/test1.xml +0 -58
  87. data/server/resources/test2.xml +0 -60
  88. data/server/resources/test3.xml +0 -217
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c202a4a42d4e886fa9899514f6e4490943276739bc9ca61196f2e8c5a407ef3f
4
- data.tar.gz: 3b07b85f227d87aef3ffd78a5afd2b975f20cc7ebf15bf8ca416f5443e2e0de8
3
+ metadata.gz: 37efc8a4ee5d0180cb006297e5948408f7c1772b9f8fc2a87d1612b7d59caf06
4
+ data.tar.gz: 77d0bec7010653f12b05ef43a1f585c3207fe45a07fddb28c3fb6f4e411a107e
5
5
  SHA512:
6
- metadata.gz: 39bc0af5d72254412377b210c14aa1b8929b40cd74be68f442e6aa0184fbaf89fed360433a47d1458ce3a6feef721b30e931007dc3db58006d85a2930e32d5f1
7
- data.tar.gz: 3a1eb0511449d32b1d275d0a5648d194a252b09d371e2d619b78d9e9753c5c744c33cd44015c807382107873e5f48a537a371fa0a0e83f869abdad892d0b69ca
6
+ metadata.gz: 6c3985ee99ff71092829163a58fed998a6095df1c34bd50d9172d607894ff43ff7e47de0c0ceceab0cf67ee8eefb9d1b67973f3bec3ccd6019fc67e2a84ff3cb
7
+ data.tar.gz: 879610b214fbd73ba364936ee83f75a63921d058966ba37e5308b44e8f164cf4029afbe0211c0a01aa322a6fa96ce3518b03971345c814809ecc91f70934f946
@@ -112,7 +112,7 @@
112
112
 
113
113
  <div class='hidden' id='relaxngworker'></div>
114
114
 
115
- <div class='menu' id='predefinedtestsets'></div>
115
+ <div class='menu' id='templates'></div>
116
116
  <div class='menu' id='modeltypes'></div>
117
117
 
118
118
  <ui-tabbed id="instance">
@@ -149,7 +149,7 @@
149
149
  <form id='fuckchrome'>
150
150
  <input type='file' name='testsetfile' id='testsetfile'/>
151
151
  </form>
152
- <button title='a testset includes various settings, subscriptions and a model' name="loadtestset">load predefined testset</button><button title='a testset includes various settings, subscriptions and a model' name="loadtestsetfile">load testset file</button>
152
+ <button title='a testset includes various settings, subscriptions and a model' name="loadtestset">load template</button><button title='a testset includes various settings, subscriptions and a model' name="loadtestsetfile">load testset</button>
153
153
  </div>
154
154
  <div>
155
155
  <input type='file' name='modelfile' id='modelfile'/>
@@ -71,7 +71,7 @@ var sub_less = 'topic' + '=' + 'activity' + '&' +// {{{
71
71
  function cockpit() { //{{{
72
72
  $("button[name=base]").click(function(){ create_instance($("input[name=base-url]").val(),null,false,false); });
73
73
  $("button[name=instance]").click(function(){ ui_activate_tab("#tabinstance"); monitor_instance($("input[name=instance-url]").val(),$("input[name=res-url]").val(),false,false); });
74
- $("button[name=loadtestset]").click(function(e){new CustomMenu(e).menu($('#predefinedtestsets'),function(){ load_testset(false) } ); });
74
+ $("button[name=loadtestset]").click(function(e){new CustomMenu(e).menu($('#templates'),function(){ load_testset(false) } ); });
75
75
  $("button[name=loadtestsetfile]").click(load_testsetfile);
76
76
  $("button[name=loadmodelfile]").click(load_modelfile);
77
77
  $("button[name=loadmodeltype]").click(function(e){new CustomMenu(e).menu($('#modeltypes'),load_modeltype, $("button[name=loadmodeltype]")); });
@@ -91,7 +91,7 @@ function cockpit() { //{{{
91
91
  success: function(res){
92
92
  $('testset',res).each(function(){
93
93
  var ts = $(this).text();
94
- $('#predefinedtestsets').append($("<div class='menuitem'></div>").text(ts));
94
+ $('#templates').append($("<div class='menuitem'></div>").text(ts));
95
95
  });
96
96
  var q = $.parseQuerySimple();
97
97
  if (q.min || q.min == "") {
@@ -102,7 +102,7 @@ function cockpit() { //{{{
102
102
  if (q.load.match(/https?:\/\//)) {
103
103
  $('body').attr('load-testset',q.load);
104
104
  } else {
105
- $("#predefinedtestsets div.menuitem").each(function(k,v){
105
+ $("#templates div.menuitem").each(function(k,v){
106
106
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
107
107
  });
108
108
  }
@@ -112,7 +112,7 @@ function cockpit() { //{{{
112
112
  if (q.load.match(/https?:\/\//)) {
113
113
  $('body').attr('load-testset',q.load);
114
114
  } else {
115
- $("#predefinedtestsets div.menuitem").each(function(k,v){
115
+ $("#templates div.menuitem").each(function(k,v){
116
116
  if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
117
117
  });
118
118
  }
@@ -135,7 +135,7 @@ function cockpit() { //{{{
135
135
  if (q.exec.match(/https?:\/\//)) {
136
136
  $('body').attr('load-testset',q.load);
137
137
  } else {
138
- $("#predefinedtestsets div.menuitem").each(function(k,v){
138
+ $("#templates div.menuitem").each(function(k,v){
139
139
  if ($(v).text() == q.exec) { $(v).attr('data-selected','selected'); }
140
140
  });
141
141
  }
@@ -1001,7 +1001,7 @@ function load_testset(exec) {// {{{
1001
1001
  if (loading) return;
1002
1002
  loading = true;
1003
1003
 
1004
- var name = $("#predefinedtestsets div.menuitem[data-selected=selected]").text();
1004
+ var name = $("#templates div.menuitem[data-selected=selected]").text();
1005
1005
  var url;
1006
1006
  if (name) {
1007
1007
  url = $('body').attr('current-testsets') + name + ".xml";
@@ -1,8 +1,8 @@
1
1
  <element rngui:version="1.2" name="value" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Attributes">
3
- <element rngui:label='Name'>
3
+ <element rngui:label='name'>
4
4
  <anyName/>
5
- <data type="string" rngui:label="Value"/>
5
+ <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
8
8
  </element>
@@ -1,8 +1,8 @@
1
1
  <element rngui:version="1.2" name="value" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Data Element">
3
- <element rngui:label='Name'>
3
+ <element rngui:label='name'>
4
4
  <anyName/>
5
- <data type="string" rngui:label="Value"/>
5
+ <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
8
8
  </element>
@@ -1,8 +1,8 @@
1
1
  <element rngui:version="1.2" name="value" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org">
2
2
  <zeroOrMore rngui:label="Create Endpoint">
3
- <element rngui:label='Name'>
3
+ <element rngui:label='name'>
4
4
  <anyName/>
5
- <data type="string" rngui:label="Value"/>
5
+ <data type="string" rngui:label="value"/>
6
6
  </element>
7
7
  </zeroOrMore>
8
8
  </element>
@@ -0,0 +1,235 @@
1
+ <testset>
2
+ <dataelements/>
3
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
4
+ <endpoints>
5
+ <overview xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/overview</overview>
6
+ <move_tool xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/position/point</move_tool>
7
+ <move_camera xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/position/view</move_camera>
8
+ <get_items_base xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://tango.wst.univie.ac.at:9329/view/items</get_items_base>
9
+ <get_items_neural xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://ryloth.wst.univie.ac.at:9330/view/items</get_items_neural>
10
+ <get_offset_base xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://tango.wst.univie.ac.at:9329/view/details</get_offset_base>
11
+ <get_offset_neural xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://ryloth.wst.univie.ac.at:9330/view/details</get_offset_neural>
12
+ <wait xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</wait>
13
+ <grip_and_place xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/grip_and_place</grip_and_place>
14
+ <move_rel xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/position/relative</move_rel>
15
+ </endpoints>
16
+ <description>
17
+ <description xmlns="http://cpee.org/ns/description/1.0">
18
+ <call id="a6" endpoint="get_offset_base">
19
+ <parameters>
20
+ <label>Get first offset</label>
21
+ <arguments/>
22
+ <stream>
23
+ <sensors/>
24
+ <aggregators/>
25
+ <costs/>
26
+ </stream>
27
+ </parameters>
28
+ <code>
29
+ <prepare/>
30
+ <finalize output="result">data.direction_first = result
31
+ data.direction_first['x'] = data.direction_first['dir_x'] * 10
32
+ data.direction_first['y'] = data.direction_first['dir_y'] * 10</finalize>
33
+ <update output="result"/>
34
+ <rescue output="result"/>
35
+ </code>
36
+ <annotations>
37
+ <_timing>
38
+ <_timing_wait/>
39
+ <_timing_threshold/>
40
+ <_timing_min/>
41
+ <_timing_max/>
42
+ <_timing_avg/>
43
+ </_timing>
44
+ <_notes>
45
+ <_notes_general/>
46
+ </_notes>
47
+ </annotations>
48
+ </call>
49
+ <call id="a10" endpoint="move_rel">
50
+ <parameters>
51
+ <label>Move closer</label>
52
+ <arguments>
53
+ <x>!data.direction_first['x']</x>
54
+ <y>!data.direction_first['y']</y>
55
+ </arguments>
56
+ <stream>
57
+ <sensors/>
58
+ <aggregators/>
59
+ <costs/>
60
+ </stream>
61
+ </parameters>
62
+ <annotations>
63
+ <_timing>
64
+ <_timing_wait/>
65
+ <_timing_threshold/>
66
+ <_timing_min/>
67
+ <_timing_max/>
68
+ <_timing_avg/>
69
+ </_timing>
70
+ <_notes>
71
+ <_notes_general/>
72
+ </_notes>
73
+ </annotations>
74
+ </call>
75
+ <call id="a15" endpoint="wait">
76
+ <parameters>
77
+ <label>Wait for camera stream delay</label>
78
+ <method>:post</method>
79
+ <arguments>
80
+ <timeout>5</timeout>
81
+ </arguments>
82
+ <stream>
83
+ <sensors/>
84
+ <aggregators/>
85
+ <costs/>
86
+ </stream>
87
+ </parameters>
88
+ <annotations>
89
+ <_timing>
90
+ <_timing_wait/>
91
+ <_timing_threshold/>
92
+ <_timing_min/>
93
+ <_timing_max/>
94
+ <_timing_avg/>
95
+ </_timing>
96
+ <_notes>
97
+ <_notes_general/>
98
+ </_notes>
99
+ </annotations>
100
+ </call>
101
+ <call id="a17" endpoint="get_offset_base">
102
+ <parameters>
103
+ <label>Get second offset and calc distance</label>
104
+ <arguments/>
105
+ <stream>
106
+ <sensors/>
107
+ <aggregators/>
108
+ <costs/>
109
+ </stream>
110
+ </parameters>
111
+ <code>
112
+ <prepare/>
113
+ <finalize output="result">data.direction_second = result
114
+ if (data.direction_first['dir_x'] * data.direction_second['dir_x'] &gt;= 0)
115
+ data.traveled = data.direction_first['len'] - data.direction_second['len']
116
+ else
117
+ data.traveled = data.direction_first['len'] + data.direction_second['len']
118
+ end
119
+ data.len = data.direction_second['len'] / (data.traveled / 10)
120
+ data.direction_second['x'] = data.direction_second['dir_x'] * data.len
121
+ data.direction_second['y'] = data.direction_second['dir_y'] * data.len</finalize>
122
+ <update output="result"/>
123
+ <rescue output="result"/>
124
+ </code>
125
+ <annotations>
126
+ <_timing>
127
+ <_timing_wait/>
128
+ <_timing_threshold/>
129
+ <_timing_min/>
130
+ <_timing_max/>
131
+ <_timing_avg/>
132
+ </_timing>
133
+ <_notes>
134
+ <_notes_general/>
135
+ </_notes>
136
+ </annotations>
137
+ </call>
138
+ <call id="a12" endpoint="move_rel">
139
+ <parameters>
140
+ <label>Move closer</label>
141
+ <arguments>
142
+ <x>!data.direction_second['x']</x>
143
+ <y>!data.direction_second['y']</y>
144
+ </arguments>
145
+ <stream>
146
+ <sensors/>
147
+ <aggregators/>
148
+ <costs/>
149
+ </stream>
150
+ </parameters>
151
+ <annotations>
152
+ <_timing>
153
+ <_timing_wait/>
154
+ <_timing_threshold/>
155
+ <_timing_min/>
156
+ <_timing_max/>
157
+ <_timing_avg/>
158
+ </_timing>
159
+ <_notes>
160
+ <_notes_general/>
161
+ </_notes>
162
+ </annotations>
163
+ </call>
164
+ <call id="a16" endpoint="wait">
165
+ <parameters>
166
+ <label>Wait for camera stream delay</label>
167
+ <method>:post</method>
168
+ <arguments>
169
+ <timeout>5</timeout>
170
+ </arguments>
171
+ <stream>
172
+ <sensors/>
173
+ <aggregators/>
174
+ <costs/>
175
+ </stream>
176
+ </parameters>
177
+ <annotations>
178
+ <_timing>
179
+ <_timing_wait/>
180
+ <_timing_threshold/>
181
+ <_timing_min/>
182
+ <_timing_max/>
183
+ <_timing_avg/>
184
+ </_timing>
185
+ <_notes>
186
+ <_notes_general/>
187
+ </_notes>
188
+ </annotations>
189
+ </call>
190
+ <call id="a2" endpoint="get_offset_base">
191
+ <parameters>
192
+ <label>Investigate Precision</label>
193
+ <arguments/>
194
+ <stream>
195
+ <sensors/>
196
+ <aggregators/>
197
+ <costs/>
198
+ </stream>
199
+ </parameters>
200
+ <code>
201
+ <prepare/>
202
+ <finalize output="result">data.direction_third = result</finalize>
203
+ <update output="result"/>
204
+ <rescue output="result"/>
205
+ </code>
206
+ <annotations>
207
+ <_timing>
208
+ <_timing_wait/>
209
+ <_timing_threshold/>
210
+ <_timing_min/>
211
+ <_timing_max/>
212
+ <_timing_avg/>
213
+ </_timing>
214
+ <_notes>
215
+ <_notes_general/>
216
+ </_notes>
217
+ </annotations>
218
+ </call>
219
+ <manipulate id="a11" label="Calculate new position">data.item = {}
220
+ data.item['adjust_x'] = (data.direction_first['x'] + data.direction_second['x']).round(0)
221
+ data.item['adjust_y'] = (data.direction_first['y'] + data.direction_second['y']).round(0)</manipulate>
222
+ </description>
223
+ </description>
224
+ <transformation>
225
+ <description type="copy"/>
226
+ <dataelements type="none"/>
227
+ <endpoints type="none"/>
228
+ </transformation>
229
+ <attributes>
230
+ <info xmlns="http://riddl.org/ns/common-patterns/properties/1.0">BPM 2020 Manual Adjust</info>
231
+ <modeltype xmlns="http://riddl.org/ns/common-patterns/properties/1.0">CPEE</modeltype>
232
+ <theme xmlns="http://riddl.org/ns/common-patterns/properties/1.0">preset</theme>
233
+ <resource xmlns="http://riddl.org/ns/common-patterns/properties/1.0">ur51</resource>
234
+ </attributes>
235
+ </testset>
@@ -0,0 +1,250 @@
1
+ <testset>
2
+ <dataelements>
3
+ <places xmlns="http://riddl.org/ns/common-patterns/properties/1.0">[[0,0],[1,0],[0,1],[1,1],[0,2],[1,2]]</places>
4
+ </dataelements>
5
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
6
+ <endpoints>
7
+ <overview xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/overview</overview>
8
+ <move_tool xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/position/point</move_tool>
9
+ <move_camera xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/position/view</move_camera>
10
+ <get_items_base xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://tango.wst.univie.ac.at:9329/view/items</get_items_base>
11
+ <get_items_neural xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://ryloth.wst.univie.ac.at:9330/view/items</get_items_neural>
12
+ <get_offset_base xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://tango.wst.univie.ac.at:9329/view/details</get_offset_base>
13
+ <get_offset_neural xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-get://ryloth.wst.univie.ac.at:9330/view/details</get_offset_neural>
14
+ <wait xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</wait>
15
+ <grip_and_place xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http-put://tango.wst.univie.ac.at:9329/move/grip_and_place</grip_and_place>
16
+ <subprocess xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://cpee.org:9296/url/</subprocess>
17
+ </endpoints>
18
+ <description>
19
+ <description xmlns="http://cpee.org/ns/description/1.0">
20
+ <loop mode="pre_test" condition="data.places.length &gt; 0">
21
+ <_probability>
22
+ <_probability_min/>
23
+ <_probability_max/>
24
+ <_probability_avg/>
25
+ </_probability>
26
+ <call id="a1" endpoint="overview">
27
+ <parameters>
28
+ <label>Move to overview position</label>
29
+ <arguments/>
30
+ <stream>
31
+ <sensors/>
32
+ <aggregators/>
33
+ <costs/>
34
+ </stream>
35
+ </parameters>
36
+ <annotations>
37
+ <_timing>
38
+ <_timing_wait/>
39
+ <_timing_threshold/>
40
+ <_timing_min/>
41
+ <_timing_max/>
42
+ <_timing_avg/>
43
+ </_timing>
44
+ <_notes>
45
+ <_notes_general/>
46
+ </_notes>
47
+ </annotations>
48
+ </call>
49
+ <call id="a7" endpoint="wait">
50
+ <parameters>
51
+ <label>Wait for camera stream delay</label>
52
+ <method>:post</method>
53
+ <arguments>
54
+ <timeout>5</timeout>
55
+ </arguments>
56
+ <stream>
57
+ <sensors/>
58
+ <aggregators/>
59
+ <costs/>
60
+ </stream>
61
+ </parameters>
62
+ <annotations>
63
+ <_timing>
64
+ <_timing_wait/>
65
+ <_timing_threshold/>
66
+ <_timing_min/>
67
+ <_timing_max/>
68
+ <_timing_avg/>
69
+ </_timing>
70
+ <_notes>
71
+ <_notes_general/>
72
+ </_notes>
73
+ </annotations>
74
+ </call>
75
+ <call id="a3" endpoint="get_items_base">
76
+ <parameters>
77
+ <label>Get item positions</label>
78
+ <arguments/>
79
+ <stream>
80
+ <sensors/>
81
+ <aggregators/>
82
+ <costs/>
83
+ </stream>
84
+ </parameters>
85
+ <code>
86
+ <prepare/>
87
+ <finalize output="result">data.items = result</finalize>
88
+ <update output="result"/>
89
+ <rescue output="result"/>
90
+ </code>
91
+ <annotations>
92
+ <_timing>
93
+ <_timing_wait/>
94
+ <_timing_threshold/>
95
+ <_timing_min/>
96
+ <_timing_max/>
97
+ <_timing_avg/>
98
+ </_timing>
99
+ <_notes>
100
+ <_notes_general/>
101
+ </_notes>
102
+ </annotations>
103
+ </call>
104
+ <choose mode="exclusive">
105
+ <alternative condition="data.items.length &gt; 0">
106
+ <call id="a5" endpoint="move_camera">
107
+ <parameters>
108
+ <label>Inspect first item</label>
109
+ <arguments>
110
+ <x>!data.items.first['x']</x>
111
+ <y>!data.items.first['y']</y>
112
+ </arguments>
113
+ <stream>
114
+ <sensors/>
115
+ <aggregators/>
116
+ <costs/>
117
+ </stream>
118
+ </parameters>
119
+ <annotations>
120
+ <_timing>
121
+ <_timing_wait/>
122
+ <_timing_threshold/>
123
+ <_timing_min/>
124
+ <_timing_max/>
125
+ <_timing_avg/>
126
+ </_timing>
127
+ <_notes>
128
+ <_notes_general/>
129
+ </_notes>
130
+ </annotations>
131
+ </call>
132
+ <call id="a15" endpoint="wait">
133
+ <parameters>
134
+ <label>Wait for camera stream delay</label>
135
+ <method>:post</method>
136
+ <arguments>
137
+ <timeout>5</timeout>
138
+ </arguments>
139
+ <stream>
140
+ <sensors/>
141
+ <aggregators/>
142
+ <costs/>
143
+ </stream>
144
+ </parameters>
145
+ <annotations>
146
+ <_timing>
147
+ <_timing_wait/>
148
+ <_timing_threshold/>
149
+ <_timing_min/>
150
+ <_timing_max/>
151
+ <_timing_avg/>
152
+ </_timing>
153
+ <_notes>
154
+ <_notes_general/>
155
+ </_notes>
156
+ </annotations>
157
+ </call>
158
+ <call id="a2" endpoint="subprocess">
159
+ <parameters>
160
+ <label>Adjust</label>
161
+ <method>:post</method>
162
+ <arguments>
163
+ <behavior>wait_running</behavior>
164
+ <url>http://cpee.org/~demo/cpee-cockpit/templates/BPM%202020%20Manual%20Adjust.xml</url>
165
+ <init/>
166
+ <endpoints/>
167
+ <stream/>
168
+ </arguments>
169
+ <stream>
170
+ <sensors/>
171
+ <aggregators/>
172
+ <costs/>
173
+ </stream>
174
+ </parameters>
175
+ <code>
176
+ <prepare/>
177
+ <finalize output="result"># data.place = data.places.shift
178
+ data.item = result['item']
179
+ data.item['x'] = data.items.first['x'] + data.item['adjust_x']
180
+ data.item['y'] = data.items.first['y'] + data.item['adjust_y']</finalize>
181
+ <update output="result"/>
182
+ <rescue output="result"/>
183
+ </code>
184
+ <annotations>
185
+ <_timing>
186
+ <_timing_wait/>
187
+ <_timing_threshold/>
188
+ <_timing_min/>
189
+ <_timing_max/>
190
+ <_timing_avg/>
191
+ </_timing>
192
+ <_notes>
193
+ <_notes_general/>
194
+ </_notes>
195
+ </annotations>
196
+ </call>
197
+ <stop id="a4"/>
198
+ <call id="a8" endpoint="grip_and_place">
199
+ <parameters>
200
+ <label>Grip and Place</label>
201
+ <arguments>
202
+ <x>!data.item['x']</x>
203
+ <y>!data.item['y']</y>
204
+ <place_x>!data.place[0]</place_x>
205
+ <place_y>!data.place[1]</place_y>
206
+ </arguments>
207
+ <stream>
208
+ <sensors/>
209
+ <aggregators/>
210
+ <costs/>
211
+ </stream>
212
+ </parameters>
213
+ <annotations>
214
+ <_timing>
215
+ <_timing_wait/>
216
+ <_timing_threshold/>
217
+ <_timing_min/>
218
+ <_timing_max/>
219
+ <_timing_avg/>
220
+ </_timing>
221
+ <_notes>
222
+ <_notes_general/>
223
+ </_notes>
224
+ </annotations>
225
+ </call>
226
+ <_probability>
227
+ <_probability_min/>
228
+ <_probability_max/>
229
+ <_probability_avg/>
230
+ </_probability>
231
+ </alternative>
232
+ <otherwise>
233
+ <terminate/>
234
+ </otherwise>
235
+ </choose>
236
+ </loop>
237
+ </description>
238
+ </description>
239
+ <transformation>
240
+ <description type="copy"/>
241
+ <dataelements type="none"/>
242
+ <endpoints type="none"/>
243
+ </transformation>
244
+ <attributes>
245
+ <info xmlns="http://riddl.org/ns/common-patterns/properties/1.0">BPM 2020 Solution Baseline Manual Adjust</info>
246
+ <modeltype xmlns="http://riddl.org/ns/common-patterns/properties/1.0">CPEE</modeltype>
247
+ <theme xmlns="http://riddl.org/ns/common-patterns/properties/1.0">preset</theme>
248
+ <resource xmlns="http://riddl.org/ns/common-patterns/properties/1.0">ur51</resource>
249
+ </attributes>
250
+ </testset>