update code (remove underscore from attached modules)

Change-Id: I10bd6bec8f5e9459219f3186fd696e053a264604
This commit is contained in:
zolliker 2022-09-08 09:22:32 +02:00
parent 0fec736886
commit 298f94e4d5

View File

@ -76,14 +76,14 @@ class Uniax(PersistentMixin, Drivable):
def drive_relative(self, step, ntry=3): def drive_relative(self, step, ntry=3):
"""drive relative, try 3 times""" """drive relative, try 3 times"""
mot = self._motor mot = self.motor
mot.read_value() # make sure motor value is fresh mot.read_value() # make sure motor value is fresh
if self.adjusting and abs(step) > self.safe_step: if self.adjusting and abs(step) > self.safe_step:
step = math.copysign(self.safe_step, step) step = math.copysign(self.safe_step, step)
self.current_step = step self.current_step = step
for _ in range(ntry): for _ in range(ntry):
try: try:
self._mot_target = self._motor.write_target(mot.value + step) self._mot_target = self.motor.write_target(mot.value + step)
self._cnt_wrerr = max(0, self._cnt_wrerr - 1) self._cnt_wrerr = max(0, self._cnt_wrerr - 1)
return True return True
except Exception as e: except Exception as e:
@ -92,7 +92,7 @@ class Uniax(PersistentMixin, Drivable):
if self._cnt_wrerr > 5: if self._cnt_wrerr > 5:
raise raise
self.log.warning('motor reset') self.log.warning('motor reset')
self._motor.reset() self.motor.reset()
return False return False
def reset_filter(self, now=0.0): def reset_filter(self, now=0.0):
@ -100,7 +100,7 @@ class Uniax(PersistentMixin, Drivable):
self._filter_start = now or time.time() self._filter_start = now or time.time()
def motor_busy(self): def motor_busy(self):
mot = self._motor mot = self.motor
if mot.isBusy(): if mot.isBusy():
if mot.target != self._mot_target: if mot.target != self._mot_target:
self.action = self.idle self.action = self.idle
@ -162,12 +162,12 @@ class Uniax(PersistentMixin, Drivable):
if force * sign > self.hysteresis or force * sign > target * sign: if force * sign > self.hysteresis or force * sign > target * sign:
if self.motor_busy(): if self.motor_busy():
self.log.info('motor stopped - substantial force detected: %g', force) self.log.info('motor stopped - substantial force detected: %g', force)
self._motor.stop() self.motor.stop()
elif self.init_action(): elif self.init_action():
self.next_action(self.adjust) self.next_action(self.adjust)
return return
if abs(force) > self.hysteresis: if abs(force) > self.hysteresis:
self.set_zero_pos(force, self._motor.read_value()) self.set_zero_pos(force, self.motor.read_value())
self.next_action(self.adjust) self.next_action(self.adjust)
return return
if force * sign < -self.hysteresis: if force * sign < -self.hysteresis:
@ -176,7 +176,7 @@ class Uniax(PersistentMixin, Drivable):
return return
if self.motor_busy(): if self.motor_busy():
if sign * self._find_target < 0: # target sign changed if sign * self._find_target < 0: # target sign changed
self._motor.stop() self.motor.stop()
self.next_action(self.find) # restart find self.next_action(self.find) # restart find
return return
else: else:
@ -184,26 +184,26 @@ class Uniax(PersistentMixin, Drivable):
zero_pos = self.zero_pos(target) zero_pos = self.zero_pos(target)
side_name = 'positive' if target > 0 else 'negative' side_name = 'positive' if target > 0 else 'negative'
if not self.init_action(): if not self.init_action():
if abs(self._motor.target - self._motor.value) > self._motor.tolerance: if abs(self.motor.target - self.motor.value) > self.motor.tolerance:
# no success on last find try, try short and strong step # no success on last find try, try short and strong step
self.write_adjusting(True) self.write_adjusting(True)
self.log.info('one step to %g', self._motor.value + self.safe_step) self.log.info('one step to %g', self.motor.value + self.safe_step)
self.drive_relative(sign * self.safe_step) self.drive_relative(sign * self.safe_step)
return return
if zero_pos is not None: if zero_pos is not None:
self.status = 'BUSY', 'change to %s side' % side_name self.status = 'BUSY', 'change to %s side' % side_name
zero_pos += sign * (self.hysteresis * self.slope - self._motor.tolerance) zero_pos += sign * (self.hysteresis * self.slope - self.motor.tolerance)
if (self._motor.value - zero_pos) * sign < -self._motor.tolerance: if (self.motor.value - zero_pos) * sign < -self.motor.tolerance:
self.write_adjusting(False) self.write_adjusting(False)
self.log.info('change side to %g', zero_pos) self.log.info('change side to %g', zero_pos)
self.drive_relative(zero_pos - self._motor.value) self.drive_relative(zero_pos - self.motor.value)
return return
# we are already at or beyond zero_pos # we are already at or beyond zero_pos
self.next_action(self.adjust) self.next_action(self.adjust)
return return
self.write_adjusting(False) self.write_adjusting(False)
self.status = 'BUSY', 'find %s side' % side_name self.status = 'BUSY', 'find %s side' % side_name
self.log.info('one turn to %g', self._motor.value + sign * 360) self.log.info('one turn to %g', self.motor.value + sign * 360)
self.drive_relative(sign * 360) self.drive_relative(sign * 360)
def free(self, force, target): def free(self, force, target):
@ -293,7 +293,7 @@ class Uniax(PersistentMixin, Drivable):
def read_value(self): def read_value(self):
try: try:
force = self._transducer.read_value() force = self.transducer.read_value()
self._cnt_rderr = max(0, self._cnt_rderr - 1) self._cnt_rderr = max(0, self._cnt_rderr - 1)
except Exception as e: except Exception as e:
self._cnt_rderr += 1 self._cnt_rderr += 1
@ -323,7 +323,7 @@ class Uniax(PersistentMixin, Drivable):
self.log.error(self.status[1]) self.log.error(self.status[1])
return Done return Done
if self.zero_pos(force) is None and abs(force) > self.hysteresis and self._filtered: if self.zero_pos(force) is None and abs(force) > self.hysteresis and self._filtered:
self.set_zero_pos(force, self._motor.read_value()) self.set_zero_pos(force, self.motor.read_value())
self._action(self.value, self.target) self._action(self.value, self.target)
return Done return Done
@ -351,18 +351,18 @@ class Uniax(PersistentMixin, Drivable):
@Command() @Command()
def stop(self): def stop(self):
self._action = self.idle self._action = self.idle
if self._motor.isBusy(): if self.motor.isBusy():
self.log.info('stop motor') self.log.info('stop motor')
self._motor.stop() self.motor.stop()
self.next_action(self.idle) self.next_action(self.idle)
def write_force_offset(self, value): def write_force_offset(self, value):
self.force_offset = value self.force_offset = value
self._transducer.write_offset(value) self.transducer.write_offset(value)
return Done return Done
def write_adjusting(self, value): def write_adjusting(self, value):
mot = self._motor mot = self.motor
if value: if value:
mot_current = self.adjusting_current mot_current = self.adjusting_current
mot.write_move_limit(self.safe_step) mot.write_move_limit(self.safe_step)