version 1.0.0-rc.26

This commit is contained in:
2024-11-26 16:04:38 +01:00
parent 9ab5206c12
commit b3e745a8dd
203 changed files with 2969 additions and 1509 deletions

View File

@@ -312,8 +312,8 @@ TEST_CASE("JFJochIntegrationTest_ZMQPreview", "[JFJochReceiver]") {
JFJochReceiverService service(aq_devices, logger, pusher);
service.NumThreads(nthreads);
service.PreviewSocket("ipc://*");
service.PreviewSocketSettings({.period = std::chrono::seconds(0), .send_start_message = true}); // Send all images to preview
service.PreviewSocket("tcp://0.0.0.0:*");
service.PreviewSocketSettings({.period = std::chrono::seconds(0)}); // Send one message
ZMQSocket sub_socket(ZMQSocketType::Sub);
sub_socket.ReceiveWaterMark(10);
@@ -332,6 +332,69 @@ TEST_CASE("JFJochIntegrationTest_ZMQPreview", "[JFJochReceiver]") {
ZMQMessage msg1;
REQUIRE(sub_socket.Receive(msg1, true));
// start message
auto out = CBORStream2Deserialize(msg1.data(), msg1.size());
REQUIRE(out != nullptr);
CHECK(out->msg_type == CBORImageType::START);
REQUIRE(sub_socket.Receive(msg1, true));
out = CBORStream2Deserialize(msg1.data(), msg1.size());
REQUIRE(out != nullptr);
CHECK(out->msg_type == CBORImageType::IMAGE);
// 4 other images
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(sub_socket.Receive(msg1, true));
// end message
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(!sub_socket.Receive(msg1, true));
}
TEST_CASE("JFJochIntegrationTest_ZMQMetadata", "[JFJochReceiver]") {
Logger logger("JFJochIntegrationTest_ZMQMetadata");
RegisterHDF5Filter();
const uint16_t nthreads = 4;
DiffractionExperiment experiment(DetectorGeometry(8,2,8,36));
experiment.ImagesPerTrigger(5).NumTriggers(1).UseInternalPacketGenerator(true)
.FilePrefix("").JungfrauConvPhotonCnt(false)
.DetectorDistance_mm(75).BeamY_pxl(1136).BeamX_pxl(1090).PhotonEnergy_keV(12.4);
PixelMask pixel_mask(experiment);
// Setup acquisition device
AcquisitionDeviceGroup aq_devices;
aq_devices.Add(std::make_unique<HLSSimulatedDevice>(0, 64));
NonePusher pusher;
JFJochReceiverService service(aq_devices, logger, pusher);
service.NumThreads(nthreads);
service.MetadataSocket("tcp://0.0.0.0:*");
service.MetadataSocketSettings({.period = std::chrono::seconds(2500)}); // Send all metadata as one message
ZMQSocket sub_socket(ZMQSocketType::Sub);
sub_socket.ReceiveWaterMark(10);
sub_socket.Connect(service.GetMetadataSocketAddress());
sub_socket.SubscribeAll();
sub_socket.ReceiveTimeout(std::chrono::seconds(1)); // Ensure Subscriber is connected
service.Start(experiment, pixel_mask, nullptr);
auto receiver_out = service.Stop();
CHECK(receiver_out.efficiency == 1.0);
CHECK(receiver_out.status.images_collected == 5);
CHECK(receiver_out.status.images_sent == 0);
CHECK(!receiver_out.status.cancelled);
ZMQMessage msg1;
REQUIRE(sub_socket.Receive(msg1, true));
auto out = CBORStream2Deserialize(msg1.data(), msg1.size());
REQUIRE(out != nullptr);
CHECK(out->msg_type == CBORImageType::START);
@@ -339,11 +402,11 @@ TEST_CASE("JFJochIntegrationTest_ZMQPreview", "[JFJochReceiver]") {
REQUIRE(sub_socket.Receive(msg1, true));
out = CBORStream2Deserialize(msg1.data(), msg1.size());
REQUIRE(out != nullptr);
CHECK(out->msg_type == CBORImageType::IMAGE);
CHECK(out->msg_type == CBORImageType::METADATA);
CHECK(out->metadata);
CHECK(out->metadata->images.size() == 5);
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(sub_socket.Receive(msg1, true));
// end message
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(!sub_socket.Receive(msg1, true));
}