From debbe2d5aa701704c5c23ef5d406ca1eb5a1ed6c Mon Sep 17 00:00:00 2001 From: David Hammer <dhammer@mailbox.org> Date: Wed, 26 Jan 2022 21:11:19 +0100 Subject: [PATCH] Update geom on reconfigure for manual module geom --- src/calng/manual_geometry_base.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/calng/manual_geometry_base.py b/src/calng/manual_geometry_base.py index c80b6e08..ee3748fc 100644 --- a/src/calng/manual_geometry_base.py +++ b/src/calng/manual_geometry_base.py @@ -112,7 +112,11 @@ class ManualGeometryBase(PythonDevice): self.KARABO_SLOT(self.requestScene) self.update_geom() plt.switch_backend("agg") + self.registerInitialFunction(self._initialization) + + def _initialization(self): self.updateState(State.ON) + self.pleaseSendYourGeometry() def requestScene(self, params): payload = Hash() @@ -132,6 +136,7 @@ class ManualGeometryBase(PythonDevice): self.reply(response) def pleaseSendYourGeometry(self): + self.update_geom() self.writeChannel("geometryOutput", Hash("pickledGeometry", self.pickled)) axis = self.geom.inspect() axis.figure.tight_layout(pad=0) @@ -152,11 +157,6 @@ class ManualGeometryBase(PythonDevice): self._prereconfigure_update_hash = config def postReconfigure(self): - if any( - path.startswith("quadrantCorners") - for path in self._prereconfigure_update_hash.getPaths() - ): - self.update_geom() del self._prereconfigure_update_hash @@ -184,6 +184,15 @@ class ManualQuadrantsGeometryBase(ManualGeometryBase): .commit(), ) + def postReconfigure(self): + if any( + path.startswith("quadrantCorners") + for path in self._prereconfigure_update_hash.getPaths() + ): + self.update_geom() + + super().postReconfigure() + def update_geom(self): self.quadrant_corners = tuple( (self.get(f"quadrantCorners.Q{q}.x"), self.get(f"quadrantCorners.Q{q}.y")) @@ -209,6 +218,12 @@ class ManualModulesGeometryBase(ManualGeometryBase): .commit(), ) + def postReconfigure(self): + if self._prereconfigure_update_hash.has("modules"): + self.update_geom() + + super().postReconfigure() + def update_geom(self): modules = self.get("modules") module_pos = [(module.get("posX"), module.get("posY")) for module in modules] -- GitLab