Home search can not be aborted from EPICS. Commented out home search command until an Ensemble firmware update resolves this problem.

This commit is contained in:
Ron Sluiter
2010-10-06 20:36:35 +00:00
parent 89d190a2f4
commit 57cd5013e1
2 changed files with 13 additions and 19 deletions
+1 -16
View File
@@ -239,22 +239,7 @@ static RTN_STATUS Ensemble_build_trans (motor_cmnd command, double *parms,
case HOME_FOR:
case HOME_REV:
{
epicsUInt32 hparam = cntrl->home_dparam[axis];
if (command == HOME_FOR)
hparam |= 0x00000001;
else
hparam &= 0xFFFFFFFE;
cntrl->home_dparam[axis] = hparam;
sprintf(buff, "SETPARM @%d, 106, %d", axis, hparam);
strcpy(motor_call->message, buff);
rtnval = motor_end_trans_com(mr, drvtabptr);
rtnval = (RTN_STATUS) motor_start_trans_com(mr, Ensemble_cards);
sprintf(buff, "HOME @%d", axis);
motor_call->type = Ensemble_table[command];
}
send = false; // Commenting out until Home search can be stopped from EPICS
break;
case LOAD_POS:
+12 -3
View File
@@ -24,6 +24,10 @@ Synapps Versions 4-5
and higher are distributed subject to a Software License Agreement found
in file LICENSE that is included with this distribution.
-----------------------------------------------------------------------------
* NOTES
* -----
* Verified with firmware:
* - 2.54.003
*
* Modification Log:
* -----------------
@@ -41,6 +45,11 @@ in file LICENSE that is included with this distribution.
* - changed EOT LS read status from AXISFAULT to AXISSTATUS so
* LS status can be monitored independent of fault status.
* .08 06-03-10 rls - Set motorAxisHasEncoder based on CfgFbkPosType parameter.
* .09 09-13-10 rls - Bug fix from Wang Xiaoqiang (PSI); remove redundant EOS
* append in sendAndReceive(). Fixes comm. problem with
* Ensemble firmware 2.54.004 and above.
* .10 09-29-10 rls - Commented out home search until firmware upgrade that
* allows aborting home search from ASCII protocol.
*/
@@ -85,7 +94,7 @@ motorAxisDrvSET_t motorEnsemble =
motorAxisSetInteger, /**< Pointer to function to set an integer value */
motorAxisGetDouble, /**< Pointer to function to get a double value */
motorAxisGetInteger, /**< Pointer to function to get an integer value */
motorAxisHome, /**< Pointer to function to execute a more to reference or home */
motorAxisHome, /**< Pointer to function to execute a move to reference or home */
motorAxisMove, /**< Pointer to function to execute a position move */
motorAxisVelocityMove, /**< Pointer to function to execute a velocity mode move */
motorAxisStop, /**< Pointer to function to stop motion */
@@ -499,7 +508,9 @@ static int motorAxisHome(AXIS_HDL pAxis, double min_velocity, double max_velocit
epicsUInt32 hparam;
int axis;
/* Return ERROR until Ensemble firmware upgrade.
if (pAxis == NULL || pAxis->pController == NULL)
*/
return (MOTOR_AXIS_ERROR);
axis = pAxis->axis;
@@ -945,8 +956,6 @@ static asynStatus sendAndReceive(EnsembleController *pController, char *outputBu
return(asynError);
strcpy(outputCopy, outputBuff);
if (outputCopy[strlen(outputCopy) - 1] != ASCII_EOS_CHAR)
strcat(outputCopy, ASCII_EOS_STR);
nWriteRequested=strlen(outputCopy);
/* sendAndReceive is intended only for "fast" read-write operations (such as getting parameter/status values),