eiger image assemble routine.

This commit is contained in:
lhdamiani
2021-07-05 22:03:41 +02:00
parent 4b8bada7ed
commit a81c1fa773
9 changed files with 142 additions and 84 deletions
+28 -3
View File
@@ -2,25 +2,50 @@
#ifndef SF_DAQ_BUFFER_EIGERASSEMBLER_HPP
#define SF_DAQ_BUFFER_EIGERASSEMBLER_HPP
#include <iostream>
#include <cstddef>
class EigerAssembler {
const int n_modules_;
const int bit_depth_;
const int n_eiger_modules_;
const uint32_t n_bytes_per_frame_;
const uint32_t n_bytes_per_module_line_;
const uint32_t n_packets_per_frame_;
const uint32_t n_bytes_per_gap_;
const uint32_t n_bytes_per_x_gap_;
const uint32_t n_bytes_per_y_gap_;
const uint32_t n_bytes_per_eiger_x_gap_;
const uint32_t n_bytes_per_eiger_y_gap_;
const uint32_t n_bytes_per_image_line_;
const int n_lines_per_frame_;
const int image_bytes_;
public:
EigerAssembler(const int n_modules, const int bit_depth);
void assemble_image(const char* src_meta, const char* src_data,
char* dst_meta, char* dst_data) const;
size_t get_image_n_bytes();
size_t get_image_n_bytes() const;
size_t get_module_n_bytes() const;
friend std::ostream& operator<<(std::ostream& os, const EigerAssembler& p)
{
return os << "( n_bytes_per_frame_"
<< p.n_bytes_per_frame_ << ", n_bytes_per_module_line_"
<< p.n_bytes_per_module_line_ << ", n_packets_per_frame_"
<< p.n_packets_per_frame_ << ", n_bytes_per_x_gap_"
<< p.n_bytes_per_x_gap_ << ", n_bytes_per_y_gap_"
<< p.n_bytes_per_y_gap_ << ", n_bytes_per_eiger_x_gap_"
<< p.n_bytes_per_eiger_x_gap_ << ", n_bytes_per_eiger_y_gap_"
<< p.n_bytes_per_eiger_y_gap_ << ", n_bytes_per_image_line_"
<< p.n_bytes_per_image_line_ << ", n_lines_per_frame_"
<< p.n_lines_per_frame_ << ", image_bytes_"
<< p.image_bytes_ << ", n_modules_"
<< p.n_modules_ << ", bit_depth_"
<< p.bit_depth_ << ""
<< ")";
}
};