Modifications in preparation to MAX IV experiment
This commit is contained in:
@@ -148,11 +148,11 @@ inline void CBOR_ENC_RATIONAL(CborEncoder &encoder, const char* key, uint64_t nu
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_RAD_INT_RESULT(CborEncoder &encoder, const char* key,
|
||||
const std::map<std::string, std::vector<float>> &rad_int_result) {
|
||||
const std::map<std::string, std::vector<float>> &az_int_result) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, rad_int_result.size()));
|
||||
for (auto &[map_key, map_val]: rad_int_result)
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, az_int_result.size()));
|
||||
for (auto &[map_key, map_val]: az_int_result)
|
||||
CBOR_ENC(mapEncoder, map_key.c_str(), map_val);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
@@ -167,21 +167,39 @@ inline void CBOR_ENC_ADU_HIST(CborEncoder &encoder, const char* key,
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const SpotToSave& spot) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 4));
|
||||
CBOR_ENC(mapEncoder, "x", spot.x);
|
||||
CBOR_ENC(mapEncoder, "y", spot.y);
|
||||
CBOR_ENC(mapEncoder, "I", spot.intensity);
|
||||
CBOR_ENC(mapEncoder, "indexed", spot.indexed);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<SpotToSave>& spots) {
|
||||
CborEncoder arrayEncoder;
|
||||
CborEncoder arrayEncoder, mapEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_array(&encoder, &arrayEncoder, spots.size() * 4));
|
||||
cborErr(cbor_encoder_create_array(&encoder, &arrayEncoder, spots.size()));
|
||||
|
||||
for (auto spot : spots)
|
||||
CBOR_ENC(arrayEncoder, spot);
|
||||
|
||||
for (auto spot : spots) {
|
||||
cborErr(cbor_encode_float(&arrayEncoder, spot.x));
|
||||
cborErr(cbor_encode_float(&arrayEncoder, spot.y));
|
||||
cborErr(cbor_encode_float(&arrayEncoder, spot.intensity));
|
||||
cborErr(cbor_encode_boolean(&arrayEncoder, spot.indexed));
|
||||
}
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const ROIRectangle& roi) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 4));
|
||||
CBOR_ENC(mapEncoder, "x_min", roi.x_min);
|
||||
CBOR_ENC(mapEncoder, "x_max", roi.x_max);
|
||||
CBOR_ENC(mapEncoder, "y_min", roi.y_min);
|
||||
CBOR_ENC(mapEncoder, "y_max", roi.y_max);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const CompressedImage& message) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
@@ -191,15 +209,24 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const CompressedImag
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_AXIS(CborEncoder &encoder, const char* key, const float det_translation[3]) {
|
||||
CborEncoder arrayEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_array(&encoder, &arrayEncoder, 3));
|
||||
for (int i = 0; i < 3; i++)
|
||||
cborErr(cbor_encode_float(&arrayEncoder, det_translation[i]));
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_GONIOMETER(CborEncoder &encoder, const char* key, const GoniometerAxis &g) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 2));
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "increment"));
|
||||
cborErr(cbor_encode_float(&mapEncoder, g.increment));
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "start"));
|
||||
cborErr(cbor_encode_float(&mapEncoder, g.start));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 3));
|
||||
CBOR_ENC(mapEncoder, "increment", g.increment);
|
||||
CBOR_ENC(mapEncoder, "start", g.start);
|
||||
CBOR_ENC_AXIS(mapEncoder, "axis", g.axis);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
@@ -216,16 +243,6 @@ inline void CBOR_ENC_GONIOMETER_MAP(CborEncoder &encoder, const char* key,
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_DET_TRANSLATION(CborEncoder &encoder, const char* key, const float det_translation[3]) {
|
||||
CborEncoder arrayEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_array(&encoder, &arrayEncoder, 3));
|
||||
for (int i = 0; i < 3; i++)
|
||||
cborErr(cbor_encode_float(&arrayEncoder, det_translation[i]));
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_CHANNELS(CborEncoder &encoder, const char* key, const std::vector<std::string> &v) {
|
||||
CborEncoder arrayEncoder;
|
||||
|
||||
@@ -260,13 +277,57 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<Co
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message) {
|
||||
CborEncoder mapEncoder;
|
||||
CBORStream2Serializer::CBORStream2Serializer(uint8_t *in_buffer, size_t buffer_size) :
|
||||
buffer(in_buffer), max_buffer_size(buffer_size), curr_size(0) {}
|
||||
|
||||
size_t CBORStream2Serializer::GetBufferSize() const {
|
||||
return curr_size;
|
||||
}
|
||||
|
||||
void CBORStream2Serializer::SerializeSequenceStart(const StartMessage& message) {
|
||||
CborEncoder encoder, mapEncoder;
|
||||
|
||||
cbor_encoder_init(&encoder, buffer, max_buffer_size, 0);
|
||||
cborErr(cbor_encode_tag(&encoder, CborSignatureTag ));
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, "user_data"));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, CborIndefiniteLength));
|
||||
|
||||
CBOR_ENC(mapEncoder, "type", "start");
|
||||
CBOR_ENC(mapEncoder, "magic_number", user_data_magic_number);
|
||||
|
||||
CBOR_ENC(mapEncoder, "detector_distance", message.detector_distance);
|
||||
CBOR_ENC(mapEncoder, "beam_center_x", message.beam_center_x);
|
||||
CBOR_ENC(mapEncoder, "beam_center_y", message.beam_center_y);
|
||||
|
||||
CBOR_ENC(mapEncoder, "number_of_images", message.number_of_images);
|
||||
CBOR_ENC(mapEncoder, "image_size_x", message.image_size_x);
|
||||
CBOR_ENC(mapEncoder, "image_size_y", message.image_size_y);
|
||||
|
||||
CBOR_ENC(mapEncoder, "incident_energy", message.incident_energy);
|
||||
CBOR_ENC(mapEncoder, "incident_wavelength", message.incident_wavelength);
|
||||
|
||||
CBOR_ENC(mapEncoder, "frame_time", message.frame_time);
|
||||
CBOR_ENC(mapEncoder, "count_time", message.count_time);
|
||||
|
||||
CBOR_ENC(mapEncoder, "saturation_value", message.saturation_value);
|
||||
CBOR_ENC(mapEncoder, "error_value", message.error_value);
|
||||
CBOR_ENC(mapEncoder, "pixel_size_x", message.pixel_size_x);
|
||||
CBOR_ENC(mapEncoder, "pixel_size_y", message.pixel_size_y);
|
||||
CBOR_ENC(mapEncoder, "sensor_thickness", message.sensor_thickness);
|
||||
CBOR_ENC(mapEncoder, "sensor_material", message.sensor_material);
|
||||
CBOR_ENC_DATE(mapEncoder, "arm_date", message.arm_date);
|
||||
CBOR_ENC(mapEncoder, "pixel_mask_enabled", message.pixel_mask_enabled);
|
||||
CBOR_ENC(mapEncoder, "detector_description", message.detector_description);
|
||||
CBOR_ENC(mapEncoder, "detector_serial_number", message.detector_serial_number);
|
||||
CBOR_ENC(mapEncoder, "series_unique_id", message.series_unique_id);
|
||||
CBOR_ENC(mapEncoder, "series_id", message.series_id);
|
||||
|
||||
CBOR_ENC_AXIS(mapEncoder, "detector_translation", message.detector_translation);
|
||||
CBOR_ENC_GONIOMETER_MAP(mapEncoder, "goniometer", message.goniometer);
|
||||
|
||||
CBOR_ENC(mapEncoder, "pixel_mask", message.pixel_mask);
|
||||
CBOR_ENC_CHANNELS(mapEncoder, "channels", message.channels);
|
||||
|
||||
CBOR_ENC(mapEncoder, "file_prefix", message.file_prefix);
|
||||
CBOR_ENC(mapEncoder, "sample_name", message.sample_name);
|
||||
CBOR_ENC(mapEncoder, "space_group_number", message.space_group_number);
|
||||
@@ -274,10 +335,10 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
|
||||
CBOR_ENC(mapEncoder, "data_file_count", message.data_file_count);
|
||||
CBOR_ENC(mapEncoder, "storage_cell_number", message.storage_cell_number);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "storage_cell_delay", message.storage_cell_delay_ns, 1000*1000*1000UL);
|
||||
|
||||
if (message.roi_summation_area)
|
||||
CBOR_ENC(mapEncoder, "roi_sum_area", message.roi_summation_area.value());
|
||||
CBOR_ENC(mapEncoder, "pixel_bit_depth", message.pixel_bit_depth);
|
||||
CBOR_ENC(mapEncoder, "pixel_signed", message.pixel_signed);
|
||||
CBOR_ENC(mapEncoder, "min_value", message.min_value);
|
||||
switch (message.compression_algorithm) {
|
||||
case CompressionAlgorithm::BSHUF_LZ4:
|
||||
CBOR_ENC(mapEncoder, "compression_algorithm", "bslz4");
|
||||
@@ -294,7 +355,6 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
|
||||
|
||||
if (message.unit_cell)
|
||||
CBOR_ENC_UNIT_CELL(mapEncoder, "unit_cell", message.unit_cell.value());
|
||||
|
||||
if (message.attenuator_transmission)
|
||||
CBOR_ENC(mapEncoder, "attenuator_transmission", message.attenuator_transmission.value());
|
||||
if (message.total_flux)
|
||||
@@ -304,130 +364,83 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
|
||||
CBOR_ENC(mapEncoder, "source_name_short", message.source_name_short);
|
||||
CBOR_ENC(mapEncoder, "instrument_name", message.instrument_name);
|
||||
CBOR_ENC(mapEncoder, "instrument_name_short", message.instrument_name_short);
|
||||
CBOR_ENC(mapEncoder, "rad_int_bin_number", message.rad_int_bin_number);
|
||||
CBOR_ENC(mapEncoder, "rad_int_bin_to_q", message.rad_int_bin_to_q);
|
||||
CBOR_ENC(mapEncoder, "rad_int_solid_angle_corr", message.rad_int_solid_angle_corr);
|
||||
CBOR_ENC(mapEncoder, "az_int_bin_number", message.az_int_bin_number);
|
||||
CBOR_ENC(mapEncoder, "az_int_bin_to_q", message.az_int_bin_to_q);
|
||||
CBOR_ENC(mapEncoder, "summation", message.summation);
|
||||
CBOR_ENC(mapEncoder, "calibration", message.calibration);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
CBORStream2Serializer::CBORStream2Serializer(uint8_t *in_buffer, size_t buffer_size) :
|
||||
buffer(in_buffer), max_buffer_size(buffer_size), curr_size(0) {}
|
||||
|
||||
size_t CBORStream2Serializer::GetBufferSize() const {
|
||||
return curr_size;
|
||||
}
|
||||
|
||||
void CBORStream2Serializer::SerializeSequenceStart(const StartMessage& message) {
|
||||
CborEncoder encoder, mapEncoder;
|
||||
|
||||
cbor_encoder_init(&encoder, buffer, max_buffer_size, 0);
|
||||
cborErr(cbor_encode_tag(&encoder, CborSignatureTag ));
|
||||
size_t elements = 27;
|
||||
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, elements));
|
||||
|
||||
CBOR_ENC(mapEncoder, "type", "start");
|
||||
CBOR_ENC(mapEncoder, "detector_distance", message.detector_distance);
|
||||
CBOR_ENC(mapEncoder, "beam_center_x", message.beam_center_x);
|
||||
CBOR_ENC(mapEncoder, "beam_center_y", message.beam_center_y);
|
||||
|
||||
CBOR_ENC(mapEncoder, "number_of_images", message.number_of_images);
|
||||
CBOR_ENC(mapEncoder, "image_size_x", message.image_size_x);
|
||||
CBOR_ENC(mapEncoder, "image_size_y", message.image_size_y);
|
||||
|
||||
CBOR_ENC(mapEncoder, "incident_energy", message.incident_energy);
|
||||
CBOR_ENC(mapEncoder, "incident_wavelength", message.incident_wavelength);
|
||||
|
||||
CBOR_ENC(mapEncoder, "frame_time", message.frame_time);
|
||||
CBOR_ENC(mapEncoder, "count_time", message.count_time);
|
||||
|
||||
CBOR_ENC(mapEncoder, "saturation_value", message.saturation_value);
|
||||
|
||||
CBOR_ENC(mapEncoder, "pixel_size_x", message.pixel_size_x);
|
||||
CBOR_ENC(mapEncoder, "pixel_size_y", message.pixel_size_y);
|
||||
CBOR_ENC(mapEncoder, "sensor_thickness", message.sensor_thickness);
|
||||
CBOR_ENC(mapEncoder, "sensor_material", message.sensor_material);
|
||||
CBOR_ENC_DATE(mapEncoder, "arm_date", message.arm_date);
|
||||
CBOR_ENC(mapEncoder, "pixel_mask_enabled", message.pixel_mask_enabled);
|
||||
CBOR_ENC(mapEncoder, "detector_description", message.detector_description);
|
||||
CBOR_ENC(mapEncoder, "detector_serial_number", message.detector_serial_number);
|
||||
CBOR_ENC(mapEncoder, "series_unique_id", message.series_unique_id);
|
||||
CBOR_ENC(mapEncoder, "series_id", message.series_id);
|
||||
|
||||
CBOR_ENC_DET_TRANSLATION(mapEncoder, "detector_translation", message.detector_translation);
|
||||
CBOR_ENC_GONIOMETER_MAP(mapEncoder, "goniometer", message.goniometer);
|
||||
|
||||
CBOR_ENC_USER_DATA(mapEncoder, message);
|
||||
CBOR_ENC(mapEncoder, "pixel_mask", message.pixel_mask);
|
||||
CBOR_ENC_CHANNELS(mapEncoder, "channels", message.channels);
|
||||
|
||||
if (!message.calibration.empty())
|
||||
CBOR_ENC(mapEncoder, "calibration", message.calibration);
|
||||
CBOR_ENC(mapEncoder, "user_data", message.user_data);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer);
|
||||
}
|
||||
|
||||
void CBORStream2Serializer::SerializeSequenceEnd(const EndMessage& message) {
|
||||
CborEncoder encoder, mapEncoder, userDataMapEncoder;
|
||||
CborEncoder encoder, mapEncoder;
|
||||
cbor_encoder_init(&encoder, buffer, max_buffer_size, 0);
|
||||
cborErr(cbor_encode_tag(&encoder, CborSignatureTag));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 5));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, CborIndefiniteLength));
|
||||
|
||||
CBOR_ENC(mapEncoder, "type", "end");
|
||||
CBOR_ENC(mapEncoder, "magic_number", user_data_magic_number);
|
||||
|
||||
CBOR_ENC(mapEncoder, "series_unique_id", message.series_unique_id);
|
||||
CBOR_ENC(mapEncoder, "series_id", message.series_id);
|
||||
CBOR_ENC(mapEncoder, "end_date", message.end_date);
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "user_data"));
|
||||
cborErr(cbor_encoder_create_map(&mapEncoder, &userDataMapEncoder, 8));
|
||||
CBOR_ENC(userDataMapEncoder, "magic_number", user_data_magic_number);
|
||||
CBOR_ENC(userDataMapEncoder, "number_of_images", message.number_of_images);
|
||||
CBOR_ENC(userDataMapEncoder, "max_receiver_delay", message.max_receiver_delay);
|
||||
CBOR_ENC(userDataMapEncoder, "receiver_efficiency", message.efficiency);
|
||||
CBOR_ENC(userDataMapEncoder, "write_master_file", message.write_master_file);
|
||||
CBOR_ENC_RAD_INT_RESULT(userDataMapEncoder, "rad_int_result", message.rad_int_result);
|
||||
CBOR_ENC_ADU_HIST(userDataMapEncoder, "adu_histogram", message.adu_histogram);
|
||||
CBOR_ENC(userDataMapEncoder, "adu_histogram_bin_width", message.adu_histogram_bin_width);
|
||||
cborErr(cbor_encoder_close_container(&mapEncoder, &userDataMapEncoder));
|
||||
|
||||
CBOR_ENC(mapEncoder, "max_image_number", message.max_image_number);
|
||||
CBOR_ENC(mapEncoder, "images_collected", message.images_collected_count);
|
||||
CBOR_ENC(mapEncoder, "images_sent_to_write", message.images_sent_to_write_count);
|
||||
CBOR_ENC(mapEncoder, "data_collection_efficiency", message.efficiency);
|
||||
CBOR_ENC(mapEncoder, "write_master_file", message.write_master_file);
|
||||
CBOR_ENC_RAD_INT_RESULT(mapEncoder, "az_int_result", message.az_int_result);
|
||||
CBOR_ENC_ADU_HIST(mapEncoder, "adu_histogram", message.adu_histogram);
|
||||
CBOR_ENC(mapEncoder, "adu_histogram_bin_width", message.adu_histogram_bin_width);
|
||||
CBOR_ENC(mapEncoder, "max_receiver_delay", message.max_receiver_delay);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer);
|
||||
}
|
||||
|
||||
void CBORStream2Serializer::SerializeImage(const DataMessage& message) {
|
||||
CborEncoder encoder, mapEncoder, userDataMapEncoder;
|
||||
CborEncoder encoder, mapEncoder;
|
||||
cbor_encoder_init(&encoder, buffer, max_buffer_size, 0);
|
||||
|
||||
cborErr(cbor_encode_tag(&encoder, CborSignatureTag ));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 9));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, CborIndefiniteLength));
|
||||
|
||||
CBOR_ENC(mapEncoder, "type", "image");
|
||||
CBOR_ENC(mapEncoder, "magic_number", user_data_magic_number);
|
||||
CBOR_ENC(mapEncoder, "series_unique_id", message.series_unique_id);
|
||||
CBOR_ENC(mapEncoder, "series_id", message.series_id);
|
||||
CBOR_ENC(mapEncoder, "image_id", message.number);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "real_time", message.exptime,
|
||||
message.exptime_base);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "start_time", message.timestamp,
|
||||
message.timestamp_base);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "end_time", message.timestamp + message.exptime,
|
||||
message.timestamp_base);
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "user_data"));
|
||||
cborErr(cbor_encoder_create_map(&mapEncoder, &userDataMapEncoder, 10));
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "real_time", message.exptime, message.exptime_base);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "start_time", message.timestamp, message.timestamp_base);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "end_time", message.timestamp + message.exptime, message.timestamp_base);
|
||||
|
||||
CBOR_ENC(userDataMapEncoder, "magic_number", user_data_magic_number);
|
||||
CBOR_ENC(userDataMapEncoder, "spots", message.spots);
|
||||
CBOR_ENC(userDataMapEncoder, "rad_int_profile", message.rad_int_profile);
|
||||
CBOR_ENC(userDataMapEncoder, "indexing_result", message.indexing_result);
|
||||
CBOR_ENC(userDataMapEncoder, "indexing_lattice", message.indexing_lattice);
|
||||
CBOR_ENC(userDataMapEncoder, "bunch_id", message.bunch_id);
|
||||
CBOR_ENC(userDataMapEncoder, "jf_info", (uint64_t) message.jf_info);
|
||||
CBOR_ENC(userDataMapEncoder, "receiver_available_send_buffers", message.receiver_available_send_buffers);
|
||||
CBOR_ENC(userDataMapEncoder, "receiver_aq_dev_delay", message.receiver_aq_dev_delay);
|
||||
CBOR_ENC(userDataMapEncoder, "storage_cell", (uint64_t) message.storage_cell);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&mapEncoder, &userDataMapEncoder));
|
||||
CBOR_ENC(mapEncoder, "spots", message.spots);
|
||||
CBOR_ENC(mapEncoder, "az_int_profile", message.az_int_profile);
|
||||
CBOR_ENC(mapEncoder, "indexing_result", message.indexing_result);
|
||||
if (!message.indexing_lattice.empty())
|
||||
CBOR_ENC(mapEncoder, "indexing_lattice", message.indexing_lattice);
|
||||
CBOR_ENC(mapEncoder, "xfel_bunch_id", message.xfel_bunch_id);
|
||||
CBOR_ENC(mapEncoder, "xfel_event_code", message.xfel_event_code);
|
||||
CBOR_ENC(mapEncoder, "jf_info", (uint64_t) message.jf_info);
|
||||
CBOR_ENC(mapEncoder, "receiver_aq_dev_delay", message.receiver_aq_dev_delay);
|
||||
CBOR_ENC(mapEncoder, "storage_cell", (uint64_t) message.storage_cell);
|
||||
CBOR_ENC(mapEncoder, "saturated_pixel_count", message.saturated_pixel_count);
|
||||
CBOR_ENC(mapEncoder, "error_pixel_count", message.error_pixel_count);
|
||||
CBOR_ENC(mapEncoder, "strong_pixel_count", message.strong_pixel_count);
|
||||
CBOR_ENC(mapEncoder, "data_collection_efficiency", message.image_collection_efficiency);
|
||||
CBOR_ENC(mapEncoder, "bkg_estimate", message.bkg_estimate);
|
||||
CBOR_ENC(mapEncoder, "adu_histogram", message.adu_histogram);
|
||||
CBOR_ENC(mapEncoder, "user_data", message.user_data);
|
||||
CBOR_ENC(mapEncoder, "detector_distance", message.detector_distance);
|
||||
CBOR_ENC(mapEncoder, "beam_center_x", message.beam_center_x);
|
||||
CBOR_ENC(mapEncoder, "beam_center_y", message.beam_center_y);
|
||||
CBOR_ENC(mapEncoder, "incident_energy", message.incident_energy);
|
||||
if (message.roi_sum)
|
||||
CBOR_ENC(mapEncoder, "roi_sum", message.roi_sum.value());
|
||||
|
||||
CBOR_ENC(mapEncoder, "data", message.image);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user