- First working version of the triple axis UB matrix code
This commit is contained in:
115
stdscan.c
115
stdscan.c
@ -368,6 +368,28 @@ static char *fixExtension(char *filename)
|
||||
self->fd = NULL;
|
||||
return 1;
|
||||
}
|
||||
/*------------------------------------------------------------------------*/
|
||||
static int prepareDataFile(pScanData self){
|
||||
char *pPtr = NULL;
|
||||
char pBueffel[512];
|
||||
|
||||
/* allocate a new data file */
|
||||
pPtr = ScanMakeFileName(self->pSics,self->pCon);
|
||||
if(!pPtr)
|
||||
{
|
||||
SCWrite(self->pCon,
|
||||
"ERROR: cannot allocate new data filename, Scan aborted",
|
||||
eError);
|
||||
self->pCon = NULL;
|
||||
self->pSics = NULL;
|
||||
return 0;
|
||||
}
|
||||
snprintf(pBueffel,511,"Writing data file: %s ...",pPtr);
|
||||
SCWrite(self->pCon,pBueffel,eWarning);
|
||||
strcpy(self->pFile,pPtr);
|
||||
free(pPtr);
|
||||
return 1;
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
int PrepareScan(pScanData self)
|
||||
{
|
||||
@ -377,7 +399,6 @@ static char *fixExtension(char *filename)
|
||||
float fVal;
|
||||
char pBueffel[512];
|
||||
char pMessage[1024];
|
||||
char *pPtr = NULL;
|
||||
|
||||
assert(self);
|
||||
assert(self->iNP > 0);
|
||||
@ -426,25 +447,72 @@ static char *fixExtension(char *filename)
|
||||
SetCounterPreset((pCounter)self->pCounterData, self->fPreset);
|
||||
self->iCounts = 0;
|
||||
|
||||
/* allocate a new data file */
|
||||
pPtr = ScanMakeFileName(self->pSics,self->pCon);
|
||||
if(!pPtr)
|
||||
{
|
||||
SCWrite(self->pCon,
|
||||
"ERROR: cannot allocate new data filename, Scan aborted",
|
||||
eError);
|
||||
self->pCon = NULL;
|
||||
self->pSics = NULL;
|
||||
return 0;
|
||||
if(!prepareDataFile(self)){
|
||||
return 0;
|
||||
}
|
||||
snprintf(pBueffel,511,"Writing data file: %s ...",pPtr);
|
||||
SCWrite(self->pCon,pBueffel,eWarning);
|
||||
strcpy(self->pFile,pPtr);
|
||||
free(pPtr);
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
int SilentPrepare(pScanData self)
|
||||
{
|
||||
pVarEntry pVar = NULL;
|
||||
void *pDings;
|
||||
int i, iRet;
|
||||
float fVal;
|
||||
char pBueffel[512];
|
||||
char pMessage[1024];
|
||||
|
||||
assert(self);
|
||||
assert(self->iNP > 0);
|
||||
assert(self->pCon);
|
||||
|
||||
/* check boundaries of scan variables and allocate storage */
|
||||
for(i = 0; i < self->iScanVar; i++)
|
||||
{
|
||||
DynarGet(self->pScanVar,i,&pDings);
|
||||
pVar = (pVarEntry)pDings;
|
||||
if(pVar)
|
||||
{
|
||||
/* start value */
|
||||
fVal = ScanVarStart(pVar);
|
||||
iRet = pVar->pInter->CheckLimits(pVar->pObject,
|
||||
fVal,pBueffel,511);
|
||||
if(!iRet)
|
||||
{
|
||||
sprintf(pMessage,"ERROR: %s, scan aborted",pBueffel);
|
||||
SCWrite(self->pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
/* end value */
|
||||
fVal = pVar->fStart + (self->iNP - 1) * ScanVarStep(pVar);
|
||||
iRet = pVar->pInter->CheckLimits(pVar->pObject,
|
||||
fVal,pBueffel,511);
|
||||
if(!iRet)
|
||||
{
|
||||
sprintf(pMessage,"ERROR: %s, scan aborted",pBueffel);
|
||||
SCWrite(self->pCon,pBueffel,eError);
|
||||
return 0;
|
||||
}
|
||||
InitScanVar(pVar);
|
||||
}
|
||||
else
|
||||
{
|
||||
SCWrite(self->pCon,
|
||||
"WARNING: Internal error, no scan variable, I try to continue",
|
||||
eWarning);
|
||||
}
|
||||
pVar = NULL;
|
||||
} /* end for */
|
||||
|
||||
/* configure counter */
|
||||
SetCounterMode((pCounter)self->pCounterData,self->iMode);
|
||||
SetCounterPreset((pCounter)self->pCounterData, self->fPreset);
|
||||
self->iCounts = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*--------------------------------------------------------------------------*/
|
||||
int NonCheckPrepare(pScanData self)
|
||||
{
|
||||
pVarEntry pVar = NULL;
|
||||
@ -453,7 +521,6 @@ static char *fixExtension(char *filename)
|
||||
float fVal;
|
||||
char pBueffel[512];
|
||||
char pMessage[1024];
|
||||
char *pPtr = NULL;
|
||||
|
||||
assert(self);
|
||||
assert(self->iNP > 0);
|
||||
@ -484,21 +551,9 @@ static char *fixExtension(char *filename)
|
||||
SetCounterPreset((pCounter)self->pCounterData, self->fPreset);
|
||||
self->iCounts = 0;
|
||||
|
||||
/* allocate a new data file */
|
||||
pPtr = ScanMakeFileName(self->pSics,self->pCon);
|
||||
if(!pPtr)
|
||||
{
|
||||
SCWrite(self->pCon,
|
||||
"ERROR: cannot allocate new data filename, Scan aborted",
|
||||
eError);
|
||||
self->pCon = NULL;
|
||||
self->pSics = NULL;
|
||||
return 0;
|
||||
if(!prepareDataFile(self)){
|
||||
return 0;
|
||||
}
|
||||
snprintf(pBueffel,511,"Writing data file: %s ...",pPtr);
|
||||
SCWrite(self->pCon,pBueffel,eWarning);
|
||||
strcpy(self->pFile,pPtr);
|
||||
free(pPtr);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user