1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2025-01-31 11:19:18 +00:00

Fix a bug that prevented from obtaining PVT fixes with Galileo E1 signals if frame 0 was the first to be decoded

This commit is contained in:
Carles Fernandez 2021-11-29 17:01:58 +01:00
parent c4aca73e67
commit 5f2f752421
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
2 changed files with 9 additions and 9 deletions

View File

@ -19,6 +19,8 @@ All notable changes to GNSS-SDR will be documented in this file.
- Improved Time-To-First-Fix when using GPS L1 C/A signals, fixing a bug that - Improved Time-To-First-Fix when using GPS L1 C/A signals, fixing a bug that
was making the receiver to drop the satellite if the PLL got locked at 180 was making the receiver to drop the satellite if the PLL got locked at 180
degrees, and making some optimizations on bit transition detection. degrees, and making some optimizations on bit transition detection.
- Fixed a bug that prevented from obtaining PVT fixes with Galileo E1 OS signals
if the I/NAV subframe type 0 was the first decoded subframe.
### Improvements in Interoperability: ### Improvements in Interoperability:

View File

@ -882,15 +882,13 @@ int galileo_telemetry_decoder_gs::general_work(int noutput_items __attribute__((
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (d_required_symbols + 1) * d_PRN_code_period_ms); d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (d_required_symbols + 1) * d_PRN_code_period_ms);
d_inav_nav.set_TOW6_flag(false); d_inav_nav.set_TOW6_flag(false);
} }
// warning: type 0 frame does not contain a valid TOW in some simulated signals, thus it is not safe to activate the following code: else if (d_inav_nav.is_TOW0_set() == true) // page 0 arrived and decoded
// else if (d_inav_nav.is_TOW0_set() == true) // page 0 arrived and decoded {
// { // TOW_0 refers to the even preamble, but when we decode it we are in the odd part, so 1 second later plus the decoding delay
// // TOW_0 refers to the even preamble, but when we decode it we are in the odd part, so 1 second later plus the decoding delay d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_inav_nav.get_TOW0() * 1000.0);
// d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_inav_nav.get_TOW0() * 1000.0); d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (d_required_symbols + 1) * d_PRN_code_period_ms);
// d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (d_required_symbols + 1) * d_PRN_code_period_ms); d_inav_nav.set_TOW0_flag(false);
// d_inav_nav.set_TOW0_flag(false); }
// // std::cout << "FRAME 0 current tow: " << tmp_d_TOW_at_current_symbol_ms << " vs. " << d_TOW_at_current_symbol_ms + d_PRN_code_period_ms << "\n";
// }
else else
{ {
// this page has no timing information // this page has no timing information