From d097babef154971ce2b91cc11fbed30a279dc4f7 Mon Sep 17 00:00:00 2001 From: x01dc Date: Wed, 4 Nov 2026 10:06:36 +0100 Subject: [PATCH] fix(omny): load rt mirror parameters lazily so OMNY session starts with rt disabled Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01M8zoDxn6TJjWYpbLoG2Y7N --- .../bec_ipython_client/plugins/omny/omny_rt.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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