From a712e7517a650580080728520c88f40cc5507211 Mon Sep 17 00:00:00 2001 From: "j.spijker@ultimaker.com" Date: Wed, 27 Jul 2022 18:12:25 +0200 Subject: [PATCH] Add the received slice_uuid to the print information Contributes to CURA-9031 --- cura/UI/PrintInformation.py | 10 ++++++++++ plugins/CuraEngineBackend/Cura.proto | 4 ++++ plugins/CuraEngineBackend/CuraEngineBackend.py | 5 +++++ 3 files changed, 19 insertions(+) diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py index e18fc38247..ce2a0cfed1 100644 --- a/cura/UI/PrintInformation.py +++ b/cura/UI/PrintInformation.py @@ -38,6 +38,8 @@ class PrintInformation(QObject): self.initializeCuraMessagePrintTimeProperties() + self._slice_uuid: Optional[str] = None + # Indexed by build plate number self._material_lengths = {} # type: Dict[int, List[float]] self._material_weights = {} # type: Dict[int, List[float]] @@ -132,6 +134,14 @@ class PrintInformation(QObject): self._updateJobName() self.preSlicedChanged.emit() + @property + def slice_uuid(self) -> Optional[str]: + return self._slice_uuid + + @slice_uuid.setter + def slice_uuid(self, value: Optional[str]) -> None: + self._slice_uuid = value + @pyqtProperty(QObject, notify = currentPrintTimeChanged) def currentPrintTime(self) -> Duration: return self._current_print_time[self._active_build_plate] diff --git a/plugins/CuraEngineBackend/Cura.proto b/plugins/CuraEngineBackend/Cura.proto index 2eabe62366..b420a6ecc2 100644 --- a/plugins/CuraEngineBackend/Cura.proto +++ b/plugins/CuraEngineBackend/Cura.proto @@ -139,5 +139,9 @@ message GCodePrefix { bytes data = 2; //Header string to be prepended before the rest of the g-code sent from the engine. } +message SliceUUID { + string slice_uuid = 1; //The UUID of the slice. +} + message SlicingFinished { } diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 18088a99c6..db27f8a6a3 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -124,6 +124,7 @@ class CuraEngineBackend(QObject, Backend): self._message_handlers["cura.proto.Progress"] = self._onProgressMessage self._message_handlers["cura.proto.GCodeLayer"] = self._onGCodeLayerMessage self._message_handlers["cura.proto.GCodePrefix"] = self._onGCodePrefixMessage + self._message_handlers["cura.proto.SliceUUID"] = self._onSliceUUIDMessage self._message_handlers["cura.proto.PrintTimeMaterialEstimates"] = self._onPrintTimeMaterialEstimates self._message_handlers["cura.proto.SlicingFinished"] = self._onSlicingFinishedMessage @@ -812,6 +813,10 @@ class CuraEngineBackend(QObject, Backend): except KeyError: # Can occur if the g-code has been cleared while a slice message is still arriving from the other end. pass # Throw the message away. + def _onSliceUUIDMessage(self, message: Arcus.PythonMessage) -> None: + application = CuraApplication.getInstance() + application.getPrintInformation().slice_uuid = message.slice_uuid + def _createSocket(self, protocol_file: str = None) -> None: """Creates a new socket connection."""