AcquisitionDeviceGroup: Used to simplify handling multiple aq devices

This commit is contained in:
2023-11-12 13:32:24 +01:00
parent a0c5223512
commit 3e4eb449de
22 changed files with 289 additions and 344 deletions
+4 -17
View File
@@ -7,7 +7,7 @@
#define STORAGE_CELL_FOR_TEST 11
JFJochReceiverOutput RunJFJochReceiverTest(std::vector<AcquisitionDevice *> &aq_devices, ImagePusher &pusher,
JFJochReceiverOutput RunJFJochReceiverTest(AcquisitionDeviceGroup &aq_devices, ImagePusher &pusher,
const DiffractionExperiment &x,
Logger &logger, JFCalibration &calib,
uint16_t nthreads, bool abort,
@@ -41,19 +41,6 @@ JFJochReceiverOutput RunJFJochReceiverTest(std::vector<AcquisitionDevice *> &aq_
return service.Stop();
}
bool JFJochReceiverTest(JFJochReceiverOutput &output, Logger &logger,
std::vector<std::unique_ptr<AcquisitionDevice>> &aq_devices, const DiffractionExperiment &x,
uint16_t nthreads, bool abort,
bool verbose, ZMQPreviewPublisher *in_preview_writer,
const std::string &numa_policy) {
std::vector<AcquisitionDevice *> tmp_aq_devices;
for (const auto &i: aq_devices)
tmp_aq_devices.emplace_back(i.get());
return JFJochReceiverTest(output, logger, tmp_aq_devices, x, nthreads,
abort, verbose, in_preview_writer, numa_policy);
}
static JFCalibration GeneratePedestalCalibration(const DiffractionExperiment &x) {
JFCalibration ret(x);
@@ -77,15 +64,15 @@ static JFCalibration GeneratePedestalCalibration(const DiffractionExperiment &x)
}
bool JFJochReceiverTest(JFJochReceiverOutput &output, Logger &logger,
std::vector<AcquisitionDevice *> &aq_devices, const DiffractionExperiment &x,
AcquisitionDeviceGroup &aq_devices, const DiffractionExperiment &x,
uint16_t nthreads, bool abort,
bool verbose, ZMQPreviewPublisher *in_preview_writer,
ZMQPreviewPublisher *in_preview_writer,
const std::string &numa_policy) {
std::vector<uint16_t> raw_expected_image(RAW_MODULE_SIZE * x.GetModulesNum());
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
uint32_t module0 = x.GetFirstModuleOfDataStream(i);
auto int_gen_frame = aq_devices[i]->GetInternalGeneratorFrame();
auto int_gen_frame = aq_devices[i].GetInternalGeneratorFrame();
if (int_gen_frame.size() < x.GetModulesNum(i) * RAW_MODULE_SIZE) {
logger.Error("Wrong internal generator frame size");
return false;