Rxpointers (#504)

* gui message doesnt show if it has a '>' symbol in error msg

* minor refactoring for readability (size_t calc fifo size)

* refactoring listening udp socket code: activated and datastream dont create udp sockets anyway, rc<=- should be discarded in any case

* wip

* refactoring memory structure access

* wip: bugfix write header + data to binary

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* portRoi no roi effecto on progress

* fail at receiver progress, wip

* segfaults for char pointer in struct

* reference to header to get header and data

* refactoring

* use const defined for size of header of fifo

* updated release notes

* remove pointer in callback for sls_receiver_header pointer

* rx same name arguments in constructors

* rx: same name arguments in constructor

* rx: removing the '_' suffix in class data members

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* diff undo for clang later

* wip

* Wip

* const string&
This commit is contained in:
Dhanya Thattil
2022-08-05 09:08:18 +02:00
committed by GitHub
parent 9ac8dab8af
commit 89e293cb5a
14 changed files with 491 additions and 514 deletions

View File

@ -36,9 +36,9 @@ class GeneralData {
uint32_t frameIndexOffset{0};
uint32_t packetIndexMask{0};
uint32_t packetIndexOffset{0};
uint32_t maxFramesPerFile{0};
uint32_t defaultFifoDepth{0};
uint32_t numUDPInterfaces{1};
uint32_t framesPerFile{0};
uint32_t fifoDepth{0};
int numUDPInterfaces{1};
uint32_t headerPacketSize{0};
/** Streaming (for ROI - mainly short Gotthard) */
uint32_t nPixelsXComplete{0};
@ -48,7 +48,7 @@ class GeneralData {
uint32_t imageSizeComplete{0};
/** if standard header implemented in firmware */
bool standardheader{false};
uint32_t defaultUdpSocketBufferSize{RECEIVE_SOCKET_BUFFER_SIZE};
uint32_t udpSocketBufferSize{RECEIVE_SOCKET_BUFFER_SIZE};
uint32_t vetoDataSize{0};
uint32_t vetoPacketSize{0};
uint32_t vetoImageSize{0};
@ -61,7 +61,7 @@ class GeneralData {
slsDetectorDefs::readoutMode readoutType{slsDetectorDefs::ANALOG_ONLY};
uint32_t adcEnableMaskOneGiga{BIT32_MASK};
uint32_t adcEnableMaskTenGiga{BIT32_MASK};
slsDetectorDefs::ROI roi{};
slsDetectorDefs::ROI detectorRoi{};
uint32_t counterMask{0};
GeneralData(){};
@ -164,7 +164,7 @@ class GotthardData : public GeneralData {
detType = slsDetectorDefs::GOTTHARD;
nPixelsY = 1;
headerSizeinPacket = 6;
maxFramesPerFile = MAX_FRAMES_PER_FILE;
framesPerFile = MAX_FRAMES_PER_FILE;
UpdateImageSize();
};
@ -247,7 +247,7 @@ class GotthardData : public GeneralData {
};
void SetDetectorROI(slsDetectorDefs::ROI i) {
roi = i;
detectorRoi = i;
UpdateImageSize();
};
@ -255,18 +255,18 @@ class GotthardData : public GeneralData {
void UpdateImageSize() {
// all adcs
if (roi.xmin == -1) {
if (detectorRoi.xmin == -1) {
nPixelsX = 1280;
dataSize = 1280;
packetsPerFrame = 2;
frameIndexMask = 0xFFFFFFFE;
frameIndexOffset = 1;
packetIndexMask = 1;
maxFramesPerFile = MAX_FRAMES_PER_FILE;
framesPerFile = MAX_FRAMES_PER_FILE;
nPixelsXComplete = 0;
nPixelsYComplete = 0;
imageSizeComplete = 0;
defaultFifoDepth = 50000;
fifoDepth = 50000;
} else {
nPixelsX = 256;
dataSize = 512;
@ -274,11 +274,11 @@ class GotthardData : public GeneralData {
frameIndexMask = 0xFFFFFFFF;
frameIndexOffset = 0;
packetIndexMask = 0;
maxFramesPerFile = SHORT_MAX_FRAMES_PER_FILE;
framesPerFile = SHORT_MAX_FRAMES_PER_FILE;
nPixelsXComplete = 1280;
nPixelsYComplete = 1;
imageSizeComplete = 1280 * 2;
defaultFifoDepth = 75000;
fifoDepth = 75000;
}
imageSize = int(nPixelsX * nPixelsY * GetPixelDepth());
packetSize = headerSizeinPacket + dataSize;
@ -292,7 +292,7 @@ class EigerData : public GeneralData {
EigerData() {
detType = slsDetectorDefs::EIGER;
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
framesPerFile = EIGER_MAX_FRAMES_PER_FILE;
numUDPInterfaces = 2;
headerPacketSize = 40;
standardheader = true;
@ -318,7 +318,7 @@ class EigerData : public GeneralData {
packetSize = headerSizeinPacket + dataSize;
imageSize = int(nPixelsX * nPixelsY * GetPixelDepth());
packetsPerFrame = imageSize / dataSize;
defaultFifoDepth = (dynamicRange == 32 ? 100 : 1000);
fifoDepth = (dynamicRange == 32 ? 100 : 1000);
};
};
@ -330,8 +330,8 @@ class JungfrauData : public GeneralData {
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
dataSize = 8192;
packetSize = headerSizeinPacket + dataSize;
maxFramesPerFile = JFRAU_MAX_FRAMES_PER_FILE;
defaultFifoDepth = 2500;
framesPerFile = JFRAU_MAX_FRAMES_PER_FILE;
fifoDepth = 2500;
standardheader = true;
maxRowsPerReadout = 512;
UpdateImageSize();
@ -348,7 +348,7 @@ class JungfrauData : public GeneralData {
nPixelsY = (256 * 2) / numUDPInterfaces;
imageSize = int(nPixelsX * nPixelsY * GetPixelDepth());
packetsPerFrame = imageSize / dataSize;
defaultUdpSocketBufferSize = (1000 * 1024 * 1024) / numUDPInterfaces;
udpSocketBufferSize = (1000 * 1024 * 1024) / numUDPInterfaces;
};
};
@ -362,10 +362,10 @@ class Mythen3Data : public GeneralData {
detType = slsDetectorDefs::MYTHEN3;
nPixelsY = 1;
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
maxFramesPerFile = MYTHEN3_MAX_FRAMES_PER_FILE;
defaultFifoDepth = 50000;
framesPerFile = MYTHEN3_MAX_FRAMES_PER_FILE;
fifoDepth = 50000;
standardheader = true;
defaultUdpSocketBufferSize = (1000 * 1024 * 1024);
udpSocketBufferSize = (1000 * 1024 * 1024);
dynamicRange = 32;
tengigaEnable = true;
SetCounterMask(0x7);
@ -432,8 +432,8 @@ class Gotthard2Data : public GeneralData {
nPixelsY = 1;
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
dataSize = 2560; // 1280 channels * 2 bytes
maxFramesPerFile = GOTTHARD2_MAX_FRAMES_PER_FILE;
defaultFifoDepth = 50000;
framesPerFile = GOTTHARD2_MAX_FRAMES_PER_FILE;
fifoDepth = 50000;
standardheader = true;
vetoDataSize = 160;
vetoHsize = 16;
@ -469,7 +469,7 @@ class Gotthard2Data : public GeneralData {
packetsPerFrame = imageSize / dataSize;
vetoPacketSize = vetoHsize + vetoDataSize;
vetoImageSize = vetoDataSize * packetsPerFrame;
defaultUdpSocketBufferSize = (1000 * 1024 * 1024) / numUDPInterfaces;
udpSocketBufferSize = (1000 * 1024 * 1024) / numUDPInterfaces;
};
};
@ -488,8 +488,8 @@ class ChipTestBoardData : public GeneralData {
frameIndexMask = 0xFFFFFF; // 10g
frameIndexOffset = 8; // 10g
packetIndexMask = 0xFF; // 10g
maxFramesPerFile = CTB_MAX_FRAMES_PER_FILE;
defaultFifoDepth = 2500;
framesPerFile = CTB_MAX_FRAMES_PER_FILE;
fifoDepth = 2500;
standardheader = true;
UpdateImageSize();
};
@ -575,8 +575,8 @@ class MoenchData : public GeneralData {
detType = slsDetectorDefs::MOENCH;
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
frameIndexMask = 0xFFFFFF;
maxFramesPerFile = MOENCH_MAX_FRAMES_PER_FILE;
defaultFifoDepth = 2500;
framesPerFile = MOENCH_MAX_FRAMES_PER_FILE;
fifoDepth = 2500;
standardheader = true;
UpdateImageSize();
};