fix(PreviewSignal): use dotted name instead of signal name

This commit is contained in:
wakonig_k 2025-05-30 14:28:24 +02:00 committed by Klaus Wakonig
parent ed9d8136b8
commit 780cc641c6
3 changed files with 17 additions and 9 deletions

View File

@ -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")

View File

@ -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

View File

@ -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