check for duplicate scan var

This commit is contained in:
Douglas Clowes
2012-11-29 12:50:30 +11:00
parent f0669d6bda
commit 933c7157cd

18
scan.c
View File

@@ -1078,7 +1078,8 @@ int SimScan(pScanData self, float fPos, float FWHM, float fHeight)
if (!pCon) {
return 0;
}
iRet = AddScanVar(self, pServ->pSics, pCon, "a4", 10., 0.1);
//iRet = AddScanVar(self,pServ->pSics,pCon,"a4",10., 0.1);
iRet = AddScanVar(self, pServ->pSics, pCon, "samx", 10., 0.1);
SCDeleteConnection(pCon);
if (!iRet) {
return 0;
@@ -1616,12 +1617,12 @@ int ScanWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
int argc, char *argv[])
{
pScanData self = NULL;
char pBueffel[512];
char pBueffel[512], varname[512];
double fStep, fStart, fPreset;
float *fData = NULL;
int lNP;
int iChannel;
int iRet, iMode, i;
int iRet, iMode, i, varnum;
char *pPtr = NULL, pItem[20];
long *lData = NULL, lID;
int *iData;
@@ -1860,6 +1861,17 @@ int ScanWrapper(SConnection * pCon, SicsInterp * pSics, void *pData,
SCWrite(pCon, pBueffel, eError);
return 0;
}
/* check for duplicate scanvar */
for (varnum = 0; varnum < self->iScanVar; varnum++) {
GetScanVarName(self, varnum, varname, 512);
if (strcmp(argv[2], varname) == 0) {
sprintf(pBueffel, sizeof(pBueffel)-1,
"ERROR: Scan variable %s has already been added.",
argv[2]);
SCWrite(pCon, pBueffel, eError);
return 0;
}
}
/* get numbers */
iRet = Tcl_GetDouble(InterpGetTcl(pSics), argv[3], &fStart);
if (iRet != TCL_OK) {