improve async behaviour of parmod.Driv
Change-Id: I3889614a0deaba4ef13b86c6600b6f96bc502a39
This commit is contained in:
parent
694b121c01
commit
7d02498b3d
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user