From 63eff57ec441b19428d53d6ba6301d996d487edb Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Mon, 3 Mar 2025 18:51:00 +0100 Subject: [PATCH] fix(sim): moved SimWaveform and SimMonitor to new async update structure --- ophyd_devices/sim/sim_monitor.py | 9 ++++++++- ophyd_devices/sim/sim_waveform.py | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ophyd_devices/sim/sim_monitor.py b/ophyd_devices/sim/sim_monitor.py index 635df39..1d7c7e9 100644 --- a/ophyd_devices/sim/sim_monitor.py +++ b/ophyd_devices/sim/sim_monitor.py @@ -176,7 +176,14 @@ class SimMonitorAsync(PSIDeviceBase, SimMonitorAsyncControl): def _send_data_to_bec(self) -> None: """Sends bundled data to BEC""" - metadata = {"async_update": self.async_update.get()} + async_update = self.async_update.get() + if async_update not in ["extend", "append"]: + raise ValueError(f"Invalid async_update value for device {self.name}: {async_update}") + + if async_update == "extend": + metadata = {"async_update": {"type": "add", "max_shape": [None]}} + elif async_update == "append": + metadata = {"async_update": {"type": "add", "max_shape": [None, None]}} msg = messages.DeviceMessage( signals={self.readback.name: self.data_buffer}, metadata=metadata diff --git a/ophyd_devices/sim/sim_waveform.py b/ophyd_devices/sim/sim_waveform.py index e57fa3a..ea4af98 100644 --- a/ophyd_devices/sim/sim_waveform.py +++ b/ophyd_devices/sim/sim_waveform.py @@ -133,7 +133,13 @@ class SimWaveform(Device): async_update_type = self.async_update.get() if async_update_type not in ["extend", "append"]: raise ValueError(f"Invalid async_update type: {async_update_type}") - metadata = {"async_update": async_update_type} + + waveform_shape = self.waveform_shape.get() + if async_update_type == "append": + metadata = {"async_update": {"type": "add", "max_shape": [None, waveform_shape]}} + else: + metadata = {"async_update": {"type": "add", "max_shape": [None]}} + msg = messages.DeviceMessage( signals={self.waveform.name: {"value": self.waveform.get(), "timestamp": time.time()}}, metadata=metadata,