diff --git a/motorApp/NewportSrc/devMM3000.cc b/motorApp/NewportSrc/devMM3000.cc index abc20ea9..aaa43e30 100644 --- a/motorApp/NewportSrc/devMM3000.cc +++ b/motorApp/NewportSrc/devMM3000.cc @@ -42,6 +42,7 @@ USAGE... Motor record device level support for Newport MM3000. #include #include #include +#include #include "motorRecord.h" #include "motor.h" #include "motordevCom.h" @@ -276,6 +277,10 @@ STATIC RTN_STATUS MM3000_build_trans(motor_cmnd command, double *parms, struct m */ break; case SET_ENC_RATIO: + /* The motor record no longer passes unsigned values */ + parms[0] = fabs(parms[0]); + parms[1] = fabs(parms[1]); + /* MM3000 valid encoder ratio values < 10,000. */ while (parms[0] > 10000.0 || parms[1] > 10000.0) { diff --git a/motorApp/OmsSrc/devOmsCom.cc b/motorApp/OmsSrc/devOmsCom.cc index 9641669a..524d56da 100644 --- a/motorApp/OmsSrc/devOmsCom.cc +++ b/motorApp/OmsSrc/devOmsCom.cc @@ -513,7 +513,7 @@ errorexit: errMessage(-1, "Invalid device directive"); if (MAXv == true && parms[0] == parms[1]) sprintf(buffer, " UF"); else - sprintf(buffer, " UU%f;", parms[0]/parms[1]); + sprintf(buffer, " UU%f;", fabs(parms[0]/parms[1])); strcat(motor_call->message, buffer); break;