Dev/filereading for disabled udp (#342)
Build on RHEL9 / build (push) Successful in 2m41s
Build on RHEL8 / build (push) Successful in 3m15s
Run tests using data on local RHEL8 / build (push) Failing after 4m13s
Build on local RHEL8 / build (push) Successful in 2m53s

- handles file reading of disabled udp ports 
- adds members disabled_udp_ports in master file as an optional 
- adds member diasbled_udp_port_types in master file as an optional
- Treats enabled udp ports as ROIs 
- merges/combines consecutive ROis into one 

### To discuss: 

- right now can only handle either ROI or disabled udp ports (disabled
udp ports has higher precedence)
- Should Frames in File be removed from Master File as value is nonsense
for disabled udp ports

---------

Co-authored-by: Erik Fröjdh <erik.frojdh@psi.ch>
This commit is contained in:
mazzol_aandErik Fröjdh authored and GitHub committed 2026-09-03 14:14:57 +02:00
1 parent eddb919328
commit 641ef047b5
25 files changed
+1252 -267

No files matched your search

+57
View File
@@ -0,0 +1,57 @@
#include "aare/ROI.hpp"
#include <catch2/catch_test_macros.hpp>
namespace aare {
TEST_CASE("merge ROIs", "[utility_functions]") {
SECTION("not fully contiguous") {
std::vector<ROI> rois = {ROI{20, 30, 50, 60}, ROI{20, 30, 40, 50},
ROI{10, 20, 40, 50}};
auto merged_rois = merge_consecutive_rois<false, false>(rois);
REQUIRE(merged_rois.size() == 2);
REQUIRE(merged_rois[0] == ROI{10, 30, 40, 50});
REQUIRE(merged_rois[1] == ROI{20, 30, 50, 60});
}
SECTION("complex merge") {
std::vector<ROI> rois = {ROI{40, 50, 20, 30}, ROI{10, 20, 30, 40},
ROI{10, 20, 50, 60}, ROI{20, 30, 30, 40},
ROI{60, 70, 30, 40}, ROI{60, 70, 20, 30},
ROI{20, 30, 20, 30}, ROI{10, 20, 20, 30}};
auto merged_rois = merge_consecutive_rois<false, false>(rois);
REQUIRE(merged_rois.size() == 4);
REQUIRE(merged_rois[0] == ROI{10, 30, 20, 40});
REQUIRE(merged_rois[1] == ROI{10, 20, 50, 60});
REQUIRE(merged_rois[2] == ROI{40, 50, 20, 30});
REQUIRE(merged_rois[3] == ROI{60, 70, 20, 40});
}
SECTION("horizontally aligned") {
std::vector<ROI> rois = {ROI{10, 20, 30, 40}, ROI{10, 20, 50, 60},
ROI{10, 20, 20, 30}};
auto merged_rois = merge_consecutive_rois<true, false>(rois);
REQUIRE(merged_rois.size() == 2);
REQUIRE(merged_rois[0] == ROI{10, 20, 20, 40});
REQUIRE(merged_rois[1] == ROI{10, 20, 50, 60});
}
SECTION("vertically aligned") {
std::vector<ROI> rois = {ROI{10, 20, 30, 40}, ROI{30, 40, 30, 40},
ROI{20, 30, 30, 40}};
auto merged_rois = merge_consecutive_rois<false, true>(rois);
REQUIRE(merged_rois.size() == 1);
REQUIRE(merged_rois[0] == ROI{10, 40, 30, 40});
}
}
} // namespace aare