Refactoring: We would like motor objects to allow getting of non-float parameters.

Call "GetDriverTextPar" if defined by a driver.
See SICS-10 on Jira.

r1676 | ffr | 2007-03-20 11:20:29 +1100 (Tue, 20 Mar 2007) | 4 lines
This commit is contained in:
Ferdi Franceschini
2007-03-20 11:20:29 +11:00
committed by Douglas Clowes
parent 657b5fc4f2
commit 86f584ea45

13
motor.c
View File

@@ -1195,9 +1195,10 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
TokenList *pList = NULL; TokenList *pList = NULL;
TokenList *pCurrent; TokenList *pCurrent;
TokenList *pName; TokenList *pName;
int iRet; int iRet, iRet2=0;
pMotor self; pMotor self;
float fValue; float fValue;
char textValue[TEXTPARLEN];
long lID; long lID;
pMotInfo pMoti = NULL; pMotInfo pMoti = NULL;
@@ -1352,7 +1353,10 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
return 1; return 1;
} }
iRet = MotorGetPar(self,pName->text,&fValue); iRet = MotorGetPar(self,pName->text,&fValue);
if(!iRet)
if(self->pDriver->GetDriverTextPar != NULL)
iRet2 = self->pDriver->GetDriverTextPar(self->pDriver, pName->text, textValue);
if(!(iRet || iRet2))
{ {
sprintf(pBueffel,"Parameter %s not found ",pName->text); sprintf(pBueffel,"Parameter %s not found ",pName->text);
SCWrite(pCon,pBueffel,eValue); SCWrite(pCon,pBueffel,eValue);
@@ -1361,7 +1365,10 @@ extern MotorDriver *MakePiPiezo(Tcl_Interp *pTcl, char *pArray);
} }
else else
{ {
sprintf(pBueffel, "%s.%s = %f",self->name,pName->text,fValue); if (iRet)
sprintf(pBueffel, "%s.%s = %f",self->name,pName->text,fValue);
else if (iRet2)
sprintf(pBueffel, "%s.%s = %s",self->name,pName->text,textValue);
SCWrite(pCon,pBueffel,eValue); SCWrite(pCon,pBueffel,eValue);
DeleteTokenList(pList); DeleteTokenList(pList);
return 1; return 1;