mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-05-01 03:02:22 +02:00
Writer manager refactoring
This commit is contained in:
+3
-72
@@ -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,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);
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user