diff --git a/jf-assembler/include/AssemblerStats.hpp b/jf-assembler/include/AssemblerStats.hpp index 170521a..6dc13fd 100644 --- a/jf-assembler/include/AssemblerStats.hpp +++ b/jf-assembler/include/AssemblerStats.hpp @@ -7,7 +7,7 @@ class AssemblerStats { const std::string detector_name_; - const size_t stats_modulo_; + const size_t stats_time_; int image_counter_; int n_corrupted_images_; @@ -19,7 +19,7 @@ class AssemblerStats { public: AssemblerStats(const std::string &detector_name, - const size_t stats_modulo); + const size_t stats_time); void record_stats(const ImageMetadata *meta, const uint32_t n_lost_pulses); }; diff --git a/jf-assembler/src/AssemblerStats.cpp b/jf-assembler/src/AssemblerStats.cpp index 15e821a..673fe4f 100644 --- a/jf-assembler/src/AssemblerStats.cpp +++ b/jf-assembler/src/AssemblerStats.cpp @@ -7,9 +7,9 @@ using namespace chrono; AssemblerStats::AssemblerStats( const std::string &detector_name, - const size_t stats_modulo) : + const size_t stats_time) : detector_name_(detector_name), - stats_modulo_(stats_modulo) + stats_time_(stats_time) { reset_counters(); } @@ -32,7 +32,10 @@ void AssemblerStats::record_stats( n_corrupted_images_++; } - if (image_counter_ == stats_modulo_) { + const auto time_passed = duration_cast( + steady_clock::now()-stats_interval_start_).count(); + + if (time_passed >= stats_time_*1000) { print_stats(); reset_counters(); } diff --git a/jf-assembler/src/main.cpp b/jf-assembler/src/main.cpp index 2d646f5..6efe04b 100644 --- a/jf-assembler/src/main.cpp +++ b/jf-assembler/src/main.cpp @@ -86,7 +86,7 @@ int main (int argc, char *argv[]) sizeof(ImageMetadata), IMAGE_N_BYTES, 1, buffer_config::RAM_BUFFER_N_SLOTS); - AssemblerStats stats(config.detector_name, ASSEMBLER_STATS_MODULO); + AssemblerStats stats(config.detector_name, STATS_TIME); uint64_t image_id = 0;