Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArjen Hiemstra <ahiemstra@heimr.nl>2015-08-18 18:59:16 +0300
committerArjen Hiemstra <ahiemstra@heimr.nl>2015-08-18 18:59:16 +0300
commita425036c4c5dc5b107eb8a22db07bda02f126950 (patch)
treeafd7471d324dae7d8a0619d4c8e5a4cb390a064a /plugins/USBPrinting/PrinterConnection.py
parenta2ecae7d2cb85233accf0197af749698f6876526 (diff)
parent78b9f827bc4f566f0eaf867e1b362d265231b544 (diff)
Merge branch '15.06'
* 15.06: Fix poor visibility of MessageStack against grid Fix USB printer detection and reconnect after firmware update on MacOSX Correct the icon for the Cura .desktop file Bump version support defaults to ZigZag instead of Lines Fix the platform activity check
Diffstat (limited to 'plugins/USBPrinting/PrinterConnection.py')
-rw-r--r--plugins/USBPrinting/PrinterConnection.py49
1 files changed, 46 insertions, 3 deletions
diff --git a/plugins/USBPrinting/PrinterConnection.py b/plugins/USBPrinting/PrinterConnection.py
index d19e5d2f19..44c5ec1ce2 100644
--- a/plugins/USBPrinting/PrinterConnection.py
+++ b/plugins/USBPrinting/PrinterConnection.py
@@ -60,8 +60,8 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self._listen_thread.daemon = True
self._update_firmware_thread = threading.Thread(target= self._updateFirmware)
- self._update_firmware_thread.demon = True
-
+ self._update_firmware_thread.deamon = True
+
self._heatup_wait_start_time = time.time()
## Queue for commands that need to be send. Used when command is sent when a print is active.
@@ -105,6 +105,7 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self._firmware_file_name = None
+<<<<<<< HEAD
self._control_view = None
onError = pyqtSignal()
@@ -128,6 +129,12 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
def error(self):
return self._error_state
+=======
+ self.firmwareUpdateComplete.connect(self._onFirmwareUpdateComplete)
+
+ firmwareUpdateComplete = Signal()
+
+>>>>>>> 15.06
# TODO: Might need to add check that extruders can not be changed when it started printing or loading these settings from settings object
def setNumExtuders(self, num):
self._extruder_count = num
@@ -209,6 +216,8 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self.setProgress(100, 100)
+ self.firmwareUpdateComplete.emit()
+
## Upload new firmware to machine
# \param filename full path of firmware file to be uploaded
def updateFirmware(self, file_name):
@@ -233,9 +242,18 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self._is_connecting = False
Logger.log("i", "Could not establish connection on %s, unknown reasons.", self._serial_port)
return
+<<<<<<< HEAD
# If the programmer connected, we know its an atmega based version. Not all that usefull, but it does give some debugging information.
for baud_rate in self._getBaudrateList(): # Cycle all baud rates (auto detect)
+=======
+
+ Logger.log("d", "Starting baud rate detection...")
+ # If the programmer connected, we know its an atmega based version. Not all that usefull, but it does give some debugging information.
+ for baud_rate in self._getBaudrateList(): # Cycle all baud rates (auto detect)
+ Logger.log("d", "Trying baud rate %s", baud_rate)
+
+>>>>>>> 15.06
if self._serial is None:
try:
self._serial = serial.Serial(str(self._serial_port), baud_rate, timeout = 3, writeTimeout = 10000)
@@ -255,9 +273,12 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
if line is None:
self.setIsConnected(False) # Something went wrong with reading, could be that close was called.
return
+<<<<<<< HEAD
+=======
+
+>>>>>>> 15.06
if b"T:" in line:
self._serial.timeout = 0.5
- self._sendCommand("M105")
sucesfull_responses += 1
if sucesfull_responses >= self._required_responses_auto_baud:
self._serial.timeout = 2 #Reset serial timeout
@@ -265,6 +286,8 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
Logger.log("i", "Established printer connection on port %s" % self._serial_port)
return
+ self._sendCommand("M105") # Send M105 as long as we are listening, otherwise we end up in an undefined state
+
Logger.log("e", "Baud rate detection for %s failed", self._serial_port)
self.close() # Unable to connect, wrap up.
self.setIsConnected(False)
@@ -294,9 +317,17 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
if self._connect_thread.isAlive():
try:
self._connect_thread.join()
+<<<<<<< HEAD
except Exception as e:
pass # This should work, but it does fail sometimes for some reason
+=======
+ except:
+ pass
+
+ self._connect_thread = threading.Thread(target=self._connect)
+ self._connect_thread.daemon = True
+>>>>>>> 15.06
if self._serial is not None:
self.setIsConnected(False)
try:
@@ -305,6 +336,11 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
pass
self._serial.close()
+<<<<<<< HEAD
+=======
+ self._listen_thread = threading.Thread(target=self._listen)
+ self._listen_thread.daemon = True
+>>>>>>> 15.06
self._serial = None
def isConnected(self):
@@ -540,3 +576,10 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
def _getBaudrateList(self):
ret = [250000, 230400, 115200, 57600, 38400, 19200, 9600]
return ret
+
+ def _onFirmwareUpdateComplete(self):
+ self._update_firmware_thread.join()
+ self._update_firmware_thread = threading.Thread(target= self._updateFirmware)
+ self._update_firmware_thread.deamon = True
+
+ self.connect()