From 0df85989521b7f4ec8e9c81a8b3bf41bc61adbc6 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Tue, 19 Jan 2021 13:22:20 +0100 Subject: [PATCH] Separate image assembly and image retrieval in RamBuffer --- core-buffer/include/RamBuffer.hpp | 4 +++- core-buffer/src/RamBuffer.cpp | 14 ++++++++------ core-buffer/test/test_RamBuffer.cpp | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/core-buffer/include/RamBuffer.hpp b/core-buffer/include/RamBuffer.hpp index 45b67a1..91872cb 100644 --- a/core-buffer/include/RamBuffer.hpp +++ b/core-buffer/include/RamBuffer.hpp @@ -30,7 +30,9 @@ public: const uint64_t module_id, ModuleFrame &meta, char *data) const; - char* read_image(const uint64_t pulse_id, ImageMetadata &image_meta) const; + char* read_image(const uint64_t pulse_id) const; + void assemble_image( + const uint64_t pulse_id, ImageMetadata &image_meta) const; }; diff --git a/core-buffer/src/RamBuffer.cpp b/core-buffer/src/RamBuffer.cpp index 581ab73..ff14011 100644 --- a/core-buffer/src/RamBuffer.cpp +++ b/core-buffer/src/RamBuffer.cpp @@ -85,15 +85,12 @@ void RamBuffer::read_frame( memcpy(dst_data, src_data, MODULE_N_BYTES); } -char* RamBuffer::read_image(const uint64_t pulse_id, - ImageMetadata &image_meta) const +void RamBuffer::assemble_image( + const uint64_t pulse_id, ImageMetadata &image_meta) const { const size_t slot_n = pulse_id % n_slots_; - ModuleFrame *src_meta = meta_buffer_ + (n_modules_ * slot_n); - char *src_data = image_buffer_ + (image_bytes_ * slot_n); - auto is_pulse_init = false; auto is_good_image = true; @@ -158,7 +155,12 @@ char* RamBuffer::read_image(const uint64_t pulse_id, image_meta.frame_index = 0; image_meta.daq_rec = 0; } +} + +char* RamBuffer::read_image(const uint64_t pulse_id) const +{ + const size_t slot_n = pulse_id % n_slots_; + char *src_data = image_buffer_ + (image_bytes_ * slot_n); return src_data; } - diff --git a/core-buffer/test/test_RamBuffer.cpp b/core-buffer/test/test_RamBuffer.cpp index 55c3a7c..d28dd81 100644 --- a/core-buffer/test/test_RamBuffer.cpp +++ b/core-buffer/test/test_RamBuffer.cpp @@ -29,7 +29,7 @@ TEST(RamBuffer, simple_store) } ImageMetadata image_meta; - buffer.read_image(frame_meta.pulse_id, image_meta); + buffer.assemble_image(frame_meta.pulse_id, image_meta); ASSERT_EQ(image_meta.pulse_id, frame_meta.pulse_id); ASSERT_EQ(image_meta.daq_rec, frame_meta.daq_rec); ASSERT_EQ(image_meta.frame_index, frame_meta.frame_index);