urest 0.99.1

Sign up to get free protection for your applications and to get access to all the features.
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: []