From 9c6886d03078ea9baf228760069f6c0fda5bcfed Mon Sep 17 00:00:00 2001 From: l_maliakal_d Date: Thu, 13 Dec 2012 08:33:22 +0000 Subject: [PATCH] included mismatched indices error shouldnt return fail, but client should try to read again git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@375 951219d9-93cf-4727-9268-0efd64621fa3 --- .../slsDetectorAnalysis/postProcessing.cpp | 26 +++++++++++-------- .../slsReceiver/slsReceiverFunctionList.cpp | 2 +- .../slsReceiver/slsReceiver_funcs.cpp | 5 ++-- 3 files changed, 18 insertions(+), 15 deletions(-) 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;