Fix connections to devices not based on arduino

stk500v2 failed to release the serial port on timeout.
This commit is contained in:
TheRikke 2017-01-07 22:22:47 +01:00 committed by GitHub
parent 6f7de84af0
commit 5ed32230f7

View file

@ -43,8 +43,8 @@ class Stk500v2(ispBase.IspBase):
self.serial.flushInput() self.serial.flushInput()
self.serial.flushOutput() self.serial.flushOutput()
try:
if self.sendMessage([0x10, 0xc8, 0x64, 0x19, 0x20, 0x00, 0x53, 0x03, 0xac, 0x53, 0x00, 0x00]) != [0x10, 0x00]: if self.sendMessage([0x10, 0xc8, 0x64, 0x19, 0x20, 0x00, 0x53, 0x03, 0xac, 0x53, 0x00, 0x00]) != [0x10, 0x00]:
self.close()
raise ispBase.IspError("Failed to enter programming mode") raise ispBase.IspError("Failed to enter programming mode")
self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00]) self.sendMessage([0x06, 0x80, 0x00, 0x00, 0x00])
@ -52,6 +52,9 @@ class Stk500v2(ispBase.IspBase):
self._has_checksum = True self._has_checksum = True
else: else:
self._has_checksum = False self._has_checksum = False
except ispBase.IspError:
self.close()
raise
self.serial.timeout = 5 self.serial.timeout = 5
def close(self): def close(self):