data call back form receiver includes both x and y dimensions

This commit is contained in:
Dhanya Maliakal 2015-12-16 15:01:00 +01:00
parent 7848b79cf2
commit 5c239ad45f
3 changed files with 11 additions and 5 deletions

View File

@ -235,6 +235,10 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
*/ */
virtual int getTotalNumberOfChannels()=0; virtual int getTotalNumberOfChannels()=0;
/**
\returns total number of channels for each dimension
*/
virtual int getTotalNumberOfChannels(dimension d)=0;
/** generates file name without extension */ /** generates file name without extension */
virtual string createFileName()=0; virtual string createFileName()=0;

View File

@ -421,6 +421,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
virtual int* startAndReadAll()=0; virtual int* startAndReadAll()=0;
virtual int getTotalNumberOfChannels()=0; virtual int getTotalNumberOfChannels()=0;
virtual int getTotalNumberOfChannels(dimension d)=0;
virtual int getMaxNumberOfChannels()=0; virtual int getMaxNumberOfChannels()=0;
virtual int getMaxNumberOfChannels(dimension d)=0; virtual int getMaxNumberOfChannels(dimension d)=0;

View File

@ -137,7 +137,7 @@ void postProcessing::processFrame(int *myData, int delflag, int jctb) {
// cout << "callback arg "<< getCurrentProgress()<< " " << (fname+string(".raw")).c_str() << " " << getTotalNumberOfChannels() << endl; // cout << "callback arg "<< getCurrentProgress()<< " " << (fname+string(".raw")).c_str() << " " << getTotalNumberOfChannels() << endl;
// cout << "DATAREADY 1" <<endl; // cout << "DATAREADY 1" <<endl;
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels()); thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels()); //only 1d detectors
dataReady(thisData, currentFrameIndex, -1, pCallbackArg); dataReady(thisData, currentFrameIndex, -1, pCallbackArg);
delete thisData; delete thisData;
fdata=NULL; fdata=NULL;
@ -280,7 +280,7 @@ data queue size unlock
if (dataReady) { if (dataReady) {
// cout << "callback arg "<< getCurrentProgress()<< " " << (fname+ext).c_str() << " " << np << endl; // cout << "callback arg "<< getCurrentProgress()<< " " << (fname+ext).c_str() << " " << np << endl;
//cout << "ADATREADY 2 " << endl; //cout << "ADATREADY 2 " << endl;
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np); thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);//only 1d detectors
dataReady(thisData, currentFrameIndex, -1, pCallbackArg); dataReady(thisData, currentFrameIndex, -1, pCallbackArg);
delete thisData; delete thisData;
ang=NULL; ang=NULL;
@ -493,7 +493,8 @@ void* postProcessing::processData(int delflag) {
int currentSubFrameIndex = -1; int currentSubFrameIndex = -1;
bool newData = false; bool newData = false;
int nthframe = setReadReceiverFrequency(0); int nthframe = setReadReceiverFrequency(0);
int nx =getTotalNumberOfChannels(slsDetectorDefs::X);
int ny =getTotalNumberOfChannels(slsDetectorDefs::Y);
#ifdef VERBOSE #ifdef VERBOSE
std::cout << "receiver read freq:" << nthframe << std::endl; std::cout << "receiver read freq:" << nthframe << std::endl;
@ -640,7 +641,7 @@ void* postProcessing::processData(int delflag) {
delete [] receiverData; delete [] receiverData;
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,nx,ny);
dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg); dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);
delete thisData; delete thisData;
fdata = NULL; fdata = NULL;