diff --git a/slic/core/adjustable/pvadjustable.py b/slic/core/adjustable/pvadjustable.py index 97b2559a..2cfe55c9 100644 --- a/slic/core/adjustable/pvadjustable.py +++ b/slic/core/adjustable/pvadjustable.py @@ -7,14 +7,15 @@ from .adjustable import Adjustable class PVAdjustable(Adjustable): def __init__(self, pvname_setvalue, pvname_readback=None, accuracy=None, name=None): - name = name or pvname_setvalue - super().__init__(name) - - self.accuracy = accuracy - pv_setvalue = PV(pvname_setvalue) pv_readback = PV(pvname_readback) if pvname_readback else pv_setvalue + name = name or pvname_readback or pvname_setvalue + units = pv_readback.units + super().__init__(name=name, units=units) + + self.accuracy = accuracy + self.pvnames = SimpleNamespace( setvalue = pvname_setvalue, readback = pvname_readback diff --git a/slic/core/adjustable/pvenumadjustable.py b/slic/core/adjustable/pvenumadjustable.py index 80bacbfc..4b83ce96 100644 --- a/slic/core/adjustable/pvenumadjustable.py +++ b/slic/core/adjustable/pvenumadjustable.py @@ -7,12 +7,14 @@ from .adjustable import Adjustable class PVEnumAdjustable(Adjustable): def __init__(self, pvname, name=None): - name = name or pvname - super().__init__(name) - self.pvname = pvname - self.pv = PV(pvname) - self.states = Enum(self.pv.enum_strs) + self.pv = pv = PV(pvname) + + name = name or pvname + units = pv.units + super().__init__(name=name, units=units) + + self.states = Enum(pv.enum_strs) def get_current_value(self, as_number=False):