chiark / gitweb /
Fix pyserial 3.0 compatibility issue
authorYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Wed, 6 Jan 2016 19:06:05 +0000 (14:06 -0500)
committerYouness Alaoui <kakaroto@kakaroto.homelinux.net>
Wed, 6 Jan 2016 19:06:05 +0000 (14:06 -0500)
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

Cura/avr_isp/stk500v2.py
Cura/util/machineCom.py

index 27e679f1da3bba9fda89aa12f4fff726db4664d3..1c1a312cb765a8c584d22e701e191d3c598122a3 100644 (file)
@@ -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:
index a0a763a782cab6224fe1a9e73395611bfc833b9a..1245c53aabf4e878ca472d52c4782b0182208fd2 100644 (file)
@@ -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: