Skip to content
Snippets Groups Projects

Draft: Add simple assembler and manual geometry devices using extra_geom

Closed David Hammer requested to merge add-simple-assembler-geometry into add-agipd-device
1 file
+ 20
5
Compare changes
  • Side-by-side
  • Inline
@@ -112,7 +112,11 @@ class ManualGeometryBase(PythonDevice):
@@ -112,7 +112,11 @@ class ManualGeometryBase(PythonDevice):
self.KARABO_SLOT(self.requestScene)
self.KARABO_SLOT(self.requestScene)
self.update_geom()
self.update_geom()
plt.switch_backend("agg")
plt.switch_backend("agg")
 
self.registerInitialFunction(self._initialization)
 
 
def _initialization(self):
self.updateState(State.ON)
self.updateState(State.ON)
 
self.pleaseSendYourGeometry()
def requestScene(self, params):
def requestScene(self, params):
payload = Hash()
payload = Hash()
@@ -132,6 +136,7 @@ class ManualGeometryBase(PythonDevice):
@@ -132,6 +136,7 @@ class ManualGeometryBase(PythonDevice):
self.reply(response)
self.reply(response)
def pleaseSendYourGeometry(self):
def pleaseSendYourGeometry(self):
 
self.update_geom()
self.writeChannel("geometryOutput", Hash("pickledGeometry", self.pickled))
self.writeChannel("geometryOutput", Hash("pickledGeometry", self.pickled))
axis = self.geom.inspect()
axis = self.geom.inspect()
axis.figure.tight_layout(pad=0)
axis.figure.tight_layout(pad=0)
@@ -152,11 +157,6 @@ class ManualGeometryBase(PythonDevice):
@@ -152,11 +157,6 @@ class ManualGeometryBase(PythonDevice):
self._prereconfigure_update_hash = config
self._prereconfigure_update_hash = config
def postReconfigure(self):
def postReconfigure(self):
if any(
path.startswith("quadrantCorners")
for path in self._prereconfigure_update_hash.getPaths()
):
self.update_geom()
del self._prereconfigure_update_hash
del self._prereconfigure_update_hash
@@ -184,6 +184,15 @@ class ManualQuadrantsGeometryBase(ManualGeometryBase):
@@ -184,6 +184,15 @@ class ManualQuadrantsGeometryBase(ManualGeometryBase):
.commit(),
.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):
def update_geom(self):
self.quadrant_corners = tuple(
self.quadrant_corners = tuple(
(self.get(f"quadrantCorners.Q{q}.x"), self.get(f"quadrantCorners.Q{q}.y"))
(self.get(f"quadrantCorners.Q{q}.x"), self.get(f"quadrantCorners.Q{q}.y"))
@@ -209,6 +218,12 @@ class ManualModulesGeometryBase(ManualGeometryBase):
@@ -209,6 +218,12 @@ class ManualModulesGeometryBase(ManualGeometryBase):
.commit(),
.commit(),
)
)
 
def postReconfigure(self):
 
if self._prereconfigure_update_hash.has("modules"):
 
self.update_geom()
 
 
super().postReconfigure()
 
def update_geom(self):
def update_geom(self):
modules = self.get("modules")
modules = self.get("modules")
module_pos = [(module.get("posX"), module.get("posY")) for module in modules]
module_pos = [(module.get("posX"), module.get("posY")) for module in modules]
Loading