Skip to content
Snippets Groups Projects
Commit 43e78f05 authored by David Hammer's avatar David Hammer
Browse files

Arbiter kernels get notified of new geometry

parent dc270d84
2 merge requests!120DetectorAssembler: go to ERROR if trying to match without geometry,!118Draft: MID: put arbiter on manager scene
......@@ -143,7 +143,10 @@ class BaseFrameSelectionArbiter(TrainMatcher.TrainMatcher):
self, on_success={"state": "PASSIVE"}
)
geom_utils.subscribe_to_geometry_bound(self, self.get("geometryDevice"))
self._geometry = None
geom_utils.subscribe_to_geometry_bound(
self, self.get("geometryDevice"), on_geometry=self._on_geometry
)
def _guess_number_of_frames(self, sources):
# TODO: robust frame deduction
......@@ -256,6 +259,9 @@ class SimpleFrameSelectionArbiter(BaseFrameSelectionArbiter):
self.info["trainId"] = train_id
self.rate_out.update()
def _on_geometry(self, geometry):
self.kernel.on_new_geometry(geometry)
@KARABO_CLASSINFO("AdvancedFrameSelectionArbiter", deviceVersion)
class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter):
......@@ -509,3 +515,7 @@ class AdvancedFrameSelectionArbiter(BaseFrameSelectionArbiter):
kernel_prefix = f"frameSelection.selections.{name}"
if conf.has(kernel_prefix):
kernel.reconfigure(conf[kernel_prefix])
def _on_geometry(self, geometry):
for kernel in self._selection_kernels.values()
kernel.on_new_geometry(geometry)
......@@ -13,10 +13,6 @@ class BaseArbiterKernel:
self._name = name
self.reconfigure(config)
@property
def geometry(self):
return self._device._geometry
@staticmethod
def extend_device_schema(schema, prefix):
"""Should add configurability to the arbiter (matcher) the kernel will be
......@@ -38,6 +34,15 @@ class BaseArbiterKernel:
def reconfigure(self, config):
pass
@property
def geometry(self):
"""Same as BaseCorrectionAddon.geometry"""
return self._device._geometry
def on_new_geometry(self, geometry):
"""Same as BaseCorrectionAddon.on_new_geometry"""
pass
class Assign(BaseArbiterKernel):
def consider(self, tid, src, nframes, mask, out):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment