bug (from eiger_newheader) with imagesize of fifo different from actual image size

This commit is contained in:
Dhanya Maliakal
2017-06-16 13:53:27 +02:00
parent 8d6ceccf87
commit 3007694b77
7 changed files with 22 additions and 26 deletions

View File

@@ -330,7 +330,7 @@ void DataProcessor::ProcessAnImage(char* buf) {
if (*fileWriteEnable)
file->WriteToFile(buf, generalData->fifoBufferSize + sizeof(sls_detector_header), fnum-firstMeasurementIndex, nump);
file->WriteToFile(buf, generalData->imageSize + sizeof(sls_detector_header), fnum-firstMeasurementIndex, nump);
if (rawDataReadyCallBack) {
rawDataReadyCallBack(

View File

@@ -29,7 +29,8 @@ File::File(int ind, uint32_t maxf, const uint32_t* ppf,
numUnitsPerDetector(nunits),
numImages(nf),
dynamicRange(dr),
udpPortNumber(portno)
udpPortNumber(portno),
fifo(f)
{
master = index?false:true;

View File

@@ -58,6 +58,15 @@ Listener::Listener(detectorType dtype, Fifo*& f, runStatus* s, uint32_t* portno,
}
NumberofListeners++;
FILE_LOG (logDEBUG) << "Number of Listeners: " << NumberofListeners;
switch(myDetectorType){
case JUNGFRAU:
standardheader = true;
break;
default:
standardheader = false;
break;
}
}
@@ -318,7 +327,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
//if(!index) cprintf(RED,"carry flag\n");
//check if its the current image packet
// -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) {
if (standardheader) {
old_header = (sls_detector_header*) (carryOverPacket + esize);
fnum = old_header->frameNumber;
pnum = old_header->packetNumber;
@@ -346,7 +355,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
//writer header
if(isHeaderEmpty) {
// -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) {
if (standardheader) {
memcpy((char*)new_header, (char*)old_header, sizeof(sls_detector_header));
}
// -------------------old header ------------------------------------------------------------------------------
@@ -387,7 +396,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
numPacketsCaught++; //record immediately to get more time before socket shutdown
// -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) {
if (standardheader) {
old_header = (sls_detector_header*) (listeningPacket + esize);
fnum = old_header->frameNumber;
pnum = old_header->packetNumber;
@@ -426,7 +435,7 @@ uint32_t Listener::ListenToAnImage(char* buf) {
numpackets++; //number of packets in this image (each time its copied to buf)
if(isHeaderEmpty) {
// -------------------------- new header ----------------------------------------------------------------------
if (myDetectorType == JUNGFRAU) {
if (standardheader) {
memcpy((char*)new_header, (char*)old_header, sizeof(sls_detector_header));
}
// -------------------old header ------------------------------------------------------------------------------

View File

@@ -443,7 +443,7 @@ int UDPStandardImplementation::startReceiver(char *c) {
//callbacks
if (startAcquisitionCallBack) {
startAcquisitionCallBack(filePath, fileName, fileIndex,
(generalData->fifoBufferSize) * numberofJobs + (generalData->fifoBufferHeaderSize), pStartAcquisition);
(generalData->imageSize) * numberofJobs + (generalData->fifoBufferHeaderSize), pStartAcquisition);
if (rawDataReadyCallBack != NULL) {
cout << "Data Write has been defined externally" << endl;
}
@@ -728,7 +728,7 @@ int UDPStandardImplementation::SetupFifoStructure() {
//create fifo structure
bool success = true;
fifo.push_back( new Fifo (
(generalData->fifoBufferSize) * numberofJobs + (generalData->fifoBufferHeaderSize),
(generalData->imageSize) * numberofJobs + (generalData->fifoBufferHeaderSize),
fifoDepth, success));
if (!success) {
cprintf(BG_RED,"Error: Could not allocate memory for fifo structure of index %d\n", i);