diff --git a/src/core/system_parameters/gps_cnav_navigation_message.cc b/src/core/system_parameters/gps_cnav_navigation_message.cc index 6c2c6be39..66df5de45 100644 --- a/src/core/system_parameters/gps_cnav_navigation_message.cc +++ b/src/core/system_parameters/gps_cnav_navigation_message.cc @@ -18,9 +18,8 @@ #include "gps_cnav_navigation_message.h" #include "gnss_satellite.h" -#include // for std::sqrt -#include // for std::numeric_limits - +#include // for std::sqrt +#include // for std::numeric_limits Gps_CNAV_Navigation_Message::Gps_CNAV_Navigation_Message(CnavSystem system) : d_system(system) @@ -81,7 +80,11 @@ void Gps_CNAV_Navigation_Message::decode_page(const std::bitset(read_navigation_unsigned(data_bits, CNAV_PRN)); + auto PRN = static_cast(read_navigation_unsigned(data_bits, CNAV_PRN)); + if (d_system == CnavSystem::QZSS) + { + PRN += 192; + } ephemeris_record.PRN = PRN; d_TOW = static_cast(read_navigation_unsigned(data_bits, CNAV_TOW)); @@ -93,7 +96,6 @@ void Gps_CNAV_Navigation_Message::decode_page(const std::bitset(read_navigation_unsigned(data_bits, CNAV_MSG_TYPE)); - switch (page_type) { case 10: // Ephemeris 1/2