diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 8597f8d43..de13dc086 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -462,13 +462,12 @@ double Implementation::getProgress() const { uint64_t currentFrameIndex = -1; uint32_t flagsum = 0; - for (const auto &it : dataProcessor) { + for (const auto &it : listener) { flagsum += it->GetStartedFlag(); - currentFrameIndex = - std::min(currentFrameIndex, it->GetProcessedIndex()); + currentFrameIndex = std::max(currentFrameIndex, it->GetListenedIndex()); } // no data processed - if (flagsum != dataProcessor.size()) { + if (flagsum != listener.size()) { currentFrameIndex = -1; } diff --git a/slsReceiverSoftware/src/Listener.cpp b/slsReceiverSoftware/src/Listener.cpp index 7bbab2ab0..5902de4de 100644 --- a/slsReceiverSoftware/src/Listener.cpp +++ b/slsReceiverSoftware/src/Listener.cpp @@ -57,6 +57,10 @@ bool Listener::GetStartedFlag() { return startedFlag; } uint64_t Listener::GetCurrentFrameIndex() { return currentFrameIndex; } +uint64_t Listener::GetListenedIndex() { + return currentFrameIndex_ - firstIndex_; +} + void Listener::SetFifo(Fifo *f) { fifo = f; } void Listener::ResetParametersforNewAcquisition() { diff --git a/slsReceiverSoftware/src/Listener.h b/slsReceiverSoftware/src/Listener.h index d5eb01a68..9a02449b3 100644 --- a/slsReceiverSoftware/src/Listener.h +++ b/slsReceiverSoftware/src/Listener.h @@ -70,6 +70,8 @@ class Listener : private virtual slsDetectorDefs, public ThreadObject { bool GetStartedFlag(); uint64_t GetCurrentFrameIndex(); + /** (-1 if no frames have been caught) */ + uint64_t GetListenedIndex(); /** * Set Fifo pointer to the one given