ZMQPreviewPublisher: Add spots to preview message + allow for frame number management within the ZMQPreviewPublisher
This commit is contained in:
@@ -11,6 +11,11 @@ ZMQPreviewPublisher::ZMQPreviewPublisher(ZMQContext& context, const std::string&
|
||||
}
|
||||
|
||||
void ZMQPreviewPublisher::Start(const DiffractionExperiment &experiment, const JFCalibration &calibration) {
|
||||
{
|
||||
std::unique_lock<std::mutex> ul(m);
|
||||
stride = experiment.GetPreviewStride();
|
||||
current_part = -1;
|
||||
}
|
||||
auto mask = calibration.CalculateNexusMask(experiment);
|
||||
JFJochProtoBuf::PreviewFrame frame;
|
||||
frame.set_image_number(-1);
|
||||
@@ -23,9 +28,19 @@ void ZMQPreviewPublisher::Start(const DiffractionExperiment &experiment, const J
|
||||
|
||||
void ZMQPreviewPublisher::Stop(const DiffractionExperiment& experiment) {}
|
||||
|
||||
void ZMQPreviewPublisher::Publish(const DiffractionExperiment& experiment, const int16_t* image_data, uint32_t image_number) {
|
||||
void ZMQPreviewPublisher::Publish(const DiffractionExperiment& experiment, const int16_t* image_data, const DataMessage &message) {
|
||||
{
|
||||
std::unique_lock<std::mutex> ul(m);
|
||||
int64_t part = message.number / stride;
|
||||
if (current_part >= part)
|
||||
return;
|
||||
else
|
||||
current_part = part;
|
||||
}
|
||||
|
||||
JFJochProtoBuf::PreviewFrame frame;
|
||||
frame.set_image_number(image_number);
|
||||
|
||||
frame.set_image_number(message.number);
|
||||
frame.set_total_images(experiment.GetImageNum());
|
||||
frame.set_wavelength_a(experiment.GetWavelength_A());
|
||||
frame.set_beam_x_pxl(experiment.GetBeamX_pxl());
|
||||
@@ -39,6 +54,13 @@ void ZMQPreviewPublisher::Publish(const DiffractionExperiment& experiment, const
|
||||
|
||||
frame.set_data(image_data, experiment.GetPixelsNum() * sizeof(int16_t));
|
||||
|
||||
for (const auto &s: message.spots) {
|
||||
auto fr = frame.add_spots();
|
||||
fr->set_x(s.x);
|
||||
fr->set_y(s.y);
|
||||
fr->set_indexed(s.indexed);
|
||||
}
|
||||
|
||||
SetPreviewImage(frame);
|
||||
socket.Send(grpcToJson(frame));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user