From 16c8c4f588184de338eb673ef978c77ab549a9a5 Mon Sep 17 00:00:00 2001 From: daid Date: Thu, 19 Jul 2012 14:27:59 +0200 Subject: [PATCH] Make serial port access more rebust. --- Cura/gui/configWizard.py | 6 +++--- Cura/gui/printWindow.py | 2 +- Cura/util/machineCom.py | 10 +++++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Cura/gui/configWizard.py b/Cura/gui/configWizard.py index c4aca315..b0d42e80 100644 --- a/Cura/gui/configWizard.py +++ b/Cura/gui/configWizard.py @@ -299,7 +299,7 @@ class UltimakerCheckupPage(InfoPage): self.comm.close() return False print line.rstrip() - if line.startswith(replyStart): + if replyStart in line: break t.cancel() return line.rstrip() @@ -385,7 +385,7 @@ class UltimakerCalibrateStepsPerEPage(InfoPage): line = self.comm.readline() if line == '': return - if line.startswith('start'): + if 'start' in line: break #Wait 3 seconds for the SD card init to timeout if we have SD in our firmware but there is no SD card found. time.sleep(3) @@ -417,7 +417,7 @@ class UltimakerCalibrateStepsPerEPage(InfoPage): self.heatButton.Enable(True) self.extrudeButton.Enable(True) return - if line.startswith('start'): + if 'start' in line: break #Wait 3 seconds for the SD card init to timeout if we have SD in our firmware but there is no SD card found. time.sleep(3) diff --git a/Cura/gui/printWindow.py b/Cura/gui/printWindow.py index 94d8fc0d..82898195 100644 --- a/Cura/gui/printWindow.py +++ b/Cura/gui/printWindow.py @@ -358,7 +358,7 @@ class printWindow(wx.Frame): self.feedrateRatioSupport = self.supportSpeedSelect.GetValue() / 100.0 def AddTermLog(self, line): - self.termLog.AppendText(line) + self.termLog.AppendText(unicode(line, 'utf-8', 'replace')) def OnTermEnterLine(self, e): line = self.termInput.GetValue() diff --git a/Cura/util/machineCom.py b/Cura/util/machineCom.py index 4efe21ec..459522c9 100644 --- a/Cura/util/machineCom.py +++ b/Cura/util/machineCom.py @@ -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 -- 2.30.2