@@ -88,7 +88,7 @@ def call_qt_aware(
8888 return cast (T , (yield Msg (CALL_QT_AWARE_MSG_KEY , func , * args , ** kwargs )))
8989
9090
91- def redefine_motor (motor : Motor , position : float ) -> Generator [Msg , None , None ]:
91+ def redefine_motor (motor : Motor , position : float , * , sleep : float = 3 ) -> Generator [Msg , None , None ]:
9292 """Redefines the current positions of a motor.
9393
9494 Note:
@@ -97,12 +97,15 @@ def redefine_motor(motor: Motor, position: float) -> Generator[Msg, None, None]:
9797 Args:
9898 motor: The motor to set a position on.
9999 position: The position to set.
100+ sleep: An amount of time to sleep, in seconds, after redefining.
101+ This avoids race conditions where a motor is redefined and then immediately moved.
100102
101103 """
102104 logger .info ("Redefining motor %s to %s" , motor .name , position )
103105
104106 def make_motor_usable () -> Generator [Msg , None , None ]:
105107 yield from bps .abs_set (motor .set_use_switch , UseSetMode .USE )
108+ yield from bps .sleep (sleep )
106109
107110 def inner () -> Generator [Msg , None , None ]:
108111 yield from bps .abs_set (motor .set_use_switch , UseSetMode .SET )
0 commit comments