mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
rxr: missing packets, stopacquistion lets rxr know to calculate missing packets from last frame caught
This commit is contained in:
@ -103,6 +103,7 @@ void Implementation::InitializeMembers() {
|
||||
dataStreamEnable = false;
|
||||
streamingPort = 0;
|
||||
streamingSrcIP = 0u;
|
||||
stoppedFlag = false;
|
||||
|
||||
//** class objects ***
|
||||
generalData = nullptr;
|
||||
@ -249,6 +250,21 @@ uint64_t Implementation::getAcquisitionIndex() const {
|
||||
return min;
|
||||
}
|
||||
|
||||
std::vector<uint64_t> Implementation::getNumMissingPackets() const {
|
||||
std::vector<uint64_t> mp(numThreads);
|
||||
for (int i = 0; i < numThreads; i++) {
|
||||
int np = generalData->packetsPerFrame;
|
||||
uint64_t totnp = np;
|
||||
// partial readout
|
||||
if (numLinesReadout != MAX_EIGER_ROWS_PER_READOUT) {
|
||||
totnp = ((numLinesReadout * np) / MAX_EIGER_ROWS_PER_READOUT);
|
||||
}
|
||||
totnp *= numberOfFrames;
|
||||
mp[i] = listener[i]->GetNumMissingPacket(stoppedFlag, totnp);
|
||||
}
|
||||
return mp;
|
||||
}
|
||||
|
||||
/***connection parameters***/
|
||||
uint32_t Implementation::getUDPPortNumber() const {
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
@ -1204,6 +1220,7 @@ void Implementation::setDetectorPositionId(const int id) {
|
||||
int Implementation::startReceiver(std::string& err) {
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
FILE_LOG(logINFO) << "Starting Receiver";
|
||||
stoppedFlag = false;
|
||||
ResetParametersforNewAcquisition();
|
||||
|
||||
// listener
|
||||
@ -1247,6 +1264,10 @@ int Implementation::startReceiver(std::string& err) {
|
||||
return OK;
|
||||
}
|
||||
|
||||
void Implementation::setStoppedFlag(bool stopped) {
|
||||
stoppedFlag = stopped;
|
||||
}
|
||||
|
||||
void Implementation::stopReceiver() {
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
FILE_LOG(logINFO) << "Stopping Receiver";
|
||||
@ -1297,29 +1318,20 @@ void Implementation::stopReceiver() {
|
||||
FILE_LOG(logINFO) << "Status: " << sls::ToString(status);
|
||||
|
||||
{ // statistics
|
||||
std::vector<uint64_t> mp = getNumMissingPackets();
|
||||
uint64_t tot = 0;
|
||||
for (int i = 0; i < numThreads; i++) {
|
||||
tot += dataProcessor[i]->GetNumFramesCaught();
|
||||
int64_t missingpackets =
|
||||
numberOfFrames * generalData->packetsPerFrame -
|
||||
listener[i]->GetPacketsCaught();
|
||||
|
||||
// partial readout
|
||||
if (numLinesReadout != MAX_EIGER_ROWS_PER_READOUT) {
|
||||
int maxnp = generalData->packetsPerFrame;
|
||||
int np = ((numLinesReadout * maxnp) / MAX_EIGER_ROWS_PER_READOUT);
|
||||
missingpackets = numberOfFrames * np - listener[i]->GetPacketsCaught();
|
||||
}
|
||||
int nf = dataProcessor[i]->GetNumFramesCaught();
|
||||
tot += nf;
|
||||
|
||||
TLogLevel lev =
|
||||
(((int64_t)missingpackets) > 0) ? logINFORED : logINFOGREEN;
|
||||
(((int64_t)mp[i]) > 0) ? logINFORED : logINFOGREEN;
|
||||
FILE_LOG(lev) <<
|
||||
// udp port number could be the second if selected interface is
|
||||
// 2 for jungfrau
|
||||
"Summary of Port " << udpPortNum[i]
|
||||
<< "\n\tMissing Packets\t\t: " << missingpackets
|
||||
<< "\n\tComplete Frames\t\t: "
|
||||
<< dataProcessor[i]->GetNumFramesCaught()
|
||||
<< "\n\tMissing Packets\t\t: " << mp[i]
|
||||
<< "\n\tComplete Frames\t\t: " << nf
|
||||
<< "\n\tLast Frame Caught\t: "
|
||||
<< listener[i]->GetLastFrameIndexCaught();
|
||||
}
|
||||
|
Reference in New Issue
Block a user