diff --git a/ophyd_devices/sim/__init__.py b/ophyd_devices/sim/__init__.py index e180c00..3c8036c 100644 --- a/ophyd_devices/sim/__init__.py +++ b/ophyd_devices/sim/__init__.py @@ -1,2 +1,9 @@ -from .sim import SynAxisMonitor, SynAxisOPAAS, SynFlyer, SynSignalRO, SynSLSDetector +from .sim import ( + SynAxisMonitor, + SynAxisOPAAS, + SynDynamicComponents, + SynFlyer, + SynSignalRO, + SynSLSDetector, +) from .sim_xtreme import SynXtremeOtf diff --git a/ophyd_devices/sim/sim.py b/ophyd_devices/sim/sim.py index 031c616..d1e3607 100644 --- a/ophyd_devices/sim/sim.py +++ b/ophyd_devices/sim/sim.py @@ -5,9 +5,11 @@ import warnings from typing import List import numpy as np -from bec_lib import messages, MessageEndpoints, bec_logger +from bec_lib import MessageEndpoints, bec_logger, messages from ophyd import Component as Cpt -from ophyd import Device, DeviceStatus, OphydObject, PositionerBase, Signal +from ophyd import Device, DeviceStatus +from ophyd import DynamicDeviceComponent as Dcpt +from ophyd import OphydObject, PositionerBase, Signal from ophyd.sim import EnumSignal, SynSignal, _ReadbackSignal, _SetpointSignal from ophyd.utils import LimitError, ReadOnlyError @@ -865,6 +867,10 @@ class SynGaussBEC(Device): return self.val.get() +class SynDynamicComponents(Device): + messages = Dcpt({f"message{i}": (SynSignal, None, {"name": f"msg{i}"}) for i in range(1, 6)}) + + class SynDeviceSubOPAAS(Device): zsub = Cpt(SynAxisOPAAS, name="zsub")