check for duplicate scan var
This commit is contained in:
18
scan.c
18
scan.c
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user