From 7e5bc88632f2d5ff83e69abc40e7218837e8fd9e Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 13 Sep 2023 11:48:21 +0200 Subject: [PATCH] Since applying reduced CED parameters can break PVT continuity due to an increase in the residuals, we disable their usage by default. New conf parameter TelemetryDecoder_1B.use_reduced_ced --- .../adapters/galileo_e1b_telemetry_decoder.cc | 1 + .../gnuradio_blocks/galileo_telemetry_decoder_gs.cc | 5 +++-- .../gnuradio_blocks/galileo_telemetry_decoder_gs.h | 1 + src/algorithms/telemetry_decoder/libs/tlm_conf.h | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc index 92e5e4071..cadc48503 100644 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc +++ b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc @@ -33,6 +33,7 @@ GalileoE1BTelemetryDecoder::GalileoE1BTelemetryDecoder( DLOG(INFO) << "role " << role; tlm_parameters_.SetFromConfiguration(configuration, role); tlm_parameters_.enable_reed_solomon = configuration->property(role + ".enable_reed_solomon", false); + tlm_parameters_.use_ced = configuration->property(role + ".use_reduced_ced", false); // make telemetry decoder object telemetry_decoder_ = galileo_make_telemetry_decoder_gs(satellite_, tlm_parameters_, 1); // unified galileo decoder set to INAV (frame_type=1) DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc index 2c2693c44..ea99988d8 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc @@ -105,7 +105,8 @@ galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( d_enable_reed_solomon_inav(false), d_valid_timetag(false), d_E6_TOW_set(false), - d_there_are_e6_channels(conf.there_are_e6_channels) + d_there_are_e6_channels(conf.there_are_e6_channels), + d_use_ced(conf.use_ced) { // prevent telemetry symbols accumulation in output buffers this->set_max_noutput_items(1); @@ -442,7 +443,7 @@ void galileo_telemetry_decoder_gs::decode_INAV_word(float *page_part_symbols, in else { // If we still do not have ephemeris, check if we have a reduced CED - if ((d_band == '1') && !d_first_eph_sent && (d_inav_nav.have_new_reduced_ced() == true)) + if ((d_band == '1') && d_use_ced && !d_first_eph_sent && (d_inav_nav.have_new_reduced_ced() == true)) { const std::shared_ptr tmp_obj = std::make_shared(d_inav_nav.get_reduced_ced()); std::cout << "New Galileo E1 I/NAV reduced CED message received in channel " << d_channel << " from satellite " << d_satellite << '\n'; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h index dd6253829..39f2936c9 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h @@ -152,6 +152,7 @@ private: bool d_valid_timetag; bool d_E6_TOW_set; bool d_there_are_e6_channels; + bool d_use_ced; }; diff --git a/src/algorithms/telemetry_decoder/libs/tlm_conf.h b/src/algorithms/telemetry_decoder/libs/tlm_conf.h index abac3ac87..fccbb3f7b 100644 --- a/src/algorithms/telemetry_decoder/libs/tlm_conf.h +++ b/src/algorithms/telemetry_decoder/libs/tlm_conf.h @@ -43,6 +43,7 @@ public: bool dump_crc_stats{false}; // telemetry CRC statistics bool enable_navdata_monitor{false}; bool there_are_e6_channels{false}; + bool use_ced{false}; };