Make serial port access more rebust.

master
daid 2012-07-19 14:27:59 +02:00
parent 5ae8e44022
commit 16c8c4f588
3 changed files with 11 additions and 7 deletions

View File

@ -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)

View File

@ -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()

View 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