receive multimodule (#65)

* add config files for multimodule receiving

* read subfiles with unordered and missing frames

* save work debugging

* Revert "save work debugging"

This reverts commit e791992a05.

* Revert "read subfiles with unordered and missing frames"

This reverts commit 1177fd129d.

* throw when two frames have different frame numbers

* write single part RawFile (working beta)

* correct total number of frames in master file

* add new mythen file with syncd frames

* save work

* save work for receive multimodule
multimodule config results in too much packet loss. needs more debugging.

* setup Task Distributiosn/ parallelization programming model

* read frames with same frame number

* clang-tidy fixes, formatting, add tests

* added second receiver

* Synchronize between zmq streams and merge frames

* improve readability in loop

* fix failing tests

* add simple test for merge frames

---------

Co-authored-by: Bechir <bechir.brahem420@gmail.com>
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
This commit is contained in:
Bechir Braham
2024-05-07 11:06:37 +02:00
committed by GitHub
parent 70acfbf4ac
commit 9637d0602f
37 changed files with 775 additions and 128 deletions

View File

@ -77,7 +77,7 @@ void RawFile::write_master_file() {
aare::write_str(ss, "Geometry", geometry.to_string());
ss += "\n\t";
uint64_t img_size = (m_cols * m_rows) / (geometry.col * geometry.row);
uint64_t img_size = (m_cols * m_rows) / (static_cast<size_t>(geometry.col * geometry.row));
img_size *= m_bitdepth;
aare::write_digit(ss, "Image Size in bytes", img_size);
ss += "\n\t";
@ -85,7 +85,8 @@ void RawFile::write_master_file() {
ss += "\n\t";
aare::write_digit(ss, "Dynamic Range", m_bitdepth);
ss += "\n\t";
const aare::xy pixels = {m_rows / geometry.row, m_cols / geometry.col};
const aare::xy pixels = {static_cast<uint32_t>(m_rows / geometry.row),
static_cast<uint32_t>(m_cols / geometry.col)};
aare::write_str(ss, "Pixels", pixels.to_string());
ss += "\n\t";
aare::write_digit(ss, "Number of rows", m_rows);
@ -266,10 +267,8 @@ void RawFile::parse_raw_metadata() {
max_frames_per_file = std::stoi(value);
} else if (key == "Geometry") {
pos = value.find(',');
const size_t x = static_cast<size_t>(std::stoi(value.substr(1, pos)));
const size_t y = static_cast<size_t>(std::stoi(value.substr(pos + 1)));
geometry = {x, y};
geometry = {static_cast<uint32_t>(std::stoi(value.substr(1, pos))),
static_cast<uint32_t>(std::stoi(value.substr(pos + 1)))};
}
}
}