mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 08:10:02 +02:00

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@500 951219d9-93cf-4727-9268-0efd64621fa3
84 lines
1.8 KiB
C++
84 lines
1.8 KiB
C++
/********************************************//**
|
|
* @file slsReceiverUsers.h
|
|
* @short API for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data
|
|
*
|
|
***********************************************/
|
|
#ifndef SLS_RECEIVER_USERS_H
|
|
#define SLS_RECEIVER_USERS_H
|
|
|
|
#include "slsReceiver_funcs.h"
|
|
|
|
class slsReceiverFuncs;
|
|
|
|
|
|
|
|
class slsReceiverUsers {
|
|
|
|
public:
|
|
/**
|
|
* Constructor
|
|
* reads config file, creates socket, assigns function table
|
|
* @param argc from command line
|
|
* @param argv from command line
|
|
* @param succecc socket creation was successfull
|
|
*/
|
|
slsReceiverUsers(int argc, char *argv[], int &success);
|
|
|
|
|
|
/** Destructor */
|
|
~slsReceiverUsers();
|
|
|
|
/** Close File */
|
|
static void closeFile(int p);
|
|
|
|
/** starts listening on the TCP port for client comminication */
|
|
void start();
|
|
|
|
/**
|
|
callback arguments are
|
|
filepath
|
|
filename
|
|
fileindex
|
|
data size
|
|
|
|
return value is
|
|
0 callback takes care of open,close,wrie file
|
|
1 callback writes file, we have to open, close it
|
|
2 we open, close, write file, callback does not do anything
|
|
|
|
*/
|
|
|
|
void registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){slsReceiverList->registerCallBackStartAcquisition(func,arg);};;
|
|
|
|
|
|
/**
|
|
callback argument is
|
|
total frames caught
|
|
|
|
*/
|
|
|
|
|
|
int registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){slsReceiverList->registerCallBackAcquisitionFinished(func,arg);};
|
|
|
|
|
|
|
|
/**
|
|
args to raw data ready callback are
|
|
framenum
|
|
datapointer
|
|
file descriptor
|
|
guidatapointer (NULL, no data required)
|
|
*/
|
|
|
|
int registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){slsReceiverList->registerCallBackRawDataReady(func,arg);};
|
|
|
|
|
|
private:
|
|
|
|
slsReceiverFuncs *receiver;
|
|
|
|
};
|
|
|
|
|
|
#endif
|