From 07a8a985c458acc45815fae69623b95aefc5b326 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Thu, 5 Mar 2026 08:00:07 +0100 Subject: [PATCH] Fix PRN in QZSS L5 ephemeris --- .../system_parameters/gps_cnav_navigation_message.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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