Added a number of auxiliary Makefiles

- MakeScaler.RHEL7 to build the EPICS scaler module from source. We use a better one then the standard one.
- MakeAutoSave.RHEL7 to build  autosave from the PSI module system
- Modified the EL734Driver to set the MsgTxt to NULL when everything is happy
This commit is contained in:
2018-11-07 16:18:16 +01:00
parent 1687ebf4c7
commit 2a964503a4
5 changed files with 164 additions and 4 deletions

View File

@ -218,6 +218,27 @@ asynStatus EL734Controller::transactController(int axisNo,char command[COMLEN],
EL734Axis::EL734Axis(EL734Controller *pC, int axisNo)
: SINQAxis(pC, axisNo), pC_(pC)
{
char command[COMLEN], reply[COMLEN];
asynStatus status;
int count = 0;
float low, high;
/*
get the hardware limits from the controller
*/
sprintf(command,"H %d",axisNo_);
status = pC_->transactController(axisNo_,command,reply);
if(status == asynSuccess){
count = sscanf(reply,"%f %f",&low, &high);
if(count >= 2){
pC_->setDoubleParam(axisNo_,pC_->motorLowLimit_,low);
pC_->setDoubleParam(axisNo_,pC_->motorHighLimit_,high);
} else {
errlogPrintf("Bad response - %s - requesting limits at axis %d", reply, axisNo_);
}
} else {
errlogPrintf("Failed to read limits at axis %d", axisNo_);
}
}
@ -255,6 +276,8 @@ asynStatus EL734Axis::move(double position, int relative, double minVelocity, do
homing = 0;
sprintf(command, "p %d %.3f", axisNo_, position/1000.);
status = pC_->transactController(axisNo_,command,reply);
setIntegerParam(pC_->motorStatusProblem_, false);
updateMsgTxtFromDriver("");
next_poll = -1;
return status;
}
@ -267,6 +290,9 @@ asynStatus EL734Axis::home(double minVelocity, double maxVelocity, double accele
// status = sendAccelAndVelocity(acceleration, maxVelocity);
setIntegerParam(pC_->motorStatusProblem_, false);
updateMsgTxtFromDriver("");
sprintf(command, "R %d", axisNo_);
homing = 1;
next_poll= -1;
@ -293,6 +319,8 @@ asynStatus EL734Axis::moveVelocity(double minVelocity, double maxVelocity, doubl
sprintf(command, "FB %d", axisNo_);
}
status = pC_->transactController(axisNo_,command,reply);
setIntegerParam(pC_->motorStatusProblem_, false);
updateMsgTxtFromDriver("");
next_poll = -1;
return status;
}
@ -433,8 +461,7 @@ asynStatus EL734Axis::poll(bool *moving)
}
*moving = false;
setIntegerParam(pC_->motorStatusDone_, true);
//updateMsgTxtFromDriver("Believed to be on position");
} else {
} else {
*moving = true;
next_poll = -1;
setIntegerParam(pC_->motorStatusDone_, false);
@ -443,7 +470,7 @@ asynStatus EL734Axis::poll(bool *moving)
skip:
if(driverError == 0){
updateMsgTxtFromDriver(NULL);
updateMsgTxtFromDriver("");
}
setIntegerParam(pC_->motorStatusProblem_, comStatus ? 1:0);
callParamCallbacks();