From f58e7cb057025854ccbc0d8bf99c06a0b92226f1 Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Fri, 30 May 2025 14:28:24 +0200 Subject: [PATCH] fix(PreviewSignal): use dotted name instead of signal name --- ophyd_devices/sim/sim_test_devices.py | 4 +++- ophyd_devices/utils/bec_signals.py | 18 ++++++++++++------ tests/test_utils.py | 4 ++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ophyd_devices/sim/sim_test_devices.py b/ophyd_devices/sim/sim_test_devices.py index 2c8f0a2..99b1000 100644 --- a/ophyd_devices/sim/sim_test_devices.py +++ b/ophyd_devices/sim/sim_test_devices.py @@ -322,7 +322,9 @@ class SimCameraWithStageStatus(SimCamera): class SimCameraWithPSIComponents(SimCamera): """Test Device for PSIComponents""" - preview_2d = Cpt(PreviewSignal, ndim=2, doc="2D preview signal", num_rot90=2, transpose=True) + preview_2d = Cpt( + PreviewSignal, ndim=2, doc="2D preview signal", num_rotation_90=2, transpose=True + ) preview_1d = Cpt(PreviewSignal, ndim=1, doc="1D preview signal") file_event = Cpt(FileEventSignal, doc="File event signal") progress = Cpt(ProgressSignal, doc="Progress signal") diff --git a/ophyd_devices/utils/bec_signals.py b/ophyd_devices/utils/bec_signals.py index 21fa95f..abad070 100644 --- a/ophyd_devices/utils/bec_signals.py +++ b/ophyd_devices/utils/bec_signals.py @@ -315,7 +315,7 @@ class PreviewSignal(BECMessageSignal): *, name: str, ndim: Literal[1, 2], - num_rot90: Literal[0, 1, 2, 3] = 0, + num_rotation_90: Literal[0, 1, 2, 3] = 0, transpose: bool = False, value: dict | None = None, **kwargs, @@ -334,7 +334,11 @@ class PreviewSignal(BECMessageSignal): value=value, bec_message_type=messages.DevicePreviewMessage, kind=Kind.omitted, - signal_metadata={"ndim": ndim, "num_rot90": num_rot90, "transpose": transpose}, + signal_metadata={ + "ndim": ndim, + "num_rotation_90": num_rotation_90, + "transpose": transpose, + }, **kwargs, ) @@ -356,18 +360,20 @@ class PreviewSignal(BECMessageSignal): value (list | np.ndarray | dict | self._bec_message_type): The preview data. Must be 1D. metadata (dict | None): Additional metadata. If dict or self._bec_message_type is passed, it will be ignored. """ + signal_name = self.dotted_name or self.name + device_name = self.parent.name if isinstance(value, self._bec_message_type): return super().put(value, **kwargs) if isinstance(value, dict): - value["device"] = self.parent.name - value["signal"] = self.name + value["device"] = device_name + value["signal"] = signal_name return super().put(value, **kwargs) - device = self.parent.name + if isinstance(value, list): value = np.array(value) try: msg = self._bec_message_type( - data=value, device=device, signal=self.name, metadata=metadata + data=value, device=device_name, signal=signal_name, metadata=metadata ) except ValidationError as exc: raise ValueError(f"Error setting signal {self.name}: {exc}") from exc diff --git a/tests/test_utils.py b/tests/test_utils.py index 9c5173e..23d778e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -335,7 +335,7 @@ def test_utils_preview_1d_signal(): "source": "BECMessageSignal:preview_1d_signal", "dtype": "DevicePreviewMessage", "shape": [], - "signal_metadata": {"ndim": 1, "num_rot90": 0, "transpose": False}, + "signal_metadata": {"ndim": 1, "num_rotation_90": 0, "transpose": False}, } } # Put works with Message @@ -387,7 +387,7 @@ def test_utils_preview_2d_signal(): "source": "BECMessageSignal:preview_2d_signal", "dtype": "DevicePreviewMessage", "shape": [], - "signal_metadata": {"ndim": 2, "num_rot90": 0, "transpose": False}, + "signal_metadata": {"ndim": 2, "num_rotation_90": 0, "transpose": False}, } } # Put works with Message