This commit is contained in:
Dhanya Maliakal
2017-06-27 14:57:43 +02:00
parent 697fc5b85e
commit e6f1a90ed7
2 changed files with 39 additions and 0 deletions

View File

@ -462,6 +462,8 @@ class JungfrauData : public GeneralData {
class EigerData : public GeneralData {
private:
#ifndef EIGER_NEWHEADER
/** Structure of an eiger packet header */
typedef struct {
unsigned char subFrameNumber[4];
@ -483,29 +485,48 @@ private:
/** Footer offset */
uint32_t footerOffset;
#endif
/** Constructor */
EigerData(){
myDetectorType = slsReceiverDefs::EIGER;
nPixelsX = (256*2);
nPixelsY = 256;
#ifndef EIGER_NEWHEADER
headerSizeinPacket = 8;
#else
headerSizeinPacket = sizeof(slsReceiverDefs::sls_detector_header);
#endif
dataSize = 1024;
#ifndef EIGER_NEWHEADER
packetSize = headerSizeinPacket + dataSize + 8;
#else
packetSize = headerSizeinPacket + dataSize;
#endif
packetsPerFrame = 256;
imageSize = dataSize*packetsPerFrame;
#ifndef EIGER_NEWHEADER
frameIndexMask = 0xffffff;
#endif
maxFramesPerFile = EIGER_MAX_FRAMES_PER_FILE;
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsReceiverDefs::sls_detector_header);
defaultFifoDepth = 100;
#ifndef EIGER_NEWHEADER
footerOffset = headerSizeinPacket + dataSize;
#endif
threadsPerReceiver = 2;
#ifndef EIGER_NEWHEADER
headerPacketSize = 48;
#else
headerPacketSize = 40;
#endif
nPixelsX_Streamer = nPixelsX;
nPixelsY_Streamer = nPixelsY;
imageSize_Streamer = imageSize;
};
#ifndef EIGER_NEWHEADER
/**
* Get Header Infomation (frame number, packet number)
* @param index thread index for debugging purposes
@ -541,6 +562,7 @@ private:
subFrameNumber = (uint64_t) *( (uint32_t*) header->subFrameNumber);
}
}
#endif
/**
* Setting dynamic range changes member variables
@ -559,12 +581,20 @@ private:
*/
void SetTenGigaEnable(bool tgEnable, int dr) {
dataSize = (tgEnable ? 4096 : 1024);
#ifndef EIGER_NEWHEADER
packetSize = (tgEnable ? 4112 : 1040);
#else
packetSize = headerSizeinPacket + dataSize;
#endif
packetsPerFrame = (tgEnable ? 4 : 16) * dr;
imageSize = dataSize*packetsPerFrame;
#ifndef EIGER_NEWHEADER
footerOffset = packetHeaderSize+dataSize;
#endif
};
#ifndef EIGER_NEWHEADER
/**
* Print all variables
*/
@ -575,5 +605,6 @@ private:
packetHeaderSize,
footerOffset);
}
#endif
};

View File

@ -62,6 +62,10 @@ Listener::Listener(detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno,
switch(myDetectorType){
case JUNGFRAU:
standardheader = true;
#ifndef EIGER_NEWHEADER
#else
case EIGER:
#endif
break;
default:
standardheader = false;
@ -377,8 +381,10 @@ uint32_t Listener::ListenToAnImage(char* buf) {
else {
memset(new_header, 0, sizeof(sls_detector_header));
new_header->frameNumber = fnum;
#ifndef EIGER_NEWHEADER
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
new_header->expLength = snum;
#endif
new_header->packetNumber = pperFrame;
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
new_header->detType = (uint8_t) generalData->myDetectorType;
@ -469,8 +475,10 @@ uint32_t Listener::ListenToAnImage(char* buf) {
else {
memset(new_header, 0, sizeof(sls_detector_header));
new_header->frameNumber = fnum;
#ifndef EIGER_NEWHEADER
if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
new_header->expLength = snum;
#endif
new_header->packetNumber = pperFrame;
/*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
new_header->detType = (uint8_t) generalData->myDetectorType;