mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 10:07:59 +02:00
included a current frame index whch is different than file frame index for gotthard, even when readout through blackfin, for mythen both will alwys be incrememnted by one; gotthard server all of them should be consistent for 32 bit
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@425 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
@ -30,7 +30,7 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
||||
|
||||
|
||||
/** default constructor */
|
||||
fileIO(): fileIOStatic(){frameIndex=-1;detIndex=-1; framesPerFile=&nframes; nframes=1; };
|
||||
fileIO(): fileIOStatic(){currentFrameIndex=-1;frameIndex=-1;detIndex=-1; framesPerFile=&nframes; nframes=1; };
|
||||
|
||||
/** virtual destructor */
|
||||
virtual ~fileIO(){};
|
||||
@ -65,12 +65,19 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
||||
virtual int setFileIndex(int i) {*fileIndex=i; return *fileIndex;};
|
||||
|
||||
/**
|
||||
sets the default output file index
|
||||
\param i frame index to be set
|
||||
\returns actual frame index
|
||||
sets the default output file frame index
|
||||
\param i file frame index to be set
|
||||
\returns actual file frame index
|
||||
*/
|
||||
virtual int setFrameIndex(int i) {frameIndex=i; return frameIndex;};
|
||||
|
||||
/**
|
||||
sets the default output current frame index
|
||||
\param i current frame index to be set
|
||||
\returns actual current frame index
|
||||
*/
|
||||
virtual int setCurrentFrameIndex(int i) {currentFrameIndex=i; return currentFrameIndex;};
|
||||
|
||||
/**
|
||||
sets the default output file index
|
||||
\param i frame index to be set
|
||||
@ -101,15 +108,25 @@ class fileIO : public fileIOStatic, public virtual slsDetectorBase {
|
||||
virtual int getFileIndex() {return *fileIndex;};
|
||||
|
||||
/**
|
||||
\returns the output frame index
|
||||
\returns the output file frame index
|
||||
*/
|
||||
virtual int getFrameIndex() {return frameIndex;};
|
||||
|
||||
/**
|
||||
\returns the output current frame index
|
||||
*/
|
||||
virtual int getCurrentFrameIndex() {return currentFrameIndex;};
|
||||
|
||||
/**
|
||||
\returns the detector index
|
||||
*/
|
||||
virtual int getDetectorIndex() {return detIndex;};
|
||||
|
||||
/**
|
||||
\returns the max frames per file
|
||||
*/
|
||||
virtual int getFramesPerFile() {return *framesPerFile;};
|
||||
|
||||
|
||||
string createFileName();
|
||||
|
||||
@ -259,7 +276,9 @@ yes */
|
||||
|
||||
void incrementFileIndex() { (*fileIndex)++; };
|
||||
|
||||
void incrementFrameIndex() { (frameIndex)++; };
|
||||
void incrementFrameIndex(int i) { frameIndex=frameIndex+i; };
|
||||
|
||||
void incrementCurrentFrameIndex() { (currentFrameIndex)++; };
|
||||
|
||||
void incrementDetectorIndex() { (detIndex)++; };
|
||||
|
||||
@ -279,8 +298,10 @@ yes */
|
||||
char *fileName;
|
||||
/** file index */
|
||||
int *fileIndex;
|
||||
/** frame index */
|
||||
/** file frame index */
|
||||
int frameIndex;
|
||||
/** current frame index */
|
||||
int currentFrameIndex;
|
||||
/** detector id */
|
||||
int detIndex;
|
||||
/** frames per file */
|
||||
|
@ -119,7 +119,7 @@ void postProcessing::processFrame(int *myData, int delflag) {
|
||||
//uses static function?!?!?!?
|
||||
writeDataFile (fname+string(".raw"),fdata, NULL, NULL, 'i');
|
||||
} else {
|
||||
writeDataFile ((void*)myData, frameIndex);
|
||||
writeDataFile ((void*)myData, currentFrameIndex);
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
cout << "done " << endl;
|
||||
@ -131,14 +131,22 @@ void postProcessing::processFrame(int *myData, int delflag) {
|
||||
} else
|
||||
if (dataReady){
|
||||
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels());
|
||||
dataReady(thisData, -1, pCallbackArg);
|
||||
dataReady(thisData, currentFrameIndex, pCallbackArg);
|
||||
delete thisData;
|
||||
fdata=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (getFrameIndex()>=0)
|
||||
incrementFrameIndex();
|
||||
|
||||
incrementCurrentFrameIndex();
|
||||
if (getFrameIndex()>=0){
|
||||
if (getDetectorsType()==MYTHEN)
|
||||
incrementFrameIndex(1);
|
||||
else if((currentFrameIndex%getFramesPerFile())==0)
|
||||
incrementFrameIndex(getFramesPerFile());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -243,7 +251,7 @@ void postProcessing::doProcessing(double *lfdata, int delflag, string fname) {
|
||||
|
||||
if (dataReady) {
|
||||
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);
|
||||
dataReady(thisData, -1, pCallbackArg);
|
||||
dataReady(thisData, currentFrameIndex, pCallbackArg);
|
||||
delete thisData;
|
||||
ang=NULL;
|
||||
val=NULL;
|
||||
@ -386,7 +394,7 @@ void* postProcessing::processData(int delflag) {
|
||||
//receiver
|
||||
else{
|
||||
pthread_mutex_lock(&mg);
|
||||
int prevCaught=getCurrentFrameIndex();
|
||||
int prevCaught=getReceiverCurrentFrameIndex();
|
||||
pthread_mutex_unlock(&mg);
|
||||
|
||||
int caught=0;
|
||||
@ -400,7 +408,7 @@ void* postProcessing::processData(int delflag) {
|
||||
usleep(200000);
|
||||
|
||||
pthread_mutex_lock(&mg);
|
||||
caught=getCurrentFrameIndex();
|
||||
caught=getReceiverCurrentFrameIndex();
|
||||
pthread_mutex_unlock(&mg);
|
||||
incrementProgress(caught-prevCaught);
|
||||
if(caught-prevCaught) newData=true;
|
||||
|
Reference in New Issue
Block a user