From 7524e3fb622fdbe36209e7588a067733b3d25692 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Tue, 21 Apr 2020 11:41:01 +0200 Subject: [PATCH] Adjust interface and usage --- sf-writer/BufferMultiReader.hpp | 13 ++++++++----- sf-writer/sf_h5_writer.cpp | 10 ++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/sf-writer/BufferMultiReader.hpp b/sf-writer/BufferMultiReader.hpp index dc03bd6..ea0e2de 100644 --- a/sf-writer/BufferMultiReader.hpp +++ b/sf-writer/BufferMultiReader.hpp @@ -6,16 +6,17 @@ class BufferMultiReader { - const std::string device_name; - const std::string root_folder; - + const std::string device_name_; + const std::string root_folder_; std::atomic_bool is_running_; + uint16_t* frame_buffer_; + std::atomic_int n_modules_left_; std::atomic_uint64_t pulse_id_; std::vector receiving_threads_; protected: - void read_thread(); + void read_thread(uint8_t module_number); public: BufferMultiReader( @@ -24,7 +25,9 @@ public: virtual ~BufferMultiReader(); - UdpFrameMetadata get_frame(const uint64_t pulse_id, void* frame_buffer); + char* get_buffer(); + + UdpFrameMetadata load_frame_to_buffer(const uint64_t pulse_id); }; #endif \ No newline at end of file diff --git a/sf-writer/sf_h5_writer.cpp b/sf-writer/sf_h5_writer.cpp index 7a8c4ba..ee9e20f 100644 --- a/sf-writer/sf_h5_writer.cpp +++ b/sf-writer/sf_h5_writer.cpp @@ -37,7 +37,7 @@ int main (int argc, char *argv[]) BufferMultiReader reader(device_name, root_folder); UdpFrameMetadata metadata; - uint16_t* frame_buffer = new uint16_t[32*512*1024]; + char* frame_buffer = reader.get_buffer(); H5Writer writer(output_file); @@ -45,7 +45,11 @@ int main (int argc, char *argv[]) pulse_id <= stop_pulse_id; pulse_id++) { - metadata = reader.get(pulse_id, (void*) frame_buffer); + metadata = reader.load_frame_to_buffer(pulse_id); + + writer.write_data("frame", pulse_id, + frame_buffer, + {32*512, 1024}, 2, "uint16", "little"); writer.write_data("pulse_id", pulse_id, (char*)&(metadata.pulse_id), @@ -69,8 +73,6 @@ int main (int argc, char *argv[]) {1}, 8, "uint64", "little"); } - reader.close(); - return 0; }