edited call backs in receiver, got rid of uhrix callback, expose receiver read freq to user, got rid of wait for receiver t finish

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@577 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-05-27 09:11:26 +00:00
parent 74bcbf0d9a
commit 666c73c988
25 changed files with 179 additions and 224 deletions

View File

@ -1,14 +1,14 @@
CC = g++
CLAGS += -DSLS_RECEIVER_FUNCTION_LIST #-DUHRIXCALLBACK #-DTESTWRITE
CLAGS += -DSLS_RECEIVER_FUNCTION_LIST
LDFLAG= -L/usr/lib64/ -lpthread -lm -lstdc++
#LDLIBS += -lm -lstdc++ -lpthread
LIBS?= -L$(LIBDIR) -lSlsDetector
INCLUDES ?= -I ../MySocketTCP -I ../commonFiles -I ../usersFunctions -I ../slsDetectorAnalysis -I .
INCLUDES ?= -I ../MySocketTCP -I ../commonFiles -I -I ../slsDetectorAnalysis -I .
SRC_CLNT = slsReceiver.cpp
#../MySocketTCP/MySocketTCP.cpp slsReceiver_funcs.cpp UHRIXCallback.cpp slsReceiverFunctionList.cpp ../usersFunctions/usersFunctions.cpp slsReceiverUsers.cpp
#../MySocketTCP/MySocketTCP.cpp slsReceiver_funcs.cpp UHRIXCallback.cpp slsReceiverFunctionList.cpp slsReceiverUsers.cpp
DESTDIR ?= bin
INSTMODE = 0777

View File

@ -1,28 +0,0 @@
#include "UHRIXCallback.h"
int UHRIXCallbackDataFunc(char* d, int np, FILE* fd, void* p){
int i,j,jmax=6;
u_int16_t da;
//#ifdef VERBOSE
//printf("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Receiver Data received \n");
if (d==NULL)
printf("no data received\n");
else{
// printf("received %d bytes of data\n",np);
// printf("index:%d\n",(int)(*(int*)d));
for ( i=0; i<(np-4)/2-jmax+1; i++)
{
//((int16_t *)d)[i+2] -= ((int16_t *)d)[i+3];
//((int16_t *)d)[i+2] *= ((int16_t *)d)[i+2];
for (j=1; j<jmax; j++) ((int16_t *)d)[i+2] += ((int16_t *)d)[i+2+j];
}
}
//printf("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Finished \n");
//#endif
return 0;
}

View File

@ -1,3 +0,0 @@
#include <iostream>
int UHRIXCallbackDataFunc(char* d, int np, FILE* fd, void* p);

View File

