Fixed a bug in msgPrintControl
This commit is contained in:
@ -139,7 +139,7 @@ class msgPrintControl {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::unordered_map<msgPrintControlKey, size_t> map_;
|
std::unordered_map<msgPrintControlKey, size_t> map_;
|
||||||
char suffix_[200] = {0};
|
char suffix_[300] = {0};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -15,6 +15,19 @@ sinqAxis::sinqAxis(class sinqController *pC, int axisNo)
|
|||||||
offsetMovTimeout_ = 30;
|
offsetMovTimeout_ = 30;
|
||||||
targetPosition_ = 0.0;
|
targetPosition_ = 0.0;
|
||||||
|
|
||||||
|
// This check is also done in asynMotorAxis, but there the IOC continues
|
||||||
|
// running even though the configuration is incorrect. When failing this
|
||||||
|
// check, the IOC is stopped, since this is definitely a configuration
|
||||||
|
// problem.
|
||||||
|
if ((axisNo < 0) || (axisNo >= pC->numAxes())) {
|
||||||
|
asynPrint(pC_->asynUserSelf(), ASYN_TRACE_ERROR,
|
||||||
|
"Controller \"%s\", axis %d => %s, line %d:\nFATAL ERROR "
|
||||||
|
"(axis index %d is not in range 0 to %d)\n. Terminating IOC",
|
||||||
|
pC->portName, axisNo_, __PRETTY_FUNCTION__, __LINE__, axisNo,
|
||||||
|
pC->numAxes() - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
// Motor is assumed to be enabled
|
// Motor is assumed to be enabled
|
||||||
status = setIntegerParam(pC_->motorEnableRBV(), 1);
|
status = setIntegerParam(pC_->motorEnableRBV(), 1);
|
||||||
if (status != asynSuccess) {
|
if (status != asynSuccess) {
|
||||||
@ -699,9 +712,9 @@ asynStatus setScaleMovTimeout(const char *portName, int axisNo,
|
|||||||
sinqAxis *axis = dynamic_cast<sinqAxis *>(asynAxis);
|
sinqAxis *axis = dynamic_cast<sinqAxis *>(asynAxis);
|
||||||
if (axis == nullptr) {
|
if (axis == nullptr) {
|
||||||
errlogPrintf("Controller \"%s\" => %s, line %d:\nAxis %d does not "
|
errlogPrintf("Controller \"%s\" => %s, line %d:\nAxis %d does not "
|
||||||
"exist or is not an "
|
"exist or is not an instance of sinqAxis.",
|
||||||
"instance of sinqAxis.",
|
|
||||||
portName, __PRETTY_FUNCTION__, __LINE__, axisNo);
|
portName, __PRETTY_FUNCTION__, __LINE__, axisNo);
|
||||||
|
return asynError;
|
||||||
}
|
}
|
||||||
|
|
||||||
return axis->setScaleMovTimeout(scaleMovTimeout);
|
return axis->setScaleMovTimeout(scaleMovTimeout);
|
||||||
|
@ -274,9 +274,15 @@ sinqController::sinqController(const char *portName,
|
|||||||
}
|
}
|
||||||
|
|
||||||
sinqController::~sinqController(void) {
|
sinqController::~sinqController(void) {
|
||||||
/*
|
|
||||||
Cleanup of the memory allocated in the asynMotorController constructor
|
// Free all axes
|
||||||
*/
|
for (int axisNo = 0; axisNo < numAxes_; axisNo++) {
|
||||||
|
if (pAxes_[axisNo] != nullptr) {
|
||||||
|
delete pAxes_[axisNo];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cleanup of the array allocated in the asynMotorController constructor
|
||||||
free(this->pAxes_);
|
free(this->pAxes_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user