Files
Jungfraujoch/receiver/LossyFilter.cpp
2024-03-31 23:08:19 +02:00

25 lines
570 B
C++

// Copyright (2019-2024) Paul Scherrer Institute
#include "LossyFilter.h"
LossyFilter::LossyFilter(bool in_enabled, float in_p)
: enabled(in_enabled), p(in_p) {}
bool LossyFilter::RollDice() {
std::unique_lock<std::mutex> ul(random_m);
if ((p > 0.0) && (distr(mt) < p))
return true;
else
return false;
}
void LossyFilter::ApplyFilter(DataMessage &message) {
if (enabled) {
if (message.indexing_result || RollDice())
message.number = (image_number++);
else
message.number = -1;
}
}