diff --git a/csaxs_bec/bec_ipython_client/plugins/omny/omny_rt.py b/csaxs_bec/bec_ipython_client/plugins/omny/omny_rt.py index 901b0a12..f1b8c4af 100644 --- a/csaxs_bec/bec_ipython_client/plugins/omny/omny_rt.py +++ b/csaxs_bec/bec_ipython_client/plugins/omny/omny_rt.py @@ -22,9 +22,19 @@ class OMNY_rt_client: def __init__(self): self.mirror_channel = -1 self.mirror_amplitutde_increase = 0 + # Loaded lazily on first use so the OMNY session can start while rt is disabled/off. self.mirror_parameters = {} - for j in range(1, 9): - self.mirror_parameters[j] = dev.rtx.controller.get_mirror_parameters(j) + + def _load_mirror_parameters(self): + if self.mirror_parameters: + return + if not dev.rtx.enabled: + raise OMNY_rt_clientError( + "Device rtx is disabled; cannot read interferometer mirror parameters." + ) + self.mirror_parameters = { + j: dev.rtx.controller.get_mirror_parameters(j) for j in range(1, 9) + } @staticmethod def _get_user_param_safe(device, var): @@ -42,6 +52,7 @@ class OMNY_rt_client: self._tweak_interferometer() def _tweak_interferometer(self): + self._load_mirror_parameters() self.mirror_channel = -1 # Save the current terminal settings