Modifications in preparation to MAX IV experiment

This commit is contained in:
2024-01-27 21:23:56 +01:00
parent 2446643489
commit f5f86d9ab6
250 changed files with 9363 additions and 3022 deletions
@@ -0,0 +1,33 @@
// Copyright (2019-2024) Paul Scherrer Institute
#include "ZMQStream2PreviewPublisher.h"
#include "CBORStream2Serializer.h"
ZMQStream2PreviewPublisher::ZMQStream2PreviewPublisher(ZMQContext& context, const std::string& addr) :
socket(context, ZMQSocketType::Pub) {
socket.Conflate(true).NoLinger();
socket.Bind(addr);
}
void ZMQStream2PreviewPublisher::StartDataCollection(const StartMessage& message) {
// Start message is not transmitted here
}
bool ZMQStream2PreviewPublisher::SendImage(const DataMessage& message) {
size_t approx_size = message.image.size + 2*1024*1024;
std::vector<uint8_t> serialization_buffer(approx_size);
CBORStream2Serializer serializer(serialization_buffer.data(), serialization_buffer.size());
serializer.SerializeImage(message);
return socket.Send(serialization_buffer.data(), serializer.GetBufferSize(), false);
}
bool ZMQStream2PreviewPublisher::EndDataCollection(const EndMessage &message) {
return true; // End message is not transmitted here
}
std::string ZMQStream2PreviewPublisher::GetAddress() {
return socket.GetEndpointName();
}