diff --git a/slsDetectorSoftware/slsReceiver/slsReceiverUsers.cpp b/slsDetectorSoftware/slsReceiver/slsReceiverUsers.cpp new file mode 100644 index 000000000..e8b352f06 --- /dev/null +++ b/slsDetectorSoftware/slsReceiver/slsReceiverUsers.cpp @@ -0,0 +1,38 @@ +#include "slsReceiverUsers.h" +#include "slsReceiver_funcs.h" + +slsReceiverUsers::slsReceiverUsers(int argc, char *argv[], int &success) { + receiver=new slsReceiverFuncs(argc, argv, success); +} + +slsReceiverUsers::~slsReceiverUsers() { + delete receiver; +} + +void slsReceiverUsers::start() { + receiver->start(); +} + + +void slsReceiverUsers::closeFile(int p) { + slsReceiverFuncs::closeFile(0); +} + + + void slsReceiverUsers::registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg){slsReceiverList->registerCallBackStartAcquisition(func,arg);};; + + + +int slsReceiverUsers::registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg){ + receiver->registerCallBackAcquisitionFinished(func,arg); +} + + +int slsReceiverUsers::registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg){ + receiver->registerCallBackRawDataReady(func,arg); +}; + + + + +#endif diff --git a/slsDetectorSoftware/slsReceiver/slsReceiverUsers.h b/slsDetectorSoftware/slsReceiver/slsReceiverUsers.h new file mode 100644 index 000000000..981a1e51a --- /dev/null +++ b/slsDetectorSoftware/slsReceiver/slsReceiverUsers.h @@ -0,0 +1,83 @@ + /********************************************//** + * @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