mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-10-26 21:17:38 +00:00
Retrieve reduced CED only once, don't do it if we already have the full ephemeris set
Update changelog
This commit is contained in:
@@ -22,15 +22,18 @@ All notable changes to GNSS-SDR will be documented in this file.
|
|||||||
|
|
||||||
### Improvements in Interoperability:
|
### Improvements in Interoperability:
|
||||||
|
|
||||||
- Fix setting of the signal source gain if the AGC is enabled when using the
|
- Fixed setting of the signal source gain if the AGC is enabled when using the
|
||||||
AD9361 front-end.
|
AD9361 front-end.
|
||||||
|
- Fixed the regeneration of Galileo ephemeris from the reduced clock and
|
||||||
|
ephemeris data (CED) defined in the Galileo E1B INAV message introduced in
|
||||||
|
Galileo OS SIS ICD Issue 2.0.
|
||||||
|
|
||||||
### Improvements in Maintainability:
|
### Improvements in Maintainability:
|
||||||
|
|
||||||
- Rewritten Viterbi decoder for Galileo navigation messages: encapsulated in a
|
- Rewritten Viterbi decoder for Galileo navigation messages: encapsulated in a
|
||||||
class instead of being implemented as free inline functions. This improves
|
class instead of being implemented as free inline functions. This improves
|
||||||
memory management.
|
memory management.
|
||||||
- Update GSL implementation to v0.39.0. See
|
- Updated GSL implementation to v0.39.0. See
|
||||||
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.39.0
|
https://github.com/gsl-lite/gsl-lite/releases/tag/v0.39.0
|
||||||
|
|
||||||
### Improvements in Reliability
|
### Improvements in Reliability
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs(
|
|||||||
d_remove_dat = conf.remove_dat;
|
d_remove_dat = conf.remove_dat;
|
||||||
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
|
d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN());
|
||||||
d_frame_type = frame_type;
|
d_frame_type = frame_type;
|
||||||
|
d_enable_reed_solomon_inav = false;
|
||||||
|
|
||||||
// Viterbi decoder vars
|
// Viterbi decoder vars
|
||||||
const int32_t nn = 2; // Coding rate 1/n
|
const int32_t nn = 2; // Coding rate 1/n
|
||||||
@@ -123,6 +124,7 @@ galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs(
|
|||||||
d_max_symbols_without_valid_frame = GALILEO_INAV_PAGE_SYMBOLS * 30; // rise alarm 60 seconds without valid tlm
|
d_max_symbols_without_valid_frame = GALILEO_INAV_PAGE_SYMBOLS * 30; // rise alarm 60 seconds without valid tlm
|
||||||
if (conf.enable_reed_solomon == true)
|
if (conf.enable_reed_solomon == true)
|
||||||
{
|
{
|
||||||
|
d_enable_reed_solomon_inav = true;
|
||||||
d_inav_nav.enable_reed_solomon();
|
d_inav_nav.enable_reed_solomon();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -609,6 +611,10 @@ void galileo_telemetry_decoder_gs::reset()
|
|||||||
d_sent_tlm_failed_msg = false;
|
d_sent_tlm_failed_msg = false;
|
||||||
d_stat = 0;
|
d_stat = 0;
|
||||||
d_viterbi->reset();
|
d_viterbi->reset();
|
||||||
|
if (d_enable_reed_solomon_inav == true)
|
||||||
|
{
|
||||||
|
d_inav_nav.enable_reed_solomon();
|
||||||
|
}
|
||||||
DLOG(INFO) << "Telemetry decoder reset for satellite " << d_satellite;
|
DLOG(INFO) << "Telemetry decoder reset for satellite " << d_satellite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -143,6 +143,7 @@ private:
|
|||||||
bool d_print_cnav_page;
|
bool d_print_cnav_page;
|
||||||
bool d_enable_navdata_monitor;
|
bool d_enable_navdata_monitor;
|
||||||
bool d_dump_crc_stats;
|
bool d_dump_crc_stats;
|
||||||
|
bool d_enable_reed_solomon_inav;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -248,6 +248,7 @@ bool Galileo_Inav_Message::have_new_ephemeris() // Check if we have a new ephem
|
|||||||
flag_ephemeris_4 = false; // clear the flag
|
flag_ephemeris_4 = false; // clear the flag
|
||||||
flag_all_ephemeris = true;
|
flag_all_ephemeris = true;
|
||||||
IOD_ephemeris = IOD_nav_1;
|
IOD_ephemeris = IOD_nav_1;
|
||||||
|
enable_rs = false; // Do not retrieve reduced CED if we already have the full ephemeris set
|
||||||
DLOG(INFO) << "Batch number: " << IOD_ephemeris;
|
DLOG(INFO) << "Batch number: " << IOD_ephemeris;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -357,6 +358,7 @@ bool Galileo_Inav_Message::have_new_ephemeris() // Check if we have a new ephem
|
|||||||
flag_ephemeris_4 = false; // clear the flag
|
flag_ephemeris_4 = false; // clear the flag
|
||||||
flag_all_ephemeris = true;
|
flag_all_ephemeris = true;
|
||||||
IOD_ephemeris = IOD_nav_1;
|
IOD_ephemeris = IOD_nav_1;
|
||||||
|
enable_rs = false; // Retrieve reduced CED only once
|
||||||
DLOG(INFO) << "Batch number: " << IOD_ephemeris;
|
DLOG(INFO) << "Batch number: " << IOD_ephemeris;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user