diff --git a/frappy_psi/parmod.py b/frappy_psi/parmod.py index 31d60e0..1b6fe3c 100644 --- a/frappy_psi/parmod.py +++ b/frappy_psi/parmod.py @@ -22,7 +22,7 @@ """modules to access parameters""" from frappy.core import Drivable, EnumType, IDLE, Attached, StringType, Property, \ - Parameter, FloatRange, BoolType, Readable, ERROR + Parameter, BoolType, FloatRange, Readable, ERROR, nopoll from frappy.errors import ConfigError from frappy_psi.convergence import HasConvergence from frappy_psi.mixins import HasRamp @@ -72,19 +72,21 @@ class Driv(Drivable): raise ConfigError('illegal recursive read/write module') super().checkProperties() - #def registerUpdates(self): - # self.read.valueCallbacks[self.read_param].append(self.update_value) - # self.write.valueCallbacks[self.write_param].append(self.update_target) - # - #def startModule(self, start_events): - # start_events.queue(self.registerUpdates) - # super().startModule(start_events) + def registerUpdates(self): + self.read.addCallback(self.read_param, self.announceUpdate, 'value') + self.write.addCallback(self.write_param, self.announceUpdate, 'target') + def startModule(self, start_events): + start_events.queue(self.registerUpdates) + super().startModule(start_events) + + @nopoll def read_value(self): - return getattr(self.read, f'{self.read_param}') + return getattr(self.read, f'read_{self.read_param}')() + @nopoll def read_target(self): - return getattr(self.write, f'{self.write_param}') + return getattr(self.write, f'read_{self.write_param}')() def read_status(self): return IDLE, '' @@ -130,7 +132,7 @@ def set_enabled(modobj, value): def get_value(obj, default): - """get the value of given module. if not valid, return the limit (min_high or max_low)""" + """get the value of given module. if not valid, return the default""" if not getattr(obj, 'enabled', True): return default # consider also that a value 0 is invalid