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()