diff --git a/secop_psi/magfield.py b/secop_psi/magfield.py index 2a97cb7..5a71ff4 100644 --- a/secop_psi/magfield.py +++ b/secop_psi/magfield.py @@ -114,7 +114,8 @@ class Magfield(HasLimits, Drivable): def write_target(self, target): self.check_limits(target) self.target = target - if not self._state.is_active: # as long as the state machine is still running, it takes care of changing targets + if not self._state.is_active: + # as long as the state machine is still running, it takes care of changing targets self._state.start(self.start_field_change) self.doPoll() return Done @@ -230,8 +231,6 @@ class Magfield(HasLimits, Drivable): if state.init: self.status = Status.STABILIZING, 'stabilizing field' return Retry() - if abs(self.value - state.set_point) < self.tolerance: - self.persistent_field = state.set_point return self.check_switch_off def check_switch_off(self, state): @@ -258,6 +257,7 @@ class Magfield(HasLimits, Drivable): return self.start_switch_on if self.mode == Mode.DRIVEN: return self.start_switch_on + self.persistent_field = self.value if state.now - self.switch_time < self.wait_switch_off: return Retry() return self.start_ramp_to_zero