mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-16 23:07:13 +02:00
solved packet loss problem
This commit is contained in:
@ -24,7 +24,7 @@ typedef int int32_t;
|
|||||||
#define SHORT_MAX_FRAMES_PER_FILE 100000
|
#define SHORT_MAX_FRAMES_PER_FILE 100000
|
||||||
#define MOENCH_MAX_FRAMES_PER_FILE 1000
|
#define MOENCH_MAX_FRAMES_PER_FILE 1000
|
||||||
#define EIGER_MAX_FRAMES_PER_FILE 2000
|
#define EIGER_MAX_FRAMES_PER_FILE 2000
|
||||||
#define JFRAU_MAX_FRAMES_PER_FILE 2000
|
#define JFRAU_MAX_FRAMES_PER_FILE 5
|
||||||
#define JFCTB_MAX_FRAMES_PER_FILE 100000
|
#define JFCTB_MAX_FRAMES_PER_FILE 100000
|
||||||
|
|
||||||
|
|
||||||
|
@ -1393,12 +1393,15 @@ int UDPStandardImplementation::createNewFile(){
|
|||||||
previousFrameNumber = -1;
|
previousFrameNumber = -1;
|
||||||
cout << "File: " << completeFileName << endl;
|
cout << "File: " << completeFileName << endl;
|
||||||
}else{
|
}else{
|
||||||
|
if (previousFrameNumber == -1)
|
||||||
|
previousFrameNumber = startFrameIndex-1;
|
||||||
|
|
||||||
cout << completeFileName
|
cout << completeFileName
|
||||||
<< "\tPacket Loss: " << setw(4)<<fixed << setprecision(4) << dec <<
|
<< "\tPacket Loss: " << setw(4)<<fixed << setprecision(4) << dec <<
|
||||||
(int)((( (currentFrameNumber-previousFrameNumber) - ((packetsInFile-numTotMissingPacketsInFile)/packetsPerFrame))/
|
(int)((( (currentFrameNumber-previousFrameNumber) - ((packetsInFile-numTotMissingPacketsInFile)/packetsPerFrame))/
|
||||||
(double)(currentFrameNumber-previousFrameNumber))*100.000)
|
(double)(currentFrameNumber-previousFrameNumber))*100.000)
|
||||||
<< "%\tFramenumber: " << currentFrameNumber
|
<< "%\tFramenumber: " << currentFrameNumber
|
||||||
//<< "\t\t PreviousFrameNumber: " << previousFrameNumber
|
<< "\t\t PreviousFrameNumber: " << previousFrameNumber
|
||||||
<< "\tIndex " << dec << index
|
<< "\tIndex " << dec << index
|
||||||
<< "\tLost " << dec << ( ((int)(currentFrameNumber-previousFrameNumber)) -
|
<< "\tLost " << dec << ( ((int)(currentFrameNumber-previousFrameNumber)) -
|
||||||
((packetsInFile-numTotMissingPacketsInFile)/packetsPerFrame)) << endl;
|
((packetsInFile-numTotMissingPacketsInFile)/packetsPerFrame)) << endl;
|
||||||
@ -2587,16 +2590,23 @@ void UDPStandardImplementation::writeFileWithoutCompression(char* wbuffer[],uint
|
|||||||
//new file
|
//new file
|
||||||
if(packetsInFile >= (uint32_t)maxPacketsPerFile){
|
if(packetsInFile >= (uint32_t)maxPacketsPerFile){
|
||||||
//for packet loss, because currframenum is the latest one for eiger
|
//for packet loss, because currframenum is the latest one for eiger
|
||||||
|
//get frame number (eiger already gets it when it does packet to packet processing)
|
||||||
if(myDetectorType != EIGER){
|
if(myDetectorType != EIGER){
|
||||||
lastpacket = (((packetsToSave - 1) * onePacketSize) + offset);
|
lastpacket = (((packetsToSave - 1) * onePacketSize) + offset);
|
||||||
|
if(myDetectorType == JUNGFRAU){
|
||||||
|
jfrau_packet_header_t* header = (jfrau_packet_header_t*) (wbuffer[0] + lastpacket);
|
||||||
|
currentFrameNumber = (*( (uint64_t*) header->frameNumber));
|
||||||
|
}else{
|
||||||
|
tempframenumber = ((uint32_t)(*((uint32_t*)(wbuffer[0] + lastpacket))));
|
||||||
|
//for gotthard and normal frame, increment frame number to separate fnum and pnum
|
||||||
|
if (myDetectorType == PROPIX ||(myDetectorType == GOTTHARD && shortFrameEnable == -1))
|
||||||
|
tempframenumber++;
|
||||||
|
//get frame number
|
||||||
|
currentFrameNumber = (tempframenumber & frameIndexMask) >> frameIndexOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//get frame number (eiger already gets it when it does packet to packet processing)
|
|
||||||
tempframenumber = ((uint32_t)(*((uint32_t*)(wbuffer[0] + lastpacket))));
|
|
||||||
//for gotthard and normal frame, increment frame number to separate fnum and pnum
|
|
||||||
if (myDetectorType == PROPIX ||(myDetectorType == GOTTHARD && shortFrameEnable == -1))
|
|
||||||
tempframenumber++;
|
|
||||||
//get frame number
|
|
||||||
currentFrameNumber = (tempframenumber & frameIndexMask) >> frameIndexOffset;
|
|
||||||
//set indices
|
//set indices
|
||||||
acquisitionIndex = currentFrameNumber - startAcquisitionIndex;
|
acquisitionIndex = currentFrameNumber - startAcquisitionIndex;
|
||||||
frameIndex = currentFrameNumber - startFrameIndex;
|
frameIndex = currentFrameNumber - startFrameIndex;
|
||||||
|
Reference in New Issue
Block a user