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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dashboard.rb +229 -49
  3. data/lib/rtde.rb +16 -0
  4. data/ur-sock.gemspec +1 -1
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22f897ede8181850bb4bcf8074fb6147b8d06bb5618b566b9becb111fc4231ac
4
- data.tar.gz: 4dea79150693e0c196975f203b6fb08f696d0477410d4ea68084a5f3d50976ad
3
+ metadata.gz: 654a9a6aef57b1b53b75cf076630ea770602f910357d04661a1c7bda1b3b490a
4
+ data.tar.gz: c9e672d97e673384666494d7c36d8530221cb59b82567c10fe4ae52a13d3cab7
5
5
  SHA512:
6
- metadata.gz: 9933643d022f7f939a9e10bdc42218015dde6dabf7826608cab685387ae00eb1740dcb3d493fd64c1444c2b0413ce20accd2140e43eed1442241c8193c111562
7
- data.tar.gz: e54083279f2cea25d2f843037b0efde6bc51f972ce6b4fde0d9a957c6b0a9a278c080140736b7c63a4b62650a2898410c162b69a9f1324faaae450ae0216fc92
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 = 0
11
- CONNECTED = 1
12
- STARTED = 2
13
- PAUSED = 3
10
+ DISCONNECTED = 'DISCONNECTED'
11
+ CONNECTED = 'CONNECTED'
12
+ STARTED = 'STARTED'
13
+ PAUSED = 'PAUSED'
14
14
  end
15
15
 
16
16
  module ProgramState
17
- NO_CONTROLLER = "NO_CONTROLLER"
18
- DISCONNECTED = "DISCONNECTED"
19
- CONFIRM_SAFETY = "CONFIRM_SAFETY"
20
- BOOTING = "BOOTING"
21
- POWER_OFF = "POWER_OFF"
22
- POWER_ON = "POWER_ON"
23
- IDLE = "IDLE"
24
- BACKDRIVE = "BACKDRIVE"
25
- RUNNING = "RUNNING"
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 power_off
72
- @sock.write("power off\n")
73
- @logger.info @sock.gets.strip
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 power_on
77
- @sock.write("power on\n")
78
- @logger.info @sock.gets.strip
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 break_release
82
- @sock.write("brake release\n")
83
- @logger.info @sock.gets.strip
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 set_operation_mode_auto
87
- @sock.write("set operational mode automatic\n") #, where manual is
88
- @logger.info @sock.gets.strip
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 clear_operation_mode
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
- @sock.write("clear operational mode\n") #, where manual is
94
- @logger.info @sock.gets.strip
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 popupmessage(message)
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
- def pause_program
102
- @sock.write("pause\n")
103
- @logger.info "paused program"
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 stop_program
108
- @sock.write("stop\n")
109
- @logger.info "stopped program"
110
- @logger.info @sock.gets.strip
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 get_robotmode
114
- @sock.write("robotmode\n")
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
- result = $1.strip if line.match(/^Robotmode:\s(.+)/)
205
+ line
118
206
  end
119
207
 
120
- def get_loaded_program
121
- @sock.write ("get loaded program\n")
208
+ def get_polyscope_version
209
+ @sock.write("PolyscopeVersion\n")
122
210
  line = @sock.gets.strip
123
211
  @logger.info line
124
- path = $1.strip if line.match(/^Loaded program:\s(.+)/)
212
+ line
125
213
  end
126
214
 
127
- def load_program (programname)
128
- @logger.info "loadprogram"
129
- send = "load " + programname + ".urp\n"
130
- puts send
131
- @sock.write (send)
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 get_program_state
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "ur-sock"
3
- s.version = "0.3"
3
+ s.version = "0.3.1"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Preliminary release of Universal Robot (UR) Socket Communication."
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: '0.3'
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-20 00:00:00.000000000 Z
12
+ date: 2019-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: xml-smart