@ -7,14 +7,6 @@
#include "slsReceiverFunctionList.h"
#ifdef TESTWRITE
#include "usersFunctions.h"
#endif
#ifdef UHRIXCALLBACK
#include "UHRIXCallback.h"
#endif
#include <signal.h> // SIGINT
#include <sys/stat.h> // stat
#include <sys/socket.h> // socket(), bind(), listen(), accept(), shut down
@ -58,8 +50,6 @@ slsReceiverFunctionList::slsReceiverFunctionList(detectorType det,bool moenchwit
guiFileName(NULL),
currframenum(0),
nFrameToGui(0),
writeReceiverData(0),
pwriteReceiverDataArg(0),
startAcquisitionCallBack(NULL),
pStartAcquisition(NULL),
acquisitionFinishedCallBack(NULL),
@ -111,14 +101,7 @@ slsReceiverFunctionList::slsReceiverFunctionList(detectorType det,bool moenchwit
if(withGotthard)
cout << "Testing MOENCH Receiver with GOTTHARD Detector" << endl;
#ifdef TESTWRITE
//to test write receiver data call back
registerWriteReceiverDataCallback(&defaultWriteReceiverDataFunc, NULL);
#endif
#ifdef UHRIXCALLBACK
registerWriteReceiverDataCallback(&UHRIXCallbackDataFunc, latestData);
#endif
}
@ -443,7 +426,7 @@ int slsReceiverFunctionList::startWriting(){
strcpy(guiFileName,"");
cout << "Max Frames Per File:" << maxFramesPerFile << endl;
if (writeReceiverData)
if (rawDataReadyCallBack)
cout << "Note: Data Write has been defined exernally" << endl;
if(nFrameToGui)
cout << "Sending every " << nFrameToGui << "th frame to gui" << endl;
@ -510,13 +493,9 @@ int slsReceiverFunctionList::startWriting(){
//cout<<"**************curreframenm:"<<currframenum<<endl;
//write data call back
if (writeReceiverData) {
writeReceiverData(wbuf,bufferSize, sfilefd, pwriteReceiverDataArg);
}
//write data call back
if (cbAction < DO_EVERYTHING) {
rawDataReadyCallBack(currframenum, wbuf,sfilefd, guiData,pRawDataReady);
rawDataReadyCallBack(currframenum, wbuf, bufferSize, sfilefd, guiData,pRawDataReady);
}
//default writing to file
else if(enableFileWrite){

View File

@ -129,10 +129,6 @@ public:
*/
void resetTotalFramesCaught();
/**
* Close File
*/
//static void closeFile(int p);
/**
* Starts Receiver - starts to listen for packets
@ -193,12 +189,6 @@ public:
*/
int setNFrameToGui(int i){if(i>=0) nFrameToGui = i; return nFrameToGui;};
/**
* Register call back function to write receiver data
*/
void registerWriteReceiverDataCallback(int( *userCallback)(char*, int, FILE*, void*), void *pArg) {writeReceiverData = userCallback; pwriteReceiverDataArg = pArg;};
private:
/** detector type */
@ -314,11 +304,6 @@ private:
int nFrameToGui;
/** register for call back to get data */
int (*writeReceiverData)(char*,int,FILE*,void*);
void *pwriteReceiverDataArg;
/**
callback arguments are
filepath
@ -348,10 +333,11 @@ private:
args to raw data ready callback are
framenum
datapointer
datasize in bytes
file descriptor
guidatapointer (NULL, no data required)
*/
void (*rawDataReadyCallBack)(int, char*, FILE*, char*, void*);
void (*rawDataReadyCallBack)(int, char*, int, FILE*, char*, void*);
void *pRawDataReady;
/** The action which decides what the user and default responsibilites to save data are
@ -407,10 +393,11 @@ public:
args to raw data ready callback are
framenum
datapointer
datasize in bytes
file descriptor
guidatapointer (NULL, no data required)
*/
void registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){rawDataReadyCallBack=func; pRawDataReady=arg;};
void registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){rawDataReadyCallBack=func; pRawDataReady=arg;};
};

View File

@ -30,7 +30,7 @@ void slsReceiverUsers::registerCallBackAcquisitionFinished(void (*func)(int, voi
}
void slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){
void slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){
receiver->registerCallBackRawDataReady(func,arg);
}

View File

@ -64,11 +64,11 @@ public:
/**
@sort register callback to be called when data are available (to process and/or save the data).
\param func raw data ready callback. arguments are framenum datapointer file descriptor guidatapointer (NULL, no data required)
\param func raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required)
\returns nothing
*/
void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, int datasize, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
private:

View File

@ -71,11 +71,12 @@ public:
args to raw data ready callback are
framenum
datapointer
datasize in bytes
file descriptor
guidatapointer (NULL, no data required)
*/
void registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
void registerCallBackRawDataReady(void (*func)(int, char*, int, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
private:

View File

@ -2,10 +2,10 @@
#define SVNURL "file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware/slsReceiver"
//#define SVNREPPATH ""
#define SVNREPUUID "951219d9-93cf-4727-9268-0efd64621fa3"
//#define SVNREV 0x561
//#define SVNREV 0x568
//#define SVNKIND ""
//#define SVNSCHED ""
#define SVNAUTH "l_maliakal_d"
#define SVNREV 0x561
#define SVNDATE 0x20130516
#define SVNREV 0x568
#define SVNDATE 0x20130521
//