From: daid Date: Mon, 3 Feb 2014 15:25:46 +0000 (+0100) Subject: For now prevent UltiGCode from using connectionManager. X-Git-Tag: 14.02-RC1~39 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=767654bd4b83ffab4671e5e345fee0db44b84e2e;p=cura.git For now prevent UltiGCode from using connectionManager. --- diff --git a/Cura/gui/printWindow2.py b/Cura/gui/printWindow2.py index d421a1bb..de51e3fd 100644 --- a/Cura/gui/printWindow2.py +++ b/Cura/gui/printWindow2.py @@ -250,7 +250,7 @@ class printWindow(wx.Frame): if len(self.termLog.GetValue()) > 10000: self.termLog.SetValue(self.termLog.GetValue()[-10000:]) self.termLog.SetInsertionPointEnd() - self.termLog.AppendText(line.encode('utf-8', 'replace')) + self.termLog.AppendText(unicode(line, 'utf-8', 'replace').encode('utf-8', 'replace')) def _doPrinterConnectionUpdate(self, connection, extraInfo = None): wx.CallAfter(self.__doPrinterConnectionUpdate, connection, extraInfo) @@ -264,7 +264,7 @@ class printWindow(wx.Frame): self.lastUpdateTime = t if extraInfo is not None: - self._addTermLog(extraInfo) + self._addTermLog('<%s\n' % (extraInfo)) self.UpdateButtonStates() if connection.isPrinting(): diff --git a/Cura/serialCommunication.py b/Cura/serialCommunication.py index 4a90d258..6a8b1a05 100644 --- a/Cura/serialCommunication.py +++ b/Cura/serialCommunication.py @@ -38,7 +38,6 @@ class serialComm(object): sys.stdout.write('changeZ:%d\n' % (newZ)) def monitorStdin(self): - while not self._comm.isClosed(): line = sys.stdin.readline().strip() line = line.split(':', 1) diff --git a/Cura/util/printerConnection/printerConnectionManager.py b/Cura/util/printerConnection/printerConnectionManager.py index 0e00c2cb..c1dd2081 100644 --- a/Cura/util/printerConnection/printerConnectionManager.py +++ b/Cura/util/printerConnection/printerConnectionManager.py @@ -1,5 +1,6 @@ __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License" +from Cura.util import profile from Cura.util import version from Cura.util.printerConnection import dummyConnection from Cura.util.printerConnection import serialConnection @@ -18,6 +19,8 @@ class PrinterConnectionManager(object): #Return the highest priority available connection. def getAvailableGroup(self): + if profile.getMachineSetting('gcode_flavor') == 'UltiGCode': + return None for g in self._groupList: if len(g.getAvailableConnections()) > 0: return g diff --git a/Cura/util/printerConnection/serialConnection.py b/Cura/util/printerConnection/serialConnection.py index 45360d3d..f19dbc23 100644 --- a/Cura/util/printerConnection/serialConnection.py +++ b/Cura/util/printerConnection/serialConnection.py @@ -42,7 +42,6 @@ class serialConnection(printerConnectionBase.printerConnectionBase): self._temperature = [] - self._lineCount = 0 self._commState = None self._commStateString = None self._gcodeData = [] @@ -72,19 +71,23 @@ class serialConnection(printerConnectionBase.printerConnectionBase): for line in self._gcodeData: self._process.stdin.write('G:%s\n' % (line)) self._process.stdin.write('START\n') + self._printProgress = 0 #Abort the previously loaded print file def cancelPrint(self): - pass + if not self.isPrinting()or self._process is None: + return + self._process.stdin.write('STOP\n') + self._printProgress = 0 def isPrinting(self): return self._commState == machineCom.MachineCom.STATE_PRINTING #Amount of progression of the current print file. 0.0 to 1.0 def getPrintProgress(self): - if self._lineCount < 1: + if len(self._gcodeData) < 1: return 0.0 - return float(self._progressLine) / float(self._lineCount) + return float(self._printProgress) / float(len(self._gcodeData)) # Return if the printer with this connection type is available def isAvailable(self): @@ -137,7 +140,9 @@ class serialConnection(printerConnectionBase.printerConnectionBase): while len(line) > 0: line = line.strip() line = line.split(':', 1) - if line[0] == 'log': + if line[0] == '': + pass + elif line[0] == 'log': pass elif line[0] == 'temp': line = line[1].split(':', 1) @@ -150,6 +155,9 @@ class serialConnection(printerConnectionBase.printerConnectionBase): self._commState = int(line[0]) self._commStateString = line[1] self._doCallback() + elif line[0] == 'progress': + self._printProgress = int(line[1]) + self._doCallback() else: print line line = self._process.stdout.readline()