r3812 | jgn | 2012-11-16 14:19:49 +1100 (Fri, 16 Nov 2012) | 1 line
This commit is contained in:

committed by
Douglas Clowes

parent
ff6c252e39
commit
6b8ec1e2f3
@ -54,9 +54,12 @@ static int buildStandardCommandPart(TCLDriv *pDriv, char *command,
|
|||||||
if(status != 1) {
|
if(status != 1) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
snprintf(tclCommand,commandLen,"%s %s ", tclFunc, pDriv->motName);
|
//snprintf(tclCommand,commandLen,"%s %s ", tclFunc, pDriv->motName);
|
||||||
|
snprintf(tclCommand,commandLen,"%s", tclFunc);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------*/
|
||||||
static int GetTclPos(void *self, float *fPos){
|
static int GetTclPos(void *self, float *fPos){
|
||||||
TCLDriv *pDriv;
|
TCLDriv *pDriv;
|
||||||
@ -280,9 +283,6 @@ static int TclSetPar(void *self, SConnection *pCon, char *name, float newValue){
|
|||||||
int status;
|
int status;
|
||||||
const char *result = NULL;
|
const char *result = NULL;
|
||||||
|
|
||||||
char tclCommand[1024];
|
|
||||||
char tclCommandPara[1024];
|
|
||||||
|
|
||||||
TCLDriv *pDriv = (TCLDriv *) self;
|
TCLDriv *pDriv = (TCLDriv *) self;
|
||||||
|
|
||||||
assert(self);
|
assert(self);
|
||||||
@ -301,27 +301,36 @@ static int TclSetPar(void *self, SConnection *pCon, char *name, float newValue){
|
|||||||
strncpy(pDriv->long_name, &newValue, 255);
|
strncpy(pDriv->long_name, &newValue, 255);
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
|
char *tclCommand = (char *)calloc(1024, sizeof(char));
|
||||||
if (StringDictExists(pDriv->mappings, name)) {
|
if (StringDictExists(pDriv->mappings, name)) {
|
||||||
if (!buildStandardCommandPart(pDriv, name, tclCommand, 1023)){
|
if (!buildStandardCommandPart(pDriv, name, tclCommand, 1023)){
|
||||||
pDriv->errorCode = FUNCNOTFOUND;
|
pDriv->errorCode = FUNCNOTFOUND;
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
sscanf(tclCommandPara, "%s %f", tclCommand, &newValue);
|
char *tclCommandPara = (char *)calloc(1024, sizeof(char));
|
||||||
|
sprintf(tclCommandPara, "%s %f", tclCommand, newValue);
|
||||||
status = Tcl_Eval(pServ->pSics->pTcl,tclCommandPara);
|
status = Tcl_Eval(pServ->pSics->pTcl,tclCommandPara);
|
||||||
result = Tcl_GetStringResult(pServ->pSics->pTcl);
|
result = Tcl_GetStringResult(pServ->pSics->pTcl);
|
||||||
if (result == NULL){
|
if (result == NULL){
|
||||||
pDriv->errorCode = NOTCLRESULT;
|
pDriv->errorCode = NOTCLRESULT;
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
free(tclCommandPara);;
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
if (status != TCL_OK){
|
if (status != TCL_OK){
|
||||||
pDriv->errorCode = TCLERROR;
|
pDriv->errorCode = TCLERROR;
|
||||||
strncpy(pDriv->tclError,result,1023);
|
strncpy(pDriv->tclError,result,1023);
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
free(tclCommandPara);;
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
|
free(tclCommand);
|
||||||
|
free(tclCommandPara);;
|
||||||
return OKOK;
|
return OKOK;
|
||||||
} else {
|
} else {
|
||||||
pDriv->errorCode = PARANOTFOUND;
|
pDriv->errorCode = PARANOTFOUND;
|
||||||
return HWFault;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OKOK;
|
return OKOK;
|
||||||
@ -332,9 +341,7 @@ static int TclListPar(void *self, char *motorname, SConnection *pCon) {
|
|||||||
|
|
||||||
SDE sVal;
|
SDE sVal;
|
||||||
int iRet;
|
int iRet;
|
||||||
|
|
||||||
char pBueffel[512];
|
char pBueffel[512];
|
||||||
|
|
||||||
char *funcText[] = {"getpos",
|
char *funcText[] = {"getpos",
|
||||||
"run",
|
"run",
|
||||||
"status",
|
"status",
|
||||||
@ -342,7 +349,6 @@ static int TclListPar(void *self, char *motorname, SConnection *pCon) {
|
|||||||
"geterror",
|
"geterror",
|
||||||
"fixit",
|
"fixit",
|
||||||
NULL};
|
NULL};
|
||||||
|
|
||||||
TCLDriv *pDriv = (TCLDriv *)self;
|
TCLDriv *pDriv = (TCLDriv *)self;
|
||||||
|
|
||||||
iRet = LLDnodePtr2First(pDriv->mappings->iList);
|
iRet = LLDnodePtr2First(pDriv->mappings->iList);
|
||||||
@ -368,7 +374,6 @@ static int TclListPar(void *self, char *motorname, SConnection *pCon) {
|
|||||||
int TclGetPar(void *self, char *name, float *value) {
|
int TclGetPar(void *self, char *name, float *value) {
|
||||||
|
|
||||||
int status;
|
int status;
|
||||||
char tclCommand[1024];
|
|
||||||
const char *result = NULL;
|
const char *result = NULL;
|
||||||
|
|
||||||
TCLDriv *pDriv = (TCLDriv *) self;
|
TCLDriv *pDriv = (TCLDriv *) self;
|
||||||
@ -385,27 +390,33 @@ int TclGetPar(void *self, char *name, float *value) {
|
|||||||
*value = (float)pDriv->fLower;
|
*value = (float)pDriv->fLower;
|
||||||
return OKOK;
|
return OKOK;
|
||||||
} else {
|
} else {
|
||||||
|
char *tclCommand = (char *)calloc(1024, sizeof(char));
|
||||||
if (StringDictExists(pDriv->mappings, name)) {
|
if (StringDictExists(pDriv->mappings, name)) {
|
||||||
if(!buildStandardCommandPart(pDriv, name, tclCommand, 1023)){
|
if(!buildStandardCommandPart(pDriv, name, tclCommand, 1023)){
|
||||||
pDriv->errorCode = FUNCNOTFOUND;
|
pDriv->errorCode = FUNCNOTFOUND;
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
status = Tcl_Eval(pServ->pSics->pTcl,tclCommand);
|
status = Tcl_Eval(pServ->pSics->pTcl,tclCommand);
|
||||||
result = Tcl_GetStringResult(pServ->pSics->pTcl);
|
result = Tcl_GetStringResult(pServ->pSics->pTcl);
|
||||||
if(result == NULL){
|
if(result == NULL){
|
||||||
pDriv->errorCode = NOTCLRESULT;
|
pDriv->errorCode = NOTCLRESULT;
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
if(status != TCL_OK){
|
if(status != TCL_OK){
|
||||||
pDriv->errorCode = TCLERROR;
|
pDriv->errorCode = TCLERROR;
|
||||||
strncpy(pDriv->tclError,result,1023);
|
strncpy(pDriv->tclError,result,1023);
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
return HWFault;
|
||||||
}
|
}
|
||||||
sscanf(result,"%f", value);
|
sscanf(result,"%f", value);
|
||||||
|
free(tclCommand);
|
||||||
return OKOK;
|
return OKOK;
|
||||||
} else {
|
} else {
|
||||||
pDriv->errorCode = PARANOTFOUND;
|
pDriv->errorCode = PARANOTFOUND;
|
||||||
return HWFault;
|
free(tclCommand);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OKOK;
|
return OKOK;
|
||||||
|
Reference in New Issue
Block a user