Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor

This commit is contained in:
Erik Frojdh 2018-10-11 13:54:37 +02:00
commit f7809bda3b
16 changed files with 148 additions and 187 deletions

View File

@ -41,7 +41,7 @@ set(PUBLICHEADERS
../slsSupportLib/include/sls_detector_funcs.h
../slsSupportLib/include/error_defs.h
../slsSupportLib/include/versionAPI.h
../slsSupportLib/include/sls_receiver_exceptions.h
../slsSupportLib/include/sls_detector_exceptions.h
../slsSupportLib/include/utilties.h
../slsSupportLib/include/container_utils.h
sharedMemory/SharedMemory.h

View File

@ -17,7 +17,7 @@ LIBZMQDIR = ../slsSupportLib/include
LIBZMQ = -L$(LIBZMQDIR) -Wl,-rpath=$(LIBZMQDIR) -lzmq
SRC_CLNT= slsDetector/slsDetectorCommand.cpp slsDetector/slsDetector.cpp multiSlsDetector/multiSlsDetector.cpp ../slsSupportLib/include/ReceiverInterface.cpp slsDetector/slsDetectorUsers.cpp sharedMemory/SharedMemory.cpp ../slsSupportLib/include/utilities.cpp
DEPSINCLUDES = ../slsSupportLib/include/sls_receiver_funcs.h ../slsSupportLib/include/ansi.h ../slsSupportLib/include/sls_detector_defs.h ../slsSupportLib/include/sls_detector_funcs.h ../slsSupportLib/include/error_defs.h slsDetector/detectorData.h sharedMemory/SharedMemory.h ../slsSupportLib/include/sls_receiver_exceptions.h ../slsSupportLib/include/versionAPI.h ../slsSupportLib/include/utilities.h ../slsSupportLib/include/container_utils.h
DEPSINCLUDES = ../slsSupportLib/include/ansi.h ../slsSupportLib/include/sls_detector_defs.h ../slsSupportLib/include/sls_detector_funcs.h ../slsSupportLib/include/error_defs.h slsDetector/detectorData.h sharedMemory/SharedMemory.h ../slsSupportLib/include/sls_detector_exceptions.h ../slsSupportLib/include/versionAPI.h ../slsSupportLib/include/utilities.h ../slsSupportLib/include/container_utils.h

View File

@ -88,7 +88,6 @@ INPUT = ../slsSupportLib/include/communication_funcs.h \
../slsSupportLib/include/genericSocket.h \
../slsSupportLib/include/logger.h \
../slsSupportLib/include/MySocketTCP.h \
../slsSupportLib/include/sls_receiver_funcs.h \
../slsSupportLib/include/utilities.h \
../slsSupportLib/include/ZmqSocket.h \
multiSlsDetector/multiSlsDetectorClient.h \

View File

@ -1,7 +1,7 @@
#include "multiSlsDetector.h"
#include "SharedMemory.h"
#include "slsDetector.h"
#include "sls_receiver_exceptions.h"
#include "sls_detector_exceptions.h"
#include "ZmqSocket.h"
#include "multiSlsDetectorClient.h"
#include "multiSlsDetectorCommand.h"
@ -3516,8 +3516,6 @@ int multiSlsDetector::setCTBPatWaitTime(int level, uint64_t t, int detPos) {
int multiSlsDetector::retrieveDetectorSetup(std::string const fname1, int level){
slsDetectorCommand *cmd;
int skip=0;
std::string fname;
std::string str;

View File

@ -4,7 +4,7 @@
#include "multiSlsDetector.h"
#include "multiSlsDetectorCommand.h"
#include "sls_receiver_exceptions.h"
#include "sls_detector_exceptions.h"
#include <stdlib.h>

View File

@ -1,5 +1,5 @@
#include "SharedMemory.h"
#include "sls_receiver_exceptions.h"
#include "sls_detector_exceptions.h"
#include "ansi.h"
#include <iostream>

View File

@ -1,6 +1,6 @@
#include "slsDetector.h"
#include "multiSlsDetector.h"
#include "sls_receiver_exceptions.h"
#include "sls_detector_exceptions.h"
#include "SharedMemory.h"
#include "ClientInterface.h"
#include "gitInfoLib.h"

View File

@ -58,11 +58,11 @@ add_library(slsReceiverShared SHARED
set(PUBLICHEADERS
../slsSupportLib/include/sls_detector_defs.h
../slsSupportLib/include/ansi.h
../slsSupportLib/include/sls_receiver_funcs.h
../slsSupportLib/include/sls_detector_funcs.h
../slsSupportLib/include/MySocketTCP.h
../slsSupportLib/include/genericSocket.h
../slsSupportLib/include/logger.h
../slsSupportLib/include/sls_receiver_exceptions.h
../slsSupportLib/include/sls_detector_exceptions.h
../slsSupportLib/include/utilities.h
)

View File

@ -27,7 +27,7 @@ LIBZMQ = -L$(LIBZMQDIR) -Wl,-rpath=$(LIBZMQDIR) -lzmq
SRC_CLNT = ThreadObject.cpp Listener.cpp DataProcessor.cpp DataStreamer.cpp Fifo.cpp File.cpp BinaryFile.cpp slsReceiverImplementation.cpp slsReceiverTCPIPInterface.cpp slsReceiver.cpp slsReceiverUsers.cpp $(COMMONDIR)/utilities.cpp
DEPSINCLUDES = $(COMMONDIR)/ansi.h $(COMMONDIR)/sls_detector_defs.h $(COMMONDIR)/sls_receiver_funcs.h $(COMMONDIR)/GeneralData.h $(INCDIR)/circularFifo.h $(COMMONDIR)/genericSocket.h $(COMMONDIR)/logger.h $(INCDIR)/receiver_defs.h $(COMMONDIR)/utilities.h $(COMMONDIR)/ZmqSocket.h $(INCDIR)/BinaryFileStatic.h $(INCDIR)/HDF5FileStatic.h $(COMMONDIR)/sls_receiver_exceptions.h
DEPSINCLUDES = $(COMMONDIR)/ansi.h $(COMMONDIR)/sls_detector_defs.h $(COMMONDIR)/sls_detector_funcs.h $(COMMONDIR)/GeneralData.h $(INCDIR)/circularFifo.h $(COMMONDIR)/genericSocket.h $(COMMONDIR)/logger.h $(INCDIR)/receiver_defs.h $(COMMONDIR)/utilities.h $(COMMONDIR)/ZmqSocket.h $(INCDIR)/BinaryFileStatic.h $(INCDIR)/HDF5FileStatic.h $(COMMONDIR)/sls_detector_exceptions.h
ifeq ($(HDF5),yes)

View File

@ -107,7 +107,7 @@ class slsReceiverTCPIPInterface : private virtual slsDetectorDefs {
void startTCPServer();
/** retuns function name with function index */
const char* getFunctionName(enum recFuncs func);
const char* getFunctionName(enum detFuncs func);
/** assigns functions to the fnum enum */
int function_table();

View File

@ -177,7 +177,7 @@ void slsReceiverTCPIPInterface::startTCPServer(){
}
const char* slsReceiverTCPIPInterface::getFunctionName(enum recFuncs func) {
const char* slsReceiverTCPIPInterface::getFunctionName(enum detFuncs func) {
switch (func) {
case F_EXEC_RECEIVER_COMMAND: return "F_EXEC_RECEIVER_COMMAND";
case F_EXIT_RECEIVER: return "F_EXIT_RECEIVER";
@ -282,9 +282,9 @@ int slsReceiverTCPIPInterface::function_table(){
flist[F_RECEIVER_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_padding_enable;
flist[F_RECEIVER_DEACTIVATED_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_deactivated_receiver_padding_enable;
for (int i = 0; i < NUM_REC_FUNCTIONS ; i++) {
for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) {
FILE_LOG(logDEBUG1) << "function fnum: " << i << " (" <<
getFunctionName((enum recFuncs)i) << ") located at " << flist[i];
getFunctionName((enum detFuncs)i) << ") located at " << flist[i];
}
return OK;
@ -301,26 +301,27 @@ int slsReceiverTCPIPInterface::decode_function(){
if (n <= 0) {
FILE_LOG(logDEBUG1) << "ERROR reading from socket. "
"Received " << n << " bytes," <<
"fnum:" << fnum << " "
"(" << getFunctionName((enum recFuncs)fnum) << ")";
"fnum:" << fnum << " "
"(" << getFunctionName((enum detFuncs)fnum) << ")";
return FAIL;
}
else
FILE_LOG(logDEBUG1) << "Received " << n << " bytes";
FILE_LOG(logDEBUG1) << "calling function fnum: "<< fnum << " "
"(" << getFunctionName((enum recFuncs)fnum) << ") "
"located at " << flist[fnum];
if (fnum < REC_FUNC_START_INDEX || fnum >= NUM_REC_FUNCTIONS) {
if (fnum <= NUM_DET_FUNCTIONS || fnum >= NUM_REC_FUNCTIONS) {
FILE_LOG(logERROR) << "Unknown function enum " << fnum;
ret=(this->M_nofunc)();
ret = (this->M_nofunc)();
} else{
ret=(this->*flist[fnum])();
}
if (ret == FAIL) {
FILE_LOG(logERROR) << "Failed to execute function = " << fnum << " ("
<< getFunctionName((enum recFuncs)fnum) << ")";
FILE_LOG(logDEBUG1) << "calling function fnum: "<< fnum << " "
"(" << getFunctionName((enum detFuncs)fnum) << ") "
"located at " << flist[fnum];
ret = (this->*flist[fnum])();
if (ret == FAIL) {
FILE_LOG(logERROR) << "Failed to execute function = " << fnum << " ("
<< getFunctionName((enum detFuncs)fnum) << ")";
}
}
return ret;
}
@ -350,14 +351,14 @@ void slsReceiverTCPIPInterface::receiverlocked() {
void slsReceiverTCPIPInterface::receiverNotIdle() {
ret = FAIL;
sprintf(mess,"Can not execute %s when receiver is not idle\n",
getFunctionName((enum recFuncs)fnum));
getFunctionName((enum detFuncs)fnum));
FILE_LOG(logERROR) << mess;
}
void slsReceiverTCPIPInterface::functionNotImplemented() {
ret = FAIL;
sprintf(mess, "Function (%s) is not implemented for this detector\n",
getFunctionName((enum recFuncs)fnum));
getFunctionName((enum detFuncs)fnum));
FILE_LOG(logERROR) << mess;
}
@ -1213,8 +1214,9 @@ int slsReceiverTCPIPInterface::set_file_dir() {
FILE_LOG(logERROR) << mess;
}
}
if (retval != NULL)
if (retval != NULL) {
FILE_LOG(logDEBUG1) << "file path:" << retval;
}
clientInterface->Server_SendResult(mySock->differentClients,
ret, retval, (retval == NULL) ? 0 : MAX_STR_LENGTH, mess);

View File

@ -9,7 +9,7 @@
*/
#include "ansi.h"
#include "sls_receiver_exceptions.h"
#include "sls_detector_exceptions.h"
#ifdef __CINT__
//class sockaddr_in;

View File

@ -882,7 +882,6 @@ protected:
#ifndef MYROOT
#include "sls_detector_funcs.h"
#include "sls_receiver_funcs.h"
#endif
#ifdef __cplusplus

View File

@ -1,6 +1,6 @@
#pragma once
/************************************************
* @file sls_receiver_exceptions.h
* @file sls_detector_exceptions.h
* @short exceptions defined
***********************************************/
/**

View File

@ -1,81 +1,122 @@
/**
@internal
#pragma once
/************************************************
* @file sls_detector_funcs.h
* @short functions indices to call on server (detector/receiver)
***********************************************/
/**
*@short functions indices to call on server (detector/receiver)
*/
function indexes to call on the server
All set functions with argument -1 work as get, when possible
*/
#ifndef SLS_DETECTOR_FUNCS_H
#define SLS_DETECTOR_FUNCS_H
enum detFuncs{
F_EXEC_COMMAND=0, /**< command is executed */
F_GET_DETECTOR_TYPE, /**< return detector type */
F_SET_EXTERNAL_SIGNAL_FLAG, /**< set/get flag for external signal */
F_SET_EXTERNAL_COMMUNICATION_MODE, /**< set/get external communication mode (obsolete) */
F_GET_ID, /**< get detector id of version */
F_DIGITAL_TEST, /**< digital test of the detector */
F_SET_DAC, /**< set DAC value */
F_GET_ADC, /**< get ADC value */
F_WRITE_REGISTER, /**< write to register */
F_READ_REGISTER, /**< read register */
F_SET_MODULE, /**< initialize module */
F_GET_MODULE, /**< get module status */
F_SET_SETTINGS, /**< set detector settings */
F_GET_THRESHOLD_ENERGY, /**< get detector threshold (in eV) */
F_START_ACQUISITION, /**< start acquisition */
F_STOP_ACQUISITION, /**< stop acquisition */
F_START_READOUT, /**< start readout */
F_GET_RUN_STATUS, /**< get acquisition status */
F_START_AND_READ_ALL, /**< start acquisition and read all frames*/
F_READ_ALL, /**< read alla frames */
F_SET_TIMER, /**< set/get timer value */
F_GET_TIME_LEFT, /**< get current value of the timer (time left) */
F_SET_DYNAMIC_RANGE, /**< set/get detector dynamic range */
F_SET_READOUT_FLAGS, /**< set/get readout flags */
F_SET_ROI, /**< set/get region of interest */
F_SET_SPEED, /**< set/get readout speed parameters */
F_EXIT_SERVER, /**< turn off detector server */
F_LOCK_SERVER, /**< Locks/Unlocks server communication to the given client */
F_GET_LAST_CLIENT_IP, /**< returns the IP of the client last connected to the detector */
F_SET_PORT, /**< Changes communication port of the server */
F_UPDATE_CLIENT, /**< Returns all the important parameters to update the shared memory of the client */
F_CONFIGURE_MAC, /**< Configures MAC for Gotthard readout */
F_LOAD_IMAGE, /**< Loads Dark/Gain image to the Gotthard detector */
F_READ_COUNTER_BLOCK, /**< reads the counter block memory for gotthard */
F_RESET_COUNTER_BLOCK, /**< resets the counter block memory for gotthard */
F_CALIBRATE_PEDESTAL, /**< starts acquistion, calibrates pedestal and write back to fpga */
F_ENABLE_TEN_GIGA, /**< enable 10Gbe */
F_SET_ALL_TRIMBITS, /** < set all trimbits to this value */
F_SET_CTB_PATTERN, /** < loads a pattern in the CTB */
F_WRITE_ADC_REG, /** < writes an ADC register */
F_SET_COUNTER_BIT, /** < set/reset counter bit in detector for eiger */
F_PULSE_PIXEL,/** < pulse pixel n number of times in eiger at (x,y) */
F_PULSE_PIXEL_AND_MOVE,/** < pulse pixel n number of times and move relatively by x and y */
F_PULSE_CHIP, /** < pulse chip n number of times */
F_SET_RATE_CORRECT,/** < set/reset rate correction tau */
F_GET_RATE_CORRECT,/** < get rate correction tau */
F_SET_NETWORK_PARAMETER,/**< set network parameters such as transmission delay, flow control */
F_PROGRAM_FPGA,/**< program FPGA */
F_RESET_FPGA, /**< reset FPGA */
F_POWER_CHIP, /**< power chip */
F_ACTIVATE,/** < activate */
F_PREPARE_ACQUISITION,/** < prepare acquisition */
F_THRESHOLD_TEMP, /** < set threshold temperature */
F_TEMP_CONTROL, /** < set temperature control */
F_TEMP_EVENT, /** < set temperature event */
F_AUTO_COMP_DISABLE, /** < auto comp disable mode */
F_STORAGE_CELL_START, /** < storage cell start */
F_CHECK_VERSION,/** < check version compatibility */
F_SOFTWARE_TRIGGER,/** < software trigger */
/* Always append functions hereafter!!! */
/* Always append functions before!!! */
NUM_DET_FUNCTIONS,
TOO_MANY_FUNCTIONS_DEFINED=127 //you should get a compilation error if there are already so many functions defined. It conflicts with sls_receiver_funcs.h
F_EXEC_COMMAND=0, /**< command is executed */
F_GET_DETECTOR_TYPE, /**< return detector type */
F_SET_EXTERNAL_SIGNAL_FLAG, /**< set/get flag for external signal */
F_SET_EXTERNAL_COMMUNICATION_MODE, /**< set/get external communication mode (obsolete) */
F_GET_ID, /**< get detector id of version */
F_DIGITAL_TEST, /**< digital test of the detector */
F_SET_DAC, /**< set DAC value */
F_GET_ADC, /**< get ADC value */
F_WRITE_REGISTER, /**< write to register */
F_READ_REGISTER, /**< read register */
F_SET_MODULE, /**< initialize module */
F_GET_MODULE, /**< get module status */
F_SET_SETTINGS, /**< set detector settings */
F_GET_THRESHOLD_ENERGY, /**< get detector threshold (in eV) */
F_START_ACQUISITION, /**< start acquisition */
F_STOP_ACQUISITION, /**< stop acquisition */
F_START_READOUT, /**< start readout */
F_GET_RUN_STATUS, /**< get acquisition status */
F_START_AND_READ_ALL, /**< start acquisition and read all frames*/
F_READ_ALL, /**< read alla frames */
F_SET_TIMER, /**< set/get timer value */
F_GET_TIME_LEFT, /**< get current value of the timer (time left) */
F_SET_DYNAMIC_RANGE, /**< set/get detector dynamic range */
F_SET_READOUT_FLAGS, /**< set/get readout flags */
F_SET_ROI, /**< set/get region of interest */
F_SET_SPEED, /**< set/get readout speed parameters */
F_EXIT_SERVER, /**< turn off detector server */
F_LOCK_SERVER, /**< Locks/Unlocks server communication to the given client */
F_GET_LAST_CLIENT_IP, /**< returns the IP of the client last connected to the detector */
F_SET_PORT, /**< Changes communication port of the server */
F_UPDATE_CLIENT, /**< Returns all the important parameters to update the shared memory of the client */
F_CONFIGURE_MAC, /**< Configures MAC for Gotthard readout */
F_LOAD_IMAGE, /**< Loads Dark/Gain image to the Gotthard detector */
F_READ_COUNTER_BLOCK, /**< reads the counter block memory for gotthard */
F_RESET_COUNTER_BLOCK, /**< resets the counter block memory for gotthard */
F_CALIBRATE_PEDESTAL, /**< starts acquistion, calibrates pedestal and write back to fpga */
F_ENABLE_TEN_GIGA, /**< enable 10Gbe */
F_SET_ALL_TRIMBITS, /** < set all trimbits to this value */
F_SET_CTB_PATTERN, /** < loads a pattern in the CTB */
F_WRITE_ADC_REG, /** < writes an ADC register */
F_SET_COUNTER_BIT, /** < set/reset counter bit in detector for eiger */
F_PULSE_PIXEL,/** < pulse pixel n number of times in eiger at (x,y) */
F_PULSE_PIXEL_AND_MOVE,/** < pulse pixel n number of times and move relatively by x and y */
F_PULSE_CHIP, /** < pulse chip n number of times */
F_SET_RATE_CORRECT,/** < set/reset rate correction tau */
F_GET_RATE_CORRECT,/** < get rate correction tau */
F_SET_NETWORK_PARAMETER,/**< set network parameters such as transmission delay, flow control */
F_PROGRAM_FPGA,/**< program FPGA */
F_RESET_FPGA, /**< reset FPGA */
F_POWER_CHIP, /**< power chip */
F_ACTIVATE,/** < activate */
F_PREPARE_ACQUISITION,/** < prepare acquisition */
F_THRESHOLD_TEMP, /** < set threshold temperature */
F_TEMP_CONTROL, /** < set temperature control */
F_TEMP_EVENT, /** < set temperature event */
F_AUTO_COMP_DISABLE, /** < auto comp disable mode */
F_STORAGE_CELL_START, /** < storage cell start */
F_CHECK_VERSION,/** < check version compatibility */
F_SOFTWARE_TRIGGER,/** < software trigger */
NUM_DET_FUNCTIONS,
F_EXEC_RECEIVER_COMMAND,/**< command is executed */
F_EXIT_RECEIVER,/**< turn off receiver server */
F_LOCK_RECEIVER,/**< Locks/Unlocks server communication to the given client */
F_GET_LAST_RECEIVER_CLIENT_IP,/**< returns the IP of the client last connected to the receiver */
F_SET_RECEIVER_PORT, /**< Changes communication port of the receiver */
F_UPDATE_RECEIVER_CLIENT, /**< Returns all the important parameters to update the shared memory of the client */
F_GET_RECEIVER_ID, /**< get receiver id of version */
F_GET_RECEIVER_TYPE, /**< return receiver type */
F_SEND_RECEIVER_DETHOSTNAME, /**< set detector hostname to receiver */
F_RECEIVER_SET_ROI, /**< Sets receiver ROI */
F_SETUP_RECEIVER_UDP, /**< sets the receiver udp connection and returns receiver mac address */
F_SET_RECEIVER_TIMER, /**< set/get timer value */
F_SET_RECEIVER_DYNAMIC_RANGE, /**< set/get detector dynamic range */
F_RECEIVER_STREAMING_FREQUENCY, /**< sets the frequency of receiver sending frames to gui */
F_GET_RECEIVER_STATUS, /**< gets the status of receiver listening mode */
F_START_RECEIVER, /**< starts the receiver listening mode */
F_STOP_RECEIVER, /**< stops the receiver listening mode */
F_SET_RECEIVER_FILE_PATH, /**< sets receiver file directory */
F_SET_RECEIVER_FILE_NAME, /**< sets receiver file name */
F_SET_RECEIVER_FILE_INDEX, /**< sets receiver file index */
F_GET_RECEIVER_FRAME_INDEX, /**< gets the receiver frame index */
F_GET_RECEIVER_FRAMES_CAUGHT, /**< gets the number of frames caught by receiver */
F_RESET_RECEIVER_FRAMES_CAUGHT, /**< resets the frames caught by receiver */
F_ENABLE_RECEIVER_FILE_WRITE, /**< sets the receiver file write */
F_ENABLE_RECEIVER_OVERWRITE, /**< set overwrite flag in receiver */
F_ENABLE_RECEIVER_TEN_GIGA, /**< enable 10Gbe in receiver */
F_SET_RECEIVER_FIFO_DEPTH, /**< set receiver fifo depth */
F_RECEIVER_ACTIVATE, /** < activate/deactivate readout */
F_STREAM_DATA_FROM_RECEIVER, /**< stream data from receiver to client */
F_RECEIVER_STREAMING_TIMER, /** < sets the timer between each data stream in receiver */
F_SET_FLIPPED_DATA_RECEIVER, /** < sets the enable to flip data across x/y axis (bottom/top) */
F_SET_RECEIVER_FILE_FORMAT, /** < sets the receiver file format */
F_SEND_RECEIVER_DETPOSID, /** < sets the detector position id in the reveiver */
F_SEND_RECEIVER_MULTIDETSIZE, /** < sets the multi detector size to the receiver */
F_SET_RECEIVER_STREAMING_PORT, /** < sets the receiver streaming port */
F_RECEIVER_STREAMING_SRC_IP, /** < sets the receiver streaming source IP */
F_SET_RECEIVER_SILENT_MODE, /** < sets the receiver silent mode */
F_ENABLE_GAPPIXELS_IN_RECEIVER, /** < sets gap pixels in the receiver */
F_RESTREAM_STOP_FROM_RECEIVER, /** < restream stop from receiver */
F_ADDITIONAL_JSON_HEADER, /** < additional json header */
F_RECEIVER_UDP_SOCK_BUF_SIZE, /** < UDP socket buffer size */
F_RECEIVER_REAL_UDP_SOCK_BUF_SIZE, /** < real UDP socket buffer size */
F_SET_RECEIVER_FRAMES_PER_FILE, /** < receiver frames per file */
F_RECEIVER_CHECK_VERSION, /** < check receiver version compatibility */
F_RECEIVER_DISCARD_POLICY, /** < frames discard policy */
F_RECEIVER_PADDING_ENABLE, /** < partial frames padding enable */
F_RECEIVER_DEACTIVATED_PADDING_ENABLE, /** < deactivated receiver padding enable */
NUM_REC_FUNCTIONS
};
#endif
/** @endinternal */

View File

@ -1,78 +0,0 @@
#pragma once
/**
@internal
function indexes to call on the server
All set functions with argument -1 work as get, when possible
*/
#define REC_FUNC_START_INDEX 128
enum recFuncs{
//General functions
F_EXEC_RECEIVER_COMMAND=REC_FUNC_START_INDEX, /**< command is executed */
F_EXIT_RECEIVER, /**< turn off receiver server */
F_LOCK_RECEIVER, /**< Locks/Unlocks server communication to the given client */
F_GET_LAST_RECEIVER_CLIENT_IP, /**< returns the IP of the client last connected to the receiver */
F_SET_RECEIVER_PORT, /**< Changes communication port of the receiver */
F_UPDATE_RECEIVER_CLIENT, /**< Returns all the important parameters to update the shared memory of the client */
// Identification
F_GET_RECEIVER_ID, /**< get receiver id of version */
F_GET_RECEIVER_TYPE, /**< return receiver type */
F_SEND_RECEIVER_DETHOSTNAME, /**< set detector hostname to receiver */
//network functions
F_RECEIVER_SET_ROI, /**< Sets receiver ROI */
F_SETUP_RECEIVER_UDP, /**< sets the receiver udp connection and returns receiver mac address */
//Acquisition setup functions
F_SET_RECEIVER_TIMER, /**< set/get timer value */
F_SET_RECEIVER_DYNAMIC_RANGE, /**< set/get detector dynamic range */
F_RECEIVER_STREAMING_FREQUENCY, /**< sets the frequency of receiver sending frames to gui */
// Acquisition functions
F_GET_RECEIVER_STATUS, /**< gets the status of receiver listening mode */
F_START_RECEIVER, /**< starts the receiver listening mode */
F_STOP_RECEIVER, /**< stops the receiver listening mode */
//file functions
F_SET_RECEIVER_FILE_PATH, /**< sets receiver file directory */
F_SET_RECEIVER_FILE_NAME, /**< sets receiver file name */
F_SET_RECEIVER_FILE_INDEX, /**< sets receiver file index */
F_GET_RECEIVER_FRAME_INDEX, /**< gets the receiver frame index */
F_GET_RECEIVER_FRAMES_CAUGHT, /**< gets the number of frames caught by receiver */
F_RESET_RECEIVER_FRAMES_CAUGHT, /**< resets the frames caught by receiver */
F_ENABLE_RECEIVER_FILE_WRITE, /**< sets the receiver file write */
F_ENABLE_RECEIVER_OVERWRITE, /**< set overwrite flag in receiver */
F_ENABLE_RECEIVER_TEN_GIGA, /**< enable 10Gbe in receiver */
F_SET_RECEIVER_FIFO_DEPTH, /**< set receiver fifo depth */
F_RECEIVER_ACTIVATE, /** < activate/deactivate readout */
F_STREAM_DATA_FROM_RECEIVER, /**< stream data from receiver to client */
F_RECEIVER_STREAMING_TIMER, /** < sets the timer between each data stream in receiver */
F_SET_FLIPPED_DATA_RECEIVER, /** < sets the enable to flip data across x/y axis (bottom/top) */
F_SET_RECEIVER_FILE_FORMAT, /** < sets the receiver file format */
F_SEND_RECEIVER_DETPOSID, /** < sets the detector position id in the reveiver */
F_SEND_RECEIVER_MULTIDETSIZE, /** < sets the multi detector size to the receiver */
F_SET_RECEIVER_STREAMING_PORT, /** < sets the receiver streaming port */
F_RECEIVER_STREAMING_SRC_IP, /** < sets the receiver streaming source IP */
F_SET_RECEIVER_SILENT_MODE, /** < sets the receiver silent mode */
F_ENABLE_GAPPIXELS_IN_RECEIVER, /** < sets gap pixels in the receiver */
F_RESTREAM_STOP_FROM_RECEIVER, /** < restream stop from receiver */
F_ADDITIONAL_JSON_HEADER, /** < additional json header */
F_RECEIVER_UDP_SOCK_BUF_SIZE, /** < UDP socket buffer size */
F_RECEIVER_REAL_UDP_SOCK_BUF_SIZE, /** < real UDP socket buffer size */
F_SET_RECEIVER_FRAMES_PER_FILE, /** < receiver frames per file */
F_RECEIVER_CHECK_VERSION, /** < check receiver version compatibility */
F_RECEIVER_DISCARD_POLICY, /** < frames discard policy */
F_RECEIVER_PADDING_ENABLE, /** < partial frames padding enable */
F_RECEIVER_DEACTIVATED_PADDING_ENABLE, /** < deactivated receiver padding enable */
/* Always append functions hereafter!!! */
/* Always append functions before!!! */
NUM_REC_FUNCTIONS
};