Writer manager refactoring

This commit is contained in:
2018-01-21 15:31:13 +01:00
parent 35270ca2fa
commit d623549930
3 changed files with 79 additions and 76 deletions
+3 -72
View File
@@ -1,84 +1,15 @@
#include "WriterManager.hpp"
#include <iostream>
#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()
+5 -4
View File
@@ -5,7 +5,6 @@
#include <string>
#include <atomic>
#include <boost/any.hpp>
#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<std::string, uint64_t> get_statistics();
std::map<std::string, boost::any>& get_parameters();
void set_parameters(std::map<std::string, boost::any>& new_parameters);
bool is_running();
std::map<std::string, uint64_t> get_statistics();
void received_frame(size_t frame_index);
void written_frame(size_t frame_index);
};
+71
View File
@@ -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<std::string, boost::any> 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;