From d62354993059b2cea99912e6dc98a4d3f5b1ffd4 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Sun, 21 Jan 2018 15:31:13 +0100 Subject: [PATCH] Writer manager refactoring --- src/WriterManager.cpp | 75 ++----------------------------------------- src/WriterManager.hpp | 9 +++--- src/h5_zmq_writer.cpp | 71 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 76 deletions(-) diff --git a/src/WriterManager.cpp b/src/WriterManager.cpp index 96ec352..0eb56fe 100644 --- a/src/WriterManager.cpp +++ b/src/WriterManager.cpp @@ -1,84 +1,15 @@ -#include "WriterManager.hpp" #include +#include "WriterManager.hpp" + using namespace std; -WriterManager::WriterManager(uint64_t n_images, std::string dataset_name): +WriterManager::WriterManager(uint64_t n_images): n_images(n_images), running_flag(true), n_received_frames(0), n_written_frames(0) { #ifdef DEBUG_OUTPUT cout << "[WriterManager::WriterManager] Writer manager for n_images " << n_images << endl; - cout << "[WriterManager::WriterManager] Using dataset_name " << dataset_name << endl; #endif - - // TODO: Remove this. This is needed only for testing. - parameters.insert({"sl2wv", 1.0}); - parameters.insert({"sl0ch", 1.0}); - parameters.insert({"sl2wh", 1.0}); - parameters.insert({"temp_mono_cryst_1", 1.0}); - parameters.insert({"harmonic", 2}); - parameters.insert({"mokev", 1.0}); - parameters.insert({"sl2cv", 1.0}); - parameters.insert({"bpm4_gain_setting", 1.0}); - parameters.insert({"mirror_coating", string("test_char")}); - parameters.insert({"samx", 1.0}); - parameters.insert({"sample_name", string("test_char")}); - parameters.insert({"bpm5y", 1.0}); - parameters.insert({"sl2ch", 1.0}); - parameters.insert({"curr", 1.0}); - parameters.insert({"bs2_status", string("test_char")}); - parameters.insert({"bs2y", 1.0}); - parameters.insert({"diode", 1.0}); - parameters.insert({"samy", 1.0}); - parameters.insert({"sl4ch", 1.0}); - parameters.insert({"sl4wh", 1.0}); - parameters.insert({"temp_mono_cryst_2", 1.0}); - parameters.insert({"sl3wh", 1.0}); - parameters.insert({"mith", 1.0}); - parameters.insert({"bs1_status", string("test_char")}); - parameters.insert({"bpm4s", 1.0}); - parameters.insert({"sl0wh", 1.0}); - parameters.insert({"bpm6z", 1.0}); - parameters.insert({"bs1y", 1.0}); - parameters.insert({"scan", string("test_char")}); - parameters.insert({"bpm5_gain_setting", 1.0}); - parameters.insert({"bpm4z", 1.0}); - parameters.insert({"bpm4x", 1.0}); - parameters.insert({"date", string("test_char")}); - parameters.insert({"mibd", 1.0}); - parameters.insert({"temp", 1.0}); - parameters.insert({"idgap", 1.0}); - parameters.insert({"sl4cv", 1.0}); - parameters.insert({"sl1wv", 1.0}); - parameters.insert({"sl3wv", 1.0}); - parameters.insert({"sl1ch", 1.0}); - parameters.insert({"bs2x", 1.0}); - parameters.insert({"bpm6_gain_setting", 1.0}); - parameters.insert({"bpm4y", 1.0}); - parameters.insert({"bpm6s", 1.0}); - parameters.insert({"sample_description", string("test_char")}); - parameters.insert({"bpm5z", 1.0}); - parameters.insert({"moth1", 1.0}); - parameters.insert({"sec", 1.0}); - parameters.insert({"sl3cv", 1.0}); - parameters.insert({"bs1x", 1.0}); - parameters.insert({"bpm6_saturation_value", 1.0}); - parameters.insert({"bpm5s", 1.0}); - parameters.insert({"mobd", 1.0}); - parameters.insert({"sl1wh", 1.0}); - parameters.insert({"sl4wv", 1.0}); - parameters.insert({"bs2_det_dist", 1.0}); - parameters.insert({"bpm5_saturation_value", 1.0}); - parameters.insert({"fil_comb_description", string("test_char")}); - parameters.insert({"bpm5x", 1.0}); - parameters.insert({"bpm4_saturation_value", 1.0}); - parameters.insert({"bs1_det_dist", 1.0}); - parameters.insert({"sl3ch", 1.0}); - parameters.insert({"bpm6y", 1.0}); - parameters.insert({"sl1cv", 1.0}); - parameters.insert({"bpm6x", 1.0}); - parameters.insert({"ftrans", 1.0}); - parameters.insert({"samz", 1.0}); } void WriterManager::stop() diff --git a/src/WriterManager.hpp b/src/WriterManager.hpp index 5e133b6..ea14502 100644 --- a/src/WriterManager.hpp +++ b/src/WriterManager.hpp @@ -5,7 +5,6 @@ #include #include #include -#include "h5_utils.hpp" class WriterManager { @@ -18,13 +17,15 @@ class WriterManager std::atomic_int n_written_frames; public: - WriterManager(uint64_t n_images=0, std::string dataset_name="data"); + WriterManager(uint64_t n_images=0); void stop(); + bool is_running(); std::string get_status(); - std::map get_statistics(); + std::map& get_parameters(); void set_parameters(std::map& new_parameters); - bool is_running(); + + std::map get_statistics(); void received_frame(size_t frame_index); void written_frame(size_t frame_index); }; diff --git a/src/h5_zmq_writer.cpp b/src/h5_zmq_writer.cpp index 536b212..c08406c 100644 --- a/src/h5_zmq_writer.cpp +++ b/src/h5_zmq_writer.cpp @@ -142,6 +142,77 @@ void run_writer(string connect_address, string output_file, uint64_t n_images, u WriterManager manager(n_images); RingBuffer ring_buffer(n_slots); + // TODO: Remove this. This is needed only for testing. + std::map parameters = {}; + parameters.insert({"sl2wv", 1.0}); + parameters.insert({"sl0ch", 1.0}); + parameters.insert({"sl2wh", 1.0}); + parameters.insert({"temp_mono_cryst_1", 1.0}); + parameters.insert({"harmonic", 2}); + parameters.insert({"mokev", 1.0}); + parameters.insert({"sl2cv", 1.0}); + parameters.insert({"bpm4_gain_setting", 1.0}); + parameters.insert({"mirror_coating", string("test_char")}); + parameters.insert({"samx", 1.0}); + parameters.insert({"sample_name", string("test_char")}); + parameters.insert({"bpm5y", 1.0}); + parameters.insert({"sl2ch", 1.0}); + parameters.insert({"curr", 1.0}); + parameters.insert({"bs2_status", string("test_char")}); + parameters.insert({"bs2y", 1.0}); + parameters.insert({"diode", 1.0}); + parameters.insert({"samy", 1.0}); + parameters.insert({"sl4ch", 1.0}); + parameters.insert({"sl4wh", 1.0}); + parameters.insert({"temp_mono_cryst_2", 1.0}); + parameters.insert({"sl3wh", 1.0}); + parameters.insert({"mith", 1.0}); + parameters.insert({"bs1_status", string("test_char")}); + parameters.insert({"bpm4s", 1.0}); + parameters.insert({"sl0wh", 1.0}); + parameters.insert({"bpm6z", 1.0}); + parameters.insert({"bs1y", 1.0}); + parameters.insert({"scan", string("test_char")}); + parameters.insert({"bpm5_gain_setting", 1.0}); + parameters.insert({"bpm4z", 1.0}); + parameters.insert({"bpm4x", 1.0}); + parameters.insert({"date", string("test_char")}); + parameters.insert({"mibd", 1.0}); + parameters.insert({"temp", 1.0}); + parameters.insert({"idgap", 1.0}); + parameters.insert({"sl4cv", 1.0}); + parameters.insert({"sl1wv", 1.0}); + parameters.insert({"sl3wv", 1.0}); + parameters.insert({"sl1ch", 1.0}); + parameters.insert({"bs2x", 1.0}); + parameters.insert({"bpm6_gain_setting", 1.0}); + parameters.insert({"bpm4y", 1.0}); + parameters.insert({"bpm6s", 1.0}); + parameters.insert({"sample_description", string("test_char")}); + parameters.insert({"bpm5z", 1.0}); + parameters.insert({"moth1", 1.0}); + parameters.insert({"sec", 1.0}); + parameters.insert({"sl3cv", 1.0}); + parameters.insert({"bs1x", 1.0}); + parameters.insert({"bpm6_saturation_value", 1.0}); + parameters.insert({"bpm5s", 1.0}); + parameters.insert({"mobd", 1.0}); + parameters.insert({"sl1wh", 1.0}); + parameters.insert({"sl4wv", 1.0}); + parameters.insert({"bs2_det_dist", 1.0}); + parameters.insert({"bpm5_saturation_value", 1.0}); + parameters.insert({"fil_comb_description", string("test_char")}); + parameters.insert({"bpm5x", 1.0}); + parameters.insert({"bpm4_saturation_value", 1.0}); + parameters.insert({"bs1_det_dist", 1.0}); + parameters.insert({"sl3ch", 1.0}); + parameters.insert({"bpm6y", 1.0}); + parameters.insert({"sl1cv", 1.0}); + parameters.insert({"bpm6x", 1.0}); + parameters.insert({"ftrans", 1.0}); + parameters.insert({"samz", 1.0}); + manager.set_parameters(parameters); + #ifdef DEBUG_OUTPUT cout << "[h5_zmq_writer::run_writer] Running writer"; cout << " with connect_address " << connect_address;