From: Youness Alaoui Date: Wed, 6 Jan 2016 19:06:05 +0000 (-0500) Subject: Fix pyserial 3.0 compatibility issue X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=cura.git;a=commitdiff_plain;h=5896100421a2c928f71085b01124888b07abe665 Fix pyserial 3.0 compatibility issue The pyserial 3.0 changed the Serial parameter writeTimeout into write_timeout, which breaks the code. They have a fix planned for a soon-to-be-released version, but since it's a deprecated argument anyway, it's best not to use in order to stay future-proof, and also in case someone installs the 3.0 version itself. This fixes T355 --- diff --git a/Cura/avr_isp/stk500v2.py b/Cura/avr_isp/stk500v2.py index 27e679f1..1c1a312c 100644 --- a/Cura/avr_isp/stk500v2.py +++ b/Cura/avr_isp/stk500v2.py @@ -22,7 +22,9 @@ class Stk500v2(ispBase.IspBase): if self.serial is not None: self.close() try: - self.serial = Serial(str(port), speed, timeout=1, writeTimeout=10000) + self.serial = Serial(str(port), speed, timeout=1) + # Need to set writeTimeout separately in order to be compatible with pyserial 3.0 + self.serial.writeTimeout=10000 except SerialException as e: raise ispBase.IspError("Failed to open serial port") except: diff --git a/Cura/util/machineCom.py b/Cura/util/machineCom.py index a0a763a7..1245c53a 100644 --- a/Cura/util/machineCom.py +++ b/Cura/util/machineCom.py @@ -340,10 +340,14 @@ class MachineCom(object): try: if self._baudrate == 0: self._log("Connecting to: %s with baudrate: 115200 (fallback)" % (self._port)) - self._serial = serial.Serial(str(self._port), 115200, timeout=3, writeTimeout=10000) + self._serial = serial.Serial(str(self._port), 115200, timeout=3) + # Need to set writeTimeout separately in order to be compatible with pyserial 3.0 + self._serial.writeTimeout=10000 else: self._log("Connecting to: %s with baudrate: %s (configured)" % (self._port, self._baudrate)) - self._serial = serial.Serial(str(self._port), self._baudrate, timeout=5, writeTimeout=10000) + self._serial = serial.Serial(str(self._port), self._baudrate, timeout=5) + # Need to set writeTimeout separately in order to be compatible with pyserial 3.0 + self._serial.writeTimeout=10000 except: self._log("Unexpected error while connecting to serial port: %s %s" % (self._port, getExceptionString())) if self._serial is None: @@ -358,7 +362,9 @@ class MachineCom(object): port = self._serialDetectList.pop(0) self._log("Connecting to: %s with baudrate: %s (auto)" % (port, baudrate)) try: - self._serial = serial.Serial(port, baudrate, timeout=3, writeTimeout=10000) + self._serial = serial.Serial(port, baudrate, timeout=3) + # Need to set writeTimeout separately in order to be compatible with pyserial 3.0 + self._serial.writeTimeout=10000 except: pass else: @@ -440,7 +446,9 @@ class MachineCom(object): self._serialDetectList = serialList(True) baudrate = self._baudrateDetectList.pop(0) self._serial.close() - self._serial = serial.Serial(self._serialDetectList.pop(0), baudrate, timeout=2.5, writeTimeout=10000) + self._serial = serial.Serial(self._serialDetectList.pop(0), baudrate, timeout=2.5) + # Need to set writeTimeout separately in order to be compatible with pyserial 3.0 + self._serial.writeTimeout=10000 else: baudrate = self._baudrateDetectList.pop(0) try: