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; oredMSR = 0;
homing = 0; homing = 0;
errorReported = 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.); sprintf(command, "p %d %.3f", axisNo_, position/1000.);
status = pC_->transactController(axisNo_,command,reply); status = pC_->transactController(axisNo_,command,reply);
setIntegerParam(pC_->motorStatusProblem_, false); setIntegerParam(pC_->motorStatusProblem_, false);
@@ -418,7 +418,7 @@ asynStatus EL734Axis::poll(bool *moving)
goto skip; goto skip;
} }
} else { } 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_->motorPosition_, position*1000);
//setDoubleParam(pC_->motorEncoderPosition_, position); //setDoubleParam(pC_->motorEncoderPosition_, position);
} }
@@ -473,14 +473,25 @@ asynStatus EL734Axis::poll(bool *moving)
comStatus = asynError; comStatus = asynError;
goto skip; goto skip;
} }
if(oredMSR &0x80){ if(oredMSR & 0x100){
setIntegerParam(pC_->motorStatusProblem_, true); setIntegerParam(pC_->motorStatusProblem_, true);
errlogSevPrintf(errlogMajor, "Positioning fault at %d", axisNo_); errlogSevPrintf(errlogMajor, "Run failure at %d", axisNo_);
updateMsgTxtFromDriver("Positioning fault"); updateMsgTxtFromDriver("Run failure");
comStatus = asynError; comStatus = asynError;
errorReported = 1; errorReported = 1;
goto skip; 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); setIntegerParam(pC_->motorStatusProblem_, false);
} else { } else {
*moving = true; *moving = true;