frappy_psi.phytron: rename reset_error to clear_errors
use the command 'clear_errors' to return from an error state + make sure target is valid after clear_errors Change-Id: I3c180500a05836d52bbb9a8ecbdb397adea03d0d Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/31337 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
parent
0932228596
commit
36dfe968e8
@ -83,7 +83,7 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
|
|||||||
|
|
||||||
ioClass = PhytronIO
|
ioClass = PhytronIO
|
||||||
_step_size = None # degree / step
|
_step_size = None # degree / step
|
||||||
_blocking_error = None # None or a string indicating the reason of an error needing reset
|
_blocking_error = None # None or a string indicating the reason of an error needing clear_errors
|
||||||
_running = False # status indicates motor is running
|
_running = False # status indicates motor is running
|
||||||
|
|
||||||
STATUS_MAP = {
|
STATUS_MAP = {
|
||||||
@ -121,10 +121,10 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
|
|||||||
if not axisbit & active_axes: # power cycle detected and this axis not yet active
|
if not axisbit & active_axes: # power cycle detected and this axis not yet active
|
||||||
self.set('P37S', axisbit | active_axes) # activate axis
|
self.set('P37S', axisbit | active_axes) # activate axis
|
||||||
if now < self.alive_time + 7 * 24 * 3600: # the device was running within last week
|
if now < self.alive_time + 7 * 24 * 3600: # the device was running within last week
|
||||||
# inform the user about the loss of position by the need of doing reset_error
|
# inform the user about the loss of position by the need of doing clear_errors
|
||||||
self._blocking_error = 'lost position'
|
self._blocking_error = 'lost position'
|
||||||
else: # do reset silently
|
else: # do silently
|
||||||
self.reset_error()
|
self.clear_errors()
|
||||||
self.alive_time = now
|
self.alive_time = now
|
||||||
self.saveParameters()
|
self.saveParameters()
|
||||||
return now
|
return now
|
||||||
@ -171,7 +171,7 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
|
|||||||
def write_target(self, value):
|
def write_target(self, value):
|
||||||
self.read_alive_time()
|
self.read_alive_time()
|
||||||
if self._blocking_error:
|
if self._blocking_error:
|
||||||
self.status = ERROR, 'reset needed after ' + self._blocking_error
|
self.status = ERROR, 'clear_errors needed after ' + self._blocking_error
|
||||||
raise HardwareError(self.status[1])
|
raise HardwareError(self.status[1])
|
||||||
self.saveParameters()
|
self.saveParameters()
|
||||||
if self.backlash:
|
if self.backlash:
|
||||||
@ -261,7 +261,7 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
|
|||||||
self.start_machine(self.stopping, status=(BUSY, 'stopping'))
|
self.start_machine(self.stopping, status=(BUSY, 'stopping'))
|
||||||
|
|
||||||
@Command
|
@Command
|
||||||
def reset_error(self):
|
def clear_errors(self):
|
||||||
"""Reset error, set position to encoder"""
|
"""Reset error, set position to encoder"""
|
||||||
self.read_value()
|
self.read_value()
|
||||||
if self._blocking_error:
|
if self._blocking_error:
|
||||||
@ -286,3 +286,4 @@ class Motor(HasOffset, HasStates, PersistentMixin, HasIO, Drivable):
|
|||||||
self.read_value()
|
self.read_value()
|
||||||
self.status = 'IDLE', 'after error reset'
|
self.status = 'IDLE', 'after error reset'
|
||||||
self._blocking_error = None
|
self._blocking_error = None
|
||||||
|
self.target = self.value # clear error in target
|
||||||
|
Loading…
x
Reference in New Issue
Block a user