Skip to content

Commit a167a40

Browse files
Sleep by default after motor redefine
1 parent 1679253 commit a167a40

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/ibex_bluesky_core/plan_stubs.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)