From 59fc6fbaf8ce255eb7fa3fef9166197300909f25 Mon Sep 17 00:00:00 2001 From: Sala Leonardo Date: Wed, 10 Sep 2014 09:39:11 +0200 Subject: [PATCH] moved .h into include. Second round of cleaning --- slsReceiverSoftware/.gitignore | 1 + slsReceiverSoftware/Makefile | 38 ++- .../{src => include}/RestHelper.h | 0 .../{src => include}/UDPBaseImplementation.h | 0 .../{src => include}/UDPInterface.h | 0 .../{src => include}/UDPRESTImplementation.h | 0 .../UDPStandardImplementation.h | 0 .../{src => include}/slsReceiver.h | 0 .../slsReceiverTCPIPInterface.h | 0 .../slsReceiverUDPFunctions.h | 0 .../{src => include}/slsReceiverUsers.h | 0 slsReceiverSoftware/src/Makefile | 66 ----- .../src/eigerReceiver/RestHelper.h | 195 -------------- .../src/eigerReceiver/eigerReceiver.cpp | 254 ------------------ .../src/eigerReceiver/eigerReceiver.h | 211 --------------- .../src/eigerReceiver/eigerReceiverDummy.cpp | 99 ------- .../src/eigerReceiver/eigerReceiverTest.cpp | 97 ------- slsReceiverSoftware/{src => test}/rec.cxx | 0 slsReceiverSoftware/{src => test}/send.cxx | 0 19 files changed, 25 insertions(+), 936 deletions(-) rename slsReceiverSoftware/{src => include}/RestHelper.h (100%) rename slsReceiverSoftware/{src => include}/UDPBaseImplementation.h (100%) rename slsReceiverSoftware/{src => include}/UDPInterface.h (100%) rename slsReceiverSoftware/{src => include}/UDPRESTImplementation.h (100%) rename slsReceiverSoftware/{src => include}/UDPStandardImplementation.h (100%) rename slsReceiverSoftware/{src => include}/slsReceiver.h (100%) rename slsReceiverSoftware/{src => include}/slsReceiverTCPIPInterface.h (100%) rename slsReceiverSoftware/{src => include}/slsReceiverUDPFunctions.h (100%) rename slsReceiverSoftware/{src => include}/slsReceiverUsers.h (100%) delete mode 100644 slsReceiverSoftware/src/Makefile delete mode 100644 slsReceiverSoftware/src/eigerReceiver/RestHelper.h delete mode 100644 slsReceiverSoftware/src/eigerReceiver/eigerReceiver.cpp delete mode 100644 slsReceiverSoftware/src/eigerReceiver/eigerReceiver.h delete mode 100644 slsReceiverSoftware/src/eigerReceiver/eigerReceiverDummy.cpp delete mode 100644 slsReceiverSoftware/src/eigerReceiver/eigerReceiverTest.cpp rename slsReceiverSoftware/{src => test}/rec.cxx (100%) rename slsReceiverSoftware/{src => test}/send.cxx (100%) diff --git a/slsReceiverSoftware/.gitignore b/slsReceiverSoftware/.gitignore index b7e550b01..038cff97e 100644 --- a/slsReceiverSoftware/.gitignore +++ b/slsReceiverSoftware/.gitignore @@ -1,5 +1,6 @@ *~ *.o +build GPATH GRTAGS GSYMS diff --git a/slsReceiverSoftware/Makefile b/slsReceiverSoftware/Makefile index 3b3f6c526..338cc9d9b 100644 --- a/slsReceiverSoftware/Makefile +++ b/slsReceiverSoftware/Makefile @@ -5,6 +5,8 @@ DESTDIR ?= ../bin LIBDIR ?= $(DESTDIR) DOCDIR ?= docs SRCDIR = src +TESTDIR = test +BUILDDIR = build PROGS = $(DESTDIR)/slsReceiver @@ -13,24 +15,24 @@ CFLAGS= -g -DC_ONLY -fPIC DFLAGS= -g -DDACS_INT -DSLS_RECEIVER_UDP_FUNCTIONS -INCLUDES?= -Iinclude -IMySocketTCP -I../slsDetectorCalibration -I$(ASM) +INCLUDES?= -Iinclude -I../slsDetectorCalibration -I$(ASM) #-I$(SRCDIR)Interface -SRC_CLNT = $(SRCDIR)/MySocketTCP.cpp $(SRCDIR)/UDPInterface.cpp $(SRCDIR)/UDPBaseImplementation.cpp $(SRCDIR)/UDPStandardImplementation.cpp $(SRCDIR)/slsReceiverTCPIPInterface.cpp $(SRCDIR)/slsReceiver.cpp $(SRCDIR)/slsReceiverUsers.cpp $(SRCDIR)/utilities.cpp -MAIN_SRC = $(SRCDIR)/main.cpp +SRC_CLNT = MySocketTCP.cpp UDPInterface.cpp UDPBaseImplementation.cpp UDPStandardImplementation.cpp slsReceiverTCPIPInterface.cpp slsReceiver.cpp slsReceiverUsers.cpp utilities.cpp +MAIN_SRC = main.cpp -OBJS=$(SRC_CLNT:.cpp=.o) +OBJS=$(SRC_CLNT:%.cpp=$(BUILDDIR)/%.o) .PHONY: all intdoc package eigerReceiver clean -all: lib $(SRC_CLNT) receiver +all: lib receiver intdoc: $(SRC_H) $(SRC_CLNT) doxygen doxy.config -%.o : %.cpp Makefile +$(BUILDDIR)/%.o : $(SRCDIR)/%.cpp Makefile ifeq ($(ROOTSLS),yes) $(CXX) -DROOTSLS -o $@ -c $< $(INCLUDES) $(DFLAGS) $(ROOTFLAGS) -fPIC $(EPICSFLAGS) -L/usr/lib64/ #$(FLAGS) else @@ -53,22 +55,30 @@ $(DESTDIR)/libSlsReceiver.a: $(OBJS) $(DESTDIR)/slsReceiver: lib - $(CXX) -o $@ $(MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC + $(CXX) -o $@ $(SRCDIR)/$(MAIN_SRC) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC #$(EIGERFLAGS) # Stand-alone Mysocket tests mysocket_test: - g++ -c $(SRCDIR)/MySocketTCP.cpp -I include - g++ -o rec MySocketTCP.o $(SRCDIR)/rec.cxx -I include - g++ -o send MySocketTCP.o $(SRCDIR)/send.cxx -I include + g++ -o $(TESTDIR)/MySocketTCP.o -c $(SRCDIR)/MySocketTCP.cpp -I include + g++ -o $(TESTDIR)/rec $(TESTDIR)/MySocketTCP.o $(TESTDIR)/rec.cxx -I include + g++ -o $(TESTDIR)/send $(TESTDIR)/MySocketTCP.o $(TESTDIR)/send.cxx -I include -clean: - rm -rf $(OBJS) +clean: buildclean + rm $(DESTDIR)/libSlsReceiver.a $(DESTDIR)/libSlsReceiver.so rm $(PROGS) - rm $(DESTDIR)/libSlsReceiver.a $(DESTDIR)/libSlsReceiver.so - cd + ifeq (,$(wildcard $(TESTDIR/rec))) + make testclean + endif + +buildclean: + rm -rf $(OBJS) + +testclean: + cd $(TESTDIR) && rm *.o rec send + #------------------------------------------------------------------------------- diff --git a/slsReceiverSoftware/src/RestHelper.h b/slsReceiverSoftware/include/RestHelper.h similarity index 100% rename from slsReceiverSoftware/src/RestHelper.h rename to slsReceiverSoftware/include/RestHelper.h diff --git a/slsReceiverSoftware/src/UDPBaseImplementation.h b/slsReceiverSoftware/include/UDPBaseImplementation.h similarity index 100% rename from slsReceiverSoftware/src/UDPBaseImplementation.h rename to slsReceiverSoftware/include/UDPBaseImplementation.h diff --git a/slsReceiverSoftware/src/UDPInterface.h b/slsReceiverSoftware/include/UDPInterface.h similarity index 100% rename from slsReceiverSoftware/src/UDPInterface.h rename to slsReceiverSoftware/include/UDPInterface.h diff --git a/slsReceiverSoftware/src/UDPRESTImplementation.h b/slsReceiverSoftware/include/UDPRESTImplementation.h similarity index 100% rename from slsReceiverSoftware/src/UDPRESTImplementation.h rename to slsReceiverSoftware/include/UDPRESTImplementation.h diff --git a/slsReceiverSoftware/src/UDPStandardImplementation.h b/slsReceiverSoftware/include/UDPStandardImplementation.h similarity index 100% rename from slsReceiverSoftware/src/UDPStandardImplementation.h rename to slsReceiverSoftware/include/UDPStandardImplementation.h diff --git a/slsReceiverSoftware/src/slsReceiver.h b/slsReceiverSoftware/include/slsReceiver.h similarity index 100% rename from slsReceiverSoftware/src/slsReceiver.h rename to slsReceiverSoftware/include/slsReceiver.h diff --git a/slsReceiverSoftware/src/slsReceiverTCPIPInterface.h b/slsReceiverSoftware/include/slsReceiverTCPIPInterface.h similarity index 100% rename from slsReceiverSoftware/src/slsReceiverTCPIPInterface.h rename to slsReceiverSoftware/include/slsReceiverTCPIPInterface.h diff --git a/slsReceiverSoftware/src/slsReceiverUDPFunctions.h b/slsReceiverSoftware/include/slsReceiverUDPFunctions.h similarity index 100% rename from slsReceiverSoftware/src/slsReceiverUDPFunctions.h rename to slsReceiverSoftware/include/slsReceiverUDPFunctions.h diff --git a/slsReceiverSoftware/src/slsReceiverUsers.h b/slsReceiverSoftware/include/slsReceiverUsers.h similarity index 100% rename from slsReceiverSoftware/src/slsReceiverUsers.h rename to slsReceiverSoftware/include/slsReceiverUsers.h diff --git a/slsReceiverSoftware/src/Makefile b/slsReceiverSoftware/src/Makefile deleted file mode 100644 index 88d8caf2e..000000000 --- a/slsReceiverSoftware/src/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -include ../../Makefile.include - -DESTDIR ?= ../../bin -LIBDIR ?= $(DESTDIR) -PROGS = $(DESTDIR)/slsReceiver - - -CFLAGS += -DSLS_RECEIVER_UDP_FUNCTIONS -O3 -CPPFLAGS = ${CFLAGS} # for MAC - - -LDFLAGRXR ?= -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -lpthread -LDFLAGRXR += -lm -lstdc++ - - -INCLUDES ?= -I ../MySocketTCP -I ../slsDetectorCalibration -I ../includes/ -I eigerReceiver -I . -SRC_CLNT = main.cpp - - -INSTMODE = 0777 -OBJS = $(SRC_CLNT:.cpp=.o) - - -.PHONY: all receiver clean static_receiver boot eigerReceiver lib - -all: receiver - -receiver: $(DESTDIR)/slsReceiver - -static_receiver: $(DESTDIR)/sslsReceiver - -boot: $(OBJS) - -$(DESTDIR)/sslsReceiver: lib - mkdir -p $(DESTDIR) - $(CXX) -static -o $@ $(SRC_CLNT) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) - - -$(DESTDIR)/slsReceiver: lib - $(CXX) -o $@ $(SRC_CLNT) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC -#$(EIGERFLAGS) - - -#ifeq ($(EIGERSLS), yes) -#eigerReceiver: -# $(CXX) $(FLAGS) $(CFLAGS) -fPIC -c -o eigerReceiverTest.o eigerReceiver/eigerReceiverTest.cpp #$(EIGERFLAGS) -# $(CXX) $(FLAGS) $(CFLAGS) -fPIC -c -o eigerReceiver.o eigerReceiver/eigerReceiver.cpp $(EIGERFLAGS) -# $(CXX) eigerReceiverTest.o eigerReceiver.o -o eigerReceiver/eigerReceiverTest $(EIGERFLAGS) -# $(CXX) $(FLAGS) $(CFLAGS) $(INCLUDES) -fPIC -c -o eigerReceiver.o eigerReceiverImplementation.cpp $(EIGERFLAGS) -#else ifeq ($(ROOTSLS), yes) -#eigerReceiver: eigerReceiver/eigerReceiverDummy.cpp -# echo "Compiling with root" -# $(CXX) $(FLAGS) $(CFLAGS) -fPIC -c -o eigerReceiver.o eigerReceiver/eigerReceiverDummy.cpp $(ROOTFLAGS) -#else -#eigerReceiver: eigerReceiver/eigerReceiverDummy.cpp -# $(CXX) $(FLAGS) $(CFLAGS) $(INCLUDES) -fPIC -c -o eigerReceiver.o eigerReceiver/eigerReceiverDummy.cpp -#endif - -lib: - cd ../ && $(MAKE) DESTDIR=../bin LIBDIR=../bin - -clean: - rm -rf $(PROGS) *.o eigerReceiverTest $(DESTDIR)/libSlsReceiver.a $(DESTDIR)/libSlsReceiver.so core - - - diff --git a/slsReceiverSoftware/src/eigerReceiver/RestHelper.h b/slsReceiverSoftware/src/eigerReceiver/RestHelper.h deleted file mode 100644 index 6f423f5e1..000000000 --- a/slsReceiverSoftware/src/eigerReceiver/RestHelper.h +++ /dev/null @@ -1,195 +0,0 @@ -/** - * @file RestHelper.h - * @author Leonardo Sala - * @date Tue Mar 25 09:28:19 2014 - * - * @brief - * - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "JsonBox/Value.h" - -#include -#include -#include - -/// HTTP timeout in seconds, default is 8 -#define HTTP_TIMEOUT 10 -/// Number of connection tries -#define N_CONNECTION_TRIES 3 - -using namespace Poco::Net; -using namespace Poco; -using namespace std; - -class RestHelper { - public: - - ~RestHelper(){}; - - void init(string hostname, int port){ - /** Initialize the RestHelper. Hostname and port parameters are not supposed to change. - * - * - * @param hostname FQDN of the host to connect to , e.g. www.iamfake.org, or sodoi.org - * @param port - * - * @return - */ - - full_hostname = "http://"+hostname; - session = new HTTPClientSession(hostname,port ); - session->setKeepAliveTimeout( Timespan( HTTP_TIMEOUT,0) ); - }; - - - int get_json(string request, string* answer){ - /** Retrieves a reply from the RESTful webservice. - * - * - * @param request Request without the hostname, e.g. if the full request would have been http://fake.org/fakemethod, request=fakemethod - * @param answer - * - * @return 0 if successful, -1 if failure happens. - */ - URI * uri = new URI(full_hostname+"/"+request); - string path(uri->getPathAndQuery()); - if (path.empty()) path = "/"; - - // send request - HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1); - req.setContentType("application/json\r\n"); - int code = send_request(session, req, answer); - delete uri; - return code; - }; - - - int get_json(string request, JsonBox::Value* json_value){ - /** - * - * - * @param request - * @param json_value - * - * @return - */ - URI *uri = new URI(full_hostname+"/"+request); - string path(uri->getPathAndQuery()); - if (path.empty()) path = "/"; - // send request - HTTPRequest req(HTTPRequest::HTTP_GET, path, HTTPMessage::HTTP_1_1); - req.setContentType("application/json\r\n"); - string answer; - int code = send_request(session, req, &answer); - json_value->loadFromString(answer); - delete uri; - return code; - }; - - - int post_json(string request, string *answer, string request_body=""){ - /** - * - * - * @param request - * @param answer - * @param request_body Eventual arguments to the URL, e.g. action=login&name=mammamia - * - * @return - */ - //from: http://stackoverflow.com/questions/1499086/poco-c-net-ssl-how-to-post-https-request - URI *uri = new URI(full_hostname+"/"+request); - string path(uri->getPathAndQuery()); - if (path.empty()) path = "/"; - HTTPRequest req(HTTPRequest::HTTP_POST, path, HTTPMessage::HTTP_1_1 ); - req.setContentType("application/json\r\n"); - req.setContentLength( request.length() ); - int code = send_request(session, req, answer, request_body); - delete uri; - return code; - } - - - int post_json(string request, JsonBox::Value* json_value, string request_body=""){ - /** - * - * - * @param request - * @param json_value - * @param request_body Eventual arguments to the URL, e.g. action=login&name=mammamia - * - * @return - */ - - URI *uri = new URI(full_hostname+"/"+request); - string path(uri->getPathAndQuery()); - if (path.empty()) path = "/"; - HTTPRequest req(HTTPRequest::HTTP_POST, path, HTTPMessage::HTTP_1_1 ); - req.setContentType("application/json\r\n"); - req.setContentLength( request.length() ); - string answer; - int code = send_request(session, req, &answer, request_body); - json_value->loadFromString(answer); - delete uri; - return code; - } - - - private: - //URI * uri; - HTTPClientSession *session; - string full_hostname; - - int send_request(HTTPClientSession *session, HTTPRequest &req, string *answer, string request_body=""){ - /** - * - * - * @param session - * @param req - * @param answer - * @param request_body - * - * @return - */ - - int n=0; - int code = -1; - while(nsendRequest( (req) ); - else - session->sendRequest( (req) ) << request_body; - - HTTPResponse res; - istream &is = session->receiveResponse(res); - StreamCopier::copyToString(is, *answer); - code = res.getStatus(); - if (code != 200){ - cout << "HTTP ERROR " << res.getStatus() << ": " << res.getReason() << endl; - code = -1; - } - return code; - } - catch (exception& e){ - cout << "Exception connecting to "<< full_hostname << ": "<< e.what() << ", sleeping " << HTTP_TIMEOUT << " seconds\n"; - sleep(HTTP_TIMEOUT); - } - n+=1; - } - - return code; - } - -}; diff --git a/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.cpp b/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.cpp deleted file mode 100644 index fa19895be..000000000 --- a/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/* - * eigerReceiver.cpp - * - * Created on: Mar 11, 2014 - * Author: billich - */ - -#include -#include -#include "eigerReceiver.h" - - -/* uncomment next line to enable debug output */ -#define EIGER_DEBUG - -/* macro for debug output http://stackoverflow.com/a/14256296 */ -#ifdef EIGER_DEBUG -#define DEBUG(x) do { std::cerr << x << std::endl; } while (0) -#else -#define DEBUG(x) -#endif - - -using namespace std; - -struct EigerReceiverInitializationConfiguration { - - string detectorHostname; -}; - -struct EigerReceiverScanConfiguration { - - string fileName; - string filePath; - int dynamicRange; - int scanTag; - int numberOfFrames; - bool doFileWrite; - bool doFileOverWrite; - - EigerReceiverScanConfiguration(): - dynamicRange(-1), - scanTag(-1), - numberOfFrames(-1), - doFileWrite(false), - doFileOverWrite(false){}; -}; - -class EigerReceiverImplementation: public EigerReceiver { - -public: - - EigerReceiverImplementation() : isInitialized(false), status(slsReceiverDefs::ERROR) {}; - - void initialize(const char *detectorHostname) { - - string name; - if (detectorHostname != NULL) { - name = detectorHostname; - } - - if (name.empty()) { - DEBUG("initialize(): can't initialize with empty string or NULL for detectorHostname"); - } else if (isInitialized == true) { - DEBUG("initialize(): already initialized, can't initialize several times"); - } else { - DEBUG("initialize(): initialize() with: detectorHostName=" << name << "."); - init_config.detectorHostname = name; - isInitialized = true; - status = slsReceiverDefs::IDLE; - } - -#ifdef SALA - //REST call - hardcoded - RestHelper rest ; - rest.init("localhost",8080); - std::string answer; - std::cout << "---- REST test 1: true, string "<< std::endl; - int code = rest.get_json("status", &answer); - std::cout << "Answer: " << answer << std::endl; - - std::cout << "---- REST test 2: 404, string "<< std::endl; - code = rest.get_json("statuss", &answer); - if (code != 0){ - //throw -1; - std::cout << "I SHOULD THROW AN EXCEPTION!!!" << std::endl; - } - - std::cout << "---- REST test 3: true, json object "<< std::endl; - JsonBox::Value json_value; - code = rest.get_json("status", &json_value); - std::cout << "JSON " << json_value["status"] << std::endl; - - answer = ""; - std::cout << "---- REST test 4: POST, string "<< std::endl; - code = rest.post_json("recipes/cassoela", &answer); - std::cout << "POST answer: " << answer << std::endl; - if (code != 0){ - //throw -1; - std::cout << "I SHOULD THROW AN EXCEPTION!!!" << std::endl; - } - - RestHelper rest2 ; - rest2.init("reallyfake",8080); - std::cout << "---- REST test 4: host not found, json object "<< std::endl; - JsonBox::Value json_value2; - code = rest2.get_json("status", &json_value2); - if (code != 0){ - //throw -1; - std::cout << "I SHOULD THROW AN EXCEPTION!!!" << std::endl; - } - -#endif - } - - - char *getDetectorHostname() const { - string name = init_config.detectorHostname; - if (name.empty()) { - DEBUG("getDetectorHostname(): Return NULL"); - return(NULL); - } - char *c = new char[name.length()+1]; - name.copy(c, name.length()); - c[name.length()] = '\0'; - DEBUG("getDetectorHostname(): Return " << c << "."); - return(c); - } - - char *getFileName() const { - string name = scan_config.fileName; - - char *c = new char[name.length()+1]; - name.copy(c, name.length()); - c[name.length()] = '\0'; - DEBUG("getFileName(): Return " << c); - return(c); - } - - char *getFilePath() const { - string name = scan_config.filePath; - - char *c = new char[name.length()+1]; - name.copy(c, name.length()); - c[name.length()] = '\0'; - DEBUG("getFilePath(): Return " << c); - return(c); - } - - int getDynamicRange() const { - DEBUG("getDynamicRange(): Return " << scan_config.dynamicRange); - return(scan_config.dynamicRange); - } - - int getScanTag() const { - DEBUG("getScanTag(): returns " << scan_config.scanTag); - return(scan_config.scanTag); - } - - int getNumberOfFrames() const { - DEBUG("getNumberOfFrames(): return " << scan_config.numberOfFrames); - return(scan_config.numberOfFrames); - } - - int getEnableFileWrite() const { - DEBUG("getEnableFileWrite() returns " << scan_config.doFileWrite); - return(scan_config.doFileWrite); - } - - int getEnableOverwrite() const { - DEBUG("getEnableOverwrite() returns " << scan_config.doFileOverWrite); - return(scan_config.doFileOverWrite); - } - - slsReceiverDefs::runStatus getStatus() const { - DEBUG("getStatus(): return " <getFileName()); - } - - char *setFilePath(const char c[]) { - DEBUG("setFilePath() called with " << c << "."); - scan_config.filePath = c; - return(this->getFilePath()); - } - - int setDynamicRange (const int dr) { - DEBUG("setDynamicRange() called with " << dr << '.'); - scan_config.dynamicRange = dr; - return(getDynamicRange()); - } - - int setScanTag (const int tag) { - DEBUG("setScanTag() called with " << tag); - scan_config.scanTag = tag; - return(getScanTag()); - } - - int setNumberOfFrames (const int fnum) { - DEBUG("setNumberOfFrames() called with " << fnum); - scan_config.numberOfFrames = fnum; - return(getNumberOfFrames()); - } - - int setEnableFileWrite(const int i) { - DEBUG("enableFileWrite() called with " << i); - scan_config.doFileWrite = i; - return(getEnableFileWrite()); - } - - int setEnableOverwrite(const int i) { - DEBUG("setEnableOverwrite() called with " << i); - scan_config.doFileOverWrite = i; - return(getEnableOverwrite()); - } - - int startReceiver(char message[]) { - DEBUG("startReceiver(): return 0."); - status = slsReceiverDefs::RUNNING; - message = NULL; - return(0); - } - - int stopReceiver() { - DEBUG("stopReceiver(): return 0."); - status = slsReceiverDefs::IDLE; - return(0); - } - - void abort() { - DEBUG("abort(): return 0."); - status = slsReceiverDefs::IDLE; - } - -private: - EigerReceiverScanConfiguration scan_config; - EigerReceiverInitializationConfiguration init_config; - bool isInitialized; - slsReceiverDefs::runStatus status; -}; - -EigerReceiver *EigerReceiver::create(void) { - DEBUG("create(): Return new EigerReceiverImplementation instance."); - return new EigerReceiverImplementation(); -} - - - - diff --git a/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.h b/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.h deleted file mode 100644 index 9d26b185b..000000000 --- a/slsReceiverSoftware/src/eigerReceiver/eigerReceiver.h +++ /dev/null @@ -1,211 +0,0 @@ -#ifndef EIGERRECEIVER_H -#define EIGERRECEIVER_H -/*********************************************** - * @file eigerReceiver.h - * @short does all the functions for a receiver, set/get parameters, start/stop etc. - ***********************************************/ - -/** - * @short does all the functions for a receiver, set/get parameters, start/stop etc. - */ - -#include "sls_receiver_defs.h" -#ifdef SALA -#include "RestHelper.h" -#endif -class EigerReceiver { - /* abstract class that defines the public interface of an eiger data receiver. - * - * Use the factory method EigerReceiver::create() to get an instance: - * - * EigerReceiver *receiver = EigerReceiver::create() - * - * supported sequence of method-calls: - * - * initialize() : once and only once after create() - * - * get*() : anytime after initialize(), multiples times - * set*() : anytime after initialize(), multiple times - * - * startReceiver(): anytime after initialize(). Will fail if state already is 'running' - * - * abort(), - * stopReceiver() : anytime after initialize(). Will do nothing if state already is idle. - * - * getStatus() returns the actual state of the data receiver - running or idle. All other - * get*() and set*() methods access the local cache of configuration values only and *do not* modify the data receiver settings. - * - * Only startReceiver() does change the data receiver configuration, it does pass the whole configuration cache to the data receiver. - * - * get- and set-methods that return a char array (char *) allocate a new array at each call. The caller is responsible to free the allocated space: - * - * char *c = receiver->getFileName(); - * .... - * delete[] c; - * - * always: 1:YES 0:NO for int as bool-like arguments - * - */ - -public: - - /** - * factory method to create instances - */ - static EigerReceiver *create(); - - /** - * Destructor - */ - virtual ~EigerReceiver() {}; - - /** - * Initialize the Receiver - @param detectorHostName detector hostname - * you can call this function only once. You must call it before you call startReceiver() for the first time. - */ - virtual void initialize(const char *detectorHostName) = 0; - - - /* Returns detector hostname - /returns hostname - * caller needs to deallocate the returned char array. - * if uninitialized, it must return NULL - */ - virtual char *getDetectorHostname() const = 0; - - /** - * Returns status of receiver: idle, running or error - */ - virtual slsReceiverDefs::runStatus getStatus() const = 0; - - /** - * Returns File Name - * caller is responsible to deallocate the returned char array. - */ - virtual char *getFileName() const = 0; - - - /** - * Returns File Path - * caller is responsible to deallocate the returned char array - */ - virtual char *getFilePath() const = 0; //FIXME: Does the caller need to free() the returned pointer? - - - /** - * Returns the number of bits per pixel - */ - virtual int getDynamicRange() const = 0; - - /** - * Returns scan tag - */ - virtual int getScanTag() const = 0; - - /* - * Returns number of frames to receive - * This is the number of frames to expect to receiver from the detector. - * The data receiver will change from running to idle when it got this number of frames - */ - virtual int getNumberOfFrames() const = 0; - - /** - * Returns file write enable - * 1: YES 0: NO - */ - virtual int getEnableFileWrite() const = 0; - - /** - * Returns file over write enable - * 1: YES 0: NO - */ - virtual int getEnableOverwrite() const = 0; - - /** - * Set File Name (without frame index, file index and extension) - @param c file name - /returns file name - * returns NULL on failure (like bad file name) - * does not check the existence of the file - we don't know which path we'll finally use, so no point to check. - * caller is responsible to deallocate the returned char array. - */ - virtual char* setFileName(const char c[]) = 0; - - /** - * Set File Path - @param c file path - /returns file path - * checks the existence of the directory. returns NULL if directory does not exist or is not readable. - * caller is responsible to deallocate the returned char array. - */ - virtual char* setFilePath(const char c[]) = 0; - - /** - * Returns the number of bits per pixel - @param dr sets dynamic range - /returns dynamic range - * returns -1 on failure - * FIXME: what are the allowd values - should we use an enum as argument? - */ - virtual int setDynamicRange(const int dr) = 0; - - - /** - * Set scan tag - @param tag scan tag - /returns scan tag (always non-negative) - * FIXME: valid range - only positive? 16bit ore 32bit? - * returns -1 on failure - */ - virtual int setScanTag(const int tag) = 0; - - /** - * Sets number of frames - @param fnum number of frames - /returns number of frames - */ - virtual int setNumberOfFrames(const int fnum) = 0; - - /** - * Set enable file write - * @param i file write enable - /returns file write enable - */ - virtual int setEnableFileWrite(const int i) = 0; - - /** - * Set enable file overwrite - * @param i file overwrite enable - /returns file overwrite enable - */ - virtual int setEnableOverwrite(const int i) = 0; - - /** - * Starts Receiver - activate all configuration settings to the eiger receiver and start to listen for packets - @param message is the error message if there is an error - /returns 0 on success or -1 on failure - */ - //FIXME: success == 0 or success == 1? - virtual int startReceiver(char message[]) = 0; //FIXME: who allocates message[]? - - /** - * Stops Receiver - stops listening for packets - /returns success - * same as abort(). Always returns 0. - */ - virtual int stopReceiver() = 0; - - /** - * abort acquisition with minimum damage: close open files, cleanup. - * does nothing if state already is 'idle' - */ - virtual void abort() = 0; - -protected: - -private: - -}; - -#endif /* #ifndef EIGERRECEIVER_H */ diff --git a/slsReceiverSoftware/src/eigerReceiver/eigerReceiverDummy.cpp b/slsReceiverSoftware/src/eigerReceiver/eigerReceiverDummy.cpp deleted file mode 100644 index f45c7517e..000000000 --- a/slsReceiverSoftware/src/eigerReceiver/eigerReceiverDummy.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * eigerReceiver.cpp - * - * Created on: Mar 11, 2014 - * Author: billich - */ - -#include -#include -#include "eigerReceiver.h" - - -using namespace std; - -struct EigerReceiverInitializationConfiguration { - string detectorHostname; -}; - -struct EigerReceiverScanConfiguration { - - string fileName; - string filePath; - int dynamicRange; - int scanTag; - int numberOfFrames; - bool doFileWrite; - bool doFileOverWrite; - - EigerReceiverScanConfiguration(): - dynamicRange(-1), - scanTag(-1), - numberOfFrames(-1), - doFileWrite(false), - doFileOverWrite(false){}; -}; - -class EigerReceiverImplementation: public EigerReceiver { - -public: - - EigerReceiverImplementation(){}; - - ~EigerReceiverImplementation(){}; - - void initialize(const char *detectorHostname) {} - - char *getDetectorHostname() const { return (char*)"";} - - char *getFileName() const {return (char*)"";} - - char *getFilePath() const {return (char*)"";} - - int getDynamicRange() const { return 0;} - - int getScanTag() const {return 0;} - - int getNumberOfFrames() const {return 0;} - - int getEnableFileWrite() const {return 0;} - - int getEnableOverwrite() const {return 0;} - - slsReceiverDefs::runStatus getStatus() const { return slsReceiverDefs::IDLE;} - - char *setFileName(const char c[]) {return (char*)"";} - - char *setFilePath(const char c[]) {return (char*)"";} - - int setDynamicRange (const int dr) {return 0;} - - int setScanTag (const int tag) {return 0;} - - int setNumberOfFrames (const int fnum) {return 0;} - - int setEnableFileWrite(const int i) {return 0;} - - int setEnableOverwrite(const int i) {return 0;} - - int startReceiver(char message[]) {return 0;} - - int stopReceiver() {return 0;} - - void abort() {} - -private: - EigerReceiverScanConfiguration scan_config; - EigerReceiverInitializationConfiguration init_config; - bool isInitialized; - slsReceiverDefs::runStatus status; - -}; - -EigerReceiver *EigerReceiver::create(void) { - return new EigerReceiverImplementation(); -} - - - - diff --git a/slsReceiverSoftware/src/eigerReceiver/eigerReceiverTest.cpp b/slsReceiverSoftware/src/eigerReceiver/eigerReceiverTest.cpp deleted file mode 100644 index bdfcba7a1..000000000 --- a/slsReceiverSoftware/src/eigerReceiver/eigerReceiverTest.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - * eigerReceiverTest.cpp - - * - * Created on: Mar 11, 2014 - * Author: billich - */ - -#include -#include -#include "eigerReceiver.h" - -using namespace std; - -int main(int argc, char *argv[]){ - - const char *name = "detectors_host_name"; - const char *empty = ""; - std::string prefix = "main: "; - cout <getStatus(); - char *c0 = receiver->getDetectorHostname(); - if (c0 == NULL) { - cout <initialize(empty); - status = receiver->getStatus(); - receiver->initialize(name); - status = receiver->getStatus(); - receiver->initialize(name); - status = receiver->getStatus(); - receiver->initialize((char *)NULL); - - cout << endl; - - status = receiver->getStatus(); - char *c6 = receiver->getDetectorHostname(); - cout <getFileName(); - cout <." << endl; - delete[] c1; - - char *c2 = receiver->getFilePath(); - cout <." << endl; - delete[]c2; - - int range = receiver->getDynamicRange(); - cout <getScanTag(); - cout <setFileName( "some_other_name"); - cout < after setting to " << endl << endl; - delete[] c3; - - char *c4 = receiver->setFilePath( "some_other_path"); - cout < after setting to " << endl << endl; - delete[] c4; - - range = receiver->setDynamicRange(8); - cout <setScanTag(99); - cout << "got scan tag " << tag << " after setting to 99." << endl << endl; - - int n = receiver->setNumberOfFrames(11); - cout << "got number of frames " << n << " after setting to 11." << endl << endl; - - int w = receiver->setEnableFileWrite(1); - cout << "got enable file write " << w << " after setting to 1." << endl << endl; - - char *c5; - status = receiver->getStatus(); - receiver->startReceiver(c5); - status = receiver->getStatus(); - receiver->stopReceiver(); - status = receiver->getStatus(); - receiver->abort(); - status = receiver->getStatus(); - -} - - - - diff --git a/slsReceiverSoftware/src/rec.cxx b/slsReceiverSoftware/test/rec.cxx similarity index 100% rename from slsReceiverSoftware/src/rec.cxx rename to slsReceiverSoftware/test/rec.cxx diff --git a/slsReceiverSoftware/src/send.cxx b/slsReceiverSoftware/test/send.cxx similarity index 100% rename from slsReceiverSoftware/src/send.cxx rename to slsReceiverSoftware/test/send.cxx