- Reworked mesure for four circle to new specifications
* reworked table * added psd mode - exe now allows absolute paths - added getRS232Timeout to rs232controller - Fixed a couple of "guessed" return values
This commit is contained in:
63
motor.c
63
motor.c
@ -62,20 +62,18 @@
|
||||
#define INTBATCH 2.
|
||||
#define INTHALT 3.
|
||||
|
||||
#define HLOW 0
|
||||
#define HUPP 1
|
||||
#define SLOW 2
|
||||
#define SUPP 3
|
||||
#define SZERO 4
|
||||
#define FIX 5
|
||||
#define INT 6
|
||||
#define PREC 7
|
||||
#define USRIGHTS 8
|
||||
#define SIGN 9
|
||||
#define ECOUNT 10
|
||||
#define POSCOUNT 11
|
||||
#define IGNOREFAULT 12
|
||||
#define MOVECOUNT 13
|
||||
#define SLOW 0
|
||||
#define SUPP 1
|
||||
#define SZERO 2
|
||||
#define FIX 3
|
||||
#define INT 4
|
||||
#define PREC 5
|
||||
#define USRIGHTS 6
|
||||
#define SIGN 7
|
||||
#define ECOUNT 8
|
||||
#define POSCOUNT 9
|
||||
#define IGNOREFAULT 10
|
||||
#define MOVECOUNT 11
|
||||
|
||||
/*------------------------------------------------------------------------
|
||||
a tiny structure used in CallBack work
|
||||
@ -327,6 +325,10 @@ static int evaluateStatus(pMotor self, SConnection *pCon)
|
||||
{
|
||||
newStatus = HWPosFault;
|
||||
}
|
||||
if(newStatus == HWIdle || newStatus == OKOK)
|
||||
{
|
||||
finishDriving(self,pCon);
|
||||
}
|
||||
break;
|
||||
case HWBusy:
|
||||
newStatus = HWBusy;
|
||||
@ -398,14 +400,12 @@ static void handleMoveCallback(pMotor self, SConnection *pCon)
|
||||
|
||||
|
||||
/* create and initialize parameters */
|
||||
pM->ParArray = ObParCreate(14);
|
||||
pM->ParArray = ObParCreate(12);
|
||||
if(!pM->ParArray)
|
||||
{
|
||||
free(pM);
|
||||
return NULL;
|
||||
}
|
||||
ObParInit(pM->ParArray,HLOW,"hardlowerlim",pDriv->fLower,usMugger);
|
||||
ObParInit(pM->ParArray,HUPP,"hardupperlim",pDriv->fUpper,usMugger);
|
||||
ObParInit(pM->ParArray,SLOW,"softlowerlim",pDriv->fLower,usUser);
|
||||
ObParInit(pM->ParArray,SUPP,"softupperlim",pDriv->fUpper,usUser);
|
||||
ObParInit(pM->ParArray,SZERO,"softzero",ZEROINACTIVE,usUser);
|
||||
@ -521,7 +521,18 @@ extern void KillPiPiezo(void *pData);
|
||||
{
|
||||
ObPar *pPar = NULL;
|
||||
assert(self);
|
||||
|
||||
|
||||
if(strcmp(name,"hardupperlim") == 0)
|
||||
{
|
||||
*fVal = self->pDriver->fUpper;
|
||||
return 1;
|
||||
}
|
||||
if(strcmp(name,"hardlowerlim") == 0)
|
||||
{
|
||||
*fVal = self->pDriver->fLower;
|
||||
return 1;
|
||||
}
|
||||
|
||||
pPar = ObParFind(self->ParArray,name);
|
||||
if(pPar)
|
||||
{
|
||||
@ -674,17 +685,17 @@ extern void KillPiPiezo(void *pData);
|
||||
fHard = fHard*ObVal(self->ParArray,SIGN);
|
||||
|
||||
/* check for hardware limits */
|
||||
if(fHard > ObVal(self->ParArray,HUPP))
|
||||
if(fHard > self->pDriver->fUpper)
|
||||
{
|
||||
sprintf(pBueffel,"%f violates upper hardware limit %f on %s",
|
||||
fVal,ObVal(self->ParArray,HUPP),self->name);
|
||||
fVal,self->pDriver->fUpper,self->name);
|
||||
strncpy(pError,pBueffel,iErrLen);
|
||||
return 0;
|
||||
}
|
||||
if(fHard < ObVal(self->ParArray,HLOW))
|
||||
if(fHard < self->pDriver->fLower)
|
||||
{
|
||||
sprintf(pBueffel,"%f violates lower hardware limit %f on %s",
|
||||
fVal,ObVal(self->ParArray,HLOW),self->name);
|
||||
fVal,self->pDriver->fLower,self->name);
|
||||
strncpy(pError,pBueffel,iErrLen);
|
||||
return 0;
|
||||
}
|
||||
@ -980,8 +991,6 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
|
||||
SCWrite(pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
pNew->ParArray[HLOW].iCode = usUser;
|
||||
pNew->ParArray[HUPP].iCode = usUser;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1018,6 +1027,12 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
|
||||
iLen = ObParLength(self->ParArray);
|
||||
sprintf(pBueffel,"Parameter Listing for motor %s\n",self->name);
|
||||
SCWrite(pCon,pBueffel,eStatus);
|
||||
snprintf(pBueffel,511,"%s.hardupperlim = %f",self->name,
|
||||
self->pDriver->fUpper);
|
||||
SCWrite(pCon,pBueffel,eValue);
|
||||
snprintf(pBueffel,511,"%s.hardlowerlim = %f",self->name,
|
||||
self->pDriver->fLower);
|
||||
SCWrite(pCon,pBueffel,eValue);
|
||||
for(i = 0; i < iLen; i++)
|
||||
{
|
||||
sprintf(pBueffel,"%s.%s = %f\n",self->name,
|
||||
|
Reference in New Issue
Block a user