7 Commits
0.2.2 ... 1.0.0

8 changed files with 22 additions and 47 deletions

View File

@ -189,7 +189,7 @@ asynStatus detectorTowerAngleAxis::poll(bool *moving) {
__LINE__);
}
}
wasMoving_ = *moving;
setWasMoving(*moving);
return status;
}
@ -216,7 +216,7 @@ asynStatus detectorTowerAngleAxis::doMove(double position, int relative,
// Signal to the deferredMovementCollectorLoop that a movement should be
// started to the defined target position.
targetPosition_ = position * motorRecResolution;
setTargetPosition(position * motorRecResolution);
receivedTarget_ = true;
return asynSuccess;
@ -282,7 +282,7 @@ asynStatus detectorTowerAngleAxis::startCombinedMove() {
// Set the target positions for beam tilt, detector tilt offset and lift
// offset
snprintf(command, sizeof(command), "Q451=%lf Q454=%lf P350=1",
targetPosition_, liftAxis_->targetPosition_);
targetPosition(), liftAxis_->targetPosition());
// Lock the access to the controller since this function runs in another
// thread than the poll method.
@ -343,6 +343,10 @@ asynStatus detectorTowerAngleAxis::stop(double acceleration) {
return asynError;
}
// Reset the deferred movement flags
startingDeferredMovement_ = false;
deferredMovementWait_ = false;
return rwStatus;
}
@ -526,6 +530,10 @@ asynStatus detectorTowerAngleAxis::doReset() {
__PRETTY_FUNCTION__, __LINE__);
}
// Reset the deferred movement flags
startingDeferredMovement_ = false;
deferredMovementWait_ = false;
/*
Check which action should be performed:
- If error_ == 10 or 11 (FTZ motor error): P352 = 3 (Recover FTZ)

View File

@ -106,11 +106,13 @@ detectorTowerController::detectorTowerController(
}
}
detectorTowerController::~detectorTowerController() {}
asynStatus detectorTowerController::readInt32(asynUser *pasynUser,
epicsInt32 *value) {
// The detector axes cannot be disabled
if (pasynUser->reason == motorCanDisable_) {
if (pasynUser->reason == motorCanDisable()) {
detectorTowerAngleAxis *aAxis = getDetectorTowerAngleAxis(pasynUser);
if (aAxis != nullptr) {
*value = 0;

View File

@ -35,6 +35,8 @@ class detectorTowerController : public turboPmacController {
int numAxes, double movingPollPeriod,
double idlePollPeriod, double comTimeout);
virtual ~detectorTowerController();
/**
* @brief Overloaded function of turboPmacController
*

View File

@ -154,7 +154,7 @@ asynStatus detectorTowerLiftAxis::poll(bool *moving) {
__LINE__);
}
}
wasMoving_ = *moving;
setWasMoving(*moving);
return status;
}
@ -183,7 +183,7 @@ asynStatus detectorTowerLiftAxis::doMove(double position, int relative,
// Signal to the deferredMovementCollectorLoop (of the
// detectorTowerAngleAxis) that a movement should be started to the
// defined target position.
targetPosition_ = position * motorRecResolution;
setTargetPosition(position * motorRecResolution);
angleAxis_->receivedTarget_ = true;
return asynSuccess;
@ -192,37 +192,8 @@ asynStatus detectorTowerLiftAxis::doMove(double position, int relative,
asynStatus detectorTowerLiftAxis::reset() { return angleAxis()->reset(); };
asynStatus detectorTowerLiftAxis::stop(double 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;
}
return angleAxis()->stop(acceleration);
};
asynStatus detectorTowerLiftAxis::readEncoderType() {
return angleAxis()->readEncoderType();

View File

@ -19,10 +19,6 @@ class detectorTowerLiftAxis : public turboPmacAxis {
detectorTowerLiftAxis(detectorTowerController *pController, int axisNo,
detectorTowerAngleAxis *angleAxis);
/**
* @brief Destroy the turboPmacAxis
*
*/
virtual ~detectorTowerLiftAxis();
/**

View File

@ -155,7 +155,7 @@ asynStatus detectorTowerSupportAxis::poll(bool *moving) {
__LINE__);
}
}
wasMoving_ = *moving;
setWasMoving(*moving);
return status;
}

View File

@ -24,10 +24,6 @@ class detectorTowerSupportAxis : public turboPmacAxis {
detectorTowerSupportAxis(detectorTowerController *pController, int axisNo,
detectorTowerAngleAxis *angleAxis);
/**
* @brief Destroy the detectorTowerSupportAxis
*
*/
virtual ~detectorTowerSupportAxis();
/**