fix(dynamic-signal): Add max_size as required input to dynamic signal

This commit is contained in:
2026-02-09 17:00:40 +01:00
parent c244f4528b
commit 713816560a

View File

@@ -670,6 +670,7 @@ class DynamicSignal(BECMessageSignal):
self, self,
*, *,
name: str, name: str,
max_size: int,
signals: list[str] | Callable[[], list[str]] | str | None = None, signals: list[str] | Callable[[], list[str]] | str | None = None,
value: messages.DeviceMessage | dict | None = None, value: messages.DeviceMessage | dict | None = None,
async_update: dict[Literal["type", "max_shape", "index"], Any] | None = None, async_update: dict[Literal["type", "max_shape", "index"], Any] | None = None,
@@ -681,6 +682,7 @@ class DynamicSignal(BECMessageSignal):
Args: Args:
name (str): The name of the signal group. name (str): The name of the signal group.
max_size (int): The maximum number of entries in the signal group. This is required for BEC to know how much data to expect.
signal_names (list[str] | Callable): Names of all signals. Can be a list or a callable. signal_names (list[str] | Callable): Names of all signals. Can be a list or a callable.
value (DeviceMessage | dict | None): The initial value of the signal. Defaults to None. value (DeviceMessage | dict | None): The initial value of the signal. Defaults to None.
acquisition_group (Literal["baseline", "monitored"] | str | None): The acquisition group of the signal group. acquisition_group (Literal["baseline", "monitored"] | str | None): The acquisition group of the signal group.
@@ -710,6 +712,7 @@ class DynamicSignal(BECMessageSignal):
value=value, value=value,
bec_message_type=kwargs.pop("bec_message_type", messages.DeviceMessage), bec_message_type=kwargs.pop("bec_message_type", messages.DeviceMessage),
acquisition_group=acquisition_group, acquisition_group=acquisition_group,
signal_metadata={"max_size": max_size},
**kwargs, **kwargs,
) )
@@ -910,7 +913,7 @@ class AsyncMultiSignal(DynamicSignal):
value=value, value=value,
bec_message_type=messages.DeviceMessage, bec_message_type=messages.DeviceMessage,
async_update=async_update, async_update=async_update,
signal_metadata={"max_size": max_size}, max_size=max_size,
acquisition_group=acquisition_group, acquisition_group=acquisition_group,
signals=signals, signals=signals,
**kwargs, **kwargs,
@@ -965,7 +968,7 @@ class AsyncSignal(DynamicSignal):
value=value, value=value,
bec_message_type=messages.DeviceMessage, bec_message_type=messages.DeviceMessage,
async_update=async_update, async_update=async_update,
signal_metadata={"max_size": max_size}, max_size=max_size,
acquisition_group=acquisition_group, acquisition_group=acquisition_group,
signals=None, signals=None,
**kwargs, **kwargs,