Stop or reset now also resets the deferred movement flags

This commit is contained in:
2025-06-10 11:15:40 +02:00
parent 5dd5a26243
commit eb3826ec35
2 changed files with 10 additions and 31 deletions

View File

@ -343,6 +343,10 @@ asynStatus detectorTowerAngleAxis::stop(double acceleration) {
return asynError; return asynError;
} }
// Reset the deferred movement flags
startingDeferredMovement_ = false;
deferredMovementWait_ = false;
return rwStatus; return rwStatus;
} }
@ -526,6 +530,10 @@ asynStatus detectorTowerAngleAxis::doReset() {
__PRETTY_FUNCTION__, __LINE__); __PRETTY_FUNCTION__, __LINE__);
} }
// Reset the deferred movement flags
startingDeferredMovement_ = false;
deferredMovementWait_ = false;
/* /*
Check which action should be performed: Check which action should be performed:
- If error_ == 10 or 11 (FTZ motor error): P352 = 3 (Recover FTZ) - If error_ == 10 or 11 (FTZ motor error): P352 = 3 (Recover FTZ)

View File

@ -192,37 +192,8 @@ asynStatus detectorTowerLiftAxis::doMove(double position, int relative,
asynStatus detectorTowerLiftAxis::reset() { return angleAxis()->reset(); }; asynStatus detectorTowerLiftAxis::reset() { return angleAxis()->reset(); };
asynStatus detectorTowerLiftAxis::stop(double acceleration) { asynStatus detectorTowerLiftAxis::stop(double acceleration) {
return angleAxis()->stop(acceleration);
// Status of read-write-operations of ASCII commands to the controller };
asynStatus rwStatus = asynSuccess;
// Status of parameter library operations
asynStatus plStatus = asynSuccess;
char response[pC_->MAXBUF_] = {0};
// =========================================================================
rwStatus = pC_->writeRead(axisNo_, "P350=8", response, 0);
if (rwStatus != asynSuccess) {
asynPrint(pC_->pasynUser(), ASYN_TRACE_ERROR,
"Controller \"%s\", axis %d => %s, line %d\nStopping "
"the movement "
"failed.\n",
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
plStatus = setIntegerParam(pC_->motorStatusProblem(), true);
if (plStatus != asynSuccess) {
return pC_->paramLibAccessFailed(plStatus, "motorStatusProblem_",
axisNo_, __PRETTY_FUNCTION__,
__LINE__);
}
return asynError;
}
return rwStatus;
}
asynStatus detectorTowerLiftAxis::readEncoderType() { asynStatus detectorTowerLiftAxis::readEncoderType() {
return angleAxis()->readEncoderType(); return angleAxis()->readEncoderType();