Improve plotting
This commit is contained in:
@@ -196,17 +196,6 @@ 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 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;
|
||||
|
||||
@@ -256,6 +245,32 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<st
|
||||
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const ROIMessage &val) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 4));
|
||||
CBOR_ENC(mapEncoder, "sum", val.sum);
|
||||
CBOR_ENC(mapEncoder, "sum_square", val.sum_square);
|
||||
CBOR_ENC(mapEncoder, "max_count", val.max_count);
|
||||
CBOR_ENC(mapEncoder, "pixels", val.pixels);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::map<std::string, ROIMessage> &map) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
if (map.empty())
|
||||
return;
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, map.size()));
|
||||
for (const auto &[x, y]: map)
|
||||
CBOR_ENC(mapEncoder, x.c_str(), y);
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
|
||||
inline void CBOR_ENC_UNIT_CELL(CborEncoder &encoder, const char* key, const UnitCell &val) {
|
||||
CborEncoder mapEncoder;
|
||||
|
||||
@@ -297,6 +312,8 @@ inline void CBOR_ENC_START_USER_DATA(CborEncoder& encoder, const char* key,
|
||||
j["total_flux"] = message.total_flux.value();
|
||||
j["omega_rotation_axis"] = {message.omega.axis[0], message.omega.axis[1], message.omega.axis[2]};
|
||||
j["space_group_number"] = message.space_group_number;
|
||||
j["roi_names"] = message.roi_names;
|
||||
j["gain_file_names"] = message.gain_file_names;
|
||||
auto str = j.dump();
|
||||
|
||||
CBOR_ENC(encoder, key, str);
|
||||
@@ -358,8 +375,6 @@ void CBORStream2Serializer::SerializeSequenceStart(const StartMessage& message)
|
||||
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);
|
||||
|
||||
CBOR_ENC(mapEncoder, "roi_sum_area", message.roi_summation_area);
|
||||
|
||||
switch (message.pixel_bit_depth) {
|
||||
case 8:
|
||||
CBOR_ENC(mapEncoder, "image_dtype", message.pixel_signed ? "int8" : "uint8");
|
||||
@@ -378,7 +393,6 @@ void CBORStream2Serializer::SerializeSequenceStart(const StartMessage& message)
|
||||
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, "gain_file_names", message.gain_file_names);
|
||||
|
||||
if (!message.calibration.empty())
|
||||
CBOR_ENC(mapEncoder, "calibration", message.calibration);
|
||||
@@ -447,10 +461,8 @@ void CBORStream2Serializer::SerializeImage(const DataMessage& message) {
|
||||
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, "roi_integrals", message.roi);
|
||||
CBOR_ENC(mapEncoder, "user_data", message.user_data);
|
||||
if (message.roi_sum)
|
||||
CBOR_ENC(mapEncoder, "roi_sum", message.roi_sum.value());
|
||||
|
||||
CBOR_ENC(mapEncoder, "data", message.image);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
Reference in New Issue
Block a user