diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 6ba226ada..b348afab9 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -391,15 +391,13 @@ void* postProcessing::processData(int delflag) { bool newData=false; char currentfName[MAX_STR_LENGTH]; int currentfIndex=0; - - while(1){ + while(1){cout<<"\t"<=0){ + fdata=decodeData(receiverData); + delete [] receiverData; + if(fdata){ + if (dataReady) { + thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,getTotalNumberOfChannels()); + dataReady(thisData, currentfIndex, pCallbackArg); + delete thisData; + fdata=NULL; + } } } + else{ + cout<<"****Detector returned mismatched indeices***"<readFrame(fName); @@ -696,7 +695,6 @@ int slsReceiverFuncs::read_frame(){ if(index%2){ memcpy(retval,((char*) origVal)+2, onedatasize); memcpy((((char*)retval)+onedatasize), ((char*) origVal)+8+onedatasize, onedatasize); - ret=OK; break; } @@ -705,7 +703,6 @@ int slsReceiverFuncs::read_frame(){ memcpy((((char*)retval)+onedatasize),((char*) origVal)+2, onedatasize); memcpy(retval, ((char*) origVal)+8+onedatasize, onedatasize); index=index2; - ret=OK; break; } @@ -718,6 +715,8 @@ int slsReceiverFuncs::read_frame(){ if(count==20){ cout << "same type: index:" << index << "\tindex2:" << index2 << endl; /**send garbage with -1 index to try again*/ + memcpy(retval,((char*) origVal)+2, onedatasize); + memcpy((((char*)retval)+onedatasize), ((char*) origVal)+8+onedatasize, onedatasize); } arg=((index - startIndex)/2)-1;