diff --git a/motorApp/NewportSrc/drvXPSAsyn.c b/motorApp/NewportSrc/drvXPSAsyn.c index 0836100d..61e71404 100644 --- a/motorApp/NewportSrc/drvXPSAsyn.c +++ b/motorApp/NewportSrc/drvXPSAsyn.c @@ -184,6 +184,7 @@ typedef struct motorAxisHandle PARAMS params; double currentPosition; double currentVelocity; + double theoryPosition; double velocity; double accel; double minJerkTime; /* for the SGamma function */ @@ -494,7 +495,7 @@ static int processDeferredMovesInGroup(const XPSController * pController, char * pAxis->deferred_relative ? (pAxis->currentPosition + pAxis->deferred_position) : pAxis->deferred_position; } else { positions[positions_index] = - pAxis->deferred_relative ? 0 : pAxis->currentPosition; + pAxis->deferred_relative ? 0 : pAxis->theoryPosition; } /*Reset deferred flag.*/ @@ -1302,6 +1303,8 @@ static void XPSPoller(XPSController *pController) 1, &theoryPosition); + pAxis->theoryPosition = theoryPosition; + status = GroupPositionCurrentGet(pAxis->pollSocket, pAxis->positionerName, 1,