EL734 positioning failure + improve logging

This commit is contained in:
Michele Brambilla
2022-03-02 06:39:18 +01:00
parent 542abcbaad
commit 68a265b199

View File

@ -273,7 +273,7 @@ asynStatus EL734Axis::move(double position, int relative, double minVelocity, do
oredMSR = 0;
homing = 0;
errorReported = 0;
//errlogPrintf("Starting axis %d with destination %f", axisNo_,position/1000);
errlogPrintf("Starting axis %d with destination %f", axisNo_,position/1000);
sprintf(command, "p %d %.3f", axisNo_, position/1000.);
status = pC_->transactController(axisNo_,command,reply);
setIntegerParam(pC_->motorStatusProblem_, false);
@ -418,7 +418,7 @@ asynStatus EL734Axis::poll(bool *moving)
goto skip;
}
} else {
//errlogPrintf("Axis %d, reply %s, position %lf\n", axisNo_, reply, position);
errlogPrintf("Axis %d, reply %s, position %lf\n", axisNo_, reply, position);
setDoubleParam(pC_->motorPosition_, position*1000);
//setDoubleParam(pC_->motorEncoderPosition_, position);
}
@ -473,14 +473,25 @@ asynStatus EL734Axis::poll(bool *moving)
comStatus = asynError;
goto skip;
}
if(oredMSR &0x80){
if(oredMSR & 0x100){
setIntegerParam(pC_->motorStatusProblem_, true);
errlogSevPrintf(errlogMajor, "Positioning fault at %d", axisNo_);
updateMsgTxtFromDriver("Positioning fault");
errlogSevPrintf(errlogMajor, "Run failure at %d", axisNo_);
updateMsgTxtFromDriver("Run failure");
comStatus = asynError;
errorReported = 1;
goto skip;
}
if(oredMSR & 0x400){
setIntegerParam(pC_->motorStatusProblem_, true);
errlogSevPrintf(errlogMajor, "Positioning failure at %d", axisNo_);
updateMsgTxtFromDriver("Positioning failure");
comStatus = asynError;
errorReported = 1;
goto skip;
}
if(oredMSR & 0x200 || oredMSR & 0x80) {
errlogSevPrintf(errlogMinor, "Positioning fault at %d", axisNo_);
}
setIntegerParam(pC_->motorStatusProblem_, false);
} else {
*moving = true;