Source code for csaxs_bec.devices.pseudo_devices.signal_forwarder

"""
Pseudo device that forwards a single BEC signal 1:1.
"""

from ophyd import Component as Cpt
from ophyd import Kind, Signal
from ophyd_devices.interfaces.base_classes.psi_pseudo_device_base import PSIPseudoDeviceBase
from ophyd_devices.utils.bec_processed_signal import BECProcessedSignal


[docs] class SignalForwarder(PSIPseudoDeviceBase): """Forward one signal unchanged.""" signal = Cpt( BECProcessedSignal, name="signal", model_config=None, # kind=Kind.config, kind=Kind.normal, doc="Forwarded signal", ) def __init__(self, name, signal: str, device_manager=None, scan_info=None, **kwargs): super().__init__(name=name, device_manager=device_manager, scan_info=scan_info, **kwargs) src = self.signal.get_device_object_from_bec( object_name=signal, signal_name=self.name, device_manager=device_manager ) self.signal.set_compute_method(self._compute_signal, signal=src) def _compute_signal(self, signal: Signal) -> float: return signal.get()