Added a check for a non-zero MIP before doing retries.

This change fixes an uncommanded-motion bug that occurs under the following conditions:
1. A motor is moved from outside EPICS, making its EPICS readback position out-of-sync.
2. The motor is controlled by a controller that supports motor groups (like the Newport XPS).
3. The motor belongs to a motor group.
4. A status update is requested for any of the other motors in the motor group.
This commit is contained in:
kmpeters
2011-06-23 20:11:13 +00:00
parent f72ae520df
commit 7e918a48b0
+2 -1
View File
@@ -144,6 +144,7 @@ HeadURL: $URL$
* - bug fix for save/restore not working when URIP=Yes. DRBV
* not getting initialized. Fixed in initial call to
* process_motor_info().
* .60 06-23-11 kmp - Added a check for a non-zero MIP before doing retries.
*
*/
@@ -1285,7 +1286,7 @@ static long process(dbCommon *arg)
UNMARK(M_DMOV);
goto process_exit;
}
else if (pmr->stup != motorSTUP_ON)
else if (pmr->stup != motorSTUP_ON && pmr->mip != MIP_DONE)
{
pmr->mip &= ~MIP_DELAY;
MARK(M_MIP); /* done delaying */