better handling of restart status

Change-Id: I28f97b49d39ed7c6b781f0d8edb218e63e1b1fc9
This commit is contained in:
2023-05-16 09:39:20 +02:00
parent 050a2dc8dc
commit 1407514458
2 changed files with 23 additions and 22 deletions

View File

@ -20,7 +20,10 @@
#
# *****************************************************************************
"""driver for phytron motors"""
"""driver for phytron motors
limits switches are not yet implemented
"""
import time
from frappy.core import Done, Command, EnumType, FloatRange, IntRange, \
@ -175,10 +178,9 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
# drive first to target + backlash
# we do not optimize when already driving from the right side
self.set('A', self.sign * (value + self.backlash))
self.start_machine(self.predriving)
else:
self.set('A', self.sign * value)
self.start_machine(self.driving)
self.start_machine(self.driving)
self._running = True
return value
@ -219,11 +221,11 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
if self.backlash:
# drive to real target
self.set('A', self.sign * self.target)
return self.driving_to_final
return self.driving_to_final_position
return self.finishing
@status_code(BUSY)
def driving_to_final(self, sm):
def driving_to_final_position(self, sm):
if self.check_moving():
return Retry
return self.finishing
@ -256,7 +258,7 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
@Command
def stop(self):
self.get('S')
self.start_machine(self.stopping, status=(BUSY, 'stopping0'))
self.start_machine(self.stopping, status=(BUSY, 'stopping'))
@Command
def reset_error(self):
@ -284,7 +286,3 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
self.read_value()
self.status = 'IDLE', 'after error reset'
self._blocking_error = None
# TODO:
# '=E' electronics status
# '=I+' / '=I-': limit switches