ur-sock 0.3 → 0.3.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 +4 -4
- data/lib/dashboard.rb +229 -49
- data/lib/rtde.rb +16 -0
- data/ur-sock.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 654a9a6aef57b1b53b75cf076630ea770602f910357d04661a1c7bda1b3b490a
|
4
|
+
data.tar.gz: c9e672d97e673384666494d7c36d8530221cb59b82567c10fe4ae52a13d3cab7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35d82cb42d031589aab28671706f3319e6f1b066f235cd1d0d29e81f24937bbbf78221d24c72b92c7f140230758fea5623a527782f368dc471d0137a82c7ba69
|
7
|
+
data.tar.gz: c2ddba9d0d5ec37d5734614ab342543d2535707c647dba906cfb973b9ce7ee7a064bff463e27453e86d18bca420f8cad2481536bb7cd9f907d73c191120f9947
|
data/lib/dashboard.rb
CHANGED
@@ -7,22 +7,40 @@ module UR
|
|
7
7
|
|
8
8
|
class Dash
|
9
9
|
module ConnectionState
|
10
|
-
DISCONNECTED =
|
11
|
-
CONNECTED =
|
12
|
-
STARTED =
|
13
|
-
PAUSED =
|
10
|
+
DISCONNECTED = 'DISCONNECTED'
|
11
|
+
CONNECTED = 'CONNECTED'
|
12
|
+
STARTED = 'STARTED'
|
13
|
+
PAUSED = 'PAUSED'
|
14
14
|
end
|
15
15
|
|
16
16
|
module ProgramState
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
17
|
+
STOPPED = 'STOPPED'
|
18
|
+
PLAYING ='PLAYING'
|
19
|
+
PAUSED = 'PAUSED'
|
20
|
+
end
|
21
|
+
|
22
|
+
module SafetyMode
|
23
|
+
NORMAL = "NORMAL"
|
24
|
+
REDUCED = "REDUCED"
|
25
|
+
PROTECTIVE_STOP = "PROTECTIVE_STOP"
|
26
|
+
RECOVERY = "RECOVERY"
|
27
|
+
SAFEGUARD_STOP = "SAFEGUARD_STOP"
|
28
|
+
SYSTEM_EMERGENCY_STOP = "SYSTEM_EMERGENCY_STOP"
|
29
|
+
ROBOT_EMERGENCY_STOP = "ROBOT_EMERGENCY_STOP"
|
30
|
+
VIOLATION = "VIOLATION"
|
31
|
+
FAULT = "FAULT"
|
32
|
+
end
|
33
|
+
|
34
|
+
module ProgramState
|
35
|
+
NO_CONTROLLER = 'NO_CONTROLLER'
|
36
|
+
DISCONNECTED = 'DISCONNECTED'
|
37
|
+
CONFIRM_SAFETY = 'CONFIRM_SAFETY'
|
38
|
+
BOOTING = 'BOOTING'
|
39
|
+
POWER_OFF = 'POWER_OFF'
|
40
|
+
POWER_ON = 'POWER_ON'
|
41
|
+
IDLE = 'IDLE'
|
42
|
+
BACKDRIVE = 'BACKDRIVE'
|
43
|
+
RUNNING = 'RUNNING'
|
26
44
|
end
|
27
45
|
|
28
46
|
def initialize(host, logger=Logger.new(STDOUT,level: :INFO))
|
@@ -58,84 +76,246 @@ module UR
|
|
58
76
|
end
|
59
77
|
end
|
60
78
|
|
79
|
+
def load_program (programname)
|
80
|
+
@logger.info "loadprogram"
|
81
|
+
send = "load " + programname + ".urp\n"
|
82
|
+
puts send
|
83
|
+
@sock.write (send)
|
84
|
+
line = @sock.gets.strip
|
85
|
+
if line.match(/^./) == 'L'
|
86
|
+
@logger.info line
|
87
|
+
true
|
88
|
+
else
|
89
|
+
@logger.error line
|
90
|
+
nil
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
61
94
|
def start_program
|
62
95
|
@sock.write("play\n")
|
63
96
|
line = @sock.gets.strip
|
64
97
|
if line == "Starting program"
|
65
98
|
@logger.info line
|
99
|
+
true
|
66
100
|
else
|
67
101
|
@logger.error line
|
102
|
+
nil
|
68
103
|
end
|
69
104
|
end
|
70
105
|
|
71
|
-
def
|
72
|
-
@sock.write("
|
73
|
-
|
106
|
+
def stop_program
|
107
|
+
@sock.write("stop\n")
|
108
|
+
line = @sock.gets.strip
|
109
|
+
if line == "Stopped"
|
110
|
+
@logger.info line
|
111
|
+
true
|
112
|
+
else
|
113
|
+
@logger.error line
|
114
|
+
nil
|
115
|
+
end
|
74
116
|
end
|
75
117
|
|
76
|
-
def
|
77
|
-
@sock.write("
|
78
|
-
|
118
|
+
def pause_program
|
119
|
+
@sock.write("pause\n")
|
120
|
+
if line == "Pausing program"
|
121
|
+
@logger.info line
|
122
|
+
true
|
123
|
+
else
|
124
|
+
@logger.error line
|
125
|
+
nil
|
126
|
+
end
|
79
127
|
end
|
80
128
|
|
81
|
-
def
|
82
|
-
@sock.write("
|
83
|
-
|
129
|
+
def shutdown
|
130
|
+
@sock.write("shutdown\n")
|
131
|
+
if line == "Shutting down"
|
132
|
+
@logger.info line
|
133
|
+
true
|
134
|
+
else
|
135
|
+
@logger.error line
|
136
|
+
nil
|
137
|
+
end
|
84
138
|
end
|
85
139
|
|
86
|
-
def
|
87
|
-
@sock.write("
|
88
|
-
|
140
|
+
def running?
|
141
|
+
@sock.write("running\n")
|
142
|
+
if line == "Program running: True"
|
143
|
+
@logger.info line
|
144
|
+
true
|
145
|
+
else
|
146
|
+
@logger.error line
|
147
|
+
nil
|
148
|
+
end
|
89
149
|
end
|
90
150
|
|
91
|
-
def
|
151
|
+
def get_robotmode
|
152
|
+
@sock.write("robotmode\n")
|
153
|
+
line = @sock.gets.strip
|
154
|
+
@logger.info line
|
155
|
+
result = $1.strip if line.match(/^Robotmode:\s(.+)/)
|
156
|
+
end
|
92
157
|
|
93
|
-
|
94
|
-
@
|
158
|
+
def get_loaded_program
|
159
|
+
@sock.write ("get loaded program\n")
|
160
|
+
line = @sock.gets.strip
|
161
|
+
if line.match(/^Loaded program:\s(.+)/)
|
162
|
+
@logger.info line
|
163
|
+
path = $1.strip
|
164
|
+
else
|
165
|
+
@logger.error line
|
166
|
+
nil
|
167
|
+
end
|
95
168
|
end
|
96
169
|
|
97
|
-
def
|
170
|
+
def open_popupmessage(message)
|
98
171
|
@sock.write ("popup " + message.to_s + "\n")
|
99
172
|
@logger.info @sock.gets.strip
|
100
173
|
end
|
101
|
-
|
102
|
-
|
103
|
-
@
|
174
|
+
|
175
|
+
def close_popupmessage
|
176
|
+
@sock.write ("close popup\n")
|
104
177
|
@logger.info @sock.gets.strip
|
105
178
|
end
|
106
179
|
|
107
|
-
def
|
108
|
-
@sock.write("
|
109
|
-
@
|
110
|
-
|
180
|
+
def add_to_log(message)
|
181
|
+
@sock.write ("addToLog " + message.to_s + "\n")
|
182
|
+
line = @sock.gets.strip
|
183
|
+
if line.match(/^Added log message/)
|
184
|
+
@logger.info line
|
185
|
+
else
|
186
|
+
@logger.error line
|
187
|
+
end
|
111
188
|
end
|
112
189
|
|
113
|
-
def
|
114
|
-
@sock.write("
|
190
|
+
def is_program_saved?
|
191
|
+
@sock.write("isProgramSaved\n")
|
192
|
+
if line == "True"
|
193
|
+
@logger.info line
|
194
|
+
true
|
195
|
+
else
|
196
|
+
@logger.error line
|
197
|
+
nil
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def get_program_state
|
202
|
+
@sock.write("programState\n")
|
115
203
|
line = @sock.gets.strip
|
116
204
|
@logger.info line
|
117
|
-
|
205
|
+
line
|
118
206
|
end
|
119
207
|
|
120
|
-
def
|
121
|
-
@sock.write
|
208
|
+
def get_polyscope_version
|
209
|
+
@sock.write("PolyscopeVersion\n")
|
122
210
|
line = @sock.gets.strip
|
123
211
|
@logger.info line
|
124
|
-
|
212
|
+
line
|
125
213
|
end
|
126
214
|
|
127
|
-
def
|
128
|
-
@
|
129
|
-
|
130
|
-
|
131
|
-
|
215
|
+
def set_operation_mode_auto
|
216
|
+
@sock.write("set operational mode automatic\n")
|
217
|
+
line = @sock.gets.strip
|
218
|
+
if line.match(/^S/)
|
219
|
+
@logger.info line
|
220
|
+
else
|
221
|
+
@logger.error line
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
def clear_operation_mode
|
226
|
+
@sock.write("clear operational mode\n")
|
227
|
+
line = @sock.gets.strip
|
228
|
+
if line.match(/^operational/)
|
229
|
+
@logger.info line
|
230
|
+
true
|
231
|
+
else
|
232
|
+
@logger.error line
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
def power_on
|
237
|
+
@sock.write("power on\n")
|
238
|
+
if line.match(/^Powering/)
|
239
|
+
@logger.info line
|
240
|
+
true
|
241
|
+
else
|
242
|
+
@logger.error line
|
243
|
+
nil
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
def power_off
|
248
|
+
@sock.write("power off\n")
|
249
|
+
if line.match(/^Powering/)
|
250
|
+
@logger.info line
|
251
|
+
true
|
252
|
+
else
|
253
|
+
@logger.error line
|
254
|
+
nil
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
def break_release
|
259
|
+
@sock.write("brake release\n")
|
260
|
+
if line.match(/^Brake/)
|
261
|
+
@logger.info line
|
262
|
+
true
|
263
|
+
else
|
264
|
+
@logger.error line
|
265
|
+
nil
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
def get_safety_mode
|
270
|
+
@sock.write("safetymode\n")
|
132
271
|
line = @sock.gets.strip
|
133
272
|
@logger.info line
|
273
|
+
result = $1.strip if line.match(/^Safetymode:\s(.+)/)
|
134
274
|
end
|
135
275
|
|
136
|
-
def
|
276
|
+
def unlock_protective_stop
|
277
|
+
@sock.write("unlock protective stop\n")
|
278
|
+
if line.match(/^Protective/)
|
279
|
+
@logger.info line
|
280
|
+
true
|
281
|
+
else
|
282
|
+
@logger.error line
|
283
|
+
nil
|
284
|
+
end
|
285
|
+
end
|
137
286
|
|
287
|
+
def close_safety_popup
|
288
|
+
@sock.write("close safety popup\n")
|
289
|
+
if line.match(/^closing/)
|
290
|
+
@logger.info line
|
291
|
+
true
|
292
|
+
else
|
293
|
+
@logger.error line
|
294
|
+
nil
|
295
|
+
end
|
138
296
|
end
|
139
|
-
end
|
140
297
|
|
298
|
+
def load_installation
|
299
|
+
@sock.write("load installation\n")
|
300
|
+
if line.match(/^Loading/)
|
301
|
+
@logger.info line
|
302
|
+
true
|
303
|
+
else
|
304
|
+
@logger.error line
|
305
|
+
nil
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
def restart_safety
|
310
|
+
@sock.write("restart safety\n")
|
311
|
+
if line.match(/^Brake/)
|
312
|
+
@logger.info line
|
313
|
+
true
|
314
|
+
else
|
315
|
+
@logger.error line
|
316
|
+
nil
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
end
|
141
321
|
end
|
data/lib/rtde.rb
CHANGED
@@ -7,6 +7,17 @@ module UR
|
|
7
7
|
|
8
8
|
class Rtde
|
9
9
|
PROTOCOL_VERSION = 2
|
10
|
+
@@robotmode = {-1 => 'No Controller',
|
11
|
+
0 => 'Disconnected',
|
12
|
+
1 => 'Confirm Safety',
|
13
|
+
2 => 'Booting',
|
14
|
+
3 => 'Power Off',
|
15
|
+
4 => 'Power On',
|
16
|
+
5 => 'Idle',
|
17
|
+
6 => 'Backdrive',
|
18
|
+
7 => 'Running',
|
19
|
+
8 => 'Updating Firmware'
|
20
|
+
}
|
10
21
|
|
11
22
|
module Command #{{{
|
12
23
|
RTDE_REQUEST_PROTOCOL_VERSION = 86 # ASCII V
|
@@ -18,6 +29,7 @@ module UR
|
|
18
29
|
RTDE_CONTROL_PACKAGE_START = 83 # ASCII S
|
19
30
|
RTDE_CONTROL_PACKAGE_PAUSE = 80 # ascii p
|
20
31
|
end #}}}
|
32
|
+
|
21
33
|
module ConnectionState #{{{
|
22
34
|
DISCONNECTED = 0
|
23
35
|
CONNECTED = 1
|
@@ -25,6 +37,10 @@ module UR
|
|
25
37
|
PAUSED = 3
|
26
38
|
end #}}}
|
27
39
|
|
40
|
+
def get_robotmode
|
41
|
+
@@robotmode
|
42
|
+
end
|
43
|
+
|
28
44
|
def initialize(host, logger=Logger.new(STDOUT,level: :INFO)) #{{{
|
29
45
|
host = '//' + host if host !~ /\/\//
|
30
46
|
uri = URI::parse(host)
|
data/ur-sock.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ur-sock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Florian Pauker
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-05-
|
12
|
+
date: 2019-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: xml-smart
|