JFJochReceiver: ADU histogram saved on per module basis at the end of the measurement (but not on per image basis)
This commit is contained in:
@@ -157,6 +157,16 @@ inline void CBOR_ENC_RAD_INT_RESULT(CborEncoder &encoder, const char* key,
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
}
|
||||
|
||||
inline void CBOR_ENC_ADU_HIST(CborEncoder &encoder, const char* key,
|
||||
const std::map<std::string, std::vector<uint64_t>> &adu_histogram) {
|
||||
CborEncoder mapEncoder;
|
||||
cborErr(cbor_encode_text_stringz(&encoder, key));
|
||||
cborErr(cbor_encoder_create_map(&encoder, &mapEncoder, adu_histogram.size()));
|
||||
for (auto &[map_key, map_val]: adu_histogram)
|
||||
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;
|
||||
|
||||
@@ -389,13 +399,15 @@ void JFJochFrameSerializer::SerializeSequenceEnd(const EndMessage& message) {
|
||||
CBOR_ENC(mapEncoder, "end_date", message.end_date);
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "user_data"));
|
||||
cborErr(cbor_encoder_create_map(&mapEncoder, &userDataMapEncoder, 6));
|
||||
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));
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
@@ -422,7 +434,7 @@ void JFJochFrameSerializer::SerializeImage(const DataMessage& message) {
|
||||
message.timestamp_base);
|
||||
|
||||
cborErr(cbor_encode_text_stringz(&mapEncoder, "user_data"));
|
||||
cborErr(cbor_encoder_create_map(&mapEncoder, &userDataMapEncoder, 11));
|
||||
cborErr(cbor_encoder_create_map(&mapEncoder, &userDataMapEncoder, 10));
|
||||
|
||||
CBOR_ENC(userDataMapEncoder, "magic_number", user_data_magic_number);
|
||||
CBOR_ENC(userDataMapEncoder, "spots", message.spots);
|
||||
@@ -434,7 +446,6 @@ void JFJochFrameSerializer::SerializeImage(const DataMessage& message) {
|
||||
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);
|
||||
CBOR_ENC(userDataMapEncoder, "adu_histogram", message.adu_histogram);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&mapEncoder, &userDataMapEncoder));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user