Removed friend class declaration and replaced access to private,properties with accessors
This commit is contained in:
@@ -78,13 +78,13 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo)
|
|||||||
bounds, asynMotorAxis prints an error. However, we want the IOC creation to
|
bounds, asynMotorAxis prints an error. However, we want the IOC creation to
|
||||||
stop completely, since this is a configuration error.
|
stop completely, since this is a configuration error.
|
||||||
*/
|
*/
|
||||||
if (axisNo >= pC->numAxes_) {
|
if (axisNo >= pC->numAxes()) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:: FATAL ERROR: "
|
"Controller \"%s\", axis %d => %s, line %d:: FATAL ERROR: "
|
||||||
"Axis index %d must be smaller than the total number of axes "
|
"Axis index %d must be smaller than the total number of axes "
|
||||||
"%d. Call the support.",
|
"%d. Call the support.",
|
||||||
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__, axisNo_,
|
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__, axisNo_,
|
||||||
pC->numAxes_);
|
pC->numAxes());
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,10 +108,10 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo)
|
|||||||
timeAtHandshake_ = 0;
|
timeAtHandshake_ = 0;
|
||||||
|
|
||||||
// masterMacs motors can always be disabled
|
// masterMacs motors can always be disabled
|
||||||
status = pC_->setIntegerParam(axisNo_, pC_->motorCanDisable_, 1);
|
status = pC_->setIntegerParam(axisNo_, pC_->motorCanDisable(), 1);
|
||||||
if (status != asynSuccess) {
|
if (status != asynSuccess) {
|
||||||
asynPrint(
|
asynPrint(
|
||||||
pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
||||||
"(setting a parameter value failed with %s)\n. Terminating IOC",
|
"(setting a parameter value failed with %s)\n. Terminating IOC",
|
||||||
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__,
|
||||||
@@ -120,10 +120,10 @@ masterMacsAxis::masterMacsAxis(masterMacsController *pC, int axisNo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Assume that the motor is initially not moving
|
// Assume that the motor is initially not moving
|
||||||
status = pC_->setIntegerParam(axisNo_, pC_->motorStatusMoving_, false);
|
status = pC_->setIntegerParam(axisNo_, pC_->motorStatusMoving(), false);
|
||||||
if (status != asynSuccess) {
|
if (status != asynSuccess) {
|
||||||
asynPrint(
|
asynPrint(
|
||||||
pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
||||||
"(setting a parameter value failed with %s)\n. Terminating IOC",
|
"(setting a parameter value failed with %s)\n. Terminating IOC",
|
||||||
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo, __PRETTY_FUNCTION__, __LINE__,
|
||||||
@@ -163,11 +163,11 @@ asynStatus masterMacsAxis::init() {
|
|||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
time_t maxInitTime = 60;
|
time_t maxInitTime = 60;
|
||||||
while (1) {
|
while (1) {
|
||||||
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_,
|
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(),
|
||||||
&motorRecResolution);
|
&motorRecResolution);
|
||||||
if (pl_status == asynParamUndefined) {
|
if (pl_status == asynParamUndefined) {
|
||||||
if (now + maxInitTime < time(NULL)) {
|
if (now + maxInitTime < time(NULL)) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line "
|
"Controller \"%s\", axis %d => %s, line "
|
||||||
"%d\nInitializing the parameter library failed.\n",
|
"%d\nInitializing the parameter library failed.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -237,7 +237,7 @@ asynStatus masterMacsAxis::init() {
|
|||||||
|
|
||||||
// Store these values in the parameter library
|
// Store these values in the parameter library
|
||||||
pl_status =
|
pl_status =
|
||||||
pC_->setDoubleParam(axisNo_, pC_->motorPosition_, motorPosition);
|
pC_->setDoubleParam(axisNo_, pC_->motorPosition(), motorPosition);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
@@ -264,7 +264,7 @@ asynStatus masterMacsAxis::init() {
|
|||||||
// If we can't communicate with the parameter library, it doesn't
|
// If we can't communicate with the parameter library, it doesn't
|
||||||
// make sense to try and upstream this to the user -> Just log the
|
// make sense to try and upstream this to the user -> Just log the
|
||||||
// error
|
// error
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line "
|
"Controller \"%s\", axis %d => %s, line "
|
||||||
"%d:\ncallParamCallbacks failed with %s.\n",
|
"%d:\ncallParamCallbacks failed with %s.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
@@ -309,10 +309,10 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
time_t currentTime = time(NULL);
|
time_t currentTime = time(NULL);
|
||||||
bool timedOut = (currentTime > timeAtHandshake_ + 5);
|
bool timedOut = (currentTime > timeAtHandshake_ + 5);
|
||||||
|
|
||||||
if (pC_->msgPrintControl_.shouldBePrinted(
|
if (pC_->getMsgPrintControl().shouldBePrinted(
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, timedOut,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, timedOut,
|
||||||
pC_->pasynUserSelf)) {
|
pC_->asynUserSelf())) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d\nAsked for a "
|
"Controller \"%s\", axis %d => %s, line %d\nAsked for a "
|
||||||
"handshake at %ld s and didn't get a positive reply yet "
|
"handshake at %ld s and didn't get a positive reply yet "
|
||||||
"(current time is %ld s).\n",
|
"(current time is %ld s).\n",
|
||||||
@@ -322,7 +322,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
|
|
||||||
if (timedOut) {
|
if (timedOut) {
|
||||||
pl_status =
|
pl_status =
|
||||||
setStringParam(pC_->motorMessageText_,
|
setStringParam(pC_->motorMessageText(),
|
||||||
"Timed out while waiting for a handshake");
|
"Timed out while waiting for a handshake");
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
||||||
@@ -351,14 +351,14 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
// poll. This is already part of the movement procedure.
|
// poll. This is already part of the movement procedure.
|
||||||
*moving = true;
|
*moving = true;
|
||||||
|
|
||||||
pl_status = setIntegerParam(pC_->motorStatusMoving_, *moving);
|
pl_status = setIntegerParam(pC_->motorStatusMoving(), *moving);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status,
|
return pC_->paramLibAccessFailed(pl_status,
|
||||||
"motorStatusMoving_", axisNo_,
|
"motorStatusMoving_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = setIntegerParam(pC_->motorStatusDone_, !(*moving));
|
pl_status = setIntegerParam(pC_->motorStatusDone(), !(*moving));
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -370,7 +370,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Motor resolution from parameter library
|
// Motor resolution from parameter library
|
||||||
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_,
|
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(),
|
||||||
&motorRecResolution);
|
&motorRecResolution);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_",
|
return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_",
|
||||||
@@ -380,7 +380,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
|
|
||||||
// Read the previous motor position
|
// Read the previous motor position
|
||||||
pl_status =
|
pl_status =
|
||||||
pC_->getDoubleParam(axisNo_, pC_->motorPosition_, &previousPosition);
|
pC_->getDoubleParam(axisNo_, pC_->motorPosition(), &previousPosition);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
@@ -431,17 +431,17 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
since this information is not reliable.
|
since this information is not reliable.
|
||||||
*/
|
*/
|
||||||
if (communicationError()) {
|
if (communicationError()) {
|
||||||
if (pC_->msgPrintControl_.shouldBePrinted(keyError, true,
|
if (pC_->getMsgPrintControl().shouldBePrinted(
|
||||||
pC_->pasynUserSelf)) {
|
keyError, true, pC_->asynUserSelf())) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line "
|
"Controller \"%s\", axis %d => %s, line "
|
||||||
"%d\nCommunication error.%s\n",
|
"%d\nCommunication error.%s\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
pC_->msgPrintControl_.getSuffix());
|
pC_->getMsgPrintControl().getSuffix());
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status =
|
pl_status =
|
||||||
setStringParam(pC_->motorMessageText_,
|
setStringParam(pC_->motorMessageText(),
|
||||||
"Communication error between PC and motor "
|
"Communication error between PC and motor "
|
||||||
"controller. Please call the support.");
|
"controller. Please call the support.");
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
@@ -589,18 +589,18 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (strlen(shellMessage) > 0) {
|
if (strlen(shellMessage) > 0) {
|
||||||
if (pC_->msgPrintControl_.shouldBePrinted(keyError, true,
|
if (pC_->getMsgPrintControl().shouldBePrinted(
|
||||||
pC_->pasynUserSelf)) {
|
keyError, true, pC_->asynUserSelf())) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line "
|
"Controller \"%s\", axis %d => %s, line "
|
||||||
"%d\n%s.%s\n",
|
"%d\n%s.%s\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__,
|
||||||
__LINE__, shellMessage,
|
__LINE__, shellMessage,
|
||||||
pC_->msgPrintControl_.getSuffix());
|
pC_->getMsgPrintControl().getSuffix());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = setStringParam(pC_->motorMessageText_, userMessage);
|
pl_status = setStringParam(pC_->motorMessageText(), userMessage);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -608,7 +608,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pC_->msgPrintControl_.resetCount(keyError, pC_->pasynUserSelf);
|
pC_->getMsgPrintControl().resetCount(keyError, pC_->asynUserSelf());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read out the limits, if the motor is not moving
|
// Read out the limits, if the motor is not moving
|
||||||
@@ -646,7 +646,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
directly, but need to shrink them a bit. In this case, we're shrinking
|
directly, but need to shrink them a bit. In this case, we're shrinking
|
||||||
them by 0.1 mm or 0.1 degree (depending on the axis type) on both sides.
|
them by 0.1 mm or 0.1 degree (depending on the axis type) on both sides.
|
||||||
*/
|
*/
|
||||||
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorLimitsOffset_,
|
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorLimitsOffset(),
|
||||||
&limitsOffset);
|
&limitsOffset);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorLimitsOffset_",
|
return pC_->paramLibAccessFailed(pl_status, "motorLimitsOffset_",
|
||||||
@@ -656,15 +656,15 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
highLimit = highLimit - limitsOffset;
|
highLimit = highLimit - limitsOffset;
|
||||||
lowLimit = lowLimit + limitsOffset;
|
lowLimit = lowLimit + limitsOffset;
|
||||||
|
|
||||||
pl_status = pC_->setDoubleParam(axisNo_, pC_->motorHighLimitFromDriver_,
|
pl_status = pC_->setDoubleParam(
|
||||||
highLimit);
|
axisNo_, pC_->motorHighLimitFromDriver(), highLimit);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(
|
return pC_->paramLibAccessFailed(
|
||||||
pl_status, "motorHighLimitFromDriver_", axisNo_,
|
pl_status, "motorHighLimitFromDriver_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = pC_->setDoubleParam(axisNo_, pC_->motorLowLimitFromDriver_,
|
pl_status = pC_->setDoubleParam(axisNo_, pC_->motorLowLimitFromDriver(),
|
||||||
lowLimit);
|
lowLimit);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorLowLimit_",
|
return pC_->paramLibAccessFailed(pl_status, "motorLowLimit_",
|
||||||
@@ -674,7 +674,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update the enable PV
|
// Update the enable PV
|
||||||
pl_status = setIntegerParam(pC_->motorEnableRBV_,
|
pl_status = setIntegerParam(pC_->motorEnableRBV(),
|
||||||
readyToBeSwitchedOn() && switchedOn());
|
readyToBeSwitchedOn() && switchedOn());
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorEnableRBV_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "motorEnableRBV_", axisNo_,
|
||||||
@@ -692,27 +692,27 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
|
|
||||||
// Update the parameter library
|
// Update the parameter library
|
||||||
if (hasError) {
|
if (hasError) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
__LINE__);
|
__LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pl_status = setIntegerParam(pC_->motorStatusMoving_, *moving);
|
pl_status = setIntegerParam(pC_->motorStatusMoving(), *moving);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusMoving_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusMoving_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
__LINE__);
|
__LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = setIntegerParam(pC_->motorStatusDone_, !(*moving));
|
pl_status = setIntegerParam(pC_->motorStatusDone(), !(*moving));
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusDone_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = setIntegerParam(pC_->motorStatusDirection_, direction);
|
pl_status = setIntegerParam(pC_->motorStatusDirection(), direction);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusDirection_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusDirection_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -723,7 +723,7 @@ asynStatus masterMacsAxis::doPoll(bool *moving) {
|
|||||||
// masterMacsAxis::init())
|
// masterMacsAxis::init())
|
||||||
currentPosition = currentPosition / motorRecResolution;
|
currentPosition = currentPosition / motorRecResolution;
|
||||||
|
|
||||||
pl_status = setDoubleParam(pC_->motorPosition_, currentPosition);
|
pl_status = setDoubleParam(pC_->motorPosition(), currentPosition);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "motorPosition_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
@@ -751,13 +751,13 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
pl_status = pC_->getIntegerParam(axisNo_, pC_->motorEnableRBV_, &enabled);
|
pl_status = pC_->getIntegerParam(axisNo_, pC_->motorEnableRBV(), &enabled);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "enableMotorRBV_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "enableMotorRBV_", axisNo_,
|
||||||
__PRETTY_FUNCTION__, __LINE__);
|
__PRETTY_FUNCTION__, __LINE__);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution_,
|
pl_status = pC_->getDoubleParam(axisNo_, pC_->motorRecResolution(),
|
||||||
&motorRecResolution);
|
&motorRecResolution);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_",
|
return pC_->paramLibAccessFailed(pl_status, "motorRecResolution_",
|
||||||
@@ -766,7 +766,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (enabled == 0) {
|
if (enabled == 0) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is "
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is "
|
||||||
"disabled.\n",
|
"disabled.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
|
||||||
@@ -778,12 +778,12 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
motorVelocity = maxVelocity * motorRecResolution;
|
motorVelocity = maxVelocity * motorRecResolution;
|
||||||
|
|
||||||
asynPrint(
|
asynPrint(
|
||||||
pC_->pasynUserSelf, ASYN_TRACE_FLOW,
|
pC_->asynUserSelf(), ASYN_TRACE_FLOW,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nMove to position %lf.\n",
|
"Controller \"%s\", axis %d => %s, line %d:\nMove to position %lf.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, position);
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, position);
|
||||||
|
|
||||||
// Check if the speed is allowed to be changed
|
// Check if the speed is allowed to be changed
|
||||||
pl_status = pC_->getIntegerParam(axisNo_, pC_->motorCanSetSpeed_,
|
pl_status = pC_->getIntegerParam(axisNo_, pC_->motorCanSetSpeed(),
|
||||||
&motorCanSetSpeed);
|
&motorCanSetSpeed);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorCanSetSpeed_",
|
return pC_->paramLibAccessFailed(pl_status, "motorCanSetSpeed_",
|
||||||
@@ -794,7 +794,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
// Initialize the movement handshake
|
// Initialize the movement handshake
|
||||||
rw_status = pC_->write(axisNo_, 86, "0");
|
rw_status = pC_->write(axisNo_, 86, "0");
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -812,7 +812,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
snprintf(value, sizeof(value), "%lf", motorVelocity);
|
snprintf(value, sizeof(value), "%lf", motorVelocity);
|
||||||
rw_status = pC_->write(axisNo_, 05, value);
|
rw_status = pC_->write(axisNo_, 05, value);
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status,
|
return pC_->paramLibAccessFailed(pl_status,
|
||||||
"motorStatusProblem_", axisNo_,
|
"motorStatusProblem_", axisNo_,
|
||||||
@@ -821,7 +821,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
return rw_status;
|
return rw_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_FLOW,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_FLOW,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nSetting speed "
|
"Controller \"%s\", axis %d => %s, line %d:\nSetting speed "
|
||||||
"to %lf.\n",
|
"to %lf.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
@@ -832,7 +832,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
snprintf(value, sizeof(value), "%lf", motorCoordinatesPosition);
|
snprintf(value, sizeof(value), "%lf", motorCoordinatesPosition);
|
||||||
rw_status = pC_->write(axisNo_, 02, value);
|
rw_status = pC_->write(axisNo_, 02, value);
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -848,7 +848,7 @@ asynStatus masterMacsAxis::doMove(double position, int relative,
|
|||||||
rw_status = pC_->write(axisNo_, 00, "1");
|
rw_status = pC_->write(axisNo_, 00, "1");
|
||||||
}
|
}
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -883,7 +883,7 @@ asynStatus masterMacsAxis::stop(double acceleration) {
|
|||||||
|
|
||||||
rw_status = pC_->write(axisNo_, 00, "8");
|
rw_status = pC_->write(axisNo_, 00, "8");
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
return pC_->paramLibAccessFailed(pl_status, "motorStatusProblem_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
@@ -910,7 +910,7 @@ asynStatus masterMacsAxis::doHome(double min_velocity, double max_velocity,
|
|||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
pl_status = pC_->getStringParam(axisNo_, pC_->encoderType_,
|
pl_status = pC_->getStringParam(axisNo_, pC_->encoderType(),
|
||||||
sizeof(response), response);
|
sizeof(response), response);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "encoderType_", axisNo_,
|
return pC_->paramLibAccessFailed(pl_status, "encoderType_", axisNo_,
|
||||||
@@ -923,7 +923,7 @@ asynStatus masterMacsAxis::doHome(double min_velocity, double max_velocity,
|
|||||||
// Initialize the movement handshake
|
// Initialize the movement handshake
|
||||||
rw_status = pC_->write(axisNo_, 86, "0");
|
rw_status = pC_->write(axisNo_, 86, "0");
|
||||||
if (rw_status != asynSuccess) {
|
if (rw_status != asynSuccess) {
|
||||||
pl_status = setIntegerParam(pC_->motorStatusProblem_, true);
|
pl_status = setIntegerParam(pC_->motorStatusProblem(), true);
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status,
|
return pC_->paramLibAccessFailed(pl_status,
|
||||||
"motorStatusProblem_", axisNo_,
|
"motorStatusProblem_", axisNo_,
|
||||||
@@ -983,9 +983,9 @@ asynStatus masterMacsAxis::readEncoderType() {
|
|||||||
2=SSI (Absolute encoder with BiSS interface)
|
2=SSI (Absolute encoder with BiSS interface)
|
||||||
*/
|
*/
|
||||||
if (encoder_id == 0) {
|
if (encoder_id == 0) {
|
||||||
pl_status = setStringParam(pC_->encoderType_, IncrementalEncoder);
|
pl_status = setStringParam(pC_->encoderType(), IncrementalEncoder);
|
||||||
} else {
|
} else {
|
||||||
pl_status = setStringParam(pC_->encoderType_, AbsoluteEncoder);
|
pl_status = setStringParam(pC_->encoderType(), AbsoluteEncoder);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
@@ -1017,13 +1017,13 @@ asynStatus masterMacsAxis::enable(bool on) {
|
|||||||
// axis instead of "moving", since status -6 is also moving, but the
|
// axis instead of "moving", since status -6 is also moving, but the
|
||||||
// motor can actually be disabled in this state!
|
// motor can actually be disabled in this state!
|
||||||
if (moving) {
|
if (moving) {
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not "
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is not "
|
||||||
"idle and can therefore not be disabled.\n",
|
"idle and can therefore not be disabled.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__);
|
||||||
|
|
||||||
pl_status =
|
pl_status =
|
||||||
setStringParam(pC_->motorMessageText_,
|
setStringParam(pC_->motorMessageText(),
|
||||||
"Axis cannot be disabled while it is moving.");
|
"Axis cannot be disabled while it is moving.");
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
||||||
@@ -1039,7 +1039,7 @@ asynStatus masterMacsAxis::enable(bool on) {
|
|||||||
|
|
||||||
if ((readyToBeSwitchedOn() && switchedOn()) == on) {
|
if ((readyToBeSwitchedOn() && switchedOn()) == on) {
|
||||||
asynPrint(
|
asynPrint(
|
||||||
pC_->pasynUserSelf, ASYN_TRACE_WARNING,
|
pC_->asynUserSelf(), ASYN_TRACE_WARNING,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nAxis is already %s.\n",
|
"Controller \"%s\", axis %d => %s, line %d:\nAxis is already %s.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
on ? "enabled" : "disabled");
|
on ? "enabled" : "disabled");
|
||||||
@@ -1048,14 +1048,14 @@ asynStatus masterMacsAxis::enable(bool on) {
|
|||||||
|
|
||||||
// Enable / disable the axis if it is not moving
|
// Enable / disable the axis if it is not moving
|
||||||
snprintf(value, sizeof(value), "%d", on);
|
snprintf(value, sizeof(value), "%d", on);
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_FLOW,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_FLOW,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\n%s axis.\n",
|
"Controller \"%s\", axis %d => %s, line %d:\n%s axis.\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
on ? "Enable" : "Disable");
|
on ? "Enable" : "Disable");
|
||||||
if (on == 0) {
|
if (on == 0) {
|
||||||
pl_status = setStringParam(pC_->motorMessageText_, "Disabling ...");
|
pl_status = setStringParam(pC_->motorMessageText(), "Disabling ...");
|
||||||
} else {
|
} else {
|
||||||
pl_status = setStringParam(pC_->motorMessageText_, "Enabling ...");
|
pl_status = setStringParam(pC_->motorMessageText(), "Enabling ...");
|
||||||
}
|
}
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
||||||
@@ -1089,7 +1089,7 @@ asynStatus masterMacsAxis::enable(bool on) {
|
|||||||
|
|
||||||
// Failed to change axis status within timeout_enable_disable => Send a
|
// Failed to change axis status within timeout_enable_disable => Send a
|
||||||
// corresponding message
|
// corresponding message
|
||||||
asynPrint(pC_->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\", axis %d => %s, line %d:\nFailed to %s axis "
|
"Controller \"%s\", axis %d => %s, line %d:\nFailed to %s axis "
|
||||||
"within %d seconds\n",
|
"within %d seconds\n",
|
||||||
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
pC_->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__,
|
||||||
@@ -1098,7 +1098,7 @@ asynStatus masterMacsAxis::enable(bool on) {
|
|||||||
// Output message to user
|
// Output message to user
|
||||||
snprintf(value, sizeof(value), "Failed to %s within %d seconds",
|
snprintf(value, sizeof(value), "Failed to %s within %d seconds",
|
||||||
on ? "enable" : "disable", timeout_enable_disable);
|
on ? "enable" : "disable", timeout_enable_disable);
|
||||||
pl_status = setStringParam(pC_->motorMessageText_, "Enabling ...");
|
pl_status = setStringParam(pC_->motorMessageText(), "Enabling ...");
|
||||||
if (pl_status != asynSuccess) {
|
if (pl_status != asynSuccess) {
|
||||||
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
return pC_->paramLibAccessFailed(pl_status, "motorMessageText_",
|
||||||
axisNo_, __PRETTY_FUNCTION__,
|
axisNo_, __PRETTY_FUNCTION__,
|
||||||
|
|||||||
@@ -273,9 +273,6 @@ class masterMacsAxis : public sinqAxis {
|
|||||||
* @brief Read the property from axisError_
|
* @brief Read the property from axisError_
|
||||||
*/
|
*/
|
||||||
bool stoFault() { return axisError_[15]; }
|
bool stoFault() { return axisError_[15]; }
|
||||||
|
|
||||||
private:
|
|
||||||
friend class masterMacsController;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -49,14 +49,10 @@ masterMacsController::masterMacsController(const char *portName,
|
|||||||
int numAxes, double movingPollPeriod,
|
int numAxes, double movingPollPeriod,
|
||||||
double idlePollPeriod,
|
double idlePollPeriod,
|
||||||
double comTimeout)
|
double comTimeout)
|
||||||
: sinqController(
|
: sinqController(portName, ipPortConfigName, numAxes, movingPollPeriod,
|
||||||
portName, ipPortConfigName, numAxes, movingPollPeriod, idlePollPeriod,
|
idlePollPeriod,
|
||||||
/*
|
// No additional parameter library entries
|
||||||
The following parameter library entries are added in this driver:
|
0)
|
||||||
- REREAD_ENCODER_POSITION
|
|
||||||
- READ_CONFIG
|
|
||||||
*/
|
|
||||||
NUM_masterMacs_DRIVER_PARAMS)
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -64,22 +60,9 @@ masterMacsController::masterMacsController(const char *portName,
|
|||||||
asynStatus status = asynSuccess;
|
asynStatus status = asynSuccess;
|
||||||
|
|
||||||
// Initialization of all member variables
|
// Initialization of all member variables
|
||||||
lowLevelPortUser_ = nullptr;
|
|
||||||
comTimeout_ = comTimeout;
|
comTimeout_ = comTimeout;
|
||||||
|
|
||||||
// =========================================================================;
|
// =========================================================================
|
||||||
|
|
||||||
/*
|
|
||||||
We try to connect to the port via the port name provided by the constructor.
|
|
||||||
If this fails, the function is terminated via exit
|
|
||||||
*/
|
|
||||||
pasynOctetSyncIO->connect(ipPortConfigName, 0, &lowLevelPortUser_, NULL);
|
|
||||||
if (status != asynSuccess || lowLevelPortUser_ == nullptr) {
|
|
||||||
errlogPrintf("Controller \"%s\" => %s, line %d:\nFATAL ERROR (cannot "
|
|
||||||
"connect to MCU controller).\nTerminating IOC",
|
|
||||||
portName, __PRETTY_FUNCTION__, __LINE__);
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Define the end-of-string of a message coming from the device to EPICS.
|
Define the end-of-string of a message coming from the device to EPICS.
|
||||||
@@ -87,15 +70,15 @@ masterMacsController::masterMacsController(const char *portName,
|
|||||||
the message length is encoded in the message header.
|
the message length is encoded in the message header.
|
||||||
*/
|
*/
|
||||||
const char *message_from_device = "\x0D"; // Hex-code for CR
|
const char *message_from_device = "\x0D"; // Hex-code for CR
|
||||||
status = pasynOctetSyncIO->setInputEos(
|
status = pasynOctetSyncIO->setInputEos(ipPortUser_, message_from_device,
|
||||||
lowLevelPortUser_, message_from_device, strlen(message_from_device));
|
strlen(message_from_device));
|
||||||
if (status != asynSuccess) {
|
if (status != asynSuccess) {
|
||||||
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR,
|
||||||
"Controller \"%s\" => %s, line %d:\nFATAL ERROR (setting "
|
"Controller \"%s\" => %s, line %d:\nFATAL ERROR (setting "
|
||||||
"input EOS failed with %s).\nTerminating IOC",
|
"input EOS failed with %s).\nTerminating IOC",
|
||||||
portName, __PRETTY_FUNCTION__, __LINE__,
|
portName, __PRETTY_FUNCTION__, __LINE__,
|
||||||
stringifyAsynStatus(status));
|
stringifyAsynStatus(status));
|
||||||
pasynOctetSyncIO->disconnect(lowLevelPortUser_);
|
pasynOctetSyncIO->disconnect(ipPortUser_);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +89,7 @@ masterMacsController::masterMacsController(const char *portName,
|
|||||||
"ParamLib callbacks failed with %s).\nTerminating IOC",
|
"ParamLib callbacks failed with %s).\nTerminating IOC",
|
||||||
portName, __PRETTY_FUNCTION__, __LINE__,
|
portName, __PRETTY_FUNCTION__, __LINE__,
|
||||||
stringifyAsynStatus(status));
|
stringifyAsynStatus(status));
|
||||||
pasynOctetSyncIO->disconnect(lowLevelPortUser_);
|
pasynOctetSyncIO->disconnect(ipPortUser_);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,9 +176,8 @@ asynStatus masterMacsController::writeRead(int axisNo, int tcpCmd,
|
|||||||
adjustForPrint(printableCommand, fullCommand, MAXBUF_);
|
adjustForPrint(printableCommand, fullCommand, MAXBUF_);
|
||||||
|
|
||||||
// Send out the command
|
// Send out the command
|
||||||
status =
|
status = pasynOctetSyncIO->write(
|
||||||
pasynOctetSyncIO->write(lowLevelPortUser_, fullCommand,
|
ipPortUser_, fullCommand, fullCommandLength, comTimeout_, &nbytesOut);
|
||||||
fullCommandLength, comTimeout_, &nbytesOut);
|
|
||||||
|
|
||||||
msgPrintControlKey writeKey =
|
msgPrintControlKey writeKey =
|
||||||
msgPrintControlKey(portName, axisNo, __PRETTY_FUNCTION__, __LINE__);
|
msgPrintControlKey(portName, axisNo, __PRETTY_FUNCTION__, __LINE__);
|
||||||
@@ -221,10 +203,9 @@ asynStatus masterMacsController::writeRead(int axisNo, int tcpCmd,
|
|||||||
the return value of flush(), because it is always asynSuccess (see
|
the return value of flush(), because it is always asynSuccess (see
|
||||||
https://www.slac.stanford.edu/grp/lcls/controls/global/doc/epics-modules/R3-14-12/asyn/asyn-R4-18-lcls2/asyn/interfaces/asynOctetBase.c)
|
https://www.slac.stanford.edu/grp/lcls/controls/global/doc/epics-modules/R3-14-12/asyn/asyn-R4-18-lcls2/asyn/interfaces/asynOctetBase.c)
|
||||||
*/
|
*/
|
||||||
status =
|
status = pasynOctetSyncIO->read(ipPortUser_, fullResponse, MAXBUF_,
|
||||||
pasynOctetSyncIO->read(lowLevelPortUser_, fullResponse, MAXBUF_,
|
|
||||||
comTimeout_, &nbytesIn, &eomReason);
|
comTimeout_, &nbytesIn, &eomReason);
|
||||||
pasynOctetSyncIO->flush(lowLevelPortUser_);
|
pasynOctetSyncIO->flush(ipPortUser_);
|
||||||
|
|
||||||
if (status == asynSuccess) {
|
if (status == asynSuccess) {
|
||||||
status = parseResponse(fullCommand, fullResponse,
|
status = parseResponse(fullCommand, fullResponse,
|
||||||
|
|||||||
@@ -49,9 +49,6 @@ class masterMacsController : public sinqController {
|
|||||||
*/
|
*/
|
||||||
masterMacsAxis *getMasterMacsAxis(int axisNo);
|
masterMacsAxis *getMasterMacsAxis(int axisNo);
|
||||||
|
|
||||||
protected:
|
|
||||||
asynUser *lowLevelPortUser_;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Send a command to the hardware (S mode)
|
* @brief Send a command to the hardware (S mode)
|
||||||
*
|
*
|
||||||
@@ -114,26 +111,16 @@ class masterMacsController : public sinqController {
|
|||||||
int *valueStop, int axisNo, int tcpCmd,
|
int *valueStop, int axisNo, int tcpCmd,
|
||||||
bool isRead);
|
bool isRead);
|
||||||
|
|
||||||
private:
|
|
||||||
// Set the maximum buffer size. This is an empirical value which must be
|
// Set the maximum buffer size. This is an empirical value which must be
|
||||||
// large enough to avoid overflows for all commands to the device /
|
// large enough to avoid overflows for all commands to the device /
|
||||||
// responses from it.
|
// responses from it.
|
||||||
static const uint32_t MAXBUF_ = 200;
|
static const uint32_t MAXBUF_ = 200;
|
||||||
|
|
||||||
|
private:
|
||||||
/*
|
/*
|
||||||
Stores the constructor input comTimeout
|
Stores the constructor input comTimeout
|
||||||
*/
|
*/
|
||||||
double comTimeout_;
|
double comTimeout_;
|
||||||
|
|
||||||
// Indices of additional PVs
|
|
||||||
#define FIRST_masterMacs_PARAM rereadEncoderPosition_
|
|
||||||
int rereadEncoderPosition_;
|
|
||||||
int readConfig_;
|
|
||||||
#define LAST_masterMacs_PARAM readConfig_
|
|
||||||
|
|
||||||
friend class masterMacsAxis;
|
|
||||||
};
|
};
|
||||||
#define NUM_masterMacs_DRIVER_PARAMS \
|
|
||||||
(&LAST_masterMacs_PARAM - &FIRST_masterMacs_PARAM + 1)
|
|
||||||
|
|
||||||
#endif /* masterMacsController_H */
|
#endif /* masterMacsController_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user