fix(waveform): deprecation warning if device is using old device_async_readback

This commit is contained in:
2026-06-18 15:36:26 +02:00
committed by Jan Wyzula
parent 9c4ff5403d
commit 4ded287788
@@ -1781,10 +1781,15 @@ class Waveform(PlotBase):
stream_key = (name, stream) # AsyncMultiSignal sub-signals share `stream`
new_endpoint = MessageEndpoints.device_async_signal(self.scan_id, name, stream)
old_endpoint = MessageEndpoints.device_async_signal(self.old_scan_id, name, stream)
legacy_endpoint = False
else:
# No BEC async signal (AsyncSignal/AsyncMultiSignal/DynamicSignal) was found
# for this curve, so it must be served by the deprecated per-device
# device_async_readback endpoint.
stream_key = (name, None) # old endpoint is keyed by device only
new_endpoint = MessageEndpoints.device_async_readback(self.scan_id, name)
old_endpoint = MessageEndpoints.device_async_readback(self.old_scan_id, name)
legacy_endpoint = True
endpoint_str = getattr(new_endpoint, "endpoint", new_endpoint)
@@ -1798,6 +1803,16 @@ class Waveform(PlotBase):
)
return
# TODO implement deprecation warning when simulations are migrated
# if legacy_endpoint:
# logger.warning(
# f"Deprecated async endpoint in use: device '{name}' provides async data via the "
# f"legacy 'device_async_readback' endpoint ('{endpoint_str}'). Migrate the device "
# "to an AsyncSignal/AsyncMultiSignal/DynamicSignal so it publishes on the "
# "'device_async_signal' endpoint; support for 'device_async_readback' in the "
# "waveform widget will be removed in a future release."
# )
self._async_streams_setup[stream_key] = [signal]
self.bec_dispatcher.disconnect_slot(self.on_async_readback, old_endpoint)
self.bec_dispatcher.connect_slot(