urest 0.99.1 → 0.99.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 603f8babc42f960057b4e113d722aa03262242843f6509ecdaa5784452e95641
4
- data.tar.gz: 1fcdd14c1d6ad31ef0f454acdaa00a1e112555148b5f547966a41f7eb420ab99
3
+ metadata.gz: 59f7523ac9718ba64625c68f5c0648384ae431ac33aa9290d595b26a8fc3331b
4
+ data.tar.gz: 0524b28fbeb8c854fa25e7a066c3b8ede656b72ccadee0a54fffc7c3a7a299fc
5
5
  SHA512:
6
- metadata.gz: 31545de8900fda1508bc68388d52ea578666f596cc54fc679a3d57d3de12b7add7214c566931fdc98c75ee5b4089a7a21f9f4ffef18520260072b88f5d024139
7
- data.tar.gz: eb1adee515e09c361c8d85b732e98096986b8ea0a2a5b85afd8c444878178e0d51c8a81a72d28cad4ec4a2f28d0aee9e2ce1e41e3f485ba3d8e1b4bf8b5e5e60
6
+ metadata.gz: 149806a8d86363876785facda4db21cc8622a74774778a994b7a6519d64ef2e60c75489096f553d7482dd425c6656219c8b841c6c21af1b54be6221b62747ccd
7
+ data.tar.gz: 368541a3b7995bf19549aacbe9953566c095f5f7e3f9e7c03b71b4ff93df66de2fc79276f36dc7bfbe099a6939487f517bcdb5f18c721e021dcdbf4e33472002
data/lib/urest.rb CHANGED
@@ -121,11 +121,16 @@ module UREST
121
121
 
122
122
  def self::get_robot_programs(opts) #{{{
123
123
  progs = []
124
+ once = false
124
125
  begin
125
- progs = opts['ssh'].exec!('ls ' + File.join(opts['dir'],'*.urp') + ' 2>/dev/null').split("\n")
126
+ progs = opts['ssh'].exec!('ls ' + File.join(opts['dir'],'*.urp') + ' ' + File.join(opts['dir'],'**','*.urp') + ' 2>/dev/null').split("\n")
126
127
  progs.shift if progs[0] =~ /^bash:/
127
128
  rescue => e
128
129
  UREST::ssh_start opts
130
+ unless once
131
+ once = true
132
+ retry
133
+ end
129
134
  end
130
135
  progs
131
136
  end #}}}
@@ -157,7 +162,7 @@ module UREST
157
162
  class GetProg < Riddl::Implementation #{{{
158
163
  def response
159
164
  opts = @a[0]
160
- fname = File.join(opts['dir'],@r[-1] + '.urp')
165
+ fname = File.join(opts['dir'],@r[1..-1].join('/'))
161
166
  if opts['progs'].include? fname
162
167
  return Riddl::Parameter::Complex.new('file','application/octet-stream',UREST::download_program(opts,fname),File.basename(fname))
163
168
  else
@@ -169,8 +174,8 @@ module UREST
169
174
  class ForkProg < Riddl::Implementation #{{{
170
175
  def response
171
176
  opts = @a[0]
172
- fname = File.join(opts['dir'],@r[-2])
173
- if opts['progs'].include? fname + '.urp'
177
+ fname = File.join(opts['dir'],@r[1..-2].join('/'))
178
+ if opts['progs'].include? fname
174
179
  UREST::start_program(opts,fname)
175
180
  else
176
181
  @status = 403
@@ -181,8 +186,8 @@ module UREST
181
186
  class WaitProg < Riddl::Implementation #{{{
182
187
  def response
183
188
  opts = @a[0]
184
- fname = File.join(opts['dir'],@r[-2])
185
- if opts['progs'].include? fname + '.urp'
189
+ fname = File.join(opts['dir'],@r[1..-2].join('/'))
190
+ if opts['progs'].include? fname
186
191
  if @h['CPEE_CALLBACK']
187
192
  EM.defer do
188
193
  UREST::start_program(opts,fname)
@@ -203,6 +208,16 @@ module UREST
203
208
  end
204
209
  end #}}}
205
210
 
211
+ class DeleteSafetyMessage < Riddl::Implementation #{{{
212
+ def response
213
+ opts = @a[0]
214
+ UREST::protect_reconnect_run(opts) do
215
+ opts['dash'].close_safety_popup
216
+ end
217
+ nil
218
+ end
219
+ end #}}}
220
+
206
221
  class SetInt < Riddl::Implementation #{{{
207
222
  def response
208
223
  opts = @a[0]
@@ -246,7 +261,7 @@ module UREST
246
261
 
247
262
  # Functionality for threading in loop
248
263
  opts['doit_state'] = Time.now.to_i
249
- opts['doit_progs'] = Time.now.to_i
264
+ opts['doit_progs'] = Time.now.to_i - 11
250
265
  opts['doit_rtde'] = Time.now.to_i
251
266
 
252
267
  # Serious comment (we do the obvious stuff)
@@ -338,6 +353,11 @@ module UREST
338
353
  on resource 'model' do #{{{
339
354
  run GetValue, opts['model'] if get
340
355
  end #}}}
