def __doPrinterConnectionUpdate(self, connection, extraInfo):
t = time.time()
- if self.lastUpdateTime + 0.5 > t:
+ if self.lastUpdateTime + 0.5 > t and extraInfo is None:
return
self.lastUpdateTime = t
+ if extraInfo is not None:
+ self._addTermLog(extraInfo)
+
self.UpdateButtonStates()
if connection.isPrinting():
self.progress.SetValue(connection.getPrintProgress() * 1000)
import sys
import time
import os
+import json
from Cura.util import machineCom
sys.stdout.write('log:%s\n' % (message))
def mcTempUpdate(self, temp, bedTemp, targetTemp, bedTargetTemp):
- sys.stdout.write('temp:%s\n' % str(temp))
+ sys.stdout.write('temp:%s\n' % json.dumps(temp))
def mcStateChange(self, state):
if self._comm is None:
line = line.split(':', 1)
if line[0] == 'STOP':
self._comm.cancelPrint()
- self._gcodeList = []
+ self._gcodeList = ['M110']
elif line[0] == 'G':
self._gcodeList.append(line[1])
elif line[0] == 'START':
import os
import sys
import subprocess
+import json
from Cura.util import machineCom
from Cura.util.printerConnection import printerConnectionBase
self._connectionMap[port] = serialConnection(port)
for key in self._connectionMap.keys():
if key not in serialList and not self._connectionMap[key].isActiveConnectionOpen():
- self._connectionMap[key] = None
+ self._connectionMap.pop(key)
return self._connectionMap.values()
def getIconID(self):
self._process = None
self._thread = None
+ self._temperature = []
+
self._lineCount = 0
self._commState = None
self._commStateString = None
return False
return self._commState == machineCom.MachineCom.STATE_OPERATIONAL or self._commState == machineCom.MachineCom.STATE_PRINTING or self._commState == machineCom.MachineCom.STATE_PAUSED
+ def getTemperature(self, extruder):
+ if extruder >= len(self._temperature):
+ return None
+ return self._temperature[extruder]
+
def _serialCommunicationThread(self):
if platform.system() == "Darwin" and hasattr(sys, 'frozen'):
cmdList = [os.path.join(os.path.dirname(sys.executable), 'Cura')]
if line[0] == 'log':
pass
elif line[0] == 'temp':
- pass
+ line = line[1].split(':', 1)
+ self._temperature = json.loads(line[0])
+ self._doCallback()
+ elif line[0] == 'message':
+ self._doCallback(line[1])
elif line[0] == 'state':
line = line[1].split(':', 1)
self._commState = int(line[0])