mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-10 14:50:02 +02:00
added logger
This commit is contained in:
parent
87efbf764e
commit
5641101705
@ -11,16 +11,16 @@ CFLAGS= -g -DC_ONLY -fPIC
|
||||
|
||||
DFLAGS= -g -DDACS_INT -DSLS_RECEIVER_UDP_FUNCTIONS
|
||||
|
||||
INCLUDES?= -I. -Iincludes -IMySocketTCP -IslsReceiver -IslsDetectorCalibration -IslsReceiver/eigerReceiver -I$(ASM)
|
||||
INCLUDES?= -I. -Iincludes -IMySocketTCP -IslsReceiver -IslsDetectorCalibration -I$(ASM)
|
||||
#-IslsReceiverInterface
|
||||
|
||||
SRC_CLNT= MySocketTCP/MySocketTCP.cpp slsReceiver/slsReceiver.cpp slsReceiver/UDPInterface.cpp slsReceiver/UDPBaseImplementation.cpp slsReceiver/slsReceiverTCPIPInterface.cpp slsReceiver/slsReceiverUsers.cpp
|
||||
|
||||
SRC_CLNT= MySocketTCP/MySocketTCP.cpp slsReceiver/UDPInterface.cpp slsReceiver/UDPBaseImplementation.cpp slsReceiver/UDPStandardImplementation.cpp slsReceiver/slsReceiverTCPIPInterface.cpp slsReceiver/slsReceiver.cpp slsReceiver/slsReceiverUsers.cpp includes/utilities.h
|
||||
#slsReceiverInterface/receiverInterface.cpp
|
||||
#slsReceiver/slsReceiverUDPFunctions.cpp
|
||||
|
||||
OBJS = $(SRC_CLNT:.cpp=.o)
|
||||
OBJS += slsReceiver/eigerReceiver.o
|
||||
OBJS += includes/utilities.h
|
||||
#OBJS += slsReceiver/eigerReceiver.o
|
||||
|
||||
|
||||
.PHONY: all intdoc package eigerReceiver clean
|
||||
@ -31,10 +31,8 @@ intdoc: $(SRC_H) $(SRC_CLNT)
|
||||
doxygen doxy.config
|
||||
|
||||
|
||||
%.o : %.cpp %.h Makefile
|
||||
ifeq ($(EIGERSLS),yes)
|
||||
$(CXX) -DEIGERSLS -o $@ -c $< $(INCLUDES) $(DFLAGS) $(EIGERFLAGS) -fPIC $(EPICSFLAGS) -L/usr/lib64/ #$(FLAGS)
|
||||
else ifeq ($(ROOTSLS),yes)
|
||||
%.o : %.cpp Makefile
|
||||
ifeq ($(ROOTSLS),yes)
|
||||
echo "with root"
|
||||
$(CXX) -DROOTSLS -o $@ -c $< $(INCLUDES) $(DFLAGS) $(ROOTFLAGS) -fPIC $(EPICSFLAGS) -L/usr/lib64/ #$(FLAGS)
|
||||
else
|
||||
@ -43,14 +41,14 @@ else
|
||||
endif
|
||||
|
||||
# LEO: not satisfied by eigerReceiver
|
||||
package: eigerReceiver $(OBJS) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
||||
package: $(OBJS) $(DESTDIR)/libSlsReceiver.so $(DESTDIR)/libSlsReceiver.a
|
||||
|
||||
eigerReceiver:
|
||||
echo "src client:" $(SRC_CLNT)
|
||||
cd slsReceiver && make eigerReceiver
|
||||
#eigerReceiver:
|
||||
# echo "src client:" $(SRC_CLNT)
|
||||
# cd slsReceiver && make eigerReceiver
|
||||
|
||||
$(DESTDIR)/libSlsReceiver.so: $(OBJS)
|
||||
$(CXX) -shared -Wl,-soname,libSlsReceiver.so -o libSlsReceiver.so $(OBJS) -lc $(INCLUDES) $(DFLAGS) $(FLAGS) $(EPICSFLAGS) -L/usr/lib64 -lpthread
|
||||
$(CXX) -shared -Wl,-soname,libSlsReceiver.so -o libSlsReceiver.so $(OBJS) -lc $(INCLUDES) $(DFLAGS) $(FLAGS) $(EPICSFLAGS) -L/usr/lib64 -lpthread
|
||||
$(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR))
|
||||
mv libSlsReceiver.so $(DESTDIR)
|
||||
|
||||
|
@ -39,26 +39,26 @@ $(DESTDIR)/sslsReceiver: lib
|
||||
$(CXX) -static -o $@ $(SRC_CLNT) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR)
|
||||
|
||||
|
||||
$(DESTDIR)/slsReceiver: eigerReceiver lib
|
||||
$(DESTDIR)/slsReceiver: lib
|
||||
echo "AAAAAAAAAAAA" $(CXX) -o $@ $(SRC_CLNT) $(FLAGS) $(INCLUDES) $(CLAGS) $(LIBS) $(LDFLAGRXR) -fPIC
|
||||
$(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)
|
||||
#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
|
||||
# $(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
|
||||
|
@ -20,12 +20,10 @@
|
||||
#include <iomanip> //set precision
|
||||
#include <sys/mman.h> //munmap
|
||||
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include <iostream>
|
||||
|
||||
|
||||
//#include "utilities.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -216,90 +214,9 @@ void UDPBaseImplementation::initializeMembers(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
int UDPBaseImplementation::setDetectorType(detectorType det){
|
||||
cout << "Setting Receiver Type " << endl;
|
||||
|
||||
deleteMembers();
|
||||
initializeMembers();
|
||||
|
||||
myDetectorType = det;
|
||||
|
||||
switch(myDetectorType){
|
||||
case GOTTHARD:
|
||||
cout << endl << "***** This is a GOTTHARD Receiver *****" << endl << endl;
|
||||
break;
|
||||
case MOENCH:
|
||||
cout << endl << "***** This is a MOENCH Receiver *****" << endl << endl;
|
||||
break;
|
||||
case EIGER:
|
||||
cout << endl << "***** This is a EIGER Receiver *****" << endl << endl;
|
||||
break;
|
||||
default:
|
||||
cout << endl << "***** Unknown Receiver *****" << endl << endl;
|
||||
return FAIL;
|
||||
break;
|
||||
}
|
||||
|
||||
//moench variables
|
||||
if(myDetectorType == GOTTHARD){
|
||||
fifosize = GOTTHARD_FIFO_SIZE;
|
||||
packetsPerFrame = GOTTHARD_PACKETS_PER_FRAME;
|
||||
onePacketSize = GOTTHARD_ONE_PACKET_SIZE;
|
||||
frameSize = GOTTHARD_BUFFER_SIZE;
|
||||
bufferSize = GOTTHARD_BUFFER_SIZE;
|
||||
maxPacketsPerFile = MAX_FRAMES_PER_FILE * GOTTHARD_PACKETS_PER_FRAME;
|
||||
frameIndexMask = GOTTHARD_FRAME_INDEX_MASK;
|
||||
frameIndexOffset = GOTTHARD_FRAME_INDEX_OFFSET;
|
||||
packetIndexMask = GOTTHARD_PACKET_INDEX_MASK;
|
||||
}else if(myDetectorType == MOENCH){
|
||||
fifosize = MOENCH_FIFO_SIZE;
|
||||
packetsPerFrame = MOENCH_PACKETS_PER_FRAME;
|
||||
onePacketSize = MOENCH_ONE_PACKET_SIZE;
|
||||
frameSize = MOENCH_BUFFER_SIZE;
|
||||
bufferSize = MOENCH_BUFFER_SIZE;
|
||||
maxPacketsPerFile = MOENCH_MAX_FRAMES_PER_FILE * MOENCH_PACKETS_PER_FRAME;
|
||||
frameIndexMask = MOENCH_FRAME_INDEX_MASK;
|
||||
frameIndexOffset = MOENCH_FRAME_INDEX_OFFSET;
|
||||
packetIndexMask = MOENCH_PACKET_INDEX_MASK;
|
||||
}
|
||||
else if(myDetectorType == EIGER){
|
||||
fifosize = EIGER_FIFO_SIZE;
|
||||
packetsPerFrame = EIGER_ONE_GIGA_CONSTANT * dynamicRange * EIGER_MAX_PORTS;
|
||||
onePacketSize = EIGER_ONE_GIGA_ONE_PACKET_SIZE;
|
||||
frameSize = onePacketSize * packetsPerFrame;
|
||||
bufferSize = (frameSize/EIGER_MAX_PORTS) + EIGER_HEADER_LENGTH;//everything one port gets (img header plus packets)
|
||||
maxPacketsPerFile = EIGER_MAX_FRAMES_PER_FILE * packetsPerFrame;
|
||||
frameIndexMask = EIGER_FRAME_INDEX_MASK;
|
||||
frameIndexOffset = EIGER_FRAME_INDEX_OFFSET;
|
||||
packetIndexMask = EIGER_PACKET_INDEX_MASK;
|
||||
|
||||
pthread_mutex_lock(&status_mutex);
|
||||
listeningthreads_mask = 0x0;
|
||||
pthread_mutex_unlock(&(status_mutex));
|
||||
if(thread_started)
|
||||
createListeningThreads(true);
|
||||
|
||||
numListeningThreads = MAX_NUM_LISTENING_THREADS;
|
||||
}
|
||||
latestData = new char[frameSize];
|
||||
|
||||
|
||||
setupFifoStructure();
|
||||
|
||||
if(createListeningThreads() == FAIL){
|
||||
cout << "ERROR: Could not create listening thread" << endl;
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if(createWriterThreads() == FAIL){
|
||||
cout << "ERROR: Could not create writer threads" << endl;
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
setThreadPriorities();
|
||||
|
||||
cout << "Ready..." << endl;
|
||||
|
||||
cout << "[WARNING] This is a base implementation, " << __func__ << " not correctly implemented" << endl;
|
||||
return OK;
|
||||
}
|
||||
|
||||
@ -327,6 +244,7 @@ uint32_t UDPBaseImplementation::getFrameIndex(){
|
||||
return frameIndex;
|
||||
}
|
||||
|
||||
|
||||
uint32_t UDPBaseImplementation::getAcquisitionIndex(){
|
||||
if(!totalPacketsCaught)
|
||||
acquisitionIndex=-1;
|
||||
@ -343,20 +261,17 @@ void UDPBaseImplementation::resetTotalFramesCaught(){
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*file parameters*/
|
||||
|
||||
char* UDPBaseImplementation::getFilePath() const{
|
||||
return (char*)filePath;
|
||||
FILE_LOG(logWARNING) << "[WARNING] This is a base implementation, " << __func__ << " could have no effects.x" << endl;
|
||||
return (char*)filePath;
|
||||
}
|
||||
|
||||
char* UDPBaseImplementation::setFilePath(const char c[]){
|
||||
cout << "[WARNING] This is a base implementation, " << __func__ << " could have no effects." << endl;
|
||||
|
||||
/*
|
||||
if(strlen(c)){
|
||||
//check if filepath exists
|
||||
struct stat st;
|
||||
@ -367,6 +282,7 @@ char* UDPBaseImplementation::setFilePath(const char c[]){
|
||||
cout << "FilePath does not exist:" << filePath << endl;
|
||||
}
|
||||
}
|
||||
*/
|
||||
return getFilePath();
|
||||
}
|
||||
|
||||
@ -376,8 +292,11 @@ char* UDPBaseImplementation::getFileName() const{
|
||||
}
|
||||
|
||||
char* UDPBaseImplementation::setFileName(const char c[]){
|
||||
if(strlen(c))
|
||||
cout << "[WARNING] This is a base implementation, " << __func__ << " could have no effects." << endl;
|
||||
/*
|
||||
if(strlen(c))
|
||||
strcpy(fileName,c);
|
||||
*/
|
||||
return getFileName();
|
||||
}
|
||||
|
||||
@ -387,13 +306,17 @@ int UDPBaseImplementation::getFileIndex(){
|
||||
}
|
||||
|
||||
int UDPBaseImplementation::setFileIndex(int i){
|
||||
cout << "[WARNING] This is a base implementation, " << __func__ << " could have no effects." << endl;
|
||||
/*
|
||||
if(i>=0)
|
||||
fileIndex = i;
|
||||
*/
|
||||
return getFileIndex();
|
||||
}
|
||||
|
||||
|
||||
int UDPBaseImplementation::setFrameIndexNeeded(int i){
|
||||
cout << "[WARNING] This is a base implementation, " << __func__ << " could have no effects." << endl;
|
||||
frameIndexNeeded = i;
|
||||
return frameIndexNeeded;
|
||||
}
|
||||
|
@ -28,7 +28,6 @@
|
||||
#include <stdio.h>
|
||||
#include <semaphore.h>
|
||||
|
||||
|
||||
/**
|
||||
* @short does all the functions for a receiver, set/get parameters, start/stop etc.
|
||||
*/
|
||||
|
@ -22,6 +22,7 @@ using namespace std;
|
||||
|
||||
#include "UDPInterface.h"
|
||||
#include "UDPBaseImplementation.h"
|
||||
#include "UDPStandardImplementation.h"
|
||||
|
||||
|
||||
|
||||
@ -30,7 +31,9 @@ using namespace std;
|
||||
UDPInterface * UDPInterface::create(string receiver_type){
|
||||
|
||||
if (receiver_type == "standard")
|
||||
return new UDPBaseImplementation();
|
||||
return new UDPStandardImplementation();
|
||||
//else if (receiver_type == "REST")
|
||||
// return new UDPRESTImplementation();
|
||||
else{
|
||||
cout << "[ERROR] UDP interface not supported, using standard implementation" << endl;
|
||||
return new UDPBaseImplementation();
|
||||
|
@ -16,6 +16,9 @@
|
||||
#include "receiver_defs.h"
|
||||
#include "MySocketTCP.h"
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
|
||||
/*
|
||||
void print_not_implemented(string method_name){
|
||||
std::cout << "[WARNING] Method " << method_name << " not implemented!" << std::endl;
|
||||
|
@ -6,6 +6,9 @@
|
||||
|
||||
#include <iostream>
|
||||
#include <string.h>
|
||||
|
||||
#include "utilities.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
|
@ -12,9 +12,7 @@
|
||||
#include <getopt.h>
|
||||
|
||||
#include "slsReceiver.h"
|
||||
#include "UDPInterface.h"
|
||||
|
||||
#include "utilities.h"
|
||||
//#include "UDPInterface.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -35,6 +33,7 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
int tcpip_port_no = 1984;
|
||||
success=OK;
|
||||
string fname = "";
|
||||
string udp_interface_type = "standard";
|
||||
|
||||
//parse command line for config
|
||||
static struct option long_options[] = {
|
||||
@ -42,6 +41,7 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
//{"verbose", no_argument, &verbose_flag, 1},
|
||||
/* These options don’t set a flag.
|
||||
We distinguish them by their indices. */
|
||||
{"type", required_argument, 0, 't'},
|
||||
{"config", required_argument, 0, 'f'},
|
||||
{"rx_tcpport", required_argument, 0, 'b'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
@ -52,7 +52,7 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
int c;
|
||||
|
||||
while ( c != -1 ){
|
||||
c = getopt_long (argc, argv, "bfh", long_options, &option_index);
|
||||
c = getopt_long (argc, argv, "bfht", long_options, &option_index);
|
||||
|
||||
/* Detect the end of the options. */
|
||||
if (c == -1)
|
||||
@ -61,12 +61,15 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
switch(c){
|
||||
case 'f':
|
||||
fname = optarg;
|
||||
cout << long_options[option_index].name << " " << optarg << endl;
|
||||
//cout << long_options[option_index].name << " " << optarg << endl;
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
sscanf(optarg,"%d",&tcpip_port_no);
|
||||
cout << long_options[option_index].name << " " << optarg << endl;
|
||||
sscanf(optarg, "%d", &tcpip_port_no);
|
||||
break;
|
||||
|
||||
case 't':
|
||||
udp_interface_type = optarg;
|
||||
break;
|
||||
|
||||
case 'h':
|
||||
@ -74,6 +77,7 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
help_message += """usage: slsReceiver --config config_fname [--rx_tcpport port]\n\n""";
|
||||
help_message += """\t--config:\t configuration filename for SLS Detector receiver\n""";
|
||||
help_message += """\t--rx_tcpport:\t TCP Communication Port with the client. Default: 1954.\n\n""";
|
||||
help_message += """\t--type:\t Type of the receiver. Possible arguments are: standard, REST. Default: standard.\n\n""";
|
||||
cout << help_message << endl;
|
||||
break;
|
||||
|
||||
@ -85,30 +89,35 @@ slsReceiver::slsReceiver(int argc, char *argv[], int &success){
|
||||
success = FAIL;
|
||||
|
||||
if((!fname.empty()) && (success == OK)){
|
||||
VERBOSE_PRINT("config file name " + fname );
|
||||
FILE_LOG(logINFO) << "config file name " << fname;
|
||||
success = read_config_file(fname, &tcpip_port_no);
|
||||
VERBOSE_PRINT("Read configuration file of " + iline + " lines");
|
||||
//VERBOSE_PRINT("Read configuration file of " + iline + " lines");
|
||||
}
|
||||
else {
|
||||
cout << "Error opening configuration file " << fname << endl;
|
||||
FILE_LOG(logERROR) << "Error opening configuration file " << fname ;
|
||||
success = FAIL;
|
||||
}
|
||||
|
||||
|
||||
if(success != OK){
|
||||
cout << "Failed: see output above for more information " << endl;
|
||||
FILE_LOG(logERROR) << "Failed: see output above for more information " ;
|
||||
}
|
||||
|
||||
if (success==OK){
|
||||
cout << "SLS Receiver starting" << endl;
|
||||
udp_interface = UDPInterface::create("standard");
|
||||
udp_interface = UDPInterface::create(udp_interface_type);
|
||||
tcpipInterface = new slsReceiverTCPIPInterface(success, udp_interface, tcpip_port_no);
|
||||
//tcp ip interface
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
slsReceiver::~slsReceiver() {if(udp_interface) delete udp_interface; if(tcpipInterface) delete tcpipInterface;}
|
||||
slsReceiver::~slsReceiver() {
|
||||
if(udp_interface)
|
||||
delete udp_interface;
|
||||
if(tcpipInterface)
|
||||
delete tcpipInterface;
|
||||
}
|
||||
|
||||
|
||||
int slsReceiver::start() {
|
||||
|
@ -8,11 +8,11 @@
|
||||
|
||||
#include "slsReceiverTCPIPInterface.h"
|
||||
#include "UDPInterface.h"
|
||||
#include "UDPBaseImplementation.h"
|
||||
//#include "UDPBaseImplementation.h"
|
||||
|
||||
#include "receiver_defs.h"
|
||||
#include "MySocketTCP.h"
|
||||
|
||||
//#include "utilities.h"
|
||||
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user