From fde70a7f05855715dd916cd5e4e29d82b8178b5a Mon Sep 17 00:00:00 2001 From: Robert Tuck Date: Fri, 20 Sep 2024 16:48:43 +0100 Subject: [PATCH] Add load_centre_collect to the experiment registry --- .../experiment_plans/experiment_registry.py | 9 +++++++++ .../callbacks/common/callback_util.py | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py b/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py index 860608624..c07a9f05c 100644 --- a/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py +++ b/src/mx_bluesky/hyperion/experiment_plans/experiment_registry.py @@ -7,12 +7,14 @@ import mx_bluesky.hyperion.experiment_plans.rotation_scan_plan as rotation_scan_plan from mx_bluesky.hyperion.experiment_plans import ( grid_detect_then_xray_centre_plan, + load_centre_collect_full_plan, pin_centre_then_xray_centre_plan, robot_load_then_centre_plan, ) from mx_bluesky.hyperion.external_interaction.callbacks.common.callback_util import ( CallbacksFactory, create_gridscan_callbacks, + create_load_centre_collect_callbacks, create_robot_load_and_centre_callbacks, create_rotation_callbacks, ) @@ -22,6 +24,7 @@ RobotLoadThenCentre, ThreeDGridScan, ) +from mx_bluesky.hyperion.parameters.load_centre_collect import LoadCentreCollect from mx_bluesky.hyperion.parameters.rotation import MultiRotationScan, RotationScan @@ -42,6 +45,7 @@ class ExperimentRegistryEntry(TypedDict): | MultiRotationScan | PinTipCentreThenXrayCentre | RobotLoadThenCentre + | LoadCentreCollect ] callbacks_factory: CallbacksFactory @@ -77,6 +81,11 @@ class ExperimentRegistryEntry(TypedDict): "param_type": MultiRotationScan, "callbacks_factory": create_rotation_callbacks, }, + "load_centre_collect_full_plan": { + "setup": load_centre_collect_full_plan.create_devices, + "param_type": LoadCentreCollect, + "callbacks_factory": create_load_centre_collect_callbacks, + }, } diff --git a/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py b/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py index d5be89bf5..9f5baff27 100644 --- a/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py +++ b/src/mx_bluesky/hyperion/external_interaction/callbacks/common/callback_util.py @@ -44,3 +44,21 @@ def create_rotation_callbacks() -> ( tuple[RotationNexusFileCallback, RotationISPyBCallback] ): return (RotationNexusFileCallback(), RotationISPyBCallback(emit=ZocaloCallback())) + + +def create_load_centre_collect_callbacks() -> ( + tuple[ + GridscanNexusFileCallback, + GridscanISPyBCallback, + RobotLoadISPyBCallback, + RotationNexusFileCallback, + RotationISPyBCallback, + ] +): + return ( + GridscanNexusFileCallback(), + GridscanISPyBCallback(emit=ZocaloCallback()), + RobotLoadISPyBCallback(), + RotationNexusFileCallback(), + RotationISPyBCallback(emit=ZocaloCallback()), + )