Save radial integration results in master file

This commit is contained in:
2023-05-06 12:44:42 +02:00
parent 70a10c594c
commit 8e794c87c8
12 changed files with 126 additions and 14 deletions
+16 -6
View File
@@ -124,9 +124,9 @@ inline void CBOR_ENC_MULTIDIM_TYPED_ARRAY(CborEncoder &encoder, const char* key,
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
}
inline void CBOR_ENC(CborEncoder &encoder, const char* key,
const std::map<std::string, std::vector<uint32_t>> &pixel_mask,
size_t xpixel, size_t ypixel) {
inline void CBOR_ENC_PIXEL_MASK(CborEncoder &encoder, const char* key,
const std::map<std::string, std::vector<uint32_t>> &pixel_mask,
size_t xpixel, size_t ypixel) {
CborEncoder mapEncoder;
cborErr(cbor_encode_text_stringz(&encoder, key));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, pixel_mask.size()));
@@ -156,6 +156,16 @@ inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<fl
cborErr(cbor_encoder_close_container(&encoder, &arrayEncoder));
}
inline void CBOR_ENC_RAD_INT_RESULT(CborEncoder &encoder, const char* key,
const std::map<std::string, std::vector<float>> &rad_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)
CBOR_ENC(mapEncoder, map_key.c_str(), map_val);
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
}
inline void CBOR_ENC(CborEncoder &encoder, const char* key, const std::vector<SpotToSave>& spots) {
CborEncoder arrayEncoder;
@@ -367,7 +377,7 @@ void JFJochFrameSerializer::SerializeSequenceStart(const StartMessage& message)
CBOR_ENC_GONIOMETER_MAP(mapEncoder, "goniometer", message.goniometer);
CBOR_ENC_USER_DATA(mapEncoder, message);
CBOR_ENC(mapEncoder, "pixel_mask", message.pixel_mask, message.image_size_x, message.image_size_y);
CBOR_ENC_PIXEL_MASK(mapEncoder, "pixel_mask", message.pixel_mask, message.image_size_x, message.image_size_y);
CBOR_ENC_CHANNELS(mapEncoder, "channels", message.channels);
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
@@ -378,7 +388,7 @@ void JFJochFrameSerializer::SerializeSequenceEnd(const EndMessage& message) {
CborEncoder encoder, mapEncoder;
cbor_encoder_init(&encoder, buffer.data(), buffer.size(), 0);
cborErr(cbor_encode_tag(&encoder,CborSignatureTag ));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 8));
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, 9));
CBOR_ENC(mapEncoder, "type", "end");
CBOR_ENC(mapEncoder, "series_unique_id", message.series_unique_id);
@@ -388,7 +398,7 @@ void JFJochFrameSerializer::SerializeSequenceEnd(const EndMessage& message) {
CBOR_ENC(mapEncoder, "receiver_efficiency", message.efficiency);
CBOR_ENC(mapEncoder, "write_master_file", message.write_master_file);
CBOR_ENC(mapEncoder, "end_date", message.end_date);
CBOR_ENC_RAD_INT_RESULT(mapEncoder, "rad_int_result", message.rad_int_result);
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer.data());