- GPIB/ECB modules completed, ecb motor driver in progress

This commit is contained in:
cvs
2003-01-17 16:09:34 +00:00
parent bbc0b64c43
commit f45c3ebf55
27 changed files with 2030 additions and 84 deletions

47
motor.c
View File

@ -10,6 +10,7 @@
revised: Mark Koennecke, June 1997
callback added: Mark Koennecke, August 1997
endscript facility added: Mark Koennecke, August 2002
Modified to support driver parameters, Mark Koennecke, January 2003
Copyright:
@ -34,7 +35,6 @@
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
@ -333,16 +333,7 @@
self->pDriver->GetError(self->pDriver,&iCode,pError,131);
sprintf(pBueffel,"WARNING: %s on %s",pError,self->name);
SCWrite(pCon,pBueffel,eStatus);
if(self->pDriver->ContinueAfterWarn(self->pDriver))
{
iRetry = 0;
return HWBusy;
}
else
{
iRetry = 0;
return HWIdle;
}
return HWIdle;
}
iRetry = 0;
return iRet;
@ -514,7 +505,17 @@ extern void KillPiPiezo(void *pData);
}
else
{
return 0;
/*
check for a driver parameter
*/
if(self->pDriver->GetDriverPar != NULL)
{
return self->pDriver->GetDriverPar(self->pDriver,name,fVal);
}
else
{
return 0;
}
}
}
}
@ -553,10 +554,6 @@ extern void KillPiPiezo(void *pData);
}
iRet = ObParSet(self->ParArray,self->name,name,fVal,pCon);
if(!iRet)
{
return iRet;
}
if(strcmp(name,"sign") == 0)
{
if((absf(fVal)-1.0) > 0.01)
@ -573,6 +570,17 @@ extern void KillPiPiezo(void *pData);
ObParInit(self->ParArray,SZERO,"softzero",ZEROINACTIVE,usUser);
}
}
/*
try set driver parameters
*/
if(iRet == 0)
{
if(self->pDriver->SetDriverPar != NULL)
{
iRet = self->pDriver->SetDriverPar(self->pDriver,pCon,name,fVal);
}
}
return iRet;
}
/*---------------------------------------------------------------------------
@ -988,6 +996,13 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
sprintf(pBueffel,"%s.TargetPosition = %f\n", self->name,self->fTarget);
SCWrite(pCon,pBueffel,eStatus);
/*
list driver parameters when appropriate
*/
if(self->pDriver->ListDriverPar != NULL)
{
self->pDriver->ListDriverPar(self->pDriver,self->name, pCon);
}
}
/*--------------------------------------------------------------------------*/
void MotorReset(pMotor pM)