diff --git a/src/core/system_parameters/beidou_dnav_navigation_message.cc b/src/core/system_parameters/beidou_dnav_navigation_message.cc index 2a4476ea5..a1c66c6eb 100644 --- a/src/core/system_parameters/beidou_dnav_navigation_message.cc +++ b/src/core/system_parameters/beidou_dnav_navigation_message.cc @@ -284,11 +284,7 @@ int64_t Beidou_Dnav_Navigation_Message::read_navigation_signed( { value &= 0; } - // Avoid saturation when decoding - if (value == std::numeric_limits::max() or value == std::numeric_limits::min()) - { - value /= 2; - } + for (int32_t i = 0; i < num_of_slices; i++) { for (int32_t j = 0; j < parameter[i].second; j++) diff --git a/src/core/system_parameters/galileo_navigation_message.cc b/src/core/system_parameters/galileo_navigation_message.cc index 0d5cc6a4b..b2c88c21f 100644 --- a/src/core/system_parameters/galileo_navigation_message.cc +++ b/src/core/system_parameters/galileo_navigation_message.cc @@ -311,11 +311,7 @@ int64_t Galileo_Navigation_Message::read_navigation_signed(std::bitset::max() or value == std::numeric_limits::min()) - { - value /= 2; - } + for (int32_t i = 0; i < num_of_slices; i++) { for (int32_t j = 0; j < parameter[i].second; j++) diff --git a/src/core/system_parameters/gps_cnav_navigation_message.cc b/src/core/system_parameters/gps_cnav_navigation_message.cc index 94656179d..96c62855a 100644 --- a/src/core/system_parameters/gps_cnav_navigation_message.cc +++ b/src/core/system_parameters/gps_cnav_navigation_message.cc @@ -122,11 +122,7 @@ int64_t Gps_CNAV_Navigation_Message::read_navigation_signed(std::bitset::max() or value == std::numeric_limits::min()) - { - value /= 2; - } + for (int32_t i = 0; i < num_of_slices; i++) { for (int32_t j = 0; j < parameter[i].second; j++) diff --git a/src/core/system_parameters/gps_navigation_message.cc b/src/core/system_parameters/gps_navigation_message.cc index 936c5131f..bf46af751 100644 --- a/src/core/system_parameters/gps_navigation_message.cc +++ b/src/core/system_parameters/gps_navigation_message.cc @@ -212,11 +212,7 @@ int64_t Gps_Navigation_Message::read_navigation_signed(std::bitset::max() or value == std::numeric_limits::min()) - { - value /= 2; - } + for (int32_t i = 0; i < num_of_slices; i++) { for (int32_t j = 0; j < parameter[i].second; j++)