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.
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: []