Describe the bug
Consider a plan like:
analyzer = haven.devices.Analyzer(...)
RE(bps.mv(analyzer.energy, 10050))
This can result in physical motors moving a big distance. Currently, the timeout is calculated by the velocity of the positioner, which is not dependent on the actual motor velocities. This velocity is also not entirely obvious to calculate since it is not constant across energies.
However, if the velocity is over-estimated then the timeout is too short and the move may fail waiting for the physical motors to reach their destinations.
To Reproduce
analyzer = haven.devices.Analyzer(...)
RE(bps.mv(analyzer.energy, 10050))
Expected behavior
Device waits the correct amount of time for the movement to finish instead of timing out early.
Describe the bug
Consider a plan like:
This can result in physical motors moving a big distance. Currently, the timeout is calculated by the velocity of the positioner, which is not dependent on the actual motor velocities. This velocity is also not entirely obvious to calculate since it is not constant across energies.
However, if the velocity is over-estimated then the timeout is too short and the move may fail waiting for the physical motors to reach their destinations.
To Reproduce
Expected behavior
Device waits the correct amount of time for the movement to finish instead of timing out early.