From 335ec26d6c23cf50cbb2f16289e44bdc6960b196 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Sun, 19 Apr 2020 19:28:30 +0200 Subject: [PATCH] Add device name and root folder to constructor --- core-buffer/include/FastH5Writer.hpp | 17 +++++++++++++++-- sf-buffer/src/sf_buffer.cpp | 11 ++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/core-buffer/include/FastH5Writer.hpp b/core-buffer/include/FastH5Writer.hpp index 2b2bc5f..c882057 100644 --- a/core-buffer/include/FastH5Writer.hpp +++ b/core-buffer/include/FastH5Writer.hpp @@ -5,6 +5,8 @@ #include #include #include +#include +#include class FastH5Writer { @@ -14,6 +16,8 @@ class FastH5Writer { const uint16_t y_frame_size_; const uint16_t x_frame_size_; const size_t frame_bytes_size_; + const std::string device_name_; + const std::string root_folder_; std::string current_output_filename_; H5::H5File current_output_file_; @@ -21,15 +25,24 @@ class FastH5Writer { uint64_t current_pulse_id_; size_t current_frame_index_; + std::unordered_map> buffers_; + std::unordered_map datasets_; + + std::unordered_map scalar_metadata_; + void create_datasets(); + void close_file(); public: FastH5Writer( const size_t n_frames_per_file, const uint16_t y_frame_size, - const uint16_t x_frame_size); + const uint16_t x_frame_size, + const std::string& device_name, + const std::string& root_folder); - template void add_metadata(const std::string& metadata_name); + template void add_scalar_metadata( + const std::string& metadata_name); void set_pulse_id(const uint64_t pulse_id); diff --git a/sf-buffer/src/sf_buffer.cpp b/sf-buffer/src/sf_buffer.cpp index 2e4f73f..446b0cd 100644 --- a/sf-buffer/src/sf_buffer.cpp +++ b/sf-buffer/src/sf_buffer.cpp @@ -48,12 +48,13 @@ int main (int argc, char *argv[]) { const string str_latest_filename ( root_folder + "/" + device_name + "/LATEST"); - FastH5Writer writer(BufferUtils::FILE_MOD, 512, 1024); + FastH5Writer writer( + BufferUtils::FILE_MOD, 512, 1024, device_name, root_folder); - writer.add_metadata("pulse_id"); - writer.add_metadata("frame_id"); - writer.add_metadata("daq_rec"); - writer.add_metadata("received_packets"); + writer.add_scalar_metadata("pulse_id"); + writer.add_scalar_metadata("frame_id"); + writer.add_scalar_metadata("daq_rec"); + writer.add_scalar_metadata("received_packets"); while (true) { auto data = ring_buffer.read();