v1.0.0-rc.144 (#54)
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m58s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m53s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m39s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 7m34s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 9m18s
Build Packages / build:rpm (rocky8) (push) Successful in 10m4s
Build Packages / build:rpm (rocky9) (push) Successful in 11m17s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 9m47s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m47s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 10m33s
Build Packages / Generate python client (push) Successful in 27s
Build Packages / Unit tests (push) Has been skipped
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 1m8s
Build Packages / XDS test (durin plugin) (push) Successful in 7m40s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 7m23s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m9s
Build Packages / DIALS test (push) Successful in 11m15s

This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132.

* jfjoch_broker: Improve performance of preview JPEG image generator at receiver startup (saving about 150 ms on measurement start for 16M)

Reviewed-on: #54
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
This commit was merged in pull request #54.
This commit is contained in:
2026-05-01 17:06:36 +02:00
committed by leonarski_f
parent 6e0bb971ac
commit 7d34e8a049
147 changed files with 294 additions and 207 deletions
+37 -7
View File
@@ -10,7 +10,7 @@ TEST_CASE("PixelMask_MaskModuleEdges","[PixelMask]") {
PixelMask mask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
auto mask_out = mask.GetMaskRaw();
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
@@ -33,7 +33,7 @@ TEST_CASE("PixelMask_MaskChipEdges","[PixelMask]") {
experiment.MaskChipEdges(true).MaskModuleEdges(false).Raw();
PixelMask mask(experiment);
auto mask_out = mask.GetMaskRaw(experiment);
auto mask_out = mask.GetMaskRaw();
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[255] == (1u<<31));
@@ -73,7 +73,7 @@ TEST_CASE("PixelMask_MaskWrongGain","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMaskRaw(experiment);
auto mask_out = mask.GetMaskRaw();
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[2*RAW_MODULE_SIZE + 345] != 0);
@@ -89,7 +89,7 @@ TEST_CASE("PixelMask_MaskWrongGain","[PixelMask]") {
REQUIRE(!experiment.IsMaskPixelsWithoutG0());
mask.LoadDetectorBadPixelMask(experiment, &calibration);
mask_out = mask.GetMaskRaw(experiment);
mask_out = mask.GetMaskRaw();
CHECK(mask_out[2*RAW_MODULE_SIZE + 345] == 0);
CHECK(mask_out[2*RAW_MODULE_SIZE + 346] != 0);
@@ -126,7 +126,7 @@ TEST_CASE("PixelMask_MaskG0RMS","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMaskRaw(experiment);
auto mask_out = mask.GetMaskRaw();
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[2*RAW_MODULE_SIZE + 245] == (1 << PixelMask::NoisyPixelBit));
@@ -164,7 +164,7 @@ TEST_CASE("PixelMask_SCs","[PixelMask]") {
mask.LoadDetectorBadPixelMask(experiment, &calibration);
auto mask_out = mask.GetMaskRaw(experiment);
auto mask_out = mask.GetMaskRaw();
REQUIRE(mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK(mask_out[456] == (1 << PixelMask::ErrorPixelBit));
@@ -199,6 +199,10 @@ TEST_CASE("PixelMask_CalculateNexusMask_UserMaskConv","[PixelMask]") {
REQUIRE(user_mask_v[1030 * 700 + 300] == 1);
REQUIRE(user_mask_v[(1030+8)*514] == 0);
experiment.Raw();
const auto &raw_mask_v = mask.GetMask(experiment);
REQUIRE(raw_mask_v.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
}
TEST_CASE("PixelMask_MaskDetectorGaps","[PixelMask]") {
@@ -271,7 +275,7 @@ TEST_CASE("PixelMask_LoadDarkBadPixelMask","[PixelMask]") {
dark_mask[534] = 1; // On gap, should be ignored
dark_mask[2 * 1000 * 5] = 1; // bad pixel, should be ignored
dark_mask[67867] = 1; // Nothing else, should be included
mask.LoadDarkBadPixelMask(dark_mask);
mask.LoadDarkBadPixelMask(experiment, dark_mask);
CHECK(mask.GetStatistics().user_mask == 2);
CHECK(mask.GetStatistics().error_pixel == 4);
@@ -282,4 +286,30 @@ TEST_CASE("PixelMask_LoadDarkBadPixelMask","[PixelMask]") {
CHECK(mask.GetMask()[534] == (1 << PixelMask::ModuleGapPixelBit));
CHECK(mask.GetMask()[2 * 1000 * 5] == (1 << PixelMask::ErrorPixelBit));
CHECK(mask.GetMask()[67867] == (1 << PixelMask::NoisyPixelBit));
}
TEST_CASE("PixelMask_LoadUserMaskRaw_UpdatesCachedRawMask", "[PixelMask]") {
DiffractionExperiment experiment(DetJF(1, 1));
experiment.MaskModuleEdges(true).MaskChipEdges(false).Raw();
PixelMask mask(experiment);
std::vector<uint32_t> raw_user_mask(experiment.GetModulesNum() * RAW_MODULE_SIZE, 0);
raw_user_mask[345] = 1;
REQUIRE_NOTHROW(mask.LoadUserMask(experiment, raw_user_mask));
const auto &raw_mask_out = mask.GetMaskRaw();
REQUIRE(raw_mask_out.size() == experiment.GetModulesNum() * RAW_MODULE_SIZE);
CHECK((raw_mask_out[345] & (1u << PixelMask::UserMaskedPixelBit)) != 0);
CHECK((raw_mask_out[0] & (1u << PixelMask::ModuleEdgePixelBit)) != 0);
}
TEST_CASE("PixelMask_GetMaskRaw_ThrowsForDECTRIS", "[PixelMask]") {
DiffractionExperiment experiment(DetDECTRIS(2068, 2164, "Test", ""));
PixelMask mask(experiment);
REQUIRE_THROWS(mask.GetMaskRaw());
REQUIRE(mask.GetMask(experiment).size() == experiment.GetPixelsNum());
}