diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 64b65ab55..f8090b989 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4969,10 +4969,13 @@ void multiSlsDetector::readFrameFromReceiver(){ //determine number of half readouts and maxX and maxY int maxX=0,maxY=0; int numReadout = 1; + bool checkbottom = false; + if(getDetectorsType() == EIGER){ numReadout = 2; maxX = thisMultiDetector->numberOfChannel[X]; maxY = thisMultiDetector->numberOfChannel[Y]; + checkbottom = true; } //Note:num threads correspond to num detectors as task calls each slsdet @@ -5031,6 +5034,7 @@ void multiSlsDetector::readFrameFromReceiver(){ + while(true){ memset(((char*)multiframe),0x0,slsdatabytes*thisMultiDetector->numberOfDetectors); @@ -5056,7 +5060,7 @@ void multiSlsDetector::readFrameFromReceiver(){ //assemble data - //eiger, so interleaving + //eiger, so interleaving between ports in one readout itself if(maxX){ //if(ireadout == 3){ @@ -5064,19 +5068,29 @@ void multiSlsDetector::readFrameFromReceiver(){ if(!(ireadout%numReadout)) offsetX = thisMultiDetector->offsetX[idet]; else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; offsetX *= bytesperchannel; - cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", - offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); + //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", + // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); - cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); + //cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadout)*bytesperchannel); //itnerleaving with other detectors - for(int i=0;ionlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -7181,7 +7181,7 @@ void slsDetector::readFrameFromReceiver(){ runningMask|=(1<<(i)); } - + cout<slsframe[readoutId+idet] = NULL; sem_post(&parentDet->sem_slsdone[readoutId+idet]);//let multi know is ready runningMask^=(1< #include #include - +#include class postProcessingFuncs; @@ -334,6 +334,8 @@ s void *pCallbackArg; detectorData *thisData; + sem_t dataThreadStartedSemaphore; + private: // double *fdata;