diff --git a/motorApp/NewportSrc/XPSController.cpp b/motorApp/NewportSrc/XPSController.cpp index e0cb727d..c051c6f6 100644 --- a/motorApp/NewportSrc/XPSController.cpp +++ b/motorApp/NewportSrc/XPSController.cpp @@ -904,7 +904,7 @@ asynStatus XPSController::runProfile() for (j=0; jprofilePositions_[numPoints-1] - pAxis->profilePreDistance_; + position = pAxis->profilePositions_[0] - pAxis->profilePreDistance_; status = GroupMoveAbsolute(pAxis->moveSocket_, pAxis->positionerName_, 1, @@ -969,20 +969,26 @@ asynStatus XPSController::runProfile() // Compute the time between pulses as the total time over which pulses should be output divided // by the number of pulses to be output. */ time = 0; - for (i=startPulses; i<=endPulses; i++) { + for (i=startPulses; ipasynUserSelf, ASYN_TRACE_FLOW, "%s:%s: calling MultipleAxesPVTPulseOutputSet(%d, %s, %d, %d, %f)\n", driverName, functionName, pollSocket_, groupName, @@ -1001,8 +1007,8 @@ asynStatus XPSController::runProfile() "", "", "", ""); if (status != 0) { executeOK = false; - sprintf(message, "Error performing EventExtendedConfigurationTriggerSet, status=%d, buffer=%s", - status, buffer); + sprintf(message, "Error performing EventExtendedConfigurationTriggerSet, status=%d, buffer=%s, strlen(buffer)=%d", + status, buffer, strlen(buffer)); goto done; } @@ -1177,7 +1183,7 @@ asynStatus XPSController::readbackProfile() int nitems; int numRead=0, numInBuffer, numChars; int useAxis[XPS_MAX_AXES]; - static const char *functionName = "buildProfile"; + static const char *functionName = "readbackProfile"; asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s:%s: entry\n", @@ -1210,10 +1216,12 @@ asynStatus XPSController::readbackProfile() sprintf(message, "Error calling GatherCurrentNumberGet, status=%d", status); goto done; } - if (currentSamples != numPulses) { + if (currentSamples < numPulses) { readbackOK = false; sprintf(message, "Error, numPulses=%d, currentSamples=%d", numPulses, currentSamples); //goto done; + } else { + currentSamples = numPulses; // Only read as many as were asked for } buffer = (char *)calloc(GATHERING_MAX_READ_LEN, sizeof(char)); numInBuffer = 0;