diff --git a/sf-writer/include/BufferedFastQueue.hpp b/sf-writer/include/BufferedFastQueue.hpp deleted file mode 100644 index b690f3e..0000000 --- a/sf-writer/include/BufferedFastQueue.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SF_DAQ_BUFFER_BUFFEREDFASTQUEUE_HPP -#define SF_DAQ_BUFFER_BUFFEREDFASTQUEUE_HPP - -#include "FastQueue.hpp" -#include "WriterH5Writer.hpp" - - -class BufferedFastQueue { - FastQueue& queue_; - const size_t buffer_n_pulses_; - const size_t n_modules_; - - ImageMetadataBuffer* queue_meta_buffer_ = nullptr; - char* queue_data_buffer_ = nullptr; - int current_slot_id_ = -1; - - ImageMetadata image_metadata_; - -public: - BufferedFastQueue(FastQueue& queue, - const size_t buffer_n_pulses, - const size_t n_modules); - - ImageMetadata* get_metadata_buffer(); - char* get_data_buffer(); - - void commit(); - void finalize(); -}; - - -#endif //SF_DAQ_BUFFER_BUFFEREDFASTQUEUE_HPP diff --git a/sf-writer/src/BufferedFastQueue.cpp b/sf-writer/src/BufferedFastQueue.cpp deleted file mode 100644 index abe10be..0000000 --- a/sf-writer/src/BufferedFastQueue.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include "BufferedFastQueue.hpp" -#include - -using namespace std; -using namespace core_buffer; - -BufferedFastQueue::BufferedFastQueue( - FastQueue& queue, - const size_t buffer_n_pulses, - const size_t n_modules) : - buffer_n_pulses_(buffer_n_pulses), - queue_(queue), - n_modules_(n_modules) -{ - while ((current_slot_id_ = queue_.reserve()) == -1){ - this_thread::sleep_for( - chrono::milliseconds(RB_READ_RETRY_INTERVAL_MS)); - } - - queue_meta_buffer_ = queue_.get_metadata_buffer(current_slot_id_); - queue_meta_buffer_->n_pulses_in_buffer = 0; - queue_data_buffer_ = queue_.get_data_buffer(current_slot_id_); -} - -ImageMetadata* BufferedFastQueue::get_metadata_buffer() -{ - return &image_metadata_; -} - -char* BufferedFastQueue::get_data_buffer() -{ - auto index = queue_meta_buffer_->n_pulses_in_buffer; - auto image_size = MODULE_N_BYTES * n_modules_; - - return queue_data_buffer_ + (index * image_size); -} - -void BufferedFastQueue::commit() -{ - auto index = queue_meta_buffer_->n_pulses_in_buffer; - - queue_meta_buffer_->pulse_id[index] = image_metadata_.pulse_id; - queue_meta_buffer_->frame_index[index] = image_metadata_.frame_index; - queue_meta_buffer_->daq_rec[index] = image_metadata_.daq_rec; - queue_meta_buffer_->is_good_image[index] = image_metadata_.is_good_frame; - queue_meta_buffer_->data_n_bytes[index] = image_metadata_.data_n_bytes; - - queue_meta_buffer_->n_pulses_in_buffer++; - - if (queue_meta_buffer_->n_pulses_in_buffer == buffer_n_pulses_) { - queue_.commit(); - - while ((current_slot_id_ = queue_.reserve()) == -1){ - this_thread::sleep_for( - chrono::milliseconds(RB_READ_RETRY_INTERVAL_MS)); - } - - queue_meta_buffer_ = queue_.get_metadata_buffer(current_slot_id_); - queue_meta_buffer_->n_pulses_in_buffer = 0; - queue_data_buffer_ = queue_.get_data_buffer(current_slot_id_); - } -} - -void BufferedFastQueue::finalize() { - if (queue_meta_buffer_->n_pulses_in_buffer > 0) { - queue_.commit(); - } -} \ No newline at end of file diff --git a/sf-writer/src/WriterH5Writer.cpp b/sf-writer/src/WriterH5Writer.cpp index 8009eee..0d921c0 100644 --- a/sf-writer/src/WriterH5Writer.cpp +++ b/sf-writer/src/WriterH5Writer.cpp @@ -109,7 +109,7 @@ void WriterH5Writer::close_file() void WriterH5Writer::write( const ImageMetadataBuffer* metadata, const char* data) { - auto n_images_in_buffer = metadata->n_pulses_in_buffer; + auto n_images_in_buffer = metadata->n_images; hsize_t b_i_dims[3] = { n_images_in_buffer,