From d4e79a4f94f5008695aba07f0c059a313dc91c64 Mon Sep 17 00:00:00 2001 From: Ron Sluiter Date: Fri, 12 Oct 2012 15:18:11 +0000 Subject: [PATCH] Jen Eden's readPositions patch. --- motorApp/OmsAsynSrc/omsBaseController.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/motorApp/OmsAsynSrc/omsBaseController.cpp b/motorApp/OmsAsynSrc/omsBaseController.cpp index b19f8aa9..c8d901aa 100644 --- a/motorApp/OmsAsynSrc/omsBaseController.cpp +++ b/motorApp/OmsAsynSrc/omsBaseController.cpp @@ -340,6 +340,8 @@ asynStatus omsBaseController::writeFloat64(asynUser *pasynUser, epicsFloat64 val status = sendReplace(pAxis, inputBuffer); } } +/* + * Encoder Mode is currently not supported in motor record else if (function == motorEncoderRatio_) { int haveEncoder; getIntegerParam(pAxis->axisNo_, motorStatusHasEncoder_, &haveEncoder); @@ -351,6 +353,7 @@ asynStatus omsBaseController::writeFloat64(asynUser *pasynUser, epicsFloat64 val status = sendReplace(pAxis, inputBuffer); } } +*/ else if ((function == motorResolution_) || (function == motorLowLimit_) || (function == motorHighLimit_)) { // we do nothing status = asynSuccess; @@ -448,6 +451,7 @@ asynStatus omsBaseController::Init(const char* initString, int multiple){ int totalAxes; char axisChrArr[OMS_MAX_AXES] = {'X','Y','Z','T','U','V','R','S'}; char outputBuffer[10]; + epicsInt32 axisPosArr[OMS_MAX_AXES]; /* Interrupt clear */ sendOnlyLock("IC;"); @@ -544,6 +548,10 @@ asynStatus omsBaseController::Init(const char* initString, int multiple){ errlogPrintf("omsBaseController:Init: error: unknown limit true state!\n"); } + if (getAxesPositions(axisPosArr) == asynSuccess){ + for (int axis=0; axis < numAxes; axis++) + (pAxes[axis])->setDoubleParam(motorPosition_, (double) axisPosArr[axis]); + } unlock(); return asynSuccess; }