From e5b9987b9544294e5b88f27f5bf4a05b8264fbd1 Mon Sep 17 00:00:00 2001 From: Peter Denison Date: Fri, 2 Nov 2007 14:39:59 +0000 Subject: [PATCH] Use absolute value of MRES to calculate rdbdpos, to avoid erroneous motor moving states. --- motorApp/MotorSrc/motorRecord.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/motorApp/MotorSrc/motorRecord.cc b/motorApp/MotorSrc/motorRecord.cc index 213e067d..f437532f 100644 --- a/motorApp/MotorSrc/motorRecord.cc +++ b/motorApp/MotorSrc/motorRecord.cc @@ -2,9 +2,9 @@ FILENAME... motorRecord.cc USAGE... Motor Record Support. -Version: $Revision: 1.39 $ -Modified By: $Author: sluiter $ -Last Modified: $Date: 2007-04-06 18:35:38 $ +Version: $Revision: 1.40 $ +Modified By: $Author: peterd $ +Last Modified: $Date: 2007-11-02 14:39:59 $ */ /* @@ -92,6 +92,7 @@ Last Modified: $Date: 2007-04-06 18:35:38 $ * .30 03-16-07 rls - Clear home request when soft-limit violation occurs. * .31 04-06-07 rls - RDBD was being used in motordevCom.cc * motor_init_record_com() before the validation check. + * .40 11-02-07 pnd - Use absolute value of mres to calculate rdbdpos */ #define VERSION 6.3 @@ -1990,7 +1991,7 @@ static RTN_STATUS do_work(motorRecord * pmr, CALLBACK_VALUE proc_ind) bool use_rel, preferred_dir; double relpos = pmr->diff / pmr->mres; double relbpos = ((pmr->dval - pmr->bdst) - pmr->drbv) / pmr->mres; - long rdbdpos = NINT(pmr->rdbd / pmr->mres); /* retry deadband steps */ + long rdbdpos = NINT(pmr->rdbd / fabs(pmr->mres)); /* retry deadband steps */ long rpos, npos; msta_field msta; msta.All = pmr->msta;