uniax, version 7.10.2021
- driving with a generator - 3 phases 1) find active range (low current, far movement until force over hysteresis) 2) release force until well below target 3) adjusting using pid_p. (this is in fact an integral factor)
This commit is contained in:
@ -495,15 +495,15 @@ class Module(HasAccessibles):
|
||||
for pname in self.parameters:
|
||||
errfunc = getattr(modobj, 'error_update_' + pname, None)
|
||||
if errfunc:
|
||||
def errcb(err, p=pname, efunc=errfunc):
|
||||
def errcb(err, p=pname, m=modobj, efunc=errfunc):
|
||||
try:
|
||||
efunc(err)
|
||||
except Exception as e:
|
||||
modobj.announceUpdate(p, err=e)
|
||||
m.announceUpdate(p, err=e)
|
||||
self.errorCallbacks[pname].append(errcb)
|
||||
else:
|
||||
def errcb(err, p=pname):
|
||||
modobj.announceUpdate(p, err=err)
|
||||
def errcb(err, p=pname, m=modobj):
|
||||
m.announceUpdate(p, err=err)
|
||||
if pname in autoupdate:
|
||||
self.errorCallbacks[pname].append(errcb)
|
||||
|
||||
@ -516,8 +516,8 @@ class Module(HasAccessibles):
|
||||
efunc(e)
|
||||
self.valueCallbacks[pname].append(cb)
|
||||
elif pname in autoupdate:
|
||||
def cb(value, p=pname):
|
||||
modobj.announceUpdate(p, value)
|
||||
def cb(value, p=pname, m=modobj):
|
||||
m.announceUpdate(p, value)
|
||||
self.valueCallbacks[pname].append(cb)
|
||||
|
||||
def isBusy(self, status=None):
|
||||
@ -642,7 +642,7 @@ class Writable(Readable):
|
||||
"""basic writable module"""
|
||||
|
||||
target = Parameter('target value of the module',
|
||||
default=0, readonly=False, datatype=FloatRange())
|
||||
default=0, readonly=False, datatype=FloatRange(unit='$'))
|
||||
|
||||
|
||||
class Drivable(Writable):
|
||||
|
Reference in New Issue
Block a user