chiark / gitweb /
Make serial port access more rebust.
authordaid <daid303@gmail.com>
Thu, 19 Jul 2012 12:27:59 +0000 (14:27 +0200)
committerdaid <daid303@gmail.com>
Thu, 19 Jul 2012 12:27:59 +0000 (14:27 +0200)
Cura/gui/configWizard.py
Cura/gui/printWindow.py
Cura/util/machineCom.py

index c4aca315781f20b2ce22e142397403d859b2e05d..b0d42e80d018ab504ca6a4945ae71246cae48fc0 100644 (file)
@@ -299,7 +299,7 @@ class UltimakerCheckupPage(InfoPage):
                                self.comm.close()\r
                                return False\r
                        print line.rstrip()\r
-                       if line.startswith(replyStart):\r
+                       if replyStart in line:\r
                                break\r
                t.cancel()\r
                return line.rstrip()\r
@@ -385,7 +385,7 @@ class UltimakerCalibrateStepsPerEPage(InfoPage):
                        line = self.comm.readline()\r
                        if line == '':\r
                                return\r
-                       if line.startswith('start'):\r
+                       if 'start' in line:\r
                                break\r
                #Wait 3 seconds for the SD card init to timeout if we have SD in our firmware but there is no SD card found.\r
                time.sleep(3)\r
@@ -417,7 +417,7 @@ class UltimakerCalibrateStepsPerEPage(InfoPage):
                                self.heatButton.Enable(True)\r
                                self.extrudeButton.Enable(True)\r
                                return\r
-                       if line.startswith('start'):\r
+                       if 'start' in line:\r
                                break\r
                #Wait 3 seconds for the SD card init to timeout if we have SD in our firmware but there is no SD card found.\r
                time.sleep(3)\r
index 94d8fc0d1827e187ba7e0dfba77c6109cc38bb56..828981952af5fa6530494ccdaaa1454fcfe2f9c4 100644 (file)
@@ -358,7 +358,7 @@ class printWindow(wx.Frame):
                self.feedrateRatioSupport = self.supportSpeedSelect.GetValue() / 100.0\r
        \r
        def AddTermLog(self, line):\r
-               self.termLog.AppendText(line)\r
+               self.termLog.AppendText(unicode(line, 'utf-8', 'replace'))\r
        \r
        def OnTermEnterLine(self, e):\r
                line = self.termInput.GetValue()\r
index 4efe21ec539e019cdace8fe9a2627dcb2f019f0f..459522c9f2074242ac93224ebef5a8b4dc5bf249 100644 (file)
@@ -34,7 +34,7 @@ def baudrateList():
 
 class VirtualPrinter():
        def __init__(self):
-               self.readList = ['start\n', 'Marlin: Virtual Marlin!\n']
+               self.readList = ['start\n', 'Marlin: Virtual Marlin!\n', '\x80\n']
                self.temp = 0.0
                self.targetTemp = 0.0
                self.lastTempAt = time.time()
@@ -135,7 +135,7 @@ class MachineCom():
                        time.sleep(0.2)
                        starttime = time.time()
                        for line in ser:
-                               if line.startswith('start'):
+                               if 'start' in line:
                                        ser.close()
                                        ser = Serial(port, baudrate, timeout=2)
                                        ser.setDTR(1)
@@ -151,7 +151,11 @@ class MachineCom():
        def readline(self):
                if self.serial == None:
                        return None
-               ret = self.serial.readline()
+               try:
+                       ret = self.serial.readline()
+               except:
+                       print "Unexpected error while reading serial port:", sys.exc_info()[0]
+                       ret = ''
                #if ret != '':
                #       print "Recv: " + ret.rstrip()
                return ret