changes to header old and new, still memory leak for jungfrau

This commit is contained in:
Dhanya Maliakal 2017-05-19 10:16:16 +02:00
parent 781fea0a96
commit e8e9e12302

View File

@ -302,14 +302,14 @@ uint32_t Listener::ListenToAnImage(char* buf) {
uint32_t fifohsize = generalData->fifoBufferHeaderSize; uint32_t fifohsize = generalData->fifoBufferHeaderSize;
uint32_t pperFrame = generalData->packetsPerFrame; uint32_t pperFrame = generalData->packetsPerFrame;
bool isHeaderEmpty = true; bool isHeaderEmpty = true;
sls_detector_header* header = 0; sls_detector_header* old_header = 0;
sls_detector_header* new_header = 0;
//reset to -1 //reset to -1
memset(buf, 0, fifohsize); memset(buf, 0, fifohsize);
memset(buf + fifohsize, 0xFF, dsize); memset(buf + fifohsize, 0xFF, dsize);
new_header = (sls_detector_header*) (buf + FIFO_HEADER_NUMBYTES);
@ -319,9 +319,9 @@ uint32_t Listener::ListenToAnImage(char* buf) {
//check if its the current image packet //check if its the current image packet
// -------------------------- new header ---------------------------------------------------------------------- // -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) { if (myDetectorType == JUNGFRAU) {
header = (sls_detector_header*) (carryOverPacket + esize); old_header = (sls_detector_header*) (carryOverPacket + esize);
fnum = header->frameNumber; fnum = old_header->frameNumber;
pnum = header->packetNumber; pnum = old_header->packetNumber;
} }
// -------------------old header ----------------------------------------------------------------------------- // -------------------old header -----------------------------------------------------------------------------
else { else {
@ -334,6 +334,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
cprintf(BG_RED,"Error:(Weird), With carry flag: Frame number less than current frame number\n"); cprintf(BG_RED,"Error:(Weird), With carry flag: Frame number less than current frame number\n");
return 0; return 0;
} }
new_header->packetNumber = numpackets;
return generalData->imageSize; return generalData->imageSize;
} }
@ -346,19 +347,18 @@ uint32_t Listener::ListenToAnImage(char* buf) {
if(isHeaderEmpty) { if(isHeaderEmpty) {
// -------------------------- new header ---------------------------------------------------------------------- // -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) { if (myDetectorType == JUNGFRAU) {
memcpy(buf + FIFO_HEADER_NUMBYTES, (char*)header, sizeof(sls_detector_header)); memcpy((char*)new_header, (char*)old_header, sizeof(sls_detector_header));
} }
// -------------------old header ------------------------------------------------------------------------------ // -------------------old header ------------------------------------------------------------------------------
else { else {
header = (sls_detector_header*) (buf + FIFO_HEADER_NUMBYTES); memset(new_header, 0, sizeof(sls_detector_header));
memset(header, 0, sizeof(sls_detector_header)); new_header->frameNumber = fnum;
header->frameNumber = fnum;
if (generalData->myDetectorType == EIGER && *dynamicRange == 32) if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
header->expLength = snum; new_header->expLength = snum;
header->packetNumber = pperFrame; new_header->packetNumber = pperFrame;
/*header->xCoord = index; given by det packet, also for ycoord, zcoord */ /*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
header->detType = (uint8_t) generalData->myDetectorType; new_header->detType = (uint8_t) generalData->myDetectorType;
header->version = (uint8_t) SLS_DETECTOR_HEADER_VERSION; new_header->version = (uint8_t) SLS_DETECTOR_HEADER_VERSION;
} }
//------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------
isHeaderEmpty = false; isHeaderEmpty = false;
@ -379,7 +379,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
if(rc <= 0) { if(rc <= 0) {
if (numpackets == 0) return 0; //empty image if (numpackets == 0) return 0; //empty image
header->packetNumber = numpackets; //number of packets caught new_header->packetNumber = numpackets; //number of packets caught
return generalData->imageSize; //empty packet now, but not empty image return generalData->imageSize; //empty packet now, but not empty image
} }
@ -388,9 +388,9 @@ uint32_t Listener::ListenToAnImage(char* buf) {
// -------------------------- new header ---------------------------------------------------------------------- // -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) { if (myDetectorType == JUNGFRAU) {
header = (sls_detector_header*) (listeningPacket + esize); old_header = (sls_detector_header*) (listeningPacket + esize);
fnum = header->frameNumber; fnum = old_header->frameNumber;
pnum = header->packetNumber; pnum = old_header->packetNumber;
} }
// -------------------old header ----------------------------------------------------------------------------- // -------------------old header -----------------------------------------------------------------------------
else { else {
@ -416,7 +416,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
carryOverFlag = true; carryOverFlag = true;
memcpy(carryOverPacket,listeningPacket, generalData->packetSize); memcpy(carryOverPacket,listeningPacket, generalData->packetSize);
header->packetNumber = numpackets; //number of packets caught new_header->packetNumber = numpackets; //number of packets caught
return generalData->imageSize; return generalData->imageSize;
} }
@ -427,25 +427,25 @@ uint32_t Listener::ListenToAnImage(char* buf) {
if(isHeaderEmpty) { if(isHeaderEmpty) {
// -------------------------- new header ---------------------------------------------------------------------- // -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) { if (myDetectorType == JUNGFRAU) {
memcpy(buf + FIFO_HEADER_NUMBYTES, (char*)header, sizeof(sls_detector_header)); memcpy((char*)new_header, (char*)old_header, sizeof(sls_detector_header));
} }
// -------------------old header ------------------------------------------------------------------------------ // -------------------old header ------------------------------------------------------------------------------
else { else {
header = (sls_detector_header*) (buf + FIFO_HEADER_NUMBYTES); memset(new_header, 0, sizeof(sls_detector_header));
memset(header, 0, sizeof(sls_detector_header)); new_header->frameNumber = fnum;
header->frameNumber = fnum;
if (generalData->myDetectorType == EIGER && *dynamicRange == 32) if (generalData->myDetectorType == EIGER && *dynamicRange == 32)
header->expLength = snum; new_header->expLength = snum;
/*header->xCoord = index; given by det packet, also for ycoord, zcoord */ new_header->packetNumber = pperFrame;
header->detType = (uint8_t) generalData->myDetectorType; /*new_header->xCoord = index; given by det packet, also for ycoord, zcoord */
header->version = (uint8_t) SLS_DETECTOR_HEADER_VERSION; new_header->detType = (uint8_t) generalData->myDetectorType;
new_header->version = (uint8_t) SLS_DETECTOR_HEADER_VERSION;
} }
//------------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------------
isHeaderEmpty = false; isHeaderEmpty = false;
} }
} }
header->packetNumber = numpackets; //number of packets caught new_header->packetNumber = numpackets; //number of packets caught
return generalData->imageSize; return generalData->imageSize;
} }