mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-25 07:40:03 +02:00
different between acquisition index and frame index
This commit is contained in:
parent
6232c6584a
commit
7e44648da9
1
slsDetectorSoftware/eigerDetectorServer/ansi.h
Symbolic link
1
slsDetectorSoftware/eigerDetectorServer/ansi.h
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../slsReceiverSoftware/include/ansi.h
|
Binary file not shown.
@ -167,6 +167,10 @@ int initDetectorStop(){
|
|||||||
void getModuleConfiguration(){
|
void getModuleConfiguration(){
|
||||||
int *m=&master;
|
int *m=&master;
|
||||||
int *t=⊤
|
int *t=⊤
|
||||||
|
/*if(getDetectorNumber() == 0xbeb015){
|
||||||
|
master = 1;
|
||||||
|
top = 1;
|
||||||
|
}*/
|
||||||
Beb_GetModuleCopnfiguration(m,t);
|
Beb_GetModuleCopnfiguration(m,t);
|
||||||
if(top) printf("*************** TOP ***************\n");
|
if(top) printf("*************** TOP ***************\n");
|
||||||
else printf("*************** BOTTOM ***************\n");
|
else printf("*************** BOTTOM ***************\n");
|
||||||
|
@ -4562,11 +4562,11 @@ int multiSlsDetector::resetFramesCaught() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int* multiSlsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
int* multiSlsDetector::readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex){
|
||||||
int nel=(thisMultiDetector->dataBytes)/sizeof(int);
|
int nel=(thisMultiDetector->dataBytes)/sizeof(int);
|
||||||
if(nel <= 0){
|
if(nel <= 0){
|
||||||
cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl;
|
cout << "Multislsdetector databytes not valid :" << thisMultiDetector->dataBytes << endl;
|
||||||
fIndex = -1;
|
acquisitionIndex = -1;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4586,11 +4586,11 @@ int* multiSlsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
|||||||
for (int id=0; id<thisMultiDetector->numberOfDetectors; id++) {
|
for (int id=0; id<thisMultiDetector->numberOfDetectors; id++) {
|
||||||
if (detectors[id]) {
|
if (detectors[id]) {
|
||||||
n=detectors[id]->getDataBytes();
|
n=detectors[id]->getDataBytes();
|
||||||
retdet=detectors[id]->readFrameFromReceiver(fName,fIndex);
|
retdet=detectors[id]->readFrameFromReceiver(fName, acquisitionIndex, frameIndex);
|
||||||
if(detectors[id]->getErrorMask())
|
if(detectors[id]->getErrorMask())
|
||||||
setErrorMask(getErrorMask()|(1<<id));
|
setErrorMask(getErrorMask()|(1<<id));
|
||||||
if (retdet){
|
if (retdet){
|
||||||
if (fIndex==-1){
|
if (acquisitionIndex==-1){
|
||||||
complete = FAIL;
|
complete = FAIL;
|
||||||
delete [] retdet;
|
delete [] retdet;
|
||||||
}else{
|
}else{
|
||||||
@ -4640,7 +4640,7 @@ int* multiSlsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
|||||||
strcpy(fName,fullFName.c_str());
|
strcpy(fName,fullFName.c_str());
|
||||||
//if some of the receivers did not give data, dont count it
|
//if some of the receivers did not give data, dont count it
|
||||||
if((getDetectorsType() == EIGER) &&(complete ==FAIL))
|
if((getDetectorsType() == EIGER) &&(complete ==FAIL))
|
||||||
fIndex = -1;
|
acquisitionIndex = -1;
|
||||||
return retval;
|
return retval;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1155,10 +1155,11 @@ class multiSlsDetector : public slsDetectorUtils {
|
|||||||
/**
|
/**
|
||||||
* Reads a frame from receiver
|
* Reads a frame from receiver
|
||||||
* @param fName file name of current frame()
|
* @param fName file name of current frame()
|
||||||
* @param fIndex current frame index
|
* @param acquisitionIndex current acquisition index
|
||||||
|
* @param frameIndex current frame index (for each scan)
|
||||||
/returns a frame read from recever
|
/returns a frame read from recever
|
||||||
*/
|
*/
|
||||||
int* readFrameFromReceiver(char* fName, int &fIndex);
|
int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex);
|
||||||
|
|
||||||
/** Locks/Unlocks the connection to the receiver
|
/** Locks/Unlocks the connection to the receiver
|
||||||
/param lock sets (1), usets (0), gets (-1) the lock
|
/param lock sets (1), usets (0), gets (-1) the lock
|
||||||
|
@ -6447,7 +6447,7 @@ int slsDetector::resetFramesCaught(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int* slsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
int* slsDetector::readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex){
|
||||||
int fnum=F_READ_RECEIVER_FRAME;
|
int fnum=F_READ_RECEIVER_FRAME;
|
||||||
int nel=thisDetector->dataBytes/sizeof(int);
|
int nel=thisDetector->dataBytes/sizeof(int);
|
||||||
int* retval=new int[nel];
|
int* retval=new int[nel];
|
||||||
@ -6472,7 +6472,8 @@ int* slsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
|||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
n=dataSocket->ReceiveDataOnly(fName,MAX_STR_LENGTH);
|
n=dataSocket->ReceiveDataOnly(fName,MAX_STR_LENGTH);
|
||||||
n=dataSocket->ReceiveDataOnly(&fIndex,sizeof(fIndex));
|
n=dataSocket->ReceiveDataOnly(&acquisitionIndex,sizeof(acquisitionIndex));
|
||||||
|
n=dataSocket->ReceiveDataOnly(&frameIndex,sizeof(frameIndex));
|
||||||
n=dataSocket->ReceiveDataOnly(retval,thisDetector->dataBytes);
|
n=dataSocket->ReceiveDataOnly(retval,thisDetector->dataBytes);
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
|
@ -1528,10 +1528,11 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
|
|||||||
/**
|
/**
|
||||||
* Reads a frame from receiver
|
* Reads a frame from receiver
|
||||||
* @param fName file name of current frame()
|
* @param fName file name of current frame()
|
||||||
* @param fIndex current frame index
|
* @param acquisitionIndex current acquisition index
|
||||||
|
* @param frameIndex current frame index (for each scan)
|
||||||
/returns a frame read from recever
|
/returns a frame read from recever
|
||||||
*/
|
*/
|
||||||
int* readFrameFromReceiver(char* fName, int &fIndex);
|
int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex);
|
||||||
|
|
||||||
/** Locks/Unlocks the connection to the receiver
|
/** Locks/Unlocks the connection to the receiver
|
||||||
/param lock sets (1), usets (0), gets (-1) the lock
|
/param lock sets (1), usets (0), gets (-1) the lock
|
||||||
|
@ -496,10 +496,11 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
|
|||||||
/**
|
/**
|
||||||
* Reads a frame from receiver
|
* Reads a frame from receiver
|
||||||
* @param fName file name of current frame()
|
* @param fName file name of current frame()
|
||||||
* @param fIndex current frame index
|
* @param acquisitionIndex current acquisition index
|
||||||
|
* @param frameIndex current frame index (for each scan)
|
||||||
/returns a frame read from recever
|
/returns a frame read from recever
|
||||||
*/
|
*/
|
||||||
virtual int* readFrameFromReceiver(char* fName, int &fIndex)=0;
|
virtual int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex)=0;
|
||||||
|
|
||||||
|
|
||||||
/** Sets the read receiver frequency
|
/** Sets the read receiver frequency
|
||||||
|
@ -628,10 +628,11 @@ virtual int resetFramesCaught()=0;
|
|||||||
/**
|
/**
|
||||||
* Reads a frame from receiver
|
* Reads a frame from receiver
|
||||||
* @param fName file name of current frame()
|
* @param fName file name of current frame()
|
||||||
* @param fIndex current frame index
|
* @param acquisitionIndex current acquisition index
|
||||||
|
* @param frameIndex current frame index (for each scan)
|
||||||
/returns a frame read from recever
|
/returns a frame read from recever
|
||||||
*/
|
*/
|
||||||
virtual int* readFrameFromReceiver(char* fName, int &fIndex)=0;
|
virtual int* readFrameFromReceiver(char* fName, int &acquisitionIndex, int &frameIndex)=0;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -497,7 +497,8 @@ void* postProcessing::processData(int delflag) {
|
|||||||
|
|
||||||
int progress = -1;
|
int progress = -1;
|
||||||
char currentfName[MAX_STR_LENGTH]="";
|
char currentfName[MAX_STR_LENGTH]="";
|
||||||
int currentfIndex = -1;
|
int currentAcquisitionIndex = -1;
|
||||||
|
int currentFrameIndex = -1;
|
||||||
bool newData = false;
|
bool newData = false;
|
||||||
int nthframe = setReadReceiverFrequency(0);
|
int nthframe = setReadReceiverFrequency(0);
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
@ -526,14 +527,14 @@ void* postProcessing::processData(int delflag) {
|
|||||||
//get progress
|
//get progress
|
||||||
pthread_mutex_lock(&mg);
|
pthread_mutex_lock(&mg);
|
||||||
if(setReceiverOnline() == ONLINE_FLAG)
|
if(setReceiverOnline() == ONLINE_FLAG)
|
||||||
currentfIndex = getReceiverCurrentFrameIndex();
|
currentAcquisitionIndex = getReceiverCurrentFrameIndex();
|
||||||
pthread_mutex_unlock(&mg);
|
pthread_mutex_unlock(&mg);
|
||||||
|
|
||||||
//updating progress
|
//updating progress
|
||||||
if(currentfIndex != -1)
|
if(currentAcquisitionIndex != -1)
|
||||||
setCurrentProgress(currentfIndex+1);
|
setCurrentProgress(currentAcquisitionIndex+1);
|
||||||
#ifdef VERY_VERY_DEBUG
|
#ifdef VERY_VERY_DEBUG
|
||||||
cout << "currentfIndex:" << currentfIndex << endl;
|
cout << "currentAcquisitionIndex:" << currentAcquisitionIndex << endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -579,10 +580,10 @@ void* postProcessing::processData(int delflag) {
|
|||||||
if (dataReady){
|
if (dataReady){
|
||||||
//for random reads, ask only if it has new data
|
//for random reads, ask only if it has new data
|
||||||
if(!newData){
|
if(!newData){
|
||||||
if(currentfIndex > progress)
|
if(currentAcquisitionIndex > progress)
|
||||||
newData = true;
|
newData = true;
|
||||||
#ifdef VERY_VERY_DEBUG
|
#ifdef VERY_VERY_DEBUG
|
||||||
cout << "currentfindex:" << currentfIndex << " progress:" << progress << endl;
|
cout << "currentAcquisitionIndex:" << currentAcquisitionIndex << " progress:" << progress << endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -595,7 +596,7 @@ void* postProcessing::processData(int delflag) {
|
|||||||
strcpy(currentfName,"");
|
strcpy(currentfName,"");
|
||||||
pthread_mutex_lock(&mg);
|
pthread_mutex_lock(&mg);
|
||||||
//int* receiverData = new int [getTotalNumberOfChannels()];
|
//int* receiverData = new int [getTotalNumberOfChannels()];
|
||||||
int* receiverData = readFrameFromReceiver(currentfName,currentfIndex);
|
int* receiverData = readFrameFromReceiver(currentfName,currentAcquisitionIndex,currentFrameIndex);
|
||||||
pthread_mutex_unlock(&mg);
|
pthread_mutex_unlock(&mg);
|
||||||
|
|
||||||
//if detector returned null
|
//if detector returned null
|
||||||
@ -604,18 +605,18 @@ void* postProcessing::processData(int delflag) {
|
|||||||
|
|
||||||
//no data or wrong data for print out
|
//no data or wrong data for print out
|
||||||
if(receiverData == NULL){
|
if(receiverData == NULL){
|
||||||
currentfIndex = -1;
|
currentAcquisitionIndex = -1;
|
||||||
cout<<"****Detector Data returned is NULL***"<<endl;
|
cout<<"****Detector Data returned is NULL***"<<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
//not garbage frame
|
//not garbage frame
|
||||||
if(currentfIndex < 0){
|
if(currentAcquisitionIndex < 0){
|
||||||
#ifdef VERY_VERY_DEBUG
|
#ifdef VERY_VERY_DEBUG
|
||||||
cout<<"****Detector returned mismatched indices/garbage or acquisition is over. Trying again.***"<<endl;
|
cout<<"****Detector returned mismatched indices/garbage or acquisition is over. Trying again.***"<<endl;
|
||||||
#endif
|
#endif
|
||||||
if(receiverData)
|
if(receiverData)
|
||||||
delete [] receiverData;
|
delete [] receiverData;
|
||||||
}else if (currentfIndex > progress){
|
}else if (currentAcquisitionIndex > progress){
|
||||||
#ifdef VERY_VERY_DEBUG
|
#ifdef VERY_VERY_DEBUG
|
||||||
cout << "GOT data" << endl;
|
cout << "GOT data" << endl;
|
||||||
#endif
|
#endif
|
||||||
@ -624,10 +625,10 @@ void* postProcessing::processData(int delflag) {
|
|||||||
if ((fdata) && (dataReady)){
|
if ((fdata) && (dataReady)){
|
||||||
// cout << "DATAREADY 3" << endl;
|
// cout << "DATAREADY 3" << endl;
|
||||||
thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,getTotalNumberOfChannels());
|
thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,getTotalNumberOfChannels());
|
||||||
dataReady(thisData, currentfIndex, pCallbackArg);
|
dataReady(thisData, currentFrameIndex, pCallbackArg);
|
||||||
delete thisData;
|
delete thisData;
|
||||||
fdata = NULL;
|
fdata = NULL;
|
||||||
progress = currentfIndex;
|
progress = currentAcquisitionIndex;
|
||||||
#ifdef VERY_VERY_DEBUG
|
#ifdef VERY_VERY_DEBUG
|
||||||
cout << "progress:" << progress << endl;
|
cout << "progress:" << progress << endl;
|
||||||
#endif
|
#endif
|
||||||
|
@ -805,7 +805,7 @@ enum externalCommunicationMode{
|
|||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
sprintf("This timing mode %d not implemented in this detector\n",(int)arg);
|
sprintf(mess,"This timing mode %d not implemented in this detector\n",(int)arg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user