moench receiver works most of the time

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@512 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2013-04-12 15:51:33 +00:00
parent 27c91c36ff
commit c9cef8c12f
2 changed files with 15 additions and 16 deletions

View File

@ -415,7 +415,7 @@ void* postProcessing::processData(int delflag) {
while(1){ while(1){
cout.flush(); cout.flush();
cout<<flush; cout<<flush;
if (checkJoinThread()) break; //if (checkJoinThread()) break;
usleep(200000); usleep(200000);
pthread_mutex_lock(&mg); pthread_mutex_lock(&mg);
@ -432,8 +432,8 @@ void* postProcessing::processData(int delflag) {
int* receiverData = readFrameFromReceiver(currentfName,currentfIndex); int* receiverData = readFrameFromReceiver(currentfName,currentfIndex);
pthread_mutex_unlock(&mg); pthread_mutex_unlock(&mg);
if(!receiverData){ if(receiverData == NULL){
cout<<"****Detector returned NULL***"<<endl; cout<<"****Detector Data returned is NULL***"<<endl;
return 0; return 0;
} }

View File

@ -884,10 +884,9 @@ int slsReceiverFuncs::moench_read_frame(){
int rnel = bufferSize/(sizeof(int)); int rnel = bufferSize/(sizeof(int));
int* retval = new int[rnel]; int* retval = new int[rnel];
int* origVal = new int[rnel]; int* origVal = new int[rnel];
//all initialized to 0 //all initialized to 0
for(i=0;i<rnel;i++) retval[i]=0; for(i=0;i<rnel;i++) retval[i]=0;
for(i=0;i<rnel;i++) origVal[i]=0;
int onebuffersize = bufferSize/MOENCH_PACKETS_PER_FRAME; int onebuffersize = bufferSize/MOENCH_PACKETS_PER_FRAME;
int onedatasize = MOENCH_DATA_BYTES/MOENCH_PACKETS_PER_FRAME; int onedatasize = MOENCH_DATA_BYTES/MOENCH_PACKETS_PER_FRAME;
@ -922,21 +921,20 @@ int slsReceiverFuncs::moench_read_frame(){
index = startIndex; index = startIndex;
cout << "didnt get data. Gui will try again" << endl; cout << "didnt get data. Gui will try again" << endl;
for(i=0;i<MOENCH_PACKETS_PER_FRAME/2;i++){ for(i=0;i<MOENCH_PACKETS_PER_FRAME;i=i+2){
memcpy(retval + onedatasize*i, ((char*) origVal)+4+ onedatasize*i , onedatasize); memcpy((((char*)retval)+ onedatasize*i), (((char*) origVal)+4+ onebuffersize*i) , onedatasize);
memcpy((((char*)retval)+onedatasize*(i+1)), ((char*) origVal)+10+ onedatasize*(i+1), onedatasize); memcpy((((char*)retval)+ onedatasize*(i+1)), (((char*) origVal)+10+onedatasize+ onebuffersize*i),onedatasize);
} }
}else{ }else{
//upto 40 indices, look at just index1 and index2 for now //upto 40 indices, look at just index1 and index2 for now
index=(int)(*(int*)raw); index=(int)(*(int*)raw);
//index2= (int)(*((int*)((char*)(raw+onebuffersize)))); //index2= (int)(*((int*)((char*)(raw+onebuffersize))));
memcpy(origVal,raw,bufferSize); memcpy(origVal,raw,bufferSize);
delete [] raw;/****?????????FOR GOTTHARD AS WELL?????**/
raw=NULL; raw=NULL;
for(i=0;i<MOENCH_PACKETS_PER_FRAME/2;i++){ for(i=0;i<MOENCH_PACKETS_PER_FRAME;i=i+2){
memcpy(retval + onedatasize*i, ((char*) origVal)+4+ onedatasize*i , onedatasize); memcpy((((char*)retval)+ onedatasize*i), (((char*) origVal)+4+ onebuffersize*i) , onedatasize);
memcpy((((char*)retval)+onedatasize*(i+1)), ((char*) origVal)+10+ onedatasize*(i+1), onedatasize); memcpy((((char*)retval)+ onedatasize*(i+1)), (((char*) origVal)+10+onedatasize+ onebuffersize*i),onedatasize);
} }
} }
@ -970,10 +968,11 @@ int slsReceiverFuncs::moench_read_frame(){
} }
//return ok/fail //return ok/fail
/* ///ADDED BY ANNA?!?!?!? //?????????FOR GOTTHARD AS WELL????? ///ADDED BY ANNA?!?!?!? //?????????FOR GOTTHARD AS WELL?????
if(retval) delete [] retval; delete [] origVal;
if(origVal) delete [] origVal; delete [] retval;
*/
return ret; return ret;
} }