v1.0.0-rc.72
This commit is contained in:
@@ -200,14 +200,35 @@ inline void CBOR_ENC_ADU_HIST(CborEncoder &encoder, const char* key,
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const SpotToSave& spot) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 7));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, CborIndefiniteLength));
|
||||
CBOR_ENC(mapEncoder, "x", spot.x);
|
||||
CBOR_ENC(mapEncoder, "y", spot.y);
|
||||
CBOR_ENC(mapEncoder, "I", spot.intensity);
|
||||
CBOR_ENC(mapEncoder, "maxc", spot.maxc);
|
||||
CBOR_ENC(mapEncoder, "ice_ring", spot.ice_ring);
|
||||
CBOR_ENC(mapEncoder, "indexed", spot.indexed);
|
||||
CBOR_ENC(mapEncoder, "angle", spot.angle_from_ewald_sphere);
|
||||
if (spot.indexed) {
|
||||
CBOR_ENC(mapEncoder, "h", spot.h);
|
||||
CBOR_ENC(mapEncoder, "k", spot.k);
|
||||
CBOR_ENC(mapEncoder, "l", spot.l);
|
||||
CBOR_ENC(mapEncoder, "dist_ewald", spot.dist_ewald_sphere);
|
||||
}
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const Reflection& r) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, CborIndefiniteLength));
|
||||
CBOR_ENC(mapEncoder, "h", r.h);
|
||||
CBOR_ENC(mapEncoder, "k", r.k);
|
||||
CBOR_ENC(mapEncoder, "l", r.l);
|
||||
CBOR_ENC(mapEncoder, "center_x_pxl", r.predicted_x);
|
||||
CBOR_ENC(mapEncoder, "center_y_pxl", r.predicted_y);
|
||||
CBOR_ENC(mapEncoder, "d", r.d);
|
||||
CBOR_ENC(mapEncoder, "I", r.I);
|
||||
CBOR_ENC(mapEncoder, "bkg", r.bkg);
|
||||
CBOR_ENC(mapEncoder, "sigma", r.sigma);
|
||||
CBOR_ENC(mapEncoder, "image", r.image_number);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
@@ -233,6 +254,18 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<Sp
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<Reflection>& refs) {
|
||||
CborEncoder arrayEncoder, mapEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_array(&encoder, &arrayEncoder, refs.size()));
|
||||
|
||||
for (auto r: refs)
|
||||
CBOR_ENC(arrayEncoder, r);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const CompressedImage& message) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
@@ -412,7 +445,8 @@ inline void CBOR_ENC_START_USER_DATA(CborEncoder& encoder, const char* key,
|
||||
j["attenuator_transmission"] = message.attenuator_transmission.value();
|
||||
if (message.total_flux)
|
||||
j["total_flux"] = message.total_flux.value();
|
||||
j["space_group_number"] = message.space_group_number;
|
||||
if (message.space_group_number)
|
||||
j["space_group_number"] = message.space_group_number.value();
|
||||
|
||||
j["roi"] = CBOR_ENC_ROI_CONFIG(message.rois);
|
||||
|
||||
@@ -465,7 +499,7 @@ inline void CBOR_ENC_START_USER_DATA(CborEncoder& encoder, const char* key,
|
||||
case GeomRefinementAlgorithmEnum::BeamCenter:
|
||||
j["geom_refinement_algorithm"] = "beam_center";
|
||||
break;
|
||||
case GeomRefinementAlgorithmEnum::BeamCenterTetragonal:
|
||||
case GeomRefinementAlgorithmEnum::BeamCenterSymmetry:
|
||||
j["geom_refinement_algorithm"] = "beam_center_tetragonal";
|
||||
break;
|
||||
default:
|
||||
@@ -607,8 +641,6 @@ void CBORStream2Serializer::SerializeImageInternal(CborEncoder &mapEncoder, cons
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "start_time", message.timestamp, message.timestamp_base);
|
||||
CBOR_ENC_RATIONAL(mapEncoder, "end_time", message.timestamp + message.exptime, message.timestamp_base);
|
||||
|
||||
if (!metadata_only)
|
||||
CBOR_ENC(mapEncoder, "spots", message.spots);
|
||||
CBOR_ENC(mapEncoder, "spot_count", message.spot_count);
|
||||
CBOR_ENC(mapEncoder, "spot_count_ice_rings", message.spot_count_ice_rings);
|
||||
CBOR_ENC(mapEncoder, "spot_count_low_res", message.spot_count_low_res);
|
||||
@@ -617,7 +649,7 @@ void CBORStream2Serializer::SerializeImageInternal(CborEncoder &mapEncoder, cons
|
||||
CBOR_ENC(mapEncoder, "indexing_result", message.indexing_result);
|
||||
if (message.indexing_lattice)
|
||||
CBOR_ENC(mapEncoder, "indexing_lattice", message.indexing_lattice->GetVector());
|
||||
CBOR_ENC(mapEncoder, "mosaicity", message.mosaicity);
|
||||
CBOR_ENC(mapEncoder, "profile_radius", message.profile_radius);
|
||||
CBOR_ENC(mapEncoder, "b_factor", message.b_factor);
|
||||
CBOR_ENC(mapEncoder, "indexing_time", message.indexing_time_s);
|
||||
CBOR_ENC(mapEncoder, "processing_time", message.processing_time_s);
|
||||
@@ -641,12 +673,15 @@ void CBORStream2Serializer::SerializeImageInternal(CborEncoder &mapEncoder, cons
|
||||
CBOR_ENC(mapEncoder, "bkg_estimate", message.bkg_estimate);
|
||||
CBOR_ENC(mapEncoder, "adu_histogram", message.adu_histogram);
|
||||
CBOR_ENC(mapEncoder, "roi_integrals", message.roi);
|
||||
CBOR_ENC(mapEncoder, "beam_center_x", message.beam_center_x);
|
||||
CBOR_ENC(mapEncoder, "beam_center_y", message.beam_center_y);
|
||||
CBOR_ENC(mapEncoder, "beam_corr_x", message.beam_corr_x);
|
||||
CBOR_ENC(mapEncoder, "beam_corr_y", message.beam_corr_y);
|
||||
CBOR_ENC(mapEncoder, "user_data", message.user_data.dump());
|
||||
if (!metadata_only)
|
||||
CBOR_ENC(mapEncoder, "data", message.image);
|
||||
|
||||
if (!metadata_only) {
|
||||
CBOR_ENC(mapEncoder, "spots", message.spots);
|
||||
CBOR_ENC(mapEncoder, "reflections", message.reflections);
|
||||
CBOR_ENC(mapEncoder, "data", message.image);
|
||||
}
|
||||
}
|
||||
|
||||
void CBORStream2Serializer::SerializeImage(const DataMessage& message) {
|
||||
|
||||
Reference in New Issue
Block a user