mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-09 07:56:22 -06:00
Camera image is now also retrieved
CURA-338
This commit is contained in:
parent
1220d32ca5
commit
cadf5d85b7
1 changed files with 15 additions and 2 deletions
|
@ -9,6 +9,7 @@ from cura.PrinterOutputDevice import PrinterOutputDevice, ConnectionState
|
||||||
|
|
||||||
from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager
|
from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager
|
||||||
from PyQt5.QtCore import QUrl, QTimer
|
from PyQt5.QtCore import QUrl, QTimer
|
||||||
|
from PyQt5.QtGui import QPixmap
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
@ -52,6 +53,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self._print_job_request = None
|
self._print_job_request = None
|
||||||
self._print_job_reply = None
|
self._print_job_reply = None
|
||||||
|
|
||||||
|
self._image_request = None
|
||||||
|
self._image_reply = None
|
||||||
|
|
||||||
self._post_request = None
|
self._post_request = None
|
||||||
self._post_reply = None
|
self._post_reply = None
|
||||||
self._post_multi_part = None
|
self._post_multi_part = None
|
||||||
|
@ -65,6 +69,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self._update_timer.setSingleShot(False)
|
self._update_timer.setSingleShot(False)
|
||||||
self._update_timer.timeout.connect(self._update)
|
self._update_timer.timeout.connect(self._update)
|
||||||
|
|
||||||
|
self._camera_image = QPixmap()
|
||||||
|
|
||||||
## Get the unique key of this machine
|
## Get the unique key of this machine
|
||||||
# \return key String containing the key of the machine.
|
# \return key String containing the key of the machine.
|
||||||
def getKey(self):
|
def getKey(self):
|
||||||
|
@ -81,6 +87,11 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self._print_job_request = QNetworkRequest(url)
|
self._print_job_request = QNetworkRequest(url)
|
||||||
self._print_job_reply = self._manager.get(self._print_job_request)
|
self._print_job_reply = self._manager.get(self._print_job_request)
|
||||||
|
|
||||||
|
## Request new image
|
||||||
|
url = QUrl("http://" + self._address +":8080/?action=snapshot")
|
||||||
|
self._image_request = QNetworkRequest(url)
|
||||||
|
self._image_reply = self._manager.get(self._image_request)
|
||||||
|
|
||||||
## Convenience function that gets information from the received json data and converts it to the right internal
|
## Convenience function that gets information from the received json data and converts it to the right internal
|
||||||
# values / variables
|
# values / variables
|
||||||
def _spliceJSONData(self):
|
def _spliceJSONData(self):
|
||||||
|
@ -116,7 +127,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self._update_timer.start()
|
self._update_timer.start()
|
||||||
|
|
||||||
def getCameraImage(self):
|
def getCameraImage(self):
|
||||||
pass # TODO: This still needs to be implemented (we don't have a place to show it now anyway)
|
return self._camera_image
|
||||||
|
|
||||||
def startPrint(self):
|
def startPrint(self):
|
||||||
if self._progress != 0:
|
if self._progress != 0:
|
||||||
|
@ -183,7 +194,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
|
||||||
self.setProgress(progress)
|
self.setProgress(progress)
|
||||||
elif reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 404:
|
elif reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 404:
|
||||||
self.setProgress(0) # No print job found, so there can't be progress!
|
self.setProgress(0) # No print job found, so there can't be progress!
|
||||||
|
elif "snapshot" in reply.url().toString(): # Status update from image:
|
||||||
|
if reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) == 200:
|
||||||
|
self._camera_image.loadFromData(reply.readAll())
|
||||||
elif reply.operation() == QNetworkAccessManager.PostOperation:
|
elif reply.operation() == QNetworkAccessManager.PostOperation:
|
||||||
reply.uploadProgress.disconnect(self._onUploadProgress)
|
reply.uploadProgress.disconnect(self._onUploadProgress)
|
||||||
self._progress_message.hide()
|
self._progress_message.hide()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue