Skip to content

Commit 9e095ce

Browse files
committed
catching serial exceptions and disconnect on bad read/write
1 parent 281ac3a commit 9e095ce

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

opentrons/drivers/motor.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class CNCDriver(object):
9494
def __init__(self):
9595
self.halted = Event()
9696
self.stopped = Event()
97-
self.paused = Event()
97+
self.do_not_pause = Event()
9898
self.resume()
9999
self.current_commands = []
100100

@@ -229,25 +229,25 @@ def reset_port(self):
229229
def pause(self):
230230
self.halted.clear()
231231
self.stopped.clear()
232-
self.paused.clear()
232+
self.do_not_pause.clear()
233233

234234
def resume(self):
235235
self.halted.clear()
236236
self.stopped.clear()
237-
self.paused.set()
237+
self.do_not_pause.set()
238238

239239
def stop(self):
240240
self.halted.clear()
241241
self.stopped.set()
242-
self.paused.set()
242+
self.do_not_pause.set()
243243

244244
def halt(self):
245245
self.halted.set()
246246
self.stopped.set()
247-
self.paused.set()
247+
self.do_not_pause.set()
248248

249249
def check_paused_stopped(self):
250-
self.paused.wait()
250+
self.do_not_pause.wait()
251251
if self.stopped.is_set():
252252
if self.halted.is_set():
253253
self.send_command(self.HALT)
@@ -277,8 +277,9 @@ def write_to_serial(self, data, max_tries=10, try_interval=0.2):
277277
if self.is_connected():
278278
try:
279279
self.connection.write(str(data).encode())
280-
except:
280+
except Exception as e:
281281
self.disconnect()
282+
raise RuntimeError('Lost connection with serial port') from e
282283
return self.wait_for_response()
283284
elif self.connection is None:
284285
msg = "No connection found."
@@ -323,9 +324,9 @@ def readline_from_serial(self):
323324
try:
324325
msg = self.connection.readline()
325326
msg = msg.strip()
326-
except:
327+
except Exception as e:
327328
self.disconnect()
328-
return b''
329+
raise RuntimeWarning('Lost connection with serial port') from e
329330
if msg:
330331
log.debug("Read: {}".format(msg))
331332

tests/opentrons/drivers/test_motor.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def setUp(self):
2525
}
2626

2727
myport = self.robot.VIRTUAL_SMOOTHIE_PORT
28+
self.robot.disconnect()
2829
success = self.robot.connect(port=myport, options=options)
2930
self.assertTrue(success)
3031

0 commit comments

Comments
 (0)