mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-12 12:57:13 +02:00
changes
This commit is contained in:
@ -462,6 +462,8 @@ class JungfrauData : public GeneralData {
|
|||||||
class EigerData : public GeneralData {
|
class EigerData : public GeneralData {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
/** Structure of an eiger packet header */
|
/** Structure of an eiger packet header */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned char subFrameNumber[4];
|
unsigned char subFrameNumber[4];
|
||||||
@ -483,29 +485,48 @@ private:
|
|||||||
|
|
||||||
/** Footer offset */
|
/** Footer offset */
|
||||||
uint32_t footerOffset;
|
uint32_t footerOffset;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/** Constructor */
|
/** Constructor */
|
||||||
EigerData(){
|
EigerData(){
|
||||||
myDetectorType = slsReceiverDefs::EIGER;
|
myDetectorType = slsReceiverDefs::EIGER;
|
||||||
nPixelsX = (256*2);
|
nPixelsX = (256*2);
|
||||||
nPixelsY = 256;
|
nPixelsY = 256;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
headerSizeinPacket = 8;
|
headerSizeinPacket = 8;
|
||||||
|
#else
|
||||||
|
headerSizeinPacket = sizeof(slsReceiverDefs::sls_detector_header);
|
||||||
|
#endif
|
||||||
dataSize = 1024;
|
dataSize = 1024;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
packetSize = headerSizeinPacket + dataSize + 8;
|
packetSize = headerSizeinPacket + dataSize + 8;
|
||||||
|
#else
|
||||||
|
packetSize = headerSizeinPacket + dataSize;
|
||||||
|
#endif
|
||||||
packetsPerFrame = 256;
|
packetsPerFrame = 256;
|
||||||
imageSize = dataSize*packetsPerFrame;
|
imageSize = dataSize*packetsPerFrame;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
frameIndexMask = 0xffffff;
|
frameIndexMask = 0xffffff;
|
||||||
|
#endif
|
||||||
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
|
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
|
||||||
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
|
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
|
||||||
defaultFifoDepth = 100;
|
defaultFifoDepth = 100;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
footerOffset = headerSizeinPacket + dataSize;
|
footerOffset = headerSizeinPacket + dataSize;
|
||||||
|
#endif
|
||||||
threadsPerReceiver = 2;
|
threadsPerReceiver = 2;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
headerPacketSize = 48;
|
headerPacketSize = 48;
|
||||||
|
#else
|
||||||
|
headerPacketSize = 40;
|
||||||
|
#endif
|
||||||
nPixelsX_Streamer = nPixelsX;
|
nPixelsX_Streamer = nPixelsX;
|
||||||
nPixelsY_Streamer = nPixelsY;
|
nPixelsY_Streamer = nPixelsY;
|
||||||
imageSize_Streamer = imageSize;
|
imageSize_Streamer = imageSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
/**
|
/**
|
||||||
* Get Header Infomation (frame number, packet number)
|
* Get Header Infomation (frame number, packet number)
|
||||||
* @param index thread index for debugging purposes
|
* @param index thread index for debugging purposes
|
||||||
@ -541,6 +562,7 @@ private:
|
|||||||
subFrameNumber = (uint64_t) *( (uint32_t*) header->subFrameNumber);
|
subFrameNumber = (uint64_t) *( (uint32_t*) header->subFrameNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setting dynamic range changes member variables
|
* Setting dynamic range changes member variables
|
||||||
@ -559,12 +581,20 @@ private:
|
|||||||
*/
|
*/
|
||||||
void SetTenGigaEnable(bool tgEnable, int dr) {
|
void SetTenGigaEnable(bool tgEnable, int dr) {
|
||||||
dataSize = (tgEnable ? 4096 : 1024);
|
dataSize = (tgEnable ? 4096 : 1024);
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
packetSize = (tgEnable ? 4112 : 1040);
|
packetSize = (tgEnable ? 4112 : 1040);
|
||||||
|
#else
|
||||||
|
packetSize = headerSizeinPacket + dataSize;
|
||||||
|
#endif
|
||||||
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
|
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
|
||||||
imageSize = dataSize*packetsPerFrame;
|
imageSize = dataSize*packetsPerFrame;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
footerOffset = packetHeaderSize+dataSize;
|
footerOffset = packetHeaderSize+dataSize;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
/**
|
/**
|
||||||
* Print all variables
|
* Print all variables
|
||||||
*/
|
*/
|
||||||
@ -575,5 +605,6 @@ private:
|
|||||||
packetHeaderSize,
|
packetHeaderSize,
|
||||||
footerOffset);
|
footerOffset);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,6 +62,10 @@ Listener::Listener(detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno,
|
|||||||
switch(myDetectorType){
|
switch(myDetectorType){
|
||||||
case JUNGFRAU:
|
case JUNGFRAU:
|
||||||
standardheader = true;
|
standardheader = true;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
|
#else
|
||||||
|
case EIGER:
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
standardheader = false;
|
standardheader = false;
|
||||||
@ -377,8 +381,10 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
else {
|
else {
|
||||||
memset(new_header, 0, sizeof(sls_detector_header));
|
memset(new_header, 0, sizeof(sls_detector_header));
|
||||||
new_header->frameNumber = fnum;
|
new_header->frameNumber = fnum;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
||||||
new_header->expLength = snum;
|
new_header->expLength = snum;
|
||||||
|
#endif
|
||||||
new_header->packetNumber = pperFrame;
|
new_header->packetNumber = pperFrame;
|
||||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||||
@ -469,8 +475,10 @@ uint32_t Listener::ListenToAnImage(char* buf) {
|
|||||||
else {
|
else {
|
||||||
memset(new_header, 0, sizeof(sls_detector_header));
|
memset(new_header, 0, sizeof(sls_detector_header));
|
||||||
new_header->frameNumber = fnum;
|
new_header->frameNumber = fnum;
|
||||||
|
#ifndef EIGER_NEWHEADER
|
||||||
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
|
||||||
new_header->expLength = snum;
|
new_header->expLength = snum;
|
||||||
|
#endif
|
||||||
new_header->packetNumber = pperFrame;
|
new_header->packetNumber = pperFrame;
|
||||||
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
|
||||||
new_header->detType = (uint8_t) generalData->myDetectorType;
|
new_header->detType = (uint8_t) generalData->myDetectorType;
|
||||||
|
Reference in New Issue
Block a user