From 6c15e07acb7bdaee5d4109e43ff0cc7d4198666a Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 10 May 2023 18:46:04 +0200 Subject: [PATCH] JFJochStateMachine: Generate MeasurementStatistics for running dataset --- broker/JFJochStateMachine.cpp | 12 +++++++++++- broker/JFJochStateMachine.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/broker/JFJochStateMachine.cpp b/broker/JFJochStateMachine.cpp index b53c7f8f..bad509fc 100644 --- a/broker/JFJochStateMachine.cpp +++ b/broker/JFJochStateMachine.cpp @@ -172,7 +172,7 @@ void JFJochStateMachine::Start(const JFJochProtoBuf::DatasetSettings& settings) if (measurement.valid()) measurement.get(); // In case measurement was running - clear thread - ClearMeasurementStatistics(); + ClearAndSetMeasurementStatistics(); auto mod_settings = settings; SetDatasetDefaults(mod_settings); @@ -333,6 +333,16 @@ void JFJochStateMachine::SetFullMeasurementOutput(JFJochProtoBuf::BrokerFullStat measurement_statistics = tmp; } +void JFJochStateMachine::ClearAndSetMeasurementStatistics() { + std::unique_lock ul(last_receiver_output_mutex); + measurement_statistics = JFJochProtoBuf::MeasurementStatistics(); + + measurement_statistics->set_file_prefix(experiment.GetFilePrefix()); + measurement_statistics->set_detector_height(experiment.GetXPixelsNum()); + measurement_statistics->set_detector_width(experiment.GetYPixelsNum()); + measurement_statistics->set_detector_pixel_depth(experiment.GetPixelDepth()); +} + void JFJochStateMachine::ClearMeasurementStatistics() { std::unique_lock ul(last_receiver_output_mutex); measurement_statistics.reset(); diff --git a/broker/JFJochStateMachine.h b/broker/JFJochStateMachine.h index afcf6254..07ff62f8 100644 --- a/broker/JFJochStateMachine.h +++ b/broker/JFJochStateMachine.h @@ -43,6 +43,7 @@ class JFJochStateMachine { std::optional measurement_statistics; void SetFullMeasurementOutput(JFJochProtoBuf::BrokerFullStatus &output); void ClearMeasurementStatistics(); + void ClearAndSetMeasurementStatistics(); JFJochProtoBuf::BrokerFullStatus GetFullMeasurementOutput() const; mutable std::mutex data_processing_settings_mutex;