urest 0.99.1
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 +7 -0
- data/AUTHORS +1 -0
- data/LICENSE +674 -0
- data/README.md +76 -0
- data/Rakefile +22 -0
- data/lib/rtde.conf.xml +125 -0
- data/lib/urest.rb +405 -0
- data/lib/urest.xml +147 -0
- data/server/dev +12 -0
- data/server/dev.conf +18 -0
- data/server/urest +11 -0
- data/server/urest.conf +18 -0
- data/tools/urest +50 -0
- metadata +138 -0
data/lib/urest.xml
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
<description xmlns="http://riddl.org/ns/description/1.0" xmlns:ann="http://riddl.org/ns/annotation/1.0" xmlns:xi="http://www.w3.org/2001/XInclude" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
+
<message name="file">
|
3
|
+
<parameter name="file" mimetype="application/octet-stream"/>
|
4
|
+
</message>
|
5
|
+
<message name="named_file">
|
6
|
+
<parameter name="name" type="string"/>
|
7
|
+
<parameter name="file" mimetype="application/octet-stream"/>
|
8
|
+
</message>
|
9
|
+
<message name="properties">
|
10
|
+
<parameter name="properties" mimetype="application/json"/>
|
11
|
+
</message>
|
12
|
+
<message name="text">
|
13
|
+
<parameter name="message" type="string"/>
|
14
|
+
</message>
|
15
|
+
<message name="value">
|
16
|
+
<parameter name="value" mimetype="text/plain"/>
|
17
|
+
</message>
|
18
|
+
<message name="tbit">
|
19
|
+
<parameter name="value" type="string">
|
20
|
+
<param name="pattern">[01]+</param>
|
21
|
+
</parameter>
|
22
|
+
</message>
|
23
|
+
<message name="tdouble">
|
24
|
+
<parameter name="value" type="double"/>
|
25
|
+
</message>
|
26
|
+
<message name="tint">
|
27
|
+
<parameter name="value" type="integer"/>
|
28
|
+
</message>
|
29
|
+
<message name="pval">
|
30
|
+
<parameter name="value" type="integer">
|
31
|
+
<choice>
|
32
|
+
<value>on</value>
|
33
|
+
<value>off</value>
|
34
|
+
</choice>
|
35
|
+
</parameter>
|
36
|
+
</message>
|
37
|
+
<message name="sval">
|
38
|
+
<parameter name="value" type="integer">
|
39
|
+
<param name="minInclusive">0</param>
|
40
|
+
<param name="maxInclusive">100</param>
|
41
|
+
</parameter>
|
42
|
+
</message>
|
43
|
+
<resource>
|
44
|
+
<get out="properties"/>
|
45
|
+
<resource relative="messsages">
|
46
|
+
<resource relative="log">
|
47
|
+
<put in="text"/>
|
48
|
+
</resource>
|
49
|
+
<resource relative="popup">
|
50
|
+
<put in="text"/>
|
51
|
+
<delete/>
|
52
|
+
</resource>
|
53
|
+
<resource relative="safety">
|
54
|
+
<put in="text"/>
|
55
|
+
<delete/>
|
56
|
+
</resource>
|
57
|
+
</resource>
|
58
|
+
<resource relative="registers">
|
59
|
+
<resource relative="input">
|
60
|
+
<resource relative="bit">
|
61
|
+
<resource relative="\d+">
|
62
|
+
<get out="value"/>
|
63
|
+
<put in="tbit"/>
|
64
|
+
</resource>
|
65
|
+
</resource>
|
66
|
+
<resource relative="double">
|
67
|
+
<resource relative="\d+">
|
68
|
+
<get out="value"/>
|
69
|
+
<put in="tdouble"/>
|
70
|
+
</resource>
|
71
|
+
</resource>
|
72
|
+
<resource relative="int">
|
73
|
+
<resource relative="\d+">
|
74
|
+
<get out="value"/>
|
75
|
+
<put in="tint"/>
|
76
|
+
</resource>
|
77
|
+
</resource>
|
78
|
+
</resource>
|
79
|
+
<resource relative="output">
|
80
|
+
<resource relative="bit">
|
81
|
+
<resource relative="\d+">
|
82
|
+
<get out="value"/>
|
83
|
+
</resource>
|
84
|
+
</resource>
|
85
|
+
<resource relative="double">
|
86
|
+
<resource relative="\d+">
|
87
|
+
<get out="value"/>
|
88
|
+
</resource>
|
89
|
+
</resource>
|
90
|
+
<resource relative="int">
|
91
|
+
<resource relative="\d+">
|
92
|
+
<get out="value"/>
|
93
|
+
</resource>
|
94
|
+
</resource>
|
95
|
+
</resource>
|
96
|
+
</resource>
|
97
|
+
<resource relative="model">
|
98
|
+
<get out="value"/>
|
99
|
+
</resource>
|
100
|
+
<resource relative="serialnumber">
|
101
|
+
<get out="value"/>
|
102
|
+
</resource>
|
103
|
+
<resource relative="state">
|
104
|
+
<get out="properties"/>
|
105
|
+
<resource relative="mode">
|
106
|
+
<get out="value"/>
|
107
|
+
</resource>
|
108
|
+
<resource relative="power">
|
109
|
+
<get out="value"/>
|
110
|
+
<put in="pval"/>
|
111
|
+
</resource>
|
112
|
+
<resource relative="remote">
|
113
|
+
<get out="value"/>
|
114
|
+
</resource>
|
115
|
+
<resource relative="program">
|
116
|
+
<get out="value"/>
|
117
|
+
</resource>
|
118
|
+
<resource relative="program_state">
|
119
|
+
<get out="value"/>
|
120
|
+
</resource>
|
121
|
+
<resource relative="safety_mode">
|
122
|
+
<get out="value"/>
|
123
|
+
</resource>
|
124
|
+
<resource relative="speed">
|
125
|
+
<get out="value"/>
|
126
|
+
<put in="sval"/>
|
127
|
+
</resource>
|
128
|
+
<resource relative="speed_scaling">
|
129
|
+
<get out="value"/>
|
130
|
+
</resource>
|
131
|
+
</resource>
|
132
|
+
<resource relative="programs">
|
133
|
+
<get out="properties"/>
|
134
|
+
<resource>
|
135
|
+
<get out="file"/>
|
136
|
+
<post in="named_file"/>
|
137
|
+
<resource relative="fork">
|
138
|
+
<get/>
|
139
|
+
<put/>
|
140
|
+
</resource>
|
141
|
+
<resource relative="wait">
|
142
|
+
<put/>
|
143
|
+
</resource>
|
144
|
+
</resource>
|
145
|
+
</resource>
|
146
|
+
</resource>
|
147
|
+
</description>
|
data/server/dev
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
$dev = true
|
3
|
+
require_relative '../lib/urest'
|
4
|
+
### add stuff if necessary
|
5
|
+
|
6
|
+
Riddl::Server.new(UREST::SERVER, :host => 'localhost', :port => 8197) do |opts|
|
7
|
+
accessible_description true
|
8
|
+
cross_site_xhr true
|
9
|
+
process_out false
|
10
|
+
|
11
|
+
use UREST::implementation(opts)
|
12
|
+
end.loop!
|
data/server/dev.conf
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
### OPC UA specific config
|
2
|
+
### --------------------------------------------------------------------------
|
3
|
+
namespace: https://lab.bpm.in.tum.de/ur1
|
4
|
+
|
5
|
+
### UR specific config
|
6
|
+
### --------------------------------------------------------------------------
|
7
|
+
ipadress: 131.159.6.109
|
8
|
+
sshport: 22
|
9
|
+
username: root
|
10
|
+
password: easybot
|
11
|
+
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
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'urest'
|
3
|
+
### add stuff if necessary
|
4
|
+
|
5
|
+
Riddl::Server.new(UREST::SERVER, :host => 'localhost', :port => 8198) do |opts|
|
6
|
+
accessible_description true
|
7
|
+
cross_site_xhr true
|
8
|
+
process_out false
|
9
|
+
|
10
|
+
use UREST::implementation(opts)
|
11
|
+
end.loop!
|
data/server/urest.conf
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
### OPC UA specific config
|
2
|
+
### --------------------------------------------------------------------------
|
3
|
+
namespace: https://centurio.work/ur10
|
4
|
+
|
5
|
+
### UR specific config
|
6
|
+
### --------------------------------------------------------------------------
|
7
|
+
ipadress: 10.0.31.22
|
8
|
+
sshport: 22
|
9
|
+
username: root
|
10
|
+
password: easybot
|
11
|
+
url: /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/tools/urest
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
require 'rubygems'
|
3
|
+
require 'optparse'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'pp'
|
6
|
+
|
7
|
+
def wrap(s, width=78, indent=18)
|
8
|
+
lines = []
|
9
|
+
line, s = s[0..indent-2], s[indent..-1]
|
10
|
+
s.split(/\n/).each do |ss|
|
11
|
+
ss.split(/[ \t]+/).each do |word|
|
12
|
+
if line.size + word.size >= width
|
13
|
+
lines << line
|
14
|
+
line = (" " * (indent)) + word
|
15
|
+
else
|
16
|
+
line << " " << word
|
17
|
+
end
|
18
|
+
end
|
19
|
+
lines << line if line
|
20
|
+
line = (" " * (indent-1))
|
21
|
+
end
|
22
|
+
return lines.join "\n"
|
23
|
+
end
|
24
|
+
|
25
|
+
ARGV.options { |opt|
|
26
|
+
opt.summary_width = 15
|
27
|
+
opt.summary_indent = ' '
|
28
|
+
opt.banner = "Usage:\n#{opt.summary_indent}#{File.basename($0)}\n"
|
29
|
+
opt.on("Options:")
|
30
|
+
opt.on("--help", "-h","This text.") { puts opt; exit }
|
31
|
+
opt.on("")
|
32
|
+
opt.on(wrap("[scaffold] scaffold a server. The executable is always copied, default config are only created when they dont exists.",78,18))
|
33
|
+
opt.parse!
|
34
|
+
}
|
35
|
+
if (ARGV.length == 0) ||
|
36
|
+
(ARGV.length == 1 && ARGV[0] != 'scaffold')
|
37
|
+
puts ARGV.options
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
command = ARGV[0]
|
41
|
+
|
42
|
+
if command == 'scaffold'
|
43
|
+
dir = File.join(__dir__,'..','server')
|
44
|
+
FileUtils.cp(File.join(dir,'urest'),'.')
|
45
|
+
Dir[File.join(dir,'*')].each do |f|
|
46
|
+
unless File.exist?(File.join(__dir__,File.basename(f))) || f =~ /\/dev/
|
47
|
+
FileUtils.cp(f,'.')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: urest
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.99.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Juergen eTM Mangler
|
8
|
+
autorequire:
|
9
|
+
bindir: tools
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-01-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: riddl
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.120'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.120'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: ur-sock
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: daemonite
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0.5'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.5.9
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0.5'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.5.9
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: net-ssh
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '7.0'
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '7.0'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: net-scp
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '4.0'
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '4.0'
|
95
|
+
description: REST Server for Universal Robots. See https://github.com/etm/urest
|
96
|
+
email: juergen.mangler@gmail.com
|
97
|
+
executables:
|
98
|
+
- urest
|
99
|
+
extensions: []
|
100
|
+
extra_rdoc_files:
|
101
|
+
- README.md
|
102
|
+
files:
|
103
|
+
- AUTHORS
|
104
|
+
- LICENSE
|
105
|
+
- README.md
|
106
|
+
- Rakefile
|
107
|
+
- lib/rtde.conf.xml
|
108
|
+
- lib/urest.rb
|
109
|
+
- lib/urest.xml
|
110
|
+
- server/dev
|
111
|
+
- server/dev.conf
|
112
|
+
- server/urest
|
113
|
+
- server/urest.conf
|
114
|
+
- tools/urest
|
115
|
+
homepage: https://github.com/etm/urest
|
116
|
+
licenses:
|
117
|
+
- GPL-3.0
|
118
|
+
metadata: {}
|
119
|
+
post_install_message:
|
120
|
+
rdoc_options: []
|
121
|
+
require_paths:
|
122
|
+
- lib
|
123
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ">="
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 2.4.0
|
128
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
requirements: []
|
134
|
+
rubygems_version: 3.3.26
|
135
|
+
signing_key:
|
136
|
+
specification_version: 4
|
137
|
+
summary: REST Server for Universal Robots
|
138
|
+
test_files: []
|