From 40c0ac932718155ae1e8e37e7b2357543d6dfaf8 Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Mon, 7 Aug 2023 15:02:18 +0200
Subject: [PATCH] Tell addon about device, addon can get geometry that way

---
 src/calng/base_correction.py              | 2 ++
 src/calng/correction_addons/base_addon.py | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/src/calng/base_correction.py b/src/calng/base_correction.py
index b4092342..6ad0441f 100644
--- a/src/calng/base_correction.py
+++ b/src/calng/base_correction.py
@@ -767,6 +767,8 @@ class BaseCorrection(PythonDevice):
             for addon_class in self._available_addons
             if self.get(f"addons.{addon_class._node_name}.enable")
         ]
+        for addon in self._enabled_addons:
+            addon._device = self
         if self._enabled_addons:
             schema_override = Schema()
             output_schema_override = self._base_output_schema
diff --git a/src/calng/correction_addons/base_addon.py b/src/calng/correction_addons/base_addon.py
index ef7d0dee..ab134120 100644
--- a/src/calng/correction_addons/base_addon.py
+++ b/src/calng/correction_addons/base_addon.py
@@ -20,6 +20,12 @@ class BaseCorrectionAddon:
         """Will be given the node from extend_device_schema, no prefix needed here"""
         pass
 
+    @property
+    def geometry(self):
+        """Helper to get current geometry (host device should be monitoring a geometry
+        device)"""
+        return self._device._geometry
+
     def post_correction(self, processed_data, cell_table, pulse_table, output_hash):
         """Called directly after correction has happened. Processed data will still be
         on GPU if the correction device is generally running in GPU mode."""
-- 
GitLab