From 4a133d8f6ec0a19d36b8d475d2ec0750fb8bc6bf Mon Sep 17 00:00:00 2001 From: bergamaschi Date: Thu, 4 Apr 2013 09:32:44 +0000 Subject: [PATCH] Receiver API slsReceiverUsers implemented git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@500 951219d9-93cf-4727-9268-0efd64621fa3 --- .../slsReceiver/slsReceiverUsers.cpp | 38 +++++++++ .../slsReceiver/slsReceiverUsers.h | 83 +++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 slsDetectorSoftware/slsReceiver/slsReceiverUsers.cpp create mode 100644 slsDetectorSoftware/slsReceiver/slsReceiverUsers.h 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