From 6210135b927c194fdf26c3cb728fa55c3e94fe09 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 12 Jul 2019 08:14:28 +0200 Subject: [PATCH 1/2] Send the correct action name when using local network --- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 1 + plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 6 ++++++ .../src/ClusterUM3PrinterOutputController.py | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 8d872d33f5..8d94f41ea5 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -422,6 +422,7 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice): return [print_job for print_job in self._print_jobs if print_job.assignedPrinter is not None and print_job.state != "queued"] + ## Set the remote print job state. def setJobState(self, print_job_uuid: str, state: str) -> None: self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, state) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index 6fbb115601..dd69a7fe35 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -390,6 +390,12 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): data = "{\"force\": true}" self.put("print_jobs/{uuid}".format(uuid=print_job_uuid), data, on_finished=None) + # Set the remote print job state. + def setJobState(self, print_job_uuid: str, state: str) -> None: + # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints. + data = "{\"action\": \"%s\"}" % "print" if state == "resume" else state + self.put("print_jobs/%s/action" % print_job_uuid, data, on_finished=None) + def _printJobStateChanged(self) -> None: username = self._getUserName() diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py b/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py index 370cfc9008..7273e01f0f 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py @@ -7,6 +7,7 @@ MYPY = False if MYPY: from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel + class ClusterUM3PrinterOutputController(PrinterOutputController): def __init__(self, output_device): super().__init__(output_device) @@ -16,5 +17,4 @@ class ClusterUM3PrinterOutputController(PrinterOutputController): self.can_send_raw_gcode = False def setJobState(self, job: "PrintJobOutputModel", state: str): - data = "{\"action\": \"%s\"}" % state - self._output_device.put("print_jobs/%s/action" % job.key, data, on_finished=None) + self._output_device.setJobState(job.key, state) From 25130b63e2a98f50f5cfc76b10f7a72a6de4c372 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 12 Jul 2019 09:19:30 +0200 Subject: [PATCH 2/2] Fix logic --- plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py | 3 ++- .../src/ClusterUM3PrinterOutputController.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py index dd69a7fe35..5344fe2021 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py @@ -393,7 +393,8 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice): # Set the remote print job state. def setJobState(self, print_job_uuid: str, state: str) -> None: # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints. - data = "{\"action\": \"%s\"}" % "print" if state == "resume" else state + action = "print" if state == "resume" else state + data = "{\"action\": \"%s\"}" % action self.put("print_jobs/%s/action" % print_job_uuid, data, on_finished=None) def _printJobStateChanged(self) -> None: diff --git a/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py b/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py index 7273e01f0f..103be8b01e 100644 --- a/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py +++ b/plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py @@ -16,5 +16,5 @@ class ClusterUM3PrinterOutputController(PrinterOutputController): self.can_control_manually = False self.can_send_raw_gcode = False - def setJobState(self, job: "PrintJobOutputModel", state: str): + def setJobState(self, job: "PrintJobOutputModel", state: str) -> None: self._output_device.setJobState(job.key, state)