Merge branch '2.3' of github.com:Ultimaker/JediWifiPrintingPlugin

This commit is contained in:
Jaime van Kessel 2016-10-15 14:34:35 +02:00
commit 49b84facac

View file

@ -230,6 +230,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
url = QUrl("http://" + self._address + ":8080/?action=snapshot")
image_request = QNetworkRequest(url)
self._manager.get(image_request)
self._last_request_time = time()
## Set the authentication state.
# \param auth_state \type{AuthState} Enum value representing the new auth state
@ -313,11 +314,13 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
if self._last_response_time and self._connection_state_before_timeout:
if time_since_last_response > self._recreate_network_manager_time * self._recreate_network_manager_count:
self._recreate_network_manager_count += 1
counter = 0 # Counter to prevent possible indefinite while loop.
# It can happen that we had a very long timeout (multiple times the recreate time).
# In that case we should jump through the point that the next update won't be right away.
while time_since_last_response - self._recreate_network_manager_time * self._recreate_network_manager_count > self._recreate_network_manager_time:
while time_since_last_response - self._recreate_network_manager_time * self._recreate_network_manager_count > self._recreate_network_manager_time and counter < 10:
counter += 1
self._recreate_network_manager_count += 1
Logger.log("d", "Timeout lasted over 30 seconds (%.1fs), re-checking connection.", time_since_last_response)
Logger.log("d", "Timeout lasted over %.0f seconds (%.1fs), re-checking connection.", self._recreate_network_manager_time, time_since_last_response)
self._createNetworkManager()
return
@ -439,6 +442,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
def close(self):
Logger.log("d", "Closing connection of printer %s with ip %s", self._key, self._address)
self._updateJobState("")
self.setConnectionState(ConnectionState.closed)
if self._progress_message:
@ -464,6 +468,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# Reset timeout state
self._connection_state_before_timeout = None
self._last_response_time = time()
self._last_request_time = None
# Stop update timers
self._update_timer.stop()
@ -490,7 +495,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
print_information = Application.getInstance().getPrintInformation()
# Check if PrintCores / materials are loaded at all. Any failure in these results in an Error.
# Check if print cores / materials are loaded at all. Any failure in these results in an error.
for index in range(0, self._num_extruders):
if print_information.materialLengths[index] != 0:
if self._json_printer_state["heads"][0]["extruders"][index]["hotend"]["id"] == "":
@ -630,6 +635,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._compressing_print = False
if self._post_reply:
self._post_reply.abort()
self._post_reply = None
Application.getInstance().showPrintMonitor.emit(False)
## Attempt to start a new print.
@ -746,6 +752,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._post_reply.abort()
self._post_reply.uploadProgress.disconnect(self._onUploadProgress)
Logger.log("d", "Uploading of print failed after %s", time() - self._send_gcode_start)
self._post_reply = None
self._progress_message.hide()
self.setConnectionState(ConnectionState.error)
@ -900,6 +907,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
elif "print_job" in reply_url:
reply.uploadProgress.disconnect(self._onUploadProgress)
Logger.log("d", "Uploading of print succeeded after %s", time() - self._send_gcode_start)
# Only reset the _post_reply if it was the same one.
if reply == self._post_reply:
self._post_reply = None
self._progress_message.hide()
elif reply.operation() == QNetworkAccessManager.PutOperation: