AcquisitionDeviceGroup: Used to simplify handling multiple aq devices
This commit is contained in:
@@ -17,12 +17,11 @@ TEST_CASE("JFJochReceiverTest_Raw", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
|
||||
.ImagesPerTrigger(100).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::NO_COMPRESSION);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
Logger logger("JFJochReceiverTest_Raw");
|
||||
@@ -49,12 +48,11 @@ TEST_CASE("JFJochReceiverTest_Conversion", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
|
||||
.ImagesPerTrigger(32).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::BSHUF_ZSTD);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFJochReceiverOutput output;
|
||||
@@ -78,12 +76,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_U16", "[JFJochReceiver]") {
|
||||
.ImagesPerTrigger(32).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::BSHUF_ZSTD).FPGAOutputMode(JFJochProtoBuf::UINT16);
|
||||
|
||||
REQUIRE(!x.IsPixelSigned());
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFJochReceiverOutput output;
|
||||
@@ -106,12 +103,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_I32", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
|
||||
.ImagesPerTrigger(32).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::BSHUF_ZSTD).FPGAOutputMode(JFJochProtoBuf::INT32);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFJochReceiverOutput output;
|
||||
@@ -134,12 +130,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_Summation2", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
|
||||
.ImagesPerTrigger(32).DataFileCount(16).PhotonEnergy_keV(12.4).Compression(JFJochProtoBuf::BSHUF_ZSTD).Summation(2);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFJochReceiverOutput output;
|
||||
@@ -165,12 +160,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_StorageCell", "[JFJochReceiver]") {
|
||||
REQUIRE(x.GetImageNum() == 16);
|
||||
REQUIRE(x.GetStorageCellNumber() == 16);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
test->EnableLogging(&logger);
|
||||
aq_devices.emplace_back(test);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFJochReceiverOutput output;
|
||||
@@ -207,14 +201,14 @@ TEST_CASE("JFJochReceiverTest_PedestalG1", "[JFJochReceiver]") {
|
||||
x.Mode(DetectorMode::PedestalG1).PedestalG0Frames(0)
|
||||
.PedestalG1Frames(nframes).NumTriggers(1).UseInternalPacketGenerator(false)
|
||||
.ImagesPerTrigger(0).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->SetInternalGeneratorFrame();
|
||||
test->CreatePackets(x, 1, nframes, 0, pedestal_in.data(), false);
|
||||
test->CreateFinalPacket(x);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFPedestalCalc pc(x);
|
||||
@@ -271,18 +265,15 @@ TEST_CASE("JFJochReceiverTest_PedestalG2_storage_cell", "[JFJochReceiver]") {
|
||||
REQUIRE(x.GetStorageCellNumber() == 2);
|
||||
REQUIRE(x.GetFrameNum() == nframes * 2);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, nframes * 2);
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(i, nframes * 2);
|
||||
for (int j = 0; j < nframes; j++) {
|
||||
test->CreatePackets(x, 2 * j + 1, 1, 0,
|
||||
pedestal_in2.data() + j * RAW_MODULE_SIZE, false);
|
||||
test->CreatePackets(x, 2 * j + 2, 1, 0,
|
||||
pedestal_in.data() + j * RAW_MODULE_SIZE, false);
|
||||
test->CreatePackets(x, 2 * j + 1, 1, 0, pedestal_in2.data() + j * RAW_MODULE_SIZE, false);
|
||||
test->CreatePackets(x, 2 * j + 2, 1, 0, pedestal_in.data() + j * RAW_MODULE_SIZE, false);
|
||||
}
|
||||
test->CreateFinalPacket(x);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFPedestalCalc pc(x);
|
||||
@@ -330,13 +321,12 @@ TEST_CASE("JFJochReceiverTest_PedestalG0", "[JFJochReceiver]") {
|
||||
.NumTriggers(1).UseInternalPacketGenerator(false)
|
||||
.ImagesPerTrigger(0).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, 64);
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(i,64);
|
||||
test->CreatePackets(x, 1, nframes, 0, pedestal_in.data(), false);
|
||||
test->CreateFinalPacket(x);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
JFPedestalCalc pc(x);
|
||||
@@ -378,9 +368,8 @@ TEST_CASE("JFJochReceiverTest_PedestalG0_StorageCell", "[JFJochReceiver]") {
|
||||
.NumTriggers(1).UseInternalPacketGenerator(false)
|
||||
.ImagesPerTrigger(0).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(0, 64);
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(0, 64);
|
||||
for (int i = 0; i < nframes; i++) {
|
||||
test->CreatePackets(x, i*4+1, 1, 0, pedestal_in_0.data(), false);
|
||||
test->CreatePackets(x, i*4+2, 1, 0, pedestal_in_1.data(), false);
|
||||
@@ -388,7 +377,7 @@ TEST_CASE("JFJochReceiverTest_PedestalG0_StorageCell", "[JFJochReceiver]") {
|
||||
test->CreatePackets(x, i*4+4, 1, 0, pedestal_in_3.data(), false);
|
||||
}
|
||||
test->CreateFinalPacket(x);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
|
||||
Logger logger("JFJochReceiverTest_PedestalG0_StorageCell");
|
||||
JFJochReceiverOutput output;
|
||||
@@ -422,12 +411,11 @@ TEST_CASE("JFJochReceiverTest_PedestalG1_NoFrames", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).PedestalG1Frames(256).NumTriggers(1)
|
||||
.UseInternalPacketGenerator(false).ImagesPerTrigger(0).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
HLSSimulatedDevice *test;
|
||||
test = new HLSSimulatedDevice(i, nframes + 8);
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(i, nframes + 8);
|
||||
test->CreateFinalPacket(x);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
|
||||
Logger logger("JFJochReceiverTest_PedestalG1_NoFrames");
|
||||
@@ -453,9 +441,9 @@ TEST_CASE("JFJochReceiverTest_PacketLost_Raw", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1)
|
||||
.UseInternalPacketGenerator(false).ImagesPerTrigger(4).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
auto test = new HLSSimulatedDevice(i, 64);
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(i, 64);
|
||||
test->CreatePackets(x, 1, 1, 0, frame_in.data(), false);
|
||||
test->CreatePackets(x, 1, 1, 1, frame_in.data(), false);
|
||||
test->CreatePackets(x, 2, 1, 0, frame_in.data(), false);
|
||||
@@ -468,22 +456,18 @@ TEST_CASE("JFJochReceiverTest_PacketLost_Raw", "[JFJochReceiver]") {
|
||||
test->CreatePackets(x, 4, 1, 1, frame_in.data(), false);
|
||||
test->CreateFinalPacket(x);
|
||||
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
Logger logger("JFJochReceiverTest_PacketLost_Raw");
|
||||
|
||||
JFCalibration calib(x);
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
TestImagePusher pusher(x.GetImageNum() - 1);
|
||||
auto receiver_out = RunJFJochReceiverTest(tmp_devices, pusher, x, logger, calib, nthreads, false);
|
||||
auto receiver_out = RunJFJochReceiverTest(aq_devices, pusher, x, logger, calib, nthreads, false);
|
||||
|
||||
const auto image = pusher.GetImage();
|
||||
|
||||
REQUIRE(aq_devices[0]->GetBytesReceived() == (8*128-1) * 8192UL);
|
||||
REQUIRE(aq_devices[0].GetBytesReceived() == (8*128-1) * 8192UL);
|
||||
REQUIRE(image.size() == 2 * RAW_MODULE_SIZE * sizeof(uint16_t));
|
||||
REQUIRE(pusher.GetCounter() == x.GetImageNum());
|
||||
|
||||
@@ -512,26 +496,22 @@ TEST_CASE("JFJochReceiverTest_Cancel", "[JFJochReceiver]") {
|
||||
x.PedestalG0Frames(0).NumTriggers(1)
|
||||
.UseInternalPacketGenerator(false).ImagesPerTrigger(4).PhotonEnergy_keV(12.4);
|
||||
|
||||
std::vector<std::unique_ptr<AcquisitionDevice>> aq_devices;
|
||||
AcquisitionDeviceGroup aq_devices;
|
||||
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
|
||||
auto test = new HLSSimulatedDevice(i, 64);
|
||||
auto test = std::make_unique<HLSSimulatedDevice>(i, 64);
|
||||
test->CreatePackets(x, 1, 1, 0, frame_in.data(), false);
|
||||
test->CreatePackets(x, 1, 1, 1, frame_in.data(), false);
|
||||
test->CreatePackets(x, 2, 1, 0, frame_in.data(), false);
|
||||
test->CreatePackets(x, 2, 1, 1, frame_in.data(), false);
|
||||
test->CreatePackets(x, 3, 1, 0, frame_in.data(), false);
|
||||
test->CreatePackets(x, 3, 1, 1, frame_in.data(), false);
|
||||
aq_devices.emplace_back(test);
|
||||
aq_devices.Add(std::move(test));
|
||||
}
|
||||
Logger logger("JFJochReceiverTest_Cancelw");
|
||||
|
||||
JFCalibration calib(x);
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
TestImagePusher pusher(x.GetImageNum() - 1);
|
||||
auto receiver_out = RunJFJochReceiverTest(tmp_devices, pusher, x, logger, calib, nthreads, true);
|
||||
auto receiver_out = RunJFJochReceiverTest(aq_devices, pusher, x, logger, calib, nthreads, true);
|
||||
REQUIRE(receiver_out.cancelled);
|
||||
}
|
||||
Reference in New Issue
Block a user