ur-sock 0.3 → 0.3.1

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