mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
format support lib
This commit is contained in:
7
slsSupportLib/include/DataSocket.h
Executable file → Normal file
7
slsSupportLib/include/DataSocket.h
Executable file → Normal file
@ -17,13 +17,12 @@ class DataSocket {
|
||||
virtual ~DataSocket();
|
||||
DataSocket &operator=(DataSocket &&move) noexcept;
|
||||
void swap(DataSocket &other) noexcept;
|
||||
|
||||
//No copy since the class manage the underlying socket
|
||||
|
||||
// No copy since the class manage the underlying socket
|
||||
DataSocket(const DataSocket &) = delete;
|
||||
DataSocket &operator=(DataSocket const &) = delete;
|
||||
int getSocketId() const { return sockfd_; }
|
||||
|
||||
|
||||
int Send(const void *buffer, size_t size);
|
||||
template <typename T> int Send(T &&data) {
|
||||
return Send(&data, sizeof(data));
|
||||
@ -38,7 +37,7 @@ class DataSocket {
|
||||
template <typename T> int Receive(T &arg) {
|
||||
return Receive(&arg, sizeof(arg));
|
||||
}
|
||||
|
||||
|
||||
template <typename T> T Receive() {
|
||||
T arg;
|
||||
Receive(&arg, sizeof(arg));
|
||||
|
@ -104,7 +104,8 @@ template <typename T, size_t Capacity> class FixedCapacityContainer {
|
||||
}
|
||||
}
|
||||
|
||||
template <typename Container> bool is_equal(const Container &c) const noexcept {
|
||||
template <typename Container>
|
||||
bool is_equal(const Container &c) const noexcept {
|
||||
if (current_size != c.size()) {
|
||||
return false;
|
||||
} else {
|
||||
|
2
slsSupportLib/include/ServerSocket.h
Executable file → Normal file
2
slsSupportLib/include/ServerSocket.h
Executable file → Normal file
@ -18,7 +18,7 @@ class ServerSocket : public DataSocket {
|
||||
IpAddr getLastClient() const noexcept { return lastClient; }
|
||||
IpAddr getThisClient() const noexcept { return thisClient; }
|
||||
IpAddr getLockedBy() const noexcept { return lockedBy; }
|
||||
bool differentClients() const noexcept {return lastClient != thisClient;}
|
||||
bool differentClients() const noexcept { return lastClient != thisClient; }
|
||||
void setLockedBy(IpAddr addr) { lockedBy = addr; }
|
||||
void setLastClient(IpAddr addr) { lastClient = addr; }
|
||||
int getPort() const noexcept { return serverPort; }
|
||||
|
@ -9,9 +9,10 @@ using us = std::chrono::microseconds;
|
||||
using ms = std::chrono::milliseconds;
|
||||
using s = std::chrono::seconds;
|
||||
|
||||
//Absolute value of std::chrono::duration
|
||||
// Absolute value of std::chrono::duration
|
||||
template <class Rep, class Period>
|
||||
constexpr std::chrono::duration<Rep, Period> abs(std::chrono::duration<Rep, Period> d) {
|
||||
constexpr std::chrono::duration<Rep, Period>
|
||||
abs(std::chrono::duration<Rep, Period> d) {
|
||||
return d >= d.zero() ? d : -d;
|
||||
}
|
||||
|
||||
|
19
slsSupportLib/include/Timer.h
Executable file → Normal file
19
slsSupportLib/include/Timer.h
Executable file → Normal file
@ -4,35 +4,32 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace sls{
|
||||
namespace sls {
|
||||
|
||||
class Timer {
|
||||
using clock = std::chrono::high_resolution_clock;
|
||||
using time_point = std::chrono::time_point<clock>;
|
||||
|
||||
public:
|
||||
Timer(std::string name = "0")
|
||||
: t0(clock::now()), name_(name) {
|
||||
}
|
||||
Timer(std::string name = "0") : t0(clock::now()), name_(name) {}
|
||||
|
||||
double elapsed_ms() {
|
||||
return std::chrono::duration<double, std::milli>(clock::now() - t0).count();
|
||||
return std::chrono::duration<double, std::milli>(clock::now() - t0)
|
||||
.count();
|
||||
}
|
||||
double elapsed_s() {
|
||||
return std::chrono::duration<double>(clock::now() - t0).count();
|
||||
}
|
||||
void print_elapsed() {
|
||||
std::cout << "Timer \"" << name_ << "\": Elapsed time " << elapsed_ms() << " ms\n";
|
||||
}
|
||||
void restart() {
|
||||
t0 = clock::now();
|
||||
std::cout << "Timer \"" << name_ << "\": Elapsed time " << elapsed_ms()
|
||||
<< " ms\n";
|
||||
}
|
||||
void restart() { t0 = clock::now(); }
|
||||
|
||||
private:
|
||||
time_point t0;
|
||||
std::string name_;
|
||||
};
|
||||
|
||||
|
||||
}; //namespace sls
|
||||
}; // namespace sls
|
||||
#endif // TIMER_H
|
||||
|
@ -31,22 +31,23 @@ template <typename... Ts> struct has_str_helper {};
|
||||
|
||||
template <typename T>
|
||||
struct has_str<T, typename std::conditional<
|
||||
false,
|
||||
has_str_helper<decltype(std::declval<T>().str())>,
|
||||
false, has_str_helper<decltype(std::declval<T>().str())>,
|
||||
void>::type> : public std::true_type {};
|
||||
|
||||
/**
|
||||
* Has emplace_back method
|
||||
*/
|
||||
template <typename T, typename _ = void> struct has_emplace_back : std::false_type {};
|
||||
template <typename T, typename _ = void>
|
||||
struct has_emplace_back : std::false_type {};
|
||||
|
||||
template <typename... Ts> struct has_emplace_back_helper {};
|
||||
|
||||
template <typename T>
|
||||
struct has_emplace_back<T, typename std::conditional<
|
||||
false,
|
||||
has_emplace_back_helper<decltype(std::declval<T>().emplace_back())>,
|
||||
void>::type> : public std::true_type {};
|
||||
struct has_emplace_back<
|
||||
T, typename std::conditional<
|
||||
false,
|
||||
has_emplace_back_helper<decltype(std::declval<T>().emplace_back())>,
|
||||
void>::type> : public std::true_type {};
|
||||
|
||||
/**
|
||||
* Type trait to evaluate if template parameter is
|
||||
@ -71,7 +72,6 @@ struct is_container<
|
||||
decltype(std::declval<T>().empty())>,
|
||||
void>::type> : public std::true_type {};
|
||||
|
||||
|
||||
/**
|
||||
* Type trait to evaluate if template parameter is
|
||||
* complying with a standard container
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
#pragma once
|
||||
/*
|
||||
UDP socket class to receive data. The intended use is in the
|
||||
UDP socket class to receive data. The intended use is in the
|
||||
receiver listener loop. Should be used RAII style...
|
||||
*/
|
||||
|
||||
|
112
slsSupportLib/include/ZmqSocket.h
Executable file → Normal file
112
slsSupportLib/include/ZmqSocket.h
Executable file → Normal file
@ -15,69 +15,66 @@
|
||||
// #define ZMQ_DETAIL
|
||||
#define ROIVERBOSITY
|
||||
|
||||
|
||||
class zmq_msg_t;
|
||||
#include <map>
|
||||
|
||||
/** zmq header structure */
|
||||
struct zmqHeader {
|
||||
/** true if incoming data, false if end of acquisition */
|
||||
bool data{true};
|
||||
uint32_t jsonversion{0};
|
||||
uint32_t dynamicRange{0};
|
||||
uint64_t fileIndex{0};
|
||||
/** number of detectors in x axis */
|
||||
uint32_t ndetx{0};
|
||||
/** number of detectors in y axis */
|
||||
uint32_t ndety{0};
|
||||
/** number of pixels/channels in x axis for this zmq socket */
|
||||
uint32_t npixelsx{0};
|
||||
/** number of pixels/channels in y axis for this zmq socket */
|
||||
uint32_t npixelsy{0};
|
||||
/** number of bytes for an image in this socket */
|
||||
uint32_t imageSize{0};
|
||||
/** frame number from detector */
|
||||
uint64_t acqIndex{0};
|
||||
/** frame index (starting at 0 for each acquisition) */
|
||||
uint64_t frameIndex{0};
|
||||
/** progress in percentage */
|
||||
int progress{0};
|
||||
/** file name prefix */
|
||||
std::string fname{""};
|
||||
/** header from detector */
|
||||
uint64_t frameNumber{0};
|
||||
uint32_t expLength{0};
|
||||
uint32_t packetNumber{0};
|
||||
uint64_t bunchId{0};
|
||||
uint64_t timestamp{0};
|
||||
uint16_t modId{0};
|
||||
uint16_t row{0};
|
||||
uint16_t column{0};
|
||||
uint16_t reserved{0};
|
||||
uint32_t debug{0};
|
||||
uint16_t roundRNumber{0};
|
||||
uint8_t detType{0};
|
||||
uint8_t version{0};
|
||||
/** if image should be flipped across x axis */
|
||||
int flippedDataX{0};
|
||||
/** quad type (eiger hardware specific) */
|
||||
uint32_t quad{0};
|
||||
/** true if complete image, else missing packets */
|
||||
bool completeImage{false};
|
||||
/** additional json header */
|
||||
std::map<std::string, std::string> addJsonHeader;
|
||||
/** true if incoming data, false if end of acquisition */
|
||||
bool data{true};
|
||||
uint32_t jsonversion{0};
|
||||
uint32_t dynamicRange{0};
|
||||
uint64_t fileIndex{0};
|
||||
/** number of detectors in x axis */
|
||||
uint32_t ndetx{0};
|
||||
/** number of detectors in y axis */
|
||||
uint32_t ndety{0};
|
||||
/** number of pixels/channels in x axis for this zmq socket */
|
||||
uint32_t npixelsx{0};
|
||||
/** number of pixels/channels in y axis for this zmq socket */
|
||||
uint32_t npixelsy{0};
|
||||
/** number of bytes for an image in this socket */
|
||||
uint32_t imageSize{0};
|
||||
/** frame number from detector */
|
||||
uint64_t acqIndex{0};
|
||||
/** frame index (starting at 0 for each acquisition) */
|
||||
uint64_t frameIndex{0};
|
||||
/** progress in percentage */
|
||||
int progress{0};
|
||||
/** file name prefix */
|
||||
std::string fname{""};
|
||||
/** header from detector */
|
||||
uint64_t frameNumber{0};
|
||||
uint32_t expLength{0};
|
||||
uint32_t packetNumber{0};
|
||||
uint64_t bunchId{0};
|
||||
uint64_t timestamp{0};
|
||||
uint16_t modId{0};
|
||||
uint16_t row{0};
|
||||
uint16_t column{0};
|
||||
uint16_t reserved{0};
|
||||
uint32_t debug{0};
|
||||
uint16_t roundRNumber{0};
|
||||
uint8_t detType{0};
|
||||
uint8_t version{0};
|
||||
/** if image should be flipped across x axis */
|
||||
int flippedDataX{0};
|
||||
/** quad type (eiger hardware specific) */
|
||||
uint32_t quad{0};
|
||||
/** true if complete image, else missing packets */
|
||||
bool completeImage{false};
|
||||
/** additional json header */
|
||||
std::map<std::string, std::string> addJsonHeader;
|
||||
};
|
||||
|
||||
class ZmqSocket {
|
||||
|
||||
public:
|
||||
|
||||
// Socket Options for optimization
|
||||
// ZMQ_LINGER default is already -1 means no messages discarded. use this
|
||||
// options if optimizing required ZMQ_SNDHWM default is 0 means no limit. use
|
||||
// this to optimize if optimizing required
|
||||
// eg. int value = -1;
|
||||
// if (zmq_setsockopt(socketDescriptor, ZMQ_LINGER, &value,sizeof(value))) {
|
||||
// options if optimizing required ZMQ_SNDHWM default is 0 means no limit.
|
||||
// use this to optimize if optimizing required eg. int value = -1; if
|
||||
// (zmq_setsockopt(socketDescriptor, ZMQ_LINGER, &value,sizeof(value))) {
|
||||
// Close();
|
||||
/**
|
||||
* Constructor for a client
|
||||
@ -174,7 +171,7 @@ class ZmqSocket {
|
||||
* @returns 0 if error, else 1
|
||||
*/
|
||||
int SendData(char *buf, int length);
|
||||
|
||||
|
||||
/**
|
||||
* Receive Header
|
||||
* @param index self index for debugging
|
||||
@ -183,7 +180,7 @@ class ZmqSocket {
|
||||
* @returns 0 if error or end of acquisition, else 1 (call
|
||||
* CloseHeaderMessage after parsing header)
|
||||
*/
|
||||
int ReceiveHeader(const int index, zmqHeader& zHeader, uint32_t version);
|
||||
int ReceiveHeader(const int index, zmqHeader &zHeader, uint32_t version);
|
||||
|
||||
/**
|
||||
* Receive Data
|
||||
@ -200,8 +197,7 @@ class ZmqSocket {
|
||||
void PrintError();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
/**
|
||||
* Receive Message
|
||||
* @param index self index for debugging
|
||||
* @param message message
|
||||
@ -218,8 +214,8 @@ class ZmqSocket {
|
||||
* @param version version that has to match, -1 to not care
|
||||
* @returns true if successful else false
|
||||
*/
|
||||
int ParseHeader(const int index, int length, char *buff,
|
||||
zmqHeader& zHeader, uint32_t version);
|
||||
int ParseHeader(const int index, int length, char *buff, zmqHeader &zHeader,
|
||||
uint32_t version);
|
||||
|
||||
/**
|
||||
* Class to close socket descriptors automatically
|
||||
@ -251,6 +247,4 @@ class ZmqSocket {
|
||||
|
||||
/** Socket descriptor */
|
||||
mySocketDescriptors sockfd;
|
||||
|
||||
|
||||
};
|
||||
|
79
slsSupportLib/include/ansi.h
Executable file → Normal file
79
slsSupportLib/include/ansi.h
Executable file → Normal file
@ -1,26 +1,27 @@
|
||||
#define RED "\x1b[31m"
|
||||
#define GREEN "\x1b[32m"
|
||||
#define YELLOW "\x1b[33m"
|
||||
#define BLUE "\x1b[34m"
|
||||
#define MAGENTA "\x1b[35m"
|
||||
#define CYAN "\x1b[36m"
|
||||
#define GRAY "\x1b[37m"
|
||||
#define DARKGRAY "\x1b[30m"
|
||||
#define RED "\x1b[31m"
|
||||
#define GREEN "\x1b[32m"
|
||||
#define YELLOW "\x1b[33m"
|
||||
#define BLUE "\x1b[34m"
|
||||
#define MAGENTA "\x1b[35m"
|
||||
#define CYAN "\x1b[36m"
|
||||
#define GRAY "\x1b[37m"
|
||||
#define DARKGRAY "\x1b[30m"
|
||||
|
||||
#define BG_BLACK "\x1b[48;5;232m"
|
||||
#define BG_RED "\x1b[41m"
|
||||
#define BG_GREEN "\x1b[42m"
|
||||
#define BG_YELLOW "\x1b[43m"
|
||||
#define BG_BLUE "\x1b[44m"
|
||||
#define BG_MAGENTA "\x1b[45m"
|
||||
#define BG_CYAN "\x1b[46m"
|
||||
#define RESET "\x1b[0m"
|
||||
#define BOLD "\x1b[1m"
|
||||
#define BG_BLACK "\x1b[48;5;232m"
|
||||
#define BG_RED "\x1b[41m"
|
||||
#define BG_GREEN "\x1b[42m"
|
||||
#define BG_YELLOW "\x1b[43m"
|
||||
#define BG_BLUE "\x1b[44m"
|
||||
#define BG_MAGENTA "\x1b[45m"
|
||||
#define BG_CYAN "\x1b[46m"
|
||||
#define RESET "\x1b[0m"
|
||||
#define BOLD "\x1b[1m"
|
||||
|
||||
//on background black
|
||||
#define bprintf(code, format, ...) printf(code BG_BLACK format RESET, ##__VA_ARGS__)
|
||||
// on background black
|
||||
#define bprintf(code, format, ...) \
|
||||
printf(code BG_BLACK format RESET, ##__VA_ARGS__)
|
||||
|
||||
//normal printout
|
||||
// normal printout
|
||||
#define cprintf(code, format, ...) printf(code format RESET, ##__VA_ARGS__)
|
||||
/*
|
||||
|
||||
@ -30,11 +31,9 @@ example 1 (a snippet):
|
||||
|
||||
|
||||
#ifdef MARTIN
|
||||
cprintf(BLUE, "LL Write - Len: %2d - If: %X - Data: ",buffer_len, ll->ll_fifo_base);
|
||||
for (i=0; i < buffer_len/4; i++)
|
||||
cprintf(BLUE, "%.8X ",*(((unsigned *) buffer)+i));
|
||||
printf("\n");
|
||||
#endif
|
||||
cprintf(BLUE, "LL Write - Len: %2d - If: %X - Data: ",buffer_len,
|
||||
ll->ll_fifo_base); for (i=0; i < buffer_len/4; i++) cprintf(BLUE, "%.8X
|
||||
",*(((unsigned *) buffer)+i)); printf("\n"); #endif
|
||||
|
||||
#ifdef MARTIN
|
||||
cprintf(CYAN, "LL Read - If: %X - Data: ",ll->ll_fifo_base);
|
||||
@ -46,21 +45,21 @@ example 2:
|
||||
|
||||
int main()
|
||||
{
|
||||
int i=1;
|
||||
printf("Normal %i\n", i);
|
||||
cprintf(RED, "Red\n");
|
||||
cprintf(GREEN, "Green\n");
|
||||
cprintf(YELLOW, "Yellow\n");
|
||||
cprintf(BLUE, "Blue\n");
|
||||
cprintf(MAGENTA, "Mangenta %i\n", i);
|
||||
cprintf(CYAN, "Cyan %i\n", i);
|
||||
cprintf(BOLD, "White %i\n", i);
|
||||
cprintf(RED BOLD, "Red %i\n", i);
|
||||
cprintf(GREEN BOLD, "Green\n");
|
||||
cprintf(YELLOW BOLD, "Yellow\n");
|
||||
cprintf(BLUE BOLD, "Blue\n");
|
||||
cprintf(MAGENTA BOLD, "Mangenta %i\n", i);
|
||||
cprintf(CYAN BOLD, "Cyan %i\n", i);
|
||||
int i=1;
|
||||
printf("Normal %i\n", i);
|
||||
cprintf(RED, "Red\n");
|
||||
cprintf(GREEN, "Green\n");
|
||||
cprintf(YELLOW, "Yellow\n");
|
||||
cprintf(BLUE, "Blue\n");
|
||||
cprintf(MAGENTA, "Mangenta %i\n", i);
|
||||
cprintf(CYAN, "Cyan %i\n", i);
|
||||
cprintf(BOLD, "White %i\n", i);
|
||||
cprintf(RED BOLD, "Red %i\n", i);
|
||||
cprintf(GREEN BOLD, "Green\n");
|
||||
cprintf(YELLOW BOLD, "Yellow\n");
|
||||
cprintf(BLUE BOLD, "Blue\n");
|
||||
cprintf(MAGENTA BOLD, "Mangenta %i\n", i);
|
||||
cprintf(CYAN BOLD, "Cyan %i\n", i);
|
||||
}
|
||||
|
||||
*/
|
||||
|
5
slsSupportLib/include/container_utils.h
Executable file → Normal file
5
slsSupportLib/include/container_utils.h
Executable file → Normal file
@ -39,7 +39,7 @@ template <typename Container> bool allEqual(const Container &c) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Compare elements but with specified tolerance, useful
|
||||
* for floating point values.
|
||||
*/
|
||||
@ -129,7 +129,7 @@ minusOneIfDifferent(const std::vector<std::array<T, size>> &container) {
|
||||
return arr;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Return the first value if all values are equal
|
||||
* otherwise return default_value. If no default
|
||||
* value is supplied it will be default constructed
|
||||
@ -146,7 +146,6 @@ Squash(const Container &c, typename Container::value_type default_value = {}) {
|
||||
return default_value;
|
||||
}
|
||||
|
||||
|
||||
} // namespace sls
|
||||
|
||||
#endif // CONTAINER_UTILS_H
|
||||
|
18
slsSupportLib/include/file_utils.h
Executable file → Normal file
18
slsSupportLib/include/file_utils.h
Executable file → Normal file
@ -1,13 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "sls_detector_defs.h"
|
||||
|
||||
#include <cstdio>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
|
||||
|
||||
/** (used by multi and sls)
|
||||
* reads a short int raw data file
|
||||
* @param infile input file stream
|
||||
@ -16,8 +14,8 @@
|
||||
* @param offset start channel value
|
||||
* @returns OK or FAIL if it could not read the file or data=NULL
|
||||
*/
|
||||
int readDataFile(std::ifstream &infile, short int *data, int nch, int offset=0);
|
||||
|
||||
int readDataFile(std::ifstream &infile, short int *data, int nch,
|
||||
int offset = 0);
|
||||
|
||||
/** (used by multi and sls)
|
||||
* reads a short int rawdata file
|
||||
@ -28,7 +26,6 @@ int readDataFile(std::ifstream &infile, short int *data, int nch, int offset=0);
|
||||
*/
|
||||
int readDataFile(std::string fname, short int *data, int nch);
|
||||
|
||||
|
||||
/** (used by multi and sls)
|
||||
* writes a short int raw data file
|
||||
* @param outfile output file stream
|
||||
@ -37,9 +34,8 @@ int readDataFile(std::string fname, short int *data, int nch);
|
||||
* @param offset start channel number
|
||||
* @returns OK or FAIL if it could not write the file or data=NULL
|
||||
*/
|
||||
int writeDataFile(std::ofstream &outfile,int nch, short int *data, int offset=0);
|
||||
|
||||
|
||||
int writeDataFile(std::ofstream &outfile, int nch, short int *data,
|
||||
int offset = 0);
|
||||
|
||||
/** (used by multi and sls)
|
||||
* writes a short int raw data file
|
||||
@ -48,9 +44,7 @@ int writeDataFile(std::ofstream &outfile,int nch, short int *data, int offset=0
|
||||
* @param data array of data values
|
||||
* @returns OK or FAIL if it could not write the file or data=NULL
|
||||
*/
|
||||
int writeDataFile(std::string fname,int nch, short int *data);
|
||||
|
||||
|
||||
int writeDataFile(std::string fname, int nch, short int *data);
|
||||
|
||||
// mkdir -p path implemented by recursive calls
|
||||
void mkdir_p(const std::string& path, std::string dir="");
|
||||
void mkdir_p(const std::string &path, std::string dir = "");
|
||||
|
@ -1,27 +1,39 @@
|
||||
#pragma once
|
||||
/*Utility to log to console*/
|
||||
|
||||
#include "ansi.h" //Colors
|
||||
#include <sys/time.h>
|
||||
#include "ansi.h" //Colors
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <sys/time.h>
|
||||
|
||||
enum TLogLevel {logERROR, logWARNING, logINFOBLUE, logINFOGREEN, logINFORED, logINFO,
|
||||
logDEBUG, logDEBUG1, logDEBUG2, logDEBUG3, logDEBUG4, logDEBUG5};
|
||||
enum TLogLevel {
|
||||
logERROR,
|
||||
logWARNING,
|
||||
logINFOBLUE,
|
||||
logINFOGREEN,
|
||||
logINFORED,
|
||||
logINFO,
|
||||
logDEBUG,
|
||||
logDEBUG1,
|
||||
logDEBUG2,
|
||||
logDEBUG3,
|
||||
logDEBUG4,
|
||||
logDEBUG5
|
||||
};
|
||||
|
||||
// Compiler should optimize away anything below this value
|
||||
#ifndef LOG_MAX_REPORTING_LEVEL
|
||||
#define LOG_MAX_REPORTING_LEVEL logINFO
|
||||
#endif
|
||||
|
||||
#define __AT__ std::string(__FILE__) + std::string("::") + std::string(__func__) + std::string("(): ")
|
||||
#define __SHORT_FORM_OF_FILE__ \
|
||||
(strrchr(__FILE__,'/') \
|
||||
? strrchr(__FILE__,'/')+1 \
|
||||
: __FILE__ \
|
||||
)
|
||||
#define __SHORT_AT__ std::string(__SHORT_FORM_OF_FILE__) + std::string("::") + std::string(__func__) + std::string("(): ")
|
||||
|
||||
#define __AT__ \
|
||||
std::string(__FILE__) + std::string("::") + std::string(__func__) + \
|
||||
std::string("(): ")
|
||||
#define __SHORT_FORM_OF_FILE__ \
|
||||
(strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
|
||||
#define __SHORT_AT__ \
|
||||
std::string(__SHORT_FORM_OF_FILE__) + std::string("::") + \
|
||||
std::string(__func__) + std::string("(): ")
|
||||
|
||||
namespace sls {
|
||||
class Logger {
|
||||
|
6
slsSupportLib/include/network_utils.h
Executable file → Normal file
6
slsSupportLib/include/network_utils.h
Executable file → Normal file
@ -60,9 +60,9 @@ class MacAddr {
|
||||
};
|
||||
|
||||
IpAddr HostnameToIp(const char *hostname);
|
||||
std::string IpToInterfaceName(const std::string& ip);
|
||||
MacAddr InterfaceNameToMac(const std::string& inf);
|
||||
IpAddr InterfaceNameToIp(const std::string& ifn);
|
||||
std::string IpToInterfaceName(const std::string &ip);
|
||||
MacAddr InterfaceNameToMac(const std::string &inf);
|
||||
IpAddr InterfaceNameToIp(const std::string &ifn);
|
||||
std::ostream &operator<<(std::ostream &out, const IpAddr &addr);
|
||||
std::ostream &operator<<(std::ostream &out, const MacAddr &addr);
|
||||
|
||||
|
154
slsSupportLib/include/sls_detector_defs.h
Executable file → Normal file
154
slsSupportLib/include/sls_detector_defs.h
Executable file → Normal file
@ -15,28 +15,27 @@
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
//C++ includes
|
||||
// C++ includes
|
||||
#include "sls_detector_exceptions.h"
|
||||
#include <algorithm>
|
||||
#include <bitset>
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#else
|
||||
//C includes
|
||||
// C includes
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
|
||||
#define BIT32_MASK 0xFFFFFFFF
|
||||
#define MAX_RX_DBIT 64
|
||||
|
||||
/** default ports */
|
||||
#define DEFAULT_PORTNO 1952
|
||||
#define DEFAULT_UDP_PORTNO 50001
|
||||
#define DEFAULT_PORTNO 1952
|
||||
#define DEFAULT_UDP_PORTNO 50001
|
||||
#define DEFAULT_ZMQ_CL_PORTNO 30001
|
||||
#define DEFAULT_ZMQ_RX_PORTNO 30001
|
||||
|
||||
#define SLS_DETECTOR_HEADER_VERSION 0x2
|
||||
#define SLS_DETECTOR_HEADER_VERSION 0x2
|
||||
#define SLS_DETECTOR_JSON_HEADER_VERSION 0x4
|
||||
|
||||
// ctb/ moench 1g udp (read from fifo)
|
||||
@ -54,18 +53,17 @@
|
||||
/** get flag form most functions */
|
||||
#define GET_FLAG -1
|
||||
|
||||
#define DEFAULT_DET_MAC "00:aa:bb:cc:dd:ee"
|
||||
#define DEFAULT_DET_IP "129.129.202.45"
|
||||
#define DEFAULT_DET_MAC "00:aa:bb:cc:dd:ee"
|
||||
#define DEFAULT_DET_IP "129.129.202.45"
|
||||
#define DEFAULT_DET_MAC2 "00:aa:bb:cc:dd:ff"
|
||||
#define DEFAULT_DET_IP2 "129.129.202.46"
|
||||
#define DEFAULT_DET_IP2 "129.129.202.46"
|
||||
|
||||
/** default maximum string length */
|
||||
#define MAX_STR_LENGTH 1000
|
||||
#define MAX_STR_LENGTH 1000
|
||||
#define SHORT_STR_LENGTH 20
|
||||
|
||||
#define DEFAULT_STREAMING_TIMER_IN_MS 200
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
class slsDetectorDefs {
|
||||
public:
|
||||
@ -73,10 +71,10 @@ class slsDetectorDefs {
|
||||
|
||||
/** Type of the detector */
|
||||
enum detectorType {
|
||||
GET_DETECTOR_TYPE = -1,
|
||||
GET_DETECTOR_TYPE = -1,
|
||||
GENERIC,
|
||||
EIGER,
|
||||
GOTTHARD,
|
||||
GOTTHARD,
|
||||
JUNGFRAU,
|
||||
CHIPTESTBOARD,
|
||||
MOENCH,
|
||||
@ -86,7 +84,7 @@ class slsDetectorDefs {
|
||||
|
||||
/** return values */
|
||||
enum {
|
||||
OK, /**< function succeeded */
|
||||
OK, /**< function succeeded */
|
||||
FAIL /**< function failed */
|
||||
};
|
||||
|
||||
@ -143,7 +141,7 @@ class slsDetectorDefs {
|
||||
#define MAX_NUM_PACKETS 512
|
||||
using sls_bitset = std::bitset<MAX_NUM_PACKETS>;
|
||||
using bitset_storage = uint8_t[MAX_NUM_PACKETS / 8];
|
||||
struct sls_receiver_header{
|
||||
struct sls_receiver_header {
|
||||
sls_detector_header detHeader; /**< is the detector header */
|
||||
sls_bitset packetsMask; /**< is the packets caught bit mask */
|
||||
};
|
||||
@ -171,24 +169,23 @@ class slsDetectorDefs {
|
||||
xmin,xmax,ymin,ymax define the limits of the region
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
struct ROI {
|
||||
int xmin{-1}; /**< is the roi xmin (in channel number) */
|
||||
int xmax{-1}; /**< is the roi xmax (in channel number)*/
|
||||
}__attribute__((packed));
|
||||
#else
|
||||
typedef struct {
|
||||
int xmin; /**< is the roi xmin (in channel number) */
|
||||
int xmax; /**< is the roi xmax (in channel number)*/
|
||||
} ROI;
|
||||
#endif
|
||||
} __attribute__((packed));
|
||||
#else
|
||||
typedef struct {
|
||||
int xmin; /**< is the roi xmin (in channel number) */
|
||||
int xmax; /**< is the roi xmax (in channel number)*/
|
||||
} ROI;
|
||||
#endif
|
||||
|
||||
/**
|
||||
type of action performed (for text client)
|
||||
*/
|
||||
enum { GET_ACTION, PUT_ACTION, READOUT_ACTION, HELP_ACTION };
|
||||
|
||||
|
||||
/**
|
||||
dimension indexes
|
||||
*/
|
||||
@ -202,11 +199,10 @@ class slsDetectorDefs {
|
||||
int x{0};
|
||||
int y{0};
|
||||
xy() = default;
|
||||
xy(int x, int y):x(x),y(y){};
|
||||
}__attribute__((packed));
|
||||
xy(int x, int y) : x(x), y(y){};
|
||||
} __attribute__((packed));
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
use of the external signals
|
||||
*/
|
||||
@ -241,10 +237,10 @@ class slsDetectorDefs {
|
||||
*/
|
||||
enum timingMode {
|
||||
GET_TIMING_MODE = -1, /**<return flag for communication mode */
|
||||
AUTO_TIMING, /**< internal timing */
|
||||
TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */
|
||||
GATED, /**< gated */
|
||||
BURST_TRIGGER, /**< trigger a burst of frames */
|
||||
AUTO_TIMING, /**< internal timing */
|
||||
TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */
|
||||
GATED, /**< gated */
|
||||
BURST_TRIGGER, /**< trigger a burst of frames */
|
||||
NUM_TIMING_MODES
|
||||
};
|
||||
|
||||
@ -297,27 +293,27 @@ class slsDetectorDefs {
|
||||
VIPRE,
|
||||
VIINSH,
|
||||
VDCSH,
|
||||
VTH2,
|
||||
VPL,
|
||||
VTH3,
|
||||
VTH2,
|
||||
VPL,
|
||||
VTH3,
|
||||
CASSH,
|
||||
CAS,
|
||||
CAS,
|
||||
VICIN,
|
||||
VIPRE_OUT,
|
||||
VREF_H_ADC,
|
||||
VB_COMP_FE,
|
||||
VB_COMP_ADC,
|
||||
VCOM_CDS,
|
||||
VCOM_CDS,
|
||||
VREF_RSTORE,
|
||||
VB_OPA_1ST,
|
||||
VREF_COMP_FE,
|
||||
VCOM_ADC1,
|
||||
VCOM_ADC1,
|
||||
VREF_PRECH,
|
||||
VREF_L_ADC,
|
||||
VREF_CDS,
|
||||
VB_CS,
|
||||
VB_OPA_FD,
|
||||
VCOM_ADC2,
|
||||
VREF_CDS,
|
||||
VB_CS,
|
||||
VB_OPA_FD,
|
||||
VCOM_ADC2,
|
||||
VB_DS,
|
||||
VB_COMP,
|
||||
VB_PIXBUF,
|
||||
@ -339,7 +335,7 @@ class slsDetectorDefs {
|
||||
I_POWER_C = 108,
|
||||
I_POWER_D = 109,
|
||||
I_POWER_IO = 110,
|
||||
V_LIMIT = 111,
|
||||
V_LIMIT = 111,
|
||||
SLOW_ADC0 = 1000,
|
||||
SLOW_ADC1,
|
||||
SLOW_ADC2,
|
||||
@ -355,20 +351,20 @@ class slsDetectorDefs {
|
||||
detector settings indexes
|
||||
*/
|
||||
enum detectorSettings {
|
||||
GET_SETTINGS = -1,
|
||||
STANDARD,
|
||||
FAST,
|
||||
HIGHGAIN,
|
||||
DYNAMICGAIN,
|
||||
LOWGAIN,
|
||||
MEDIUMGAIN,
|
||||
VERYHIGHGAIN,
|
||||
DYNAMICHG0,
|
||||
FIXGAIN1,
|
||||
FIXGAIN2,
|
||||
FORCESWITCHG1,
|
||||
FORCESWITCHG2,
|
||||
VERYLOWGAIN,
|
||||
GET_SETTINGS = -1,
|
||||
STANDARD,
|
||||
FAST,
|
||||
HIGHGAIN,
|
||||
DYNAMICGAIN,
|
||||
LOWGAIN,
|
||||
MEDIUMGAIN,
|
||||
VERYHIGHGAIN,
|
||||
DYNAMICHG0,
|
||||
FIXGAIN1,
|
||||
FIXGAIN2,
|
||||
FORCESWITCHG1,
|
||||
FORCESWITCHG2,
|
||||
VERYLOWGAIN,
|
||||
G1_HIGHGAIN,
|
||||
G1_LOWGAIN,
|
||||
G2_HIGHCAP_HIGHGAIN,
|
||||
@ -377,34 +373,21 @@ class slsDetectorDefs {
|
||||
G2_LOWCAP_LOWGAIN,
|
||||
G4_HIGHGAIN,
|
||||
G4_LOWGAIN,
|
||||
UNDEFINED = 200, /**< undefined or custom settings */
|
||||
UNINITIALIZED /**< uninitialiazed (status at startup) */
|
||||
UNDEFINED = 200, /**< undefined or custom settings */
|
||||
UNINITIALIZED /**< uninitialiazed (status at startup) */
|
||||
};
|
||||
|
||||
#define TRIMBITMASK 0x3f
|
||||
|
||||
enum clockIndex {
|
||||
ADC_CLOCK,
|
||||
DBIT_CLOCK,
|
||||
RUN_CLOCK,
|
||||
SYNC_CLOCK
|
||||
};
|
||||
enum clockIndex { ADC_CLOCK, DBIT_CLOCK, RUN_CLOCK, SYNC_CLOCK };
|
||||
|
||||
/**
|
||||
* read out mode (ctb, moench)
|
||||
*/
|
||||
enum readoutMode {
|
||||
ANALOG_ONLY,
|
||||
DIGITAL_ONLY,
|
||||
ANALOG_AND_DIGITAL
|
||||
};
|
||||
enum readoutMode { ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL };
|
||||
|
||||
/** chip speed */
|
||||
enum speedLevel {
|
||||
FULL_SPEED,
|
||||
HALF_SPEED,
|
||||
QUARTER_SPEED
|
||||
};
|
||||
enum speedLevel { FULL_SPEED, HALF_SPEED, QUARTER_SPEED };
|
||||
|
||||
/** port type */
|
||||
enum portType {
|
||||
@ -447,23 +430,20 @@ class slsDetectorDefs {
|
||||
*/
|
||||
enum burstMode {
|
||||
BURST_OFF,
|
||||
BURST_INTERNAL,
|
||||
BURST_INTERNAL,
|
||||
BURST_EXTERNAL,
|
||||
NUM_BURST_MODES
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* timing source for gotthard2
|
||||
*/
|
||||
enum timingSourceType {
|
||||
TIMING_INTERNAL,
|
||||
TIMING_EXTERNAL
|
||||
};
|
||||
enum timingSourceType { TIMING_INTERNAL, TIMING_EXTERNAL };
|
||||
|
||||
#ifdef __cplusplus
|
||||
/**
|
||||
* structure to udpate receiver
|
||||
*/
|
||||
*/
|
||||
struct rxParameters {
|
||||
detectorType detType{GENERIC};
|
||||
xy multiSize;
|
||||
@ -496,7 +476,7 @@ class slsDetectorDefs {
|
||||
ROI roi;
|
||||
uint32_t countermask{0};
|
||||
burstMode burstType{BURST_OFF};
|
||||
}__attribute__((packed));
|
||||
} __attribute__((packed));
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -571,9 +551,10 @@ struct detParameters {
|
||||
nChipX = 10;
|
||||
nChipY = 1;
|
||||
nDacs = 14;
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
throw sls::RuntimeError("Unknown detector type! " + std::to_string(type));
|
||||
throw sls::RuntimeError("Unknown detector type! " +
|
||||
std::to_string(type));
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -659,11 +640,10 @@ typedef struct {
|
||||
} sls_detector_module;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
//TODO! discuss this
|
||||
// TODO! discuss this
|
||||
#include <vector> //hmm... but currently no way around
|
||||
namespace sls{
|
||||
namespace sls {
|
||||
using Positions = const std::vector<int> &;
|
||||
using defs = slsDetectorDefs;
|
||||
} // namespace sls
|
||||
|
51
slsSupportLib/include/sls_detector_exceptions.h
Executable file → Normal file
51
slsSupportLib/include/sls_detector_exceptions.h
Executable file → Normal file
@ -4,57 +4,52 @@
|
||||
#include <iostream>
|
||||
#include <stdexcept>
|
||||
|
||||
namespace sls{
|
||||
namespace sls {
|
||||
|
||||
struct RuntimeError : public std::runtime_error {
|
||||
public:
|
||||
RuntimeError(): runtime_error("SLS Detector Package Failed") {
|
||||
LOG(logERROR) << "SLS Detector Package Failed";
|
||||
}
|
||||
RuntimeError(const std::string& msg): runtime_error(msg) {
|
||||
LOG(logERROR) << msg;
|
||||
}
|
||||
RuntimeError(const char* msg): runtime_error(msg) {
|
||||
LOG(logERROR) << msg;
|
||||
}
|
||||
public:
|
||||
RuntimeError() : runtime_error("SLS Detector Package Failed") {
|
||||
LOG(logERROR) << "SLS Detector Package Failed";
|
||||
}
|
||||
RuntimeError(const std::string &msg) : runtime_error(msg) {
|
||||
LOG(logERROR) << msg;
|
||||
}
|
||||
RuntimeError(const char *msg) : runtime_error(msg) { LOG(logERROR) << msg; }
|
||||
};
|
||||
|
||||
struct SharedMemoryError : public RuntimeError {
|
||||
public:
|
||||
SharedMemoryError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
SharedMemoryError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct SocketError : public RuntimeError {
|
||||
public:
|
||||
SocketError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
SocketError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct ZmqSocketError : public RuntimeError {
|
||||
public:
|
||||
ZmqSocketError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
ZmqSocketError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct NotImplementedError : public RuntimeError {
|
||||
public:
|
||||
NotImplementedError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
NotImplementedError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct DetectorError : public RuntimeError {
|
||||
public:
|
||||
DetectorError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
DetectorError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct ReceiverError : public RuntimeError {
|
||||
public:
|
||||
ReceiverError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
ReceiverError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
struct GuiError : public RuntimeError {
|
||||
public:
|
||||
GuiError(const std::string& msg):RuntimeError(msg) {}
|
||||
public:
|
||||
GuiError(const std::string &msg) : RuntimeError(msg) {}
|
||||
};
|
||||
|
||||
} // namespace sls
|
||||
|
||||
|
||||
|
||||
|
@ -8,293 +8,294 @@
|
||||
*@short functions indices to call on server (detector/receiver)
|
||||
*/
|
||||
|
||||
enum detFuncs {
|
||||
F_EXEC_COMMAND = 0,
|
||||
F_GET_DETECTOR_TYPE,
|
||||
F_SET_EXTERNAL_SIGNAL_FLAG,
|
||||
F_SET_TIMING_MODE,
|
||||
F_GET_FIRMWARE_VERSION,
|
||||
F_GET_SERVER_VERSION,
|
||||
F_GET_SERIAL_NUMBER,
|
||||
F_SET_FIRMWARE_TEST,
|
||||
F_SET_BUS_TEST,
|
||||
F_SET_IMAGE_TEST_MODE,
|
||||
F_GET_IMAGE_TEST_MODE,
|
||||
F_SET_DAC,
|
||||
F_GET_ADC,
|
||||
F_WRITE_REGISTER,
|
||||
F_READ_REGISTER,
|
||||
F_SET_MODULE,
|
||||
F_GET_MODULE,
|
||||
F_SET_SETTINGS,
|
||||
F_GET_THRESHOLD_ENERGY,
|
||||
F_START_ACQUISITION,
|
||||
F_STOP_ACQUISITION,
|
||||
F_START_READOUT,
|
||||
F_GET_RUN_STATUS,
|
||||
F_START_AND_READ_ALL,
|
||||
F_READ_ALL,
|
||||
F_GET_NUM_FRAMES,
|
||||
F_SET_NUM_FRAMES,
|
||||
F_GET_NUM_TRIGGERS,
|
||||
F_SET_NUM_TRIGGERS,
|
||||
F_GET_NUM_ADDITIONAL_STORAGE_CELLS,
|
||||
F_SET_NUM_ADDITIONAL_STORAGE_CELLS,
|
||||
F_GET_NUM_ANALOG_SAMPLES,
|
||||
F_SET_NUM_ANALOG_SAMPLES,
|
||||
F_GET_NUM_DIGITAL_SAMPLES,
|
||||
F_SET_NUM_DIGITAL_SAMPLES,
|
||||
F_GET_EXPTIME,
|
||||
F_SET_EXPTIME,
|
||||
F_GET_PERIOD,
|
||||
F_SET_PERIOD,
|
||||
F_GET_DELAY_AFTER_TRIGGER,
|
||||
F_SET_DELAY_AFTER_TRIGGER,
|
||||
F_GET_SUB_EXPTIME,
|
||||
F_SET_SUB_EXPTIME,
|
||||
F_GET_SUB_DEADTIME,
|
||||
F_SET_SUB_DEADTIME,
|
||||
F_GET_STORAGE_CELL_DELAY,
|
||||
F_SET_STORAGE_CELL_DELAY,
|
||||
F_GET_FRAMES_LEFT,
|
||||
F_GET_TRIGGERS_LEFT,
|
||||
F_GET_EXPTIME_LEFT,
|
||||
F_GET_PERIOD_LEFT,
|
||||
F_GET_DELAY_AFTER_TRIGGER_LEFT,
|
||||
F_GET_MEASURED_PERIOD,
|
||||
F_GET_MEASURED_SUBPERIOD,
|
||||
F_GET_FRAMES_FROM_START,
|
||||
F_GET_ACTUAL_TIME,
|
||||
F_GET_MEASUREMENT_TIME,
|
||||
F_SET_DYNAMIC_RANGE,
|
||||
F_SET_ROI,
|
||||
F_GET_ROI,
|
||||
F_EXIT_SERVER,
|
||||
F_LOCK_SERVER,
|
||||
F_GET_LAST_CLIENT_IP,
|
||||
F_SET_PORT,
|
||||
F_ENABLE_TEN_GIGA,
|
||||
F_SET_ALL_TRIMBITS,
|
||||
F_SET_PATTERN_IO_CONTROL,
|
||||
F_SET_PATTERN_CLOCK_CONTROL,
|
||||
F_SET_PATTERN_WORD,
|
||||
F_SET_PATTERN_LOOP_ADDRESSES,
|
||||
F_SET_PATTERN_LOOP_CYCLES,
|
||||
F_SET_PATTERN_WAIT_ADDR,
|
||||
F_SET_PATTERN_WAIT_TIME,
|
||||
F_SET_PATTERN_MASK,
|
||||
F_GET_PATTERN_MASK,
|
||||
F_SET_PATTERN_BIT_MASK,
|
||||
F_GET_PATTERN_BIT_MASK,
|
||||
F_WRITE_ADC_REG,
|
||||
F_SET_COUNTER_BIT,
|
||||
F_PULSE_PIXEL,
|
||||
F_PULSE_PIXEL_AND_MOVE,
|
||||
F_PULSE_CHIP,
|
||||
F_SET_RATE_CORRECT,
|
||||
F_GET_RATE_CORRECT,
|
||||
F_SET_TEN_GIGA_FLOW_CONTROL,
|
||||
F_GET_TEN_GIGA_FLOW_CONTROL,
|
||||
F_SET_TRANSMISSION_DELAY_FRAME,
|
||||
F_GET_TRANSMISSION_DELAY_FRAME,
|
||||
F_SET_TRANSMISSION_DELAY_LEFT,
|
||||
F_GET_TRANSMISSION_DELAY_LEFT,
|
||||
F_SET_TRANSMISSION_DELAY_RIGHT,
|
||||
F_GET_TRANSMISSION_DELAY_RIGHT,
|
||||
F_PROGRAM_FPGA,
|
||||
F_RESET_FPGA,
|
||||
F_POWER_CHIP,
|
||||
F_ACTIVATE,
|
||||
F_PREPARE_ACQUISITION,
|
||||
F_THRESHOLD_TEMP,
|
||||
F_TEMP_CONTROL,
|
||||
F_TEMP_EVENT,
|
||||
F_AUTO_COMP_DISABLE,
|
||||
F_STORAGE_CELL_START,
|
||||
F_CHECK_VERSION,
|
||||
F_SOFTWARE_TRIGGER,
|
||||
F_LED,
|
||||
F_DIGITAL_IO_DELAY,
|
||||
F_COPY_DET_SERVER,
|
||||
F_REBOOT_CONTROLLER,
|
||||
F_SET_ADC_ENABLE_MASK,
|
||||
F_GET_ADC_ENABLE_MASK,
|
||||
F_SET_ADC_INVERT,
|
||||
F_GET_ADC_INVERT,
|
||||
F_EXTERNAL_SAMPLING_SOURCE,
|
||||
F_EXTERNAL_SAMPLING,
|
||||
F_SET_STARTING_FRAME_NUMBER,
|
||||
F_GET_STARTING_FRAME_NUMBER,
|
||||
F_SET_QUAD,
|
||||
F_GET_QUAD,
|
||||
F_SET_INTERRUPT_SUBFRAME,
|
||||
F_GET_INTERRUPT_SUBFRAME,
|
||||
F_SET_READ_N_LINES,
|
||||
F_GET_READ_N_LINES,
|
||||
F_SET_POSITION,
|
||||
F_SET_SOURCE_UDP_MAC,
|
||||
F_GET_SOURCE_UDP_MAC,
|
||||
F_SET_SOURCE_UDP_MAC2,
|
||||
F_GET_SOURCE_UDP_MAC2,
|
||||
F_SET_SOURCE_UDP_IP,
|
||||
F_GET_SOURCE_UDP_IP,
|
||||
F_SET_SOURCE_UDP_IP2,
|
||||
F_GET_SOURCE_UDP_IP2,
|
||||
F_SET_DEST_UDP_MAC,
|
||||
F_GET_DEST_UDP_MAC,
|
||||
F_SET_DEST_UDP_MAC2,
|
||||
F_GET_DEST_UDP_MAC2,
|
||||
F_SET_DEST_UDP_IP,
|
||||
F_GET_DEST_UDP_IP,
|
||||
F_SET_DEST_UDP_IP2,
|
||||
F_GET_DEST_UDP_IP2,
|
||||
F_SET_DEST_UDP_PORT,
|
||||
F_GET_DEST_UDP_PORT,
|
||||
F_SET_DEST_UDP_PORT2,
|
||||
F_GET_DEST_UDP_PORT2,
|
||||
F_SET_NUM_INTERFACES,
|
||||
F_GET_NUM_INTERFACES,
|
||||
F_SET_INTERFACE_SEL,
|
||||
F_GET_INTERFACE_SEL,
|
||||
F_SET_PARALLEL_MODE,
|
||||
F_GET_PARALLEL_MODE,
|
||||
F_SET_OVERFLOW_MODE,
|
||||
F_GET_OVERFLOW_MODE,
|
||||
F_SET_STOREINRAM_MODE,
|
||||
F_GET_STOREINRAM_MODE,
|
||||
F_SET_READOUT_MODE,
|
||||
F_GET_READOUT_MODE,
|
||||
F_SET_CLOCK_FREQUENCY,
|
||||
F_GET_CLOCK_FREQUENCY,
|
||||
F_SET_CLOCK_PHASE,
|
||||
F_GET_CLOCK_PHASE,
|
||||
F_GET_MAX_CLOCK_PHASE_SHIFT,
|
||||
F_SET_CLOCK_DIVIDER,
|
||||
F_GET_CLOCK_DIVIDER,
|
||||
F_SET_PIPELINE,
|
||||
F_GET_PIPELINE,
|
||||
F_SET_ON_CHIP_DAC,
|
||||
F_GET_ON_CHIP_DAC,
|
||||
F_SET_INJECT_CHANNEL,
|
||||
F_GET_INJECT_CHANNEL,
|
||||
F_SET_VETO_PHOTON,
|
||||
F_GET_VETO_PHOTON,
|
||||
F_SET_VETO_REFERENCE,
|
||||
F_GET_BURST_MODE,
|
||||
F_SET_BURST_MODE,
|
||||
F_SET_ADC_ENABLE_MASK_10G,
|
||||
F_GET_ADC_ENABLE_MASK_10G,
|
||||
F_SET_COUNTER_MASK,
|
||||
F_GET_COUNTER_MASK,
|
||||
F_GET_NUM_BURSTS,
|
||||
F_SET_NUM_BURSTS,
|
||||
F_GET_BURST_PERIOD,
|
||||
F_SET_BURST_PERIOD,
|
||||
F_GET_CURRENT_SOURCE,
|
||||
F_SET_CURRENT_SOURCE,
|
||||
F_GET_TIMING_SOURCE,
|
||||
F_SET_TIMING_SOURCE,
|
||||
F_GET_NUM_CHANNELS,
|
||||
F_UPDATE_RATE_CORRECTION,
|
||||
F_GET_RECEIVER_PARAMETERS,
|
||||
|
||||
enum detFuncs{
|
||||
F_EXEC_COMMAND=0,
|
||||
F_GET_DETECTOR_TYPE,
|
||||
F_SET_EXTERNAL_SIGNAL_FLAG,
|
||||
F_SET_TIMING_MODE,
|
||||
F_GET_FIRMWARE_VERSION,
|
||||
F_GET_SERVER_VERSION,
|
||||
F_GET_SERIAL_NUMBER,
|
||||
F_SET_FIRMWARE_TEST,
|
||||
F_SET_BUS_TEST,
|
||||
F_SET_IMAGE_TEST_MODE,
|
||||
F_GET_IMAGE_TEST_MODE,
|
||||
F_SET_DAC,
|
||||
F_GET_ADC,
|
||||
F_WRITE_REGISTER,
|
||||
F_READ_REGISTER,
|
||||
F_SET_MODULE,
|
||||
F_GET_MODULE,
|
||||
F_SET_SETTINGS,
|
||||
F_GET_THRESHOLD_ENERGY,
|
||||
F_START_ACQUISITION,
|
||||
F_STOP_ACQUISITION,
|
||||
F_START_READOUT,
|
||||
F_GET_RUN_STATUS,
|
||||
F_START_AND_READ_ALL,
|
||||
F_READ_ALL,
|
||||
F_GET_NUM_FRAMES,
|
||||
F_SET_NUM_FRAMES,
|
||||
F_GET_NUM_TRIGGERS,
|
||||
F_SET_NUM_TRIGGERS,
|
||||
F_GET_NUM_ADDITIONAL_STORAGE_CELLS,
|
||||
F_SET_NUM_ADDITIONAL_STORAGE_CELLS,
|
||||
F_GET_NUM_ANALOG_SAMPLES,
|
||||
F_SET_NUM_ANALOG_SAMPLES,
|
||||
F_GET_NUM_DIGITAL_SAMPLES,
|
||||
F_SET_NUM_DIGITAL_SAMPLES,
|
||||
F_GET_EXPTIME,
|
||||
F_SET_EXPTIME,
|
||||
F_GET_PERIOD,
|
||||
F_SET_PERIOD,
|
||||
F_GET_DELAY_AFTER_TRIGGER,
|
||||
F_SET_DELAY_AFTER_TRIGGER,
|
||||
F_GET_SUB_EXPTIME,
|
||||
F_SET_SUB_EXPTIME,
|
||||
F_GET_SUB_DEADTIME,
|
||||
F_SET_SUB_DEADTIME,
|
||||
F_GET_STORAGE_CELL_DELAY,
|
||||
F_SET_STORAGE_CELL_DELAY,
|
||||
F_GET_FRAMES_LEFT,
|
||||
F_GET_TRIGGERS_LEFT,
|
||||
F_GET_EXPTIME_LEFT,
|
||||
F_GET_PERIOD_LEFT,
|
||||
F_GET_DELAY_AFTER_TRIGGER_LEFT,
|
||||
F_GET_MEASURED_PERIOD,
|
||||
F_GET_MEASURED_SUBPERIOD,
|
||||
F_GET_FRAMES_FROM_START,
|
||||
F_GET_ACTUAL_TIME,
|
||||
F_GET_MEASUREMENT_TIME,
|
||||
F_SET_DYNAMIC_RANGE,
|
||||
F_SET_ROI,
|
||||
F_GET_ROI,
|
||||
F_EXIT_SERVER,
|
||||
F_LOCK_SERVER,
|
||||
F_GET_LAST_CLIENT_IP,
|
||||
F_SET_PORT,
|
||||
F_ENABLE_TEN_GIGA,
|
||||
F_SET_ALL_TRIMBITS,
|
||||
F_SET_PATTERN_IO_CONTROL,
|
||||
F_SET_PATTERN_CLOCK_CONTROL,
|
||||
F_SET_PATTERN_WORD,
|
||||
F_SET_PATTERN_LOOP_ADDRESSES,
|
||||
F_SET_PATTERN_LOOP_CYCLES,
|
||||
F_SET_PATTERN_WAIT_ADDR,
|
||||
F_SET_PATTERN_WAIT_TIME,
|
||||
F_SET_PATTERN_MASK,
|
||||
F_GET_PATTERN_MASK,
|
||||
F_SET_PATTERN_BIT_MASK,
|
||||
F_GET_PATTERN_BIT_MASK,
|
||||
F_WRITE_ADC_REG,
|
||||
F_SET_COUNTER_BIT,
|
||||
F_PULSE_PIXEL,
|
||||
F_PULSE_PIXEL_AND_MOVE,
|
||||
F_PULSE_CHIP,
|
||||
F_SET_RATE_CORRECT,
|
||||
F_GET_RATE_CORRECT,
|
||||
F_SET_TEN_GIGA_FLOW_CONTROL,
|
||||
F_GET_TEN_GIGA_FLOW_CONTROL,
|
||||
F_SET_TRANSMISSION_DELAY_FRAME,
|
||||
F_GET_TRANSMISSION_DELAY_FRAME,
|
||||
F_SET_TRANSMISSION_DELAY_LEFT,
|
||||
F_GET_TRANSMISSION_DELAY_LEFT,
|
||||
F_SET_TRANSMISSION_DELAY_RIGHT,
|
||||
F_GET_TRANSMISSION_DELAY_RIGHT,
|
||||
F_PROGRAM_FPGA,
|
||||
F_RESET_FPGA,
|
||||
F_POWER_CHIP,
|
||||
F_ACTIVATE,
|
||||
F_PREPARE_ACQUISITION,
|
||||
F_THRESHOLD_TEMP,
|
||||
F_TEMP_CONTROL,
|
||||
F_TEMP_EVENT,
|
||||
F_AUTO_COMP_DISABLE,
|
||||
F_STORAGE_CELL_START,
|
||||
F_CHECK_VERSION,
|
||||
F_SOFTWARE_TRIGGER,
|
||||
F_LED,
|
||||
F_DIGITAL_IO_DELAY,
|
||||
F_COPY_DET_SERVER,
|
||||
F_REBOOT_CONTROLLER,
|
||||
F_SET_ADC_ENABLE_MASK,
|
||||
F_GET_ADC_ENABLE_MASK,
|
||||
F_SET_ADC_INVERT,
|
||||
F_GET_ADC_INVERT,
|
||||
F_EXTERNAL_SAMPLING_SOURCE,
|
||||
F_EXTERNAL_SAMPLING,
|
||||
F_SET_STARTING_FRAME_NUMBER,
|
||||
F_GET_STARTING_FRAME_NUMBER,
|
||||
F_SET_QUAD,
|
||||
F_GET_QUAD,
|
||||
F_SET_INTERRUPT_SUBFRAME,
|
||||
F_GET_INTERRUPT_SUBFRAME,
|
||||
F_SET_READ_N_LINES,
|
||||
F_GET_READ_N_LINES,
|
||||
F_SET_POSITION,
|
||||
F_SET_SOURCE_UDP_MAC,
|
||||
F_GET_SOURCE_UDP_MAC,
|
||||
F_SET_SOURCE_UDP_MAC2,
|
||||
F_GET_SOURCE_UDP_MAC2,
|
||||
F_SET_SOURCE_UDP_IP,
|
||||
F_GET_SOURCE_UDP_IP,
|
||||
F_SET_SOURCE_UDP_IP2,
|
||||
F_GET_SOURCE_UDP_IP2,
|
||||
F_SET_DEST_UDP_MAC,
|
||||
F_GET_DEST_UDP_MAC,
|
||||
F_SET_DEST_UDP_MAC2,
|
||||
F_GET_DEST_UDP_MAC2,
|
||||
F_SET_DEST_UDP_IP,
|
||||
F_GET_DEST_UDP_IP,
|
||||
F_SET_DEST_UDP_IP2,
|
||||
F_GET_DEST_UDP_IP2,
|
||||
F_SET_DEST_UDP_PORT,
|
||||
F_GET_DEST_UDP_PORT,
|
||||
F_SET_DEST_UDP_PORT2,
|
||||
F_GET_DEST_UDP_PORT2,
|
||||
F_SET_NUM_INTERFACES,
|
||||
F_GET_NUM_INTERFACES,
|
||||
F_SET_INTERFACE_SEL,
|
||||
F_GET_INTERFACE_SEL,
|
||||
F_SET_PARALLEL_MODE,
|
||||
F_GET_PARALLEL_MODE,
|
||||
F_SET_OVERFLOW_MODE,
|
||||
F_GET_OVERFLOW_MODE,
|
||||
F_SET_STOREINRAM_MODE,
|
||||
F_GET_STOREINRAM_MODE,
|
||||
F_SET_READOUT_MODE,
|
||||
F_GET_READOUT_MODE,
|
||||
F_SET_CLOCK_FREQUENCY,
|
||||
F_GET_CLOCK_FREQUENCY,
|
||||
F_SET_CLOCK_PHASE,
|
||||
F_GET_CLOCK_PHASE,
|
||||
F_GET_MAX_CLOCK_PHASE_SHIFT,
|
||||
F_SET_CLOCK_DIVIDER,
|
||||
F_GET_CLOCK_DIVIDER,
|
||||
F_SET_PIPELINE,
|
||||
F_GET_PIPELINE,
|
||||
F_SET_ON_CHIP_DAC,
|
||||
F_GET_ON_CHIP_DAC,
|
||||
F_SET_INJECT_CHANNEL,
|
||||
F_GET_INJECT_CHANNEL,
|
||||
F_SET_VETO_PHOTON,
|
||||
F_GET_VETO_PHOTON,
|
||||
F_SET_VETO_REFERENCE,
|
||||
F_GET_BURST_MODE,
|
||||
F_SET_BURST_MODE,
|
||||
F_SET_ADC_ENABLE_MASK_10G,
|
||||
F_GET_ADC_ENABLE_MASK_10G,
|
||||
F_SET_COUNTER_MASK,
|
||||
F_GET_COUNTER_MASK,
|
||||
F_GET_NUM_BURSTS,
|
||||
F_SET_NUM_BURSTS,
|
||||
F_GET_BURST_PERIOD,
|
||||
F_SET_BURST_PERIOD,
|
||||
F_GET_CURRENT_SOURCE,
|
||||
F_SET_CURRENT_SOURCE,
|
||||
F_GET_TIMING_SOURCE,
|
||||
F_SET_TIMING_SOURCE,
|
||||
F_GET_NUM_CHANNELS,
|
||||
F_UPDATE_RATE_CORRECTION,
|
||||
F_GET_RECEIVER_PARAMETERS,
|
||||
NUM_DET_FUNCTIONS,
|
||||
RECEIVER_ENUM_START = 256, /**< detector function should not exceed this
|
||||
(detector server should not compile anyway) */
|
||||
|
||||
NUM_DET_FUNCTIONS,
|
||||
RECEIVER_ENUM_START = 256, /**< detector function should not exceed this (detector server should not compile anyway) */
|
||||
F_EXEC_RECEIVER_COMMAND,
|
||||
F_EXIT_RECEIVER,
|
||||
F_LOCK_RECEIVER,
|
||||
F_GET_LAST_RECEIVER_CLIENT_IP,
|
||||
F_SET_RECEIVER_PORT,
|
||||
F_GET_RECEIVER_VERSION,
|
||||
F_RECEIVER_SET_ROI,
|
||||
F_RECEIVER_SET_NUM_FRAMES,
|
||||
F_SET_RECEIVER_NUM_TRIGGERS,
|
||||
F_SET_RECEIVER_NUM_BURSTS,
|
||||
F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS,
|
||||
F_SET_RECEIVER_TIMING_MODE,
|
||||
F_SET_RECEIVER_BURST_MODE,
|
||||
F_RECEIVER_SET_NUM_ANALOG_SAMPLES,
|
||||
F_RECEIVER_SET_NUM_DIGITAL_SAMPLES,
|
||||
F_RECEIVER_SET_EXPTIME,
|
||||
F_RECEIVER_SET_PERIOD,
|
||||
F_RECEIVER_SET_SUB_EXPTIME,
|
||||
F_RECEIVER_SET_SUB_DEADTIME,
|
||||
F_SET_RECEIVER_DYNAMIC_RANGE,
|
||||
F_SET_RECEIVER_STREAMING_FREQUENCY,
|
||||
F_GET_RECEIVER_STREAMING_FREQUENCY,
|
||||
F_GET_RECEIVER_STATUS,
|
||||
F_START_RECEIVER,
|
||||
F_STOP_RECEIVER,
|
||||
F_SET_RECEIVER_FILE_PATH,
|
||||
F_GET_RECEIVER_FILE_PATH,
|
||||
F_SET_RECEIVER_FILE_NAME,
|
||||
F_GET_RECEIVER_FILE_NAME,
|
||||
F_SET_RECEIVER_FILE_INDEX,
|
||||
F_GET_RECEIVER_FILE_INDEX,
|
||||
F_GET_RECEIVER_FRAME_INDEX,
|
||||
F_GET_RECEIVER_FRAMES_CAUGHT,
|
||||
F_GET_NUM_MISSING_PACKETS,
|
||||
F_SET_RECEIVER_FILE_WRITE,
|
||||
F_GET_RECEIVER_FILE_WRITE,
|
||||
F_SET_RECEIVER_MASTER_FILE_WRITE,
|
||||
F_GET_RECEIVER_MASTER_FILE_WRITE,
|
||||
F_SET_RECEIVER_OVERWRITE,
|
||||
F_GET_RECEIVER_OVERWRITE,
|
||||
F_ENABLE_RECEIVER_TEN_GIGA,
|
||||
F_SET_RECEIVER_FIFO_DEPTH,
|
||||
F_RECEIVER_ACTIVATE,
|
||||
F_SET_RECEIVER_STREAMING,
|
||||
F_GET_RECEIVER_STREAMING,
|
||||
F_RECEIVER_STREAMING_TIMER,
|
||||
F_SET_FLIPPED_DATA_RECEIVER,
|
||||
F_SET_RECEIVER_FILE_FORMAT,
|
||||
F_GET_RECEIVER_FILE_FORMAT,
|
||||
F_SET_RECEIVER_STREAMING_PORT,
|
||||
F_GET_RECEIVER_STREAMING_PORT,
|
||||
F_SET_RECEIVER_STREAMING_SRC_IP,
|
||||
F_GET_RECEIVER_STREAMING_SRC_IP,
|
||||
F_SET_RECEIVER_SILENT_MODE,
|
||||
F_GET_RECEIVER_SILENT_MODE,
|
||||
F_RESTREAM_STOP_FROM_RECEIVER,
|
||||
F_SET_ADDITIONAL_JSON_HEADER,
|
||||
F_GET_ADDITIONAL_JSON_HEADER,
|
||||
F_RECEIVER_UDP_SOCK_BUF_SIZE,
|
||||
F_RECEIVER_REAL_UDP_SOCK_BUF_SIZE,
|
||||
F_SET_RECEIVER_FRAMES_PER_FILE,
|
||||
F_GET_RECEIVER_FRAMES_PER_FILE,
|
||||
F_RECEIVER_CHECK_VERSION,
|
||||
F_SET_RECEIVER_DISCARD_POLICY,
|
||||
F_GET_RECEIVER_DISCARD_POLICY,
|
||||
F_SET_RECEIVER_PADDING,
|
||||
F_GET_RECEIVER_PADDING,
|
||||
F_SET_RECEIVER_DEACTIVATED_PADDING,
|
||||
F_GET_RECEIVER_DEACTIVATED_PADDING,
|
||||
F_RECEIVER_SET_READOUT_MODE,
|
||||
F_RECEIVER_SET_ADC_MASK,
|
||||
F_SET_RECEIVER_DBIT_LIST,
|
||||
F_GET_RECEIVER_DBIT_LIST,
|
||||
F_SET_RECEIVER_DBIT_OFFSET,
|
||||
F_GET_RECEIVER_DBIT_OFFSET,
|
||||
F_SET_RECEIVER_QUAD,
|
||||
F_SET_RECEIVER_READ_N_LINES,
|
||||
F_SET_RECEIVER_UDP_IP,
|
||||
F_SET_RECEIVER_UDP_IP2,
|
||||
F_SET_RECEIVER_UDP_PORT,
|
||||
F_SET_RECEIVER_UDP_PORT2,
|
||||
F_SET_RECEIVER_NUM_INTERFACES,
|
||||
F_RECEIVER_SET_ADC_MASK_10G,
|
||||
F_RECEIVER_SET_NUM_COUNTERS,
|
||||
F_INCREMENT_FILE_INDEX,
|
||||
F_SET_ADDITIONAL_JSON_PARAMETER,
|
||||
F_GET_ADDITIONAL_JSON_PARAMETER,
|
||||
F_GET_RECEIVER_PROGRESS,
|
||||
F_SETUP_RECEIVER,
|
||||
|
||||
F_EXEC_RECEIVER_COMMAND,
|
||||
F_EXIT_RECEIVER,
|
||||
F_LOCK_RECEIVER,
|
||||
F_GET_LAST_RECEIVER_CLIENT_IP,
|
||||
F_SET_RECEIVER_PORT,
|
||||
F_GET_RECEIVER_VERSION,
|
||||
F_RECEIVER_SET_ROI,
|
||||
F_RECEIVER_SET_NUM_FRAMES,
|
||||
F_SET_RECEIVER_NUM_TRIGGERS,
|
||||
F_SET_RECEIVER_NUM_BURSTS,
|
||||
F_SET_RECEIVER_NUM_ADD_STORAGE_CELLS,
|
||||
F_SET_RECEIVER_TIMING_MODE,
|
||||
F_SET_RECEIVER_BURST_MODE,
|
||||
F_RECEIVER_SET_NUM_ANALOG_SAMPLES,
|
||||
F_RECEIVER_SET_NUM_DIGITAL_SAMPLES,
|
||||
F_RECEIVER_SET_EXPTIME,
|
||||
F_RECEIVER_SET_PERIOD,
|
||||
F_RECEIVER_SET_SUB_EXPTIME,
|
||||
F_RECEIVER_SET_SUB_DEADTIME,
|
||||
F_SET_RECEIVER_DYNAMIC_RANGE,
|
||||
F_SET_RECEIVER_STREAMING_FREQUENCY,
|
||||
F_GET_RECEIVER_STREAMING_FREQUENCY,
|
||||
F_GET_RECEIVER_STATUS,
|
||||
F_START_RECEIVER,
|
||||
F_STOP_RECEIVER,
|
||||
F_SET_RECEIVER_FILE_PATH,
|
||||
F_GET_RECEIVER_FILE_PATH,
|
||||
F_SET_RECEIVER_FILE_NAME,
|
||||
F_GET_RECEIVER_FILE_NAME,
|
||||
F_SET_RECEIVER_FILE_INDEX,
|
||||
F_GET_RECEIVER_FILE_INDEX,
|
||||
F_GET_RECEIVER_FRAME_INDEX,
|
||||
F_GET_RECEIVER_FRAMES_CAUGHT,
|
||||
F_GET_NUM_MISSING_PACKETS,
|
||||
F_SET_RECEIVER_FILE_WRITE,
|
||||
F_GET_RECEIVER_FILE_WRITE,
|
||||
F_SET_RECEIVER_MASTER_FILE_WRITE,
|
||||
F_GET_RECEIVER_MASTER_FILE_WRITE,
|
||||
F_SET_RECEIVER_OVERWRITE,
|
||||
F_GET_RECEIVER_OVERWRITE,
|
||||
F_ENABLE_RECEIVER_TEN_GIGA,
|
||||
F_SET_RECEIVER_FIFO_DEPTH,
|
||||
F_RECEIVER_ACTIVATE,
|
||||
F_SET_RECEIVER_STREAMING,
|
||||
F_GET_RECEIVER_STREAMING,
|
||||
F_RECEIVER_STREAMING_TIMER,
|
||||
F_SET_FLIPPED_DATA_RECEIVER,
|
||||
F_SET_RECEIVER_FILE_FORMAT,
|
||||
F_GET_RECEIVER_FILE_FORMAT,
|
||||
F_SET_RECEIVER_STREAMING_PORT,
|
||||
F_GET_RECEIVER_STREAMING_PORT,
|
||||
F_SET_RECEIVER_STREAMING_SRC_IP,
|
||||
F_GET_RECEIVER_STREAMING_SRC_IP,
|
||||
F_SET_RECEIVER_SILENT_MODE,
|
||||
F_GET_RECEIVER_SILENT_MODE,
|
||||
F_RESTREAM_STOP_FROM_RECEIVER,
|
||||
F_SET_ADDITIONAL_JSON_HEADER,
|
||||
F_GET_ADDITIONAL_JSON_HEADER,
|
||||
F_RECEIVER_UDP_SOCK_BUF_SIZE,
|
||||
F_RECEIVER_REAL_UDP_SOCK_BUF_SIZE,
|
||||
F_SET_RECEIVER_FRAMES_PER_FILE,
|
||||
F_GET_RECEIVER_FRAMES_PER_FILE,
|
||||
F_RECEIVER_CHECK_VERSION,
|
||||
F_SET_RECEIVER_DISCARD_POLICY,
|
||||
F_GET_RECEIVER_DISCARD_POLICY,
|
||||
F_SET_RECEIVER_PADDING,
|
||||
F_GET_RECEIVER_PADDING,
|
||||
F_SET_RECEIVER_DEACTIVATED_PADDING,
|
||||
F_GET_RECEIVER_DEACTIVATED_PADDING,
|
||||
F_RECEIVER_SET_READOUT_MODE,
|
||||
F_RECEIVER_SET_ADC_MASK,
|
||||
F_SET_RECEIVER_DBIT_LIST,
|
||||
F_GET_RECEIVER_DBIT_LIST,
|
||||
F_SET_RECEIVER_DBIT_OFFSET,
|
||||
F_GET_RECEIVER_DBIT_OFFSET,
|
||||
F_SET_RECEIVER_QUAD,
|
||||
F_SET_RECEIVER_READ_N_LINES,
|
||||
F_SET_RECEIVER_UDP_IP,
|
||||
F_SET_RECEIVER_UDP_IP2,
|
||||
F_SET_RECEIVER_UDP_PORT,
|
||||
F_SET_RECEIVER_UDP_PORT2,
|
||||
F_SET_RECEIVER_NUM_INTERFACES,
|
||||
F_RECEIVER_SET_ADC_MASK_10G,
|
||||
F_RECEIVER_SET_NUM_COUNTERS,
|
||||
F_INCREMENT_FILE_INDEX,
|
||||
F_SET_ADDITIONAL_JSON_PARAMETER,
|
||||
F_GET_ADDITIONAL_JSON_PARAMETER,
|
||||
F_GET_RECEIVER_PROGRESS,
|
||||
F_SETUP_RECEIVER,
|
||||
|
||||
NUM_REC_FUNCTIONS
|
||||
NUM_REC_FUNCTIONS
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
#ifdef __cplusplus
|
||||
static const char* getFunctionNameFromEnum(enum detFuncs func) {
|
||||
switch (func) {
|
||||
@ -586,3 +587,4 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) {
|
||||
};
|
||||
#endif
|
||||
|
||||
// clang-format on
|
@ -1,13 +1,13 @@
|
||||
/** API versions */
|
||||
#define GITBRANCH "setrxhostname"
|
||||
#define APILIB 0x200409
|
||||
#define APIRECEIVER 0x200409
|
||||
#define APIGUI 0x200409
|
||||
#define APIEIGER 0x200409
|
||||
#define APICTB 0x200409
|
||||
#define APIGOTTHARD 0x200409
|
||||
#define APIJUNGFRAU 0x200409
|
||||
#define APIMYTHEN3 0x200428
|
||||
#define GITBRANCH "setrxhostname"
|
||||
#define APILIB 0x200409
|
||||
#define APIRECEIVER 0x200409
|
||||
#define APIGUI 0x200409
|
||||
#define APIEIGER 0x200409
|
||||
#define APICTB 0x200409
|
||||
#define APIGOTTHARD 0x200409
|
||||
#define APIJUNGFRAU 0x200409
|
||||
#define APIMYTHEN3 0x200428
|
||||
#define APIGOTTHARD2 0x200429
|
||||
|
||||
#define APIMOENCH 0x200429
|
||||
|
Reference in New Issue
Block a user