356
+ on resource 'messages' do #{{{
357
+ on resource 'safety' do
358
+ run DeleteSafetyMessage, opts if delete
359
+ end
360
+ end #}}}
341
361
  on resource 'serialnumber' do #{{{
342
362
  run GetValue, opts['sn'] if get
343
363
  end #}}}
@@ -377,15 +397,18 @@ module UREST
377
397
  run GetValue, opts['ss'] if get
378
398
  end
379
399
  end #}}}
380
- on resource 'programs' do
381
- run GetValues, opts['progs'].map{|f|File.basename(f,'.urp')} if get
382
- on resource do
383
- run GetProg, opts if get
384
- on resource 'fork' do
385
- run ForkProg, opts if put
386
- end
387
- on resource 'wait' do
388
- run WaitProg, opts if put
400
+ on resource 'programs' do |r|
401
+ run GetValues, opts['progs'].filter{ |e| e =~ /^\/#{r[:r].join('/')}\/[a-zA-Z0-9_-]+\.urp/ }.map{ |e| File.basename(e) } if get
402
+ on resource '[a-zA-Z0-9_-]+' do |r|
403
+ run GetValues, opts['progs'].filter{ |e| e =~ /^\/#{r[:r].join('/')}\/[a-zA-Z0-9_-]+\.urp/ }.map{ |e| File.basename(e) } if get
404
+ on resource '[a-zA-Z0-9_-]+\.urp' do
405
+ run GetProg, opts if get
406
+ on resource 'fork' do
407
+ run ForkProg, opts if put
408
+ end
409
+ on resource 'wait' do
410
+ run WaitProg, opts if put
411
+ end
389
412
  end
390
413
  end
391
414
  end
data/lib/urest.xml CHANGED
@@ -42,7 +42,7 @@
42
42
  </message>
43
43
  <resource>
44
44
  <get out="properties"/>
45
- <resource relative="messsages">
45
+ <resource relative="messages">
46
46
  <resource relative="log">
47
47
  <put in="text"/>
48
48
  </resource>
@@ -131,15 +131,18 @@
131
131
  </resource>
132
132
  <resource relative="programs">
133
133
  <get out="properties"/>
134
- <resource>
135
- <get out="file"/>
134
+ <resource relative="[a-zA-Z0-9_-]+" recursive="true">
135
+ <get out="properties"/>
136
136
  <post in="named_file"/>
137
- <resource relative="fork">
138
- <get/>
139
- <put/>
140
- </resource>
141
- <resource relative="wait">
142
- <put/>
137
+ <resource relative="[a-zA-Z0-9_-]+\.urp">
138
+ <get out="file"/>
139
+ <resource relative="fork">
140
+ <get/>
141
+ <put/>
142
+ </resource>
143
+ <resource relative="wait">
144
+ <put/>
145
+ </resource>
143
146
  </resource>
144
147
  </resource>
145
148
  </resource>
data/server/dev CHANGED
@@ -3,7 +3,7 @@ $dev = true
3
3
  require_relative '../lib/urest'
4
4
  ### add stuff if necessary
5
5
 
6
- Riddl::Server.new(UREST::SERVER, :host => 'localhost', :port => 8197) do |opts|
6
+ Riddl::Server.new(UREST::SERVER, :host => 'localhost', :port => 8198) do |opts|
7
7
  accessible_description true
8
8
  cross_site_xhr true
9
9
  process_out false
data/server/dev.conf CHANGED
@@ -1,7 +1,3 @@
1
- ### OPC UA specific config
2
- ### --------------------------------------------------------------------------
3
- namespace: https://lab.bpm.in.tum.de/ur1
4
-
5
1
  ### UR specific config
6
2
  ### --------------------------------------------------------------------------
7
3
  ipadress: 131.159.6.109
@@ -9,10 +5,3 @@ sshport: 22
9
5
  username: root
10
6
  password: easybot
11
7
  dir: /programs
12
-
13
- ### UR simulation specific config
14
- ### --------------------------------------------------------------------------
15
- ### if no password, password has to entered when server is started
16
- # ipadress: localhost
17
- # username: myusername
18
- # url: /home/myusername/somedirectory/ursim-current/programs.UR10
data/server/urest.conf CHANGED
@@ -1,14 +1,10 @@
1
- ### OPC UA specific config
2
- ### --------------------------------------------------------------------------
3
- namespace: https://centurio.work/ur10
4
-
5
1
  ### UR specific config
6
2
  ### --------------------------------------------------------------------------
7
3
  ipadress: 10.0.31.22
8
4
  sshport: 22
9
5
  username: root
10
6
  password: easybot
11
- url: /programs
7
+ dir: /programs
12
8
 
13
9
  ### UR simulation specific config
14
10
  ### --------------------------------------------------------------------------
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.1
4
+ version: 0.99.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
8
8
  autorequire:
9
9
  bindir: tools
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2025-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: riddl
@@ -114,7 +114,7 @@ files:
114
114
  - tools/urest
115
115
  homepage: https://github.com/etm/urest
116
116
  licenses:
117
- - GPL-3.0
117
+ - LGPL-3.0-or-later
118
118
  metadata: {}
119
119
  post_install_message:
120
120
  rdoc_options: []
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  requirements: []
134
- rubygems_version: 3.3.26
134
+ rubygems_version: 3.5.22
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: REST Server for Universal Robots