feat: add precision to ComputedSignal

This commit is contained in:
Xiaoqiang Wang
2024-07-02 13:58:21 +02:00
committed by wang_x1
parent f4ab5a5908
commit dae10fff3a

View File

@ -11,6 +11,9 @@ from ophyd.ophydobj import Kind
logger = bec_logger.logger logger = bec_logger.logger
# Readout precision for ComputedSignal
PRECISION = 3
def rgetattr(obj, attr, *args): def rgetattr(obj, attr, *args):
"""See https://stackoverflow.com/questions/31174295/getattr-and-setattr-on-nested-objects""" """See https://stackoverflow.com/questions/31174295/getattr-and-setattr-on-nested-objects"""
@ -35,6 +38,7 @@ class ComputedSignal(SignalRO):
name, name,
value=0, value=0,
timestamp=None, timestamp=None,
precision=PRECISION,
device_manager=None, device_manager=None,
parent=None, parent=None,
labels=None, labels=None,
@ -58,6 +62,7 @@ class ComputedSignal(SignalRO):
cl=cl, cl=cl,
attr_name=attr_name, attr_name=attr_name,
) )
self._precision = precision
self._device_manager = device_manager self._device_manager = device_manager
self._input_signals = [] self._input_signals = []
self._signal_subs = [] self._signal_subs = []
@ -138,6 +143,11 @@ class ComputedSignal(SignalRO):
signals.append(signal) signals.append(signal)
self._input_signals = signals self._input_signals = signals
@property
def precision(self):
"""The precision of the computed value"""
return self._precision
def get(self): def get(self):
if self._compute_method: if self._compute_method:
# pylint: disable=not-callable # pylint: disable=not-callable