diff --git a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp index 1207cf9ce..652735c4d 100644 --- a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp +++ b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.cpp @@ -78,7 +78,9 @@ slsReceiverFunctionList::slsReceiverFunctionList(bool shortfname): fifofree = new CircularFifo(); - fifo = new CircularFifo(); + // fifo = new CircularFifo(); + fifo = new CircularFifo(); + mem0=(char*)malloc(4096*FIFO_SIZE); if (mem0==NULL) { @@ -282,7 +284,7 @@ int slsReceiverFunctionList::startListening(){ #endif // Variable and structure definitions int rc; - dataStruct *dataReadFrame; +// dataStruct *dataReadFrame; //reset variables for each acquisition startFrameIndex=-1; @@ -346,11 +348,13 @@ int slsReceiverFunctionList::startListening(){ ;//cout<<"**********************FIFO FULLLLLLLL************************"<buffer=buffer; dataReadFrame->rc=rc; //cout<<"read buffer:"<push(dataReadFrame); + */ + fifo->push(buffer); } @@ -391,6 +395,9 @@ int slsReceiverFunctionList::startWriting(){ #ifdef VERYVERBOSE cout << "In startWriting()" <isEmpty()){ // dataWriteFrame = new dataStruct; - if(fifo->pop(dataWriteFrame)){ + //if(fifo->pop(dataWriteFrame)){ + if(fifo->pop(wbuf)){ //cout<<"write buffer:"<buffer)); - + //currframenum = (int)(*((int*)dataWriteFrame->buffer)); + currframenum = (int)(*((int*)wbuf)); if(guiRequiresData) guiData=latestData; else @@ -492,25 +500,25 @@ int slsReceiverFunctionList::startWriting(){ if(enableFileWrite){ if (writeReceiverData) - writeReceiverData(dataWriteFrame->buffer,dataWriteFrame->rc, sfilefd, pwriteReceiverDataArg); + writeReceiverData(wbuf,bufferSize, sfilefd, pwriteReceiverDataArg); if (cbAction<2) { - rawDataReadyCallBack(currframenum, dataWriteFrame->buffer,sfilefd, guiData,pRawDataReady); + rawDataReadyCallBack(currframenum, wbuf,sfilefd, guiData,pRawDataReady); } else { - fwrite(dataWriteFrame->buffer, 1, dataWriteFrame->rc, sfilefd); + fwrite(wbuf, 1, bufferSize, sfilefd); } } if(guiRequiresData){ - memcpy(latestData,dataWriteFrame->buffer,bufferSize); + memcpy(latestData,wbuf,bufferSize); guiRequiresData=0; } //cout<<"write index:"<<(int)(*(int*)latestData)<buffer; - fifofree->push(dataWriteFrame->buffer); + fifofree->push(wbuf); } - delete dataWriteFrame; + // delete dataWriteFrame; } else{ sleepnumber++; diff --git a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.h b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.h index a7ddd8673..435122212 100644 --- a/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.h +++ b/slsDetectorSoftware/slsReceiver/slsReceiverFunctionList.h @@ -278,7 +278,9 @@ private: }; /** circular fifo to read and write data*/ - CircularFifo* fifo; + //CircularFifo* fifo; + CircularFifo* fifo; + /** circular fifo to read and write data*/ CircularFifo* fifofree; @@ -353,7 +355,7 @@ public: static int listening_thread_running; - dataStruct *dataWriteFrame; + // dataStruct *dataWriteFrame;