Compute PVT solutions when using GPS L5 signals even if the satellite is reported as not healthy in the CNAV message (Fixes: #588)

This commit is contained in:
Carles Fernandez 2022-02-26 13:03:53 +01:00
parent e81e82145a
commit b7f8a7d554
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
2 changed files with 9 additions and 3 deletions

View File

@ -14,6 +14,11 @@ All notable changes to GNSS-SDR will be documented in this file.
## [Unreleased](https://github.com/gnss-sdr/gnss-sdr/tree/next)
### Improvements in Availability:
- Compute PVT solutions when using GPS L5 signals even if the satellite is
reported as not healthy in the CNAV message.
### Improvements in Reliability:
- Fix some defects detected by Coverity Scan 2021.12.1.

View File

@ -1254,8 +1254,9 @@ void rtklib_pvt_gs::msg_handler_telemetry(const pmt::pmt_t& msg)
}
if (gps_cnav_ephemeris->signal_health != 0)
{
std::cout << TEXT_RED << "Satellite " << Gnss_Satellite(std::string("GPS"), gps_cnav_ephemeris->PRN)
<< " is not healthy, not used for navigation" << TEXT_RESET << '\n';
std::cout << "Satellite " << Gnss_Satellite(std::string("GPS"), gps_cnav_ephemeris->PRN)
<< " does not report a healthy status in the CNAV message,"
<< " use PVT solutions at your own risk.\n";
}
DLOG(INFO) << "New GPS CNAV ephemeris record has arrived ";
}
@ -2023,7 +2024,7 @@ int rtklib_pvt_gs::work(int noutput_items, gr_vector_const_void_star& input_item
if (tmp_eph_iter_cnav != d_internal_pvt_solver->gps_cnav_ephemeris_map.cend())
{
const uint32_t prn_aux = tmp_eph_iter_cnav->second.PRN;
if ((prn_aux == in[i][epoch].PRN) && (((std::string(in[i][epoch].Signal) == std::string("2S")) || (std::string(in[i][epoch].Signal) == std::string("L5"))) && (tmp_eph_iter_cnav->second.signal_health == 0)))
if ((prn_aux == in[i][epoch].PRN) && (((std::string(in[i][epoch].Signal) == std::string("2S")) || (std::string(in[i][epoch].Signal) == std::string("L5")))))
{
store_valid_observable = true;
}