JFJochReceiver: Single preview, that can be switched to present all or indexed only results

This commit is contained in:
2023-10-22 12:41:59 +02:00
parent af27854440
commit 566ff52bfc
9 changed files with 74 additions and 81 deletions
+3 -16
View File
@@ -26,7 +26,6 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
Logger &in_logger, int64_t in_forward_and_sum_nthreads,
int64_t in_send_buffer_count,
ZMQPreviewPublisher* in_preview_publisher,
ZMQPreviewPublisher* in_preview_publisher_indexed,
const NUMAHWPolicy &in_numa_policy) :
experiment(settings.jungfraujoch_settings()),
acquisition_device(in_aq_device),
@@ -35,7 +34,6 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
frame_transformation_nthreads((experiment.GetSummation() >= threaded_summation_threshold) ?
2 : in_forward_and_sum_nthreads),
preview_publisher(in_preview_publisher),
preview_publisher_indexed(in_preview_publisher_indexed),
ndatastreams(experiment.GetDataStreamsNum()),
data_acquisition_ready(ndatastreams),
frame_transformation_ready((experiment.GetImageNum() > 0) ? frame_transformation_nthreads : 0),
@@ -86,8 +84,6 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
if (experiment.GetDetectorMode() == DetectorMode::Conversion) {
if (preview_publisher != nullptr)
preview_publisher->Start(experiment, calib.value());
if (preview_publisher_indexed != nullptr)
preview_publisher_indexed->Start(experiment, calib.value());
if (!GPUImageAnalysis::GPUPresent())
logger.Info("GPU support missing");
@@ -442,12 +438,9 @@ void JFJochReceiver::FrameTransformationThread() {
message.exptime_base = 10*1000*1000;
message.indexing_result = 0;
bool indexed = false;
bool send_preview = false;
bool calculate_spots = false;
if ((preview_publisher != nullptr) && (preview_stride > 0) && (image_number % preview_stride == 0))
send_preview = true;
bool send_image = false; // We send image if at least one module was collected in full
std::unique_ptr<RadialIntegrationProfile> rad_int_profile_image;
@@ -547,10 +540,7 @@ void JFJochReceiver::FrameTransformationThread() {
for (int i = 0; i < recip.size(); i++)
message.spots[i].indexed = indexer_result[0].indexed_spots[i];
indexer_result[0].l.Save(message.indexing_lattice);
if (preview_publisher_indexed)
preview_publisher_indexed->Publish(experiment,
transformation.GetPreview16BitImage(),
message);
indexed = true;
} else {
message.indexing_result = 1;
indexing_solution.AddElement(image_number, 0);
@@ -575,7 +565,7 @@ void JFJochReceiver::FrameTransformationThread() {
*rad_int_profile_per_file[image_number % experiment.GetDataFileCount()] += *rad_int_profile_image;
}
if (send_preview)
if (preview_publisher && (!local_data_processing_settings.preview_indexed_only() || indexed))
preview_publisher->Publish(experiment,
transformation.GetPreview16BitImage(),
message);
@@ -727,9 +717,6 @@ void JFJochReceiver::FinalizeMeasurement() {
if (preview_publisher != nullptr)
preview_publisher->Stop(experiment);
if (preview_publisher_indexed != nullptr)
preview_publisher_indexed->Stop(experiment);
for (int d = 0; d < ndatastreams; d++)
acquisition_device[d]->Cancel();