AcquisitionDeviceGroup: Used to simplify handling multiple aq devices
This commit is contained in:
@@ -5,13 +5,10 @@
|
||||
#include "../grpc/gRPCServer_Template.h"
|
||||
#include "../broker/JFJochStateMachine.h"
|
||||
#include "../writer/JFJochWriterService.h"
|
||||
#include "../writer/HDF5Objects.h"
|
||||
#include "../receiver/JFJochReceiverService.h"
|
||||
#include "FPGAUnitTest.h"
|
||||
#include "../acquisition_device/MockAcquisitionDevice.h"
|
||||
#include "../acquisition_device/HLSSimulatedDevice.h"
|
||||
#include "../common/ZMQImagePusher.h"
|
||||
#include "../common/jsonToGrpc.h"
|
||||
|
||||
using namespace std::literals::chrono_literals;
|
||||
|
||||
@@ -39,19 +36,15 @@ TEST_CASE("JFJochIntegrationTest_ZMQ", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
@@ -80,9 +73,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ", "[JFJochReceiver]") {
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
@@ -134,19 +127,15 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
@@ -176,9 +165,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
@@ -230,19 +219,15 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]")
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
@@ -271,9 +256,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]")
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
@@ -324,19 +309,15 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto fpga_receiver_server = gRPCServer("unix:fpga_receiver_test", fpga_receiver);
|
||||
@@ -369,9 +350,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_RAW", "[JFJochReceiver]") {
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
@@ -423,19 +404,15 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_3Writers", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#0", "inproc://#1", "inproc://#2"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
|
||||
JFJochWriterService writer_0(zmq_context, logger);
|
||||
JFJochWriterService writer_1(zmq_context, logger);
|
||||
@@ -468,9 +445,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_3Writers", "[JFJochReceiver]") {
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
dynamic_cast<MockAcquisitionDevice&>(aq_devices[i]).Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
@@ -518,24 +495,20 @@ TEST_CASE("JFJochIntegrationTest_Cancel", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
test->EnableLogging(&logger);
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int frame = 1; frame <= nimages; frame++)
|
||||
test->AddModule(frame, m, image.data());
|
||||
}
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto fpga_receiver_server = gRPCServer("unix:fpga_receiver_test", fpga_receiver);
|
||||
@@ -596,25 +569,22 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview", "[JFJochReceiver]") {
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
test->AddModule(image_num, m, image.data());
|
||||
}
|
||||
test->Terminate();
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
ZMQPreviewPublisher preview(zmq_context, "inproc://#2");
|
||||
@@ -703,25 +673,21 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_with_preview_no_writer", "[JFJochReceiver]"
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(i, 256);
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
test->AddModule(image_num, m, image.data());
|
||||
}
|
||||
test->Terminate();
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
ZMQPreviewPublisher preview(zmq_context, "inproc://#2");
|
||||
@@ -826,25 +792,22 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot", "[JFJochReceiver]") {
|
||||
image_conv.data() + i * file_space.GetDimensions()[1] * file_space.GetDimensions()[2]);
|
||||
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
auto *test = new MockAcquisitionDevice(0, 256);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(0, 256);
|
||||
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(0); m++) {
|
||||
test->AddModule(1, m, (uint16_t *) (image_raw_geom.data() + m * RAW_MODULE_SIZE));
|
||||
}
|
||||
test->Terminate();
|
||||
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto fpga_receiver_server = gRPCServer("unix:fpga_receiver_test", fpga_receiver);
|
||||
@@ -938,7 +901,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot_and_index", "[JFJochReceiver]
|
||||
image_conv.data() + i * file_space.GetDimensions()[1] * file_space.GetDimensions()[2]);
|
||||
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
auto *test = new MockAcquisitionDevice(0, 512);
|
||||
|
||||
@@ -952,13 +915,10 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot_and_index", "[JFJochReceiver]
|
||||
}
|
||||
test->Terminate();
|
||||
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
@@ -1059,9 +1019,9 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_rad_int", "[JFJochReceiver]") {
|
||||
image_conv.data() + i * file_space.GetDimensions()[1] * file_space.GetDimensions()[2]);
|
||||
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
auto *test = new MockAcquisitionDevice(0, 512);
|
||||
auto test = std::make_unique<MockAcquisitionDevice>(0, 512);
|
||||
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(0); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
@@ -1073,16 +1033,13 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_rad_int", "[JFJochReceiver]") {
|
||||
}
|
||||
test->Terminate();
|
||||
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
JFJochReceiverService fpga_receiver(aq_devices, logger, pusher);
|
||||
JFJochWriterService writer(zmq_context, logger);;
|
||||
|
||||
auto fpga_receiver_server = gRPCServer("unix:fpga_receiver_test", fpga_receiver);
|
||||
@@ -1174,7 +1131,7 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot_and_index_sum", "[JFJochRecei
|
||||
image_conv.data() + i * file_space.GetDimensions()[1] * file_space.GetDimensions()[2]);
|
||||
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
|
||||
auto *test = new MockAcquisitionDevice(0, 512);
|
||||
|
||||
@@ -1190,13 +1147,10 @@ TEST_CASE("JFJochIntegrationTest_ZMQ_lysozyme_spot_and_index_sum", "[JFJochRecei
|
||||
}
|
||||
test->Terminate();
|
||||
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
|
||||
ZMQContext zmq_context;
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
|
||||
Reference in New Issue
Block a user