From 06b1dfe62b2001662863b7bff94363ea6a6fb96f Mon Sep 17 00:00:00 2001
From: David Hammer <dhammer@mailbox.org>
Date: Tue, 25 Jan 2022 10:42:04 +0100
Subject: [PATCH] Tweak manager to support new assembler

---
 src/calng/CalibrationManager.py | 29 +++++++++++------------------
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/calng/CalibrationManager.py b/src/calng/CalibrationManager.py
index 59f485f0..07f12772 100644
--- a/src/calng/CalibrationManager.py
+++ b/src/calng/CalibrationManager.py
@@ -82,14 +82,6 @@ class ClassIdsNode(Configurable):
         accessMode=AccessMode.INITONLY,
         assignment=Assignment.MANDATORY)
 
-    previewMatcherClass = String(
-        displayedName='Preview matcher class',
-        description='Device class to use for matching the output of a preview '
-                    'layer.',
-        defaultValue='ModuleStacker',
-        accessMode=AccessMode.INITONLY,
-        assignment=Assignment.MANDATORY)
-
     assemblerClass = String(
         displayedName='Assembler class',
         description='Device class to use for assembling the matched output of '
@@ -125,14 +117,6 @@ class DeviceIdsNode(Configurable):
         accessMode=AccessMode.INITONLY,
         assignment=Assignment.MANDATORY)
 
-    previewMatcherSuffix = String(
-        displayedName='Preview matcher suffix',
-        description='Suffix for preview layer matching device IDs. The '
-                    'formatting placeholder \'layer\' may be used.',
-        defaultValue='MATCH_{layer}',
-        accessMode=AccessMode.INITONLY,
-        assignment=Assignment.MANDATORY)
-
     assemblerSuffix = String(
         displayedName='Assembler suffix',
         description='Suffix for assembler device IDs. The formatting '
@@ -408,6 +392,13 @@ class CalibrationManager(DeviceClientBase, Device):
         self.deviceServers = value
         self._servers_changed = True
 
+    imageDataPath = String(
+        displayedName='Image data path',
+        description='Path in DAQ hash to actual image data, used for preview',
+        accessMode=AccessMode.RECONFIGURABLE,
+        assignment=Assignment.OPTIONAL,
+        defaultValue='image.data')
+
     geometryDevice = String(
         displayedName='Geometry device',
         description='[NYI] Device ID for a geometry device defining the '
@@ -1055,7 +1046,7 @@ class CalibrationManager(DeviceClientBase, Device):
         device_id_templates = {}
 
         class_args = (self.detectorType.value.lower().capitalize(),)
-        for role in ['correction', 'groupMatcher', 'bridge', 'previewMatcher',
+        for role in ['correction', 'groupMatcher', 'bridge',
                      'assembler']:
             class_ids[role] = getattr(
                 self.classIds, f'{role}Class').value.format(*class_args)
@@ -1194,13 +1185,15 @@ class CalibrationManager(DeviceClientBase, Device):
 
                     background(_activate_bridge(bridge_device_id))
 
-        # Instantiate preview assemblers.
+        # Instantiate preview layer assemblers.
         geometry_device_id = self.geometryDevice.value
         for layer, output_pipeline, server in self.previewLayers.value:
             assembler_device_id = device_id_templates['assembler'].format(
                 layer=layer)
 
             config = Hash()
+            # TODO: put _image_data_path in corr dev schema, get from there
+            config['pathToStack'] = self.imageDataPath.value
             config['fastSources'] = [
                 Hash('fsSelect', True,
                      'fsSource',
-- 
GitLab