mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-15 20:50:33 +00:00
Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next
This commit is contained in:
commit
2283d42a87
@ -80,10 +80,10 @@ if(NOT WIN32)
|
|||||||
set(CMAKE_C_FLAGS_COVERAGE "-Wall -pedantic -pthread -g -O0 -fprofile-arcs -ftest-coverage" CACHE STRING
|
set(CMAKE_C_FLAGS_COVERAGE "-Wall -pedantic -pthread -g -O0 -fprofile-arcs -ftest-coverage" CACHE STRING
|
||||||
"Flags used by the C compiler during Coverage builds." FORCE)
|
"Flags used by the C compiler during Coverage builds." FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
|
set(CMAKE_EXE_LINKER_FLAGS_COVERAGE
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used for linking binaries during Coverage builds." FORCE)
|
"Flags used for linking binaries during Coverage builds." FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used by the shared lib linker during Coverage builds." FORCE)
|
"Flags used by the shared lib linker during Coverage builds." FORCE)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
@ -111,10 +111,10 @@ if(NOT WIN32)
|
|||||||
set(CMAKE_C_FLAGS_NOOPTWITHASM "-Wall -save-temps -g -O0" CACHE STRING
|
set(CMAKE_C_FLAGS_NOOPTWITHASM "-Wall -save-temps -g -O0" CACHE STRING
|
||||||
"Flags used by the C compiler during NoOptWithASM builds." FORCE)
|
"Flags used by the C compiler during NoOptWithASM builds." FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_NOOPTWITHASM
|
set(CMAKE_EXE_LINKER_FLAGS_NOOPTWITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
|
"Flags used for linking binaries during NoOptWithASM builds." FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_NOOPTWITHASM
|
set(CMAKE_SHARED_LINKER_FLAGS_NOOPTWITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
|
"Flags used by the shared lib linker during NoOptWithASM builds." FORCE)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
@ -144,10 +144,10 @@ if(NOT WIN32)
|
|||||||
set(CMAKE_C_FLAGS_O2WITHASM "-Wall -save-temps -g -O2" CACHE STRING
|
set(CMAKE_C_FLAGS_O2WITHASM "-Wall -save-temps -g -O2" CACHE STRING
|
||||||
"Flags used by the C compiler during O2WithASM builds." FORCE)
|
"Flags used by the C compiler during O2WithASM builds." FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_O2WITHASM
|
set(CMAKE_EXE_LINKER_FLAGS_O2WITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used for linking binaries during O2WithASM builds." FORCE)
|
"Flags used for linking binaries during O2WithASM builds." FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_O2WITHASM
|
set(CMAKE_SHARED_LINKER_FLAGS_O2WITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used by the shared lib linker during O2WithASM builds." FORCE)
|
"Flags used by the shared lib linker during O2WithASM builds." FORCE)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
@ -176,10 +176,10 @@ if(NOT WIN32)
|
|||||||
set(CMAKE_C_FLAGS_O3WITHASM "-Wall -save-temps -g -O3" CACHE STRING
|
set(CMAKE_C_FLAGS_O3WITHASM "-Wall -save-temps -g -O3" CACHE STRING
|
||||||
"Flags used by the C compiler during O3WithASM builds." FORCE)
|
"Flags used by the C compiler during O3WithASM builds." FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_O3WITHASM
|
set(CMAKE_EXE_LINKER_FLAGS_O3WITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used for linking binaries during O3WithASM builds." FORCE)
|
"Flags used for linking binaries during O3WithASM builds." FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_O3WITHASM
|
set(CMAKE_SHARED_LINKER_FLAGS_O3WITHASM
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used by the shared lib linker during O3WithASM builds." FORCE)
|
"Flags used by the shared lib linker during O3WithASM builds." FORCE)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
@ -205,10 +205,10 @@ if(NOT WIN32)
|
|||||||
set(CMAKE_C_FLAGS_ASAN "-Wall -Wextra -g -O2 -fsanitize=address -fno-omit-frame-pointer" CACHE STRING
|
set(CMAKE_C_FLAGS_ASAN "-Wall -Wextra -g -O2 -fsanitize=address -fno-omit-frame-pointer" CACHE STRING
|
||||||
"Flags used by the C compiler during Address Sanitized builds." FORCE)
|
"Flags used by the C compiler during Address Sanitized builds." FORCE)
|
||||||
set(CMAKE_EXE_LINKER_FLAGS_ASAN
|
set(CMAKE_EXE_LINKER_FLAGS_ASAN
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used for linking binaries during Address Sanitized builds." FORCE)
|
"Flags used for linking binaries during Address Sanitized builds." FORCE)
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_ASAN
|
set(CMAKE_SHARED_LINKER_FLAGS_ASAN
|
||||||
"-Wl" CACHE STRING
|
"-W" CACHE STRING
|
||||||
"Flags used by the shared lib linker during Address Sanitized builds." FORCE)
|
"Flags used by the shared lib linker during Address Sanitized builds." FORCE)
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
|
@ -314,7 +314,7 @@ int galileo_e1b_telemetry_decoder_cc::general_work(int noutput_items __attribute
|
|||||||
consume_each(1);
|
consume_each(1);
|
||||||
|
|
||||||
d_flag_preamble = false;
|
d_flag_preamble = false;
|
||||||
uint32_t required_symbols = GALILEO_INAV_PAGE_SYMBOLS + d_symbols_per_preamble;
|
uint32_t required_symbols = static_cast<uint32_t>(GALILEO_INAV_PAGE_SYMBOLS) + static_cast<uint32_t>(d_symbols_per_preamble);
|
||||||
|
|
||||||
if (d_symbol_history.size() > required_symbols)
|
if (d_symbol_history.size() > required_symbols)
|
||||||
{
|
{
|
||||||
@ -427,7 +427,7 @@ int galileo_e1b_telemetry_decoder_cc::general_work(int noutput_items __attribute
|
|||||||
{
|
{
|
||||||
// TOW_5 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_5 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_nav.TOW_5 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.TOW_5 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + GALILEO_INAV_PAGE_PART_MS + (required_symbols + 1) * GALILEO_E1_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (required_symbols + 1) * GALILEO_E1_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_5 = false;
|
d_nav.flag_TOW_5 = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,20 +435,20 @@ int galileo_e1b_telemetry_decoder_cc::general_work(int noutput_items __attribute
|
|||||||
{
|
{
|
||||||
// TOW_6 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_6 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_nav.TOW_6 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.TOW_6 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + GALILEO_INAV_PAGE_PART_MS + (required_symbols + 1) * GALILEO_E1_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>(GALILEO_INAV_PAGE_PART_MS + (required_symbols + 1) * GALILEO_E1_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_6 = false;
|
d_nav.flag_TOW_6 = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// this page has no timing information
|
// this page has no timing information
|
||||||
d_TOW_at_current_symbol_ms += GALILEO_E1_CODE_PERIOD_MS; // + GALILEO_INAV_PAGE_PART_SYMBOLS*GALILEO_E1_CODE_PERIOD;
|
d_TOW_at_current_symbol_ms += static_cast<uint32_t>(GALILEO_E1_CODE_PERIOD_MS); // + GALILEO_INAV_PAGE_PART_SYMBOLS*GALILEO_E1_CODE_PERIOD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // if there is not a new preamble, we define the TOW of the current symbol
|
else // if there is not a new preamble, we define the TOW of the current symbol
|
||||||
{
|
{
|
||||||
if (d_nav.flag_TOW_set == true)
|
if (d_nav.flag_TOW_set == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_current_symbol_ms += GALILEO_E1_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms += static_cast<uint32_t>(GALILEO_E1_CODE_PERIOD_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,37 +438,37 @@ int galileo_e5a_telemetry_decoder_cc::general_work(int noutput_items __attribute
|
|||||||
if (d_nav.flag_TOW_1 == true)
|
if (d_nav.flag_TOW_1 == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_1 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_1 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + (GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>((GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_1 = false;
|
d_nav.flag_TOW_1 = false;
|
||||||
}
|
}
|
||||||
else if (d_nav.flag_TOW_2 == true)
|
else if (d_nav.flag_TOW_2 == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_2 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_2 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + (GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>((GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_2 = false;
|
d_nav.flag_TOW_2 = false;
|
||||||
}
|
}
|
||||||
else if (d_nav.flag_TOW_3 == true)
|
else if (d_nav.flag_TOW_3 == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_3 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_3 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + (GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>((GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_3 = false;
|
d_nav.flag_TOW_3 = false;
|
||||||
}
|
}
|
||||||
else if (d_nav.flag_TOW_4 == true)
|
else if (d_nav.flag_TOW_4 == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_4 * 1000.0);
|
d_TOW_at_Preamble_ms = static_cast<uint32_t>(d_nav.FNAV_TOW_4 * 1000.0);
|
||||||
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + (GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms = d_TOW_at_Preamble_ms + static_cast<uint32_t>((GALILEO_FNAV_CODES_PER_PAGE + GALILEO_FNAV_CODES_PER_PREAMBLE) * GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
d_nav.flag_TOW_4 = false;
|
d_nav.flag_TOW_4 = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
d_TOW_at_current_symbol_ms += GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms += static_cast<uint32_t>(GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // if there is not a new preamble, we define the TOW of the current symbol
|
else // if there is not a new preamble, we define the TOW of the current symbol
|
||||||
{
|
{
|
||||||
if (d_nav.flag_TOW_set == true)
|
if (d_nav.flag_TOW_set == true)
|
||||||
{
|
{
|
||||||
d_TOW_at_current_symbol_ms += GALILEO_E5a_CODE_PERIOD_MS;
|
d_TOW_at_current_symbol_ms += static_cast<uint32_t>(GALILEO_E5a_CODE_PERIOD_MS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc(
|
|||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
d_stat = 0;
|
d_stat = 0U;
|
||||||
d_flag_frame_sync = false;
|
d_flag_frame_sync = false;
|
||||||
d_prev_GPS_frame_4bytes = 0;
|
d_prev_GPS_frame_4bytes = 0;
|
||||||
d_TOW_at_Preamble_ms = 0;
|
d_TOW_at_Preamble_ms = 0;
|
||||||
@ -93,8 +93,7 @@ gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc(
|
|||||||
flag_PLL_180_deg_phase_locked = false;
|
flag_PLL_180_deg_phase_locked = false;
|
||||||
d_preamble_time_samples = 0ULL;
|
d_preamble_time_samples = 0ULL;
|
||||||
d_TOW_at_current_symbol_ms = 0;
|
d_TOW_at_current_symbol_ms = 0;
|
||||||
d_symbol_history.resize(GPS_CA_PREAMBLE_LENGTH_SYMBOLS); // Change fixed buffer size
|
d_symbol_history.set_capacity(GPS_CA_PREAMBLE_LENGTH_SYMBOLS);
|
||||||
d_symbol_history.clear(); // Clear all the elements in the buffer
|
|
||||||
d_crc_error_synchronization_counter = 0;
|
d_crc_error_synchronization_counter = 0;
|
||||||
d_current_subframe_symbol = 0;
|
d_current_subframe_symbol = 0;
|
||||||
}
|
}
|
||||||
@ -103,6 +102,7 @@ gps_l1_ca_telemetry_decoder_cc::gps_l1_ca_telemetry_decoder_cc(
|
|||||||
gps_l1_ca_telemetry_decoder_cc::~gps_l1_ca_telemetry_decoder_cc()
|
gps_l1_ca_telemetry_decoder_cc::~gps_l1_ca_telemetry_decoder_cc()
|
||||||
{
|
{
|
||||||
volk_gnsssdr_free(d_preambles_symbols);
|
volk_gnsssdr_free(d_preambles_symbols);
|
||||||
|
d_symbol_history.clear();
|
||||||
if (d_dump_file.is_open() == true)
|
if (d_dump_file.is_open() == true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -64,8 +64,8 @@ gps_l5_telemetry_decoder_cc::gps_l5_telemetry_decoder_cc(
|
|||||||
DLOG(INFO) << "GPS L5 TELEMETRY PROCESSING: satellite " << d_satellite;
|
DLOG(INFO) << "GPS L5 TELEMETRY PROCESSING: satellite " << d_satellite;
|
||||||
d_channel = 0;
|
d_channel = 0;
|
||||||
d_flag_valid_word = false;
|
d_flag_valid_word = false;
|
||||||
d_TOW_at_current_symbol_ms = 0;
|
d_TOW_at_current_symbol_ms = 0U;
|
||||||
d_TOW_at_Preamble_ms = 0;
|
d_TOW_at_Preamble_ms = 0U;
|
||||||
// initialize the CNAV frame decoder (libswiftcnav)
|
// initialize the CNAV frame decoder (libswiftcnav)
|
||||||
cnav_msg_decoder_init(&d_cnav_decoder);
|
cnav_msg_decoder_init(&d_cnav_decoder);
|
||||||
for (int32_t aux = 0; aux < GPS_L5i_NH_CODE_LENGTH; aux++)
|
for (int32_t aux = 0; aux < GPS_L5i_NH_CODE_LENGTH; aux++)
|
||||||
|
@ -54,7 +54,7 @@ const double GPS_L1_FREQ_HZ = FREQ1; //!< L1 [Hz]
|
|||||||
const double GPS_L1_CA_CODE_RATE_HZ = 1.023e6; //!< GPS L1 C/A code rate [chips/s]
|
const double GPS_L1_CA_CODE_RATE_HZ = 1.023e6; //!< GPS L1 C/A code rate [chips/s]
|
||||||
const double GPS_L1_CA_CODE_LENGTH_CHIPS = 1023.0; //!< GPS L1 C/A code length [chips]
|
const double GPS_L1_CA_CODE_LENGTH_CHIPS = 1023.0; //!< GPS L1 C/A code length [chips]
|
||||||
const double GPS_L1_CA_CODE_PERIOD = 0.001; //!< GPS L1 C/A code period [seconds]
|
const double GPS_L1_CA_CODE_PERIOD = 0.001; //!< GPS L1 C/A code period [seconds]
|
||||||
const uint32_t GPS_L1_CA_CODE_PERIOD_MS = 1; //!< GPS L1 C/A code period [ms]
|
const uint32_t GPS_L1_CA_CODE_PERIOD_MS = 1U; //!< GPS L1 C/A code period [ms]
|
||||||
const double GPS_L1_CA_CHIP_PERIOD = 9.7752e-07; //!< GPS L1 C/A chip period [seconds]
|
const double GPS_L1_CA_CHIP_PERIOD = 9.7752e-07; //!< GPS L1 C/A chip period [seconds]
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -229,11 +229,11 @@ Galileo_Navigation_Message::Galileo_Navigation_Message()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Galileo_Navigation_Message::CRC_test(std::bitset<GALILEO_DATA_FRAME_BITS> bits, boost::uint32_t checksum)
|
bool Galileo_Navigation_Message::CRC_test(std::bitset<GALILEO_DATA_FRAME_BITS> bits, uint32_t checksum)
|
||||||
{
|
{
|
||||||
CRC_Galileo_INAV_type CRC_Galileo;
|
CRC_Galileo_INAV_type CRC_Galileo;
|
||||||
|
|
||||||
boost::uint32_t crc_computed;
|
uint32_t crc_computed;
|
||||||
// Galileo INAV frame for CRC is not an integer multiple of bytes
|
// Galileo INAV frame for CRC is not an integer multiple of bytes
|
||||||
// it needs to be filled with zeroes at the start of the frame.
|
// it needs to be filled with zeroes at the start of the frame.
|
||||||
// This operation is done in the transformation from bits to bytes
|
// This operation is done in the transformation from bits to bytes
|
||||||
@ -290,7 +290,7 @@ uint64_t Galileo_Navigation_Message::read_page_type_unsigned(std::bitset<GALILEO
|
|||||||
value <<= 1; // shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GALILEO_PAGE_TYPE_BITS - parameter[i].first - j] == 1)
|
if (bits[GALILEO_PAGE_TYPE_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1ULL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -306,11 +306,11 @@ int64_t Galileo_Navigation_Message::read_navigation_signed(std::bitset<GALILEO_D
|
|||||||
// read the MSB and perform the sign extension
|
// read the MSB and perform the sign extension
|
||||||
if (bits[GALILEO_DATA_JK_BITS - parameter[0].first] == 1)
|
if (bits[GALILEO_DATA_JK_BITS - parameter[0].first] == 1)
|
||||||
{
|
{
|
||||||
value ^= 0xFFFFFFFFFFFFFFFF; // 64 bits variable
|
value ^= 0xFFFFFFFFFFFFFFFFLL; // 64 bits variable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= 0;
|
value &= 0LL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < num_of_slices; i++)
|
for (int32_t i = 0; i < num_of_slices; i++)
|
||||||
@ -321,7 +321,7 @@ int64_t Galileo_Navigation_Message::read_navigation_signed(std::bitset<GALILEO_D
|
|||||||
value &= 0xFFFFFFFFFFFFFFFE; // reset the corresponding bit (for the 64 bits variable)
|
value &= 0xFFFFFFFFFFFFFFFE; // reset the corresponding bit (for the 64 bits variable)
|
||||||
if (bits[GALILEO_DATA_JK_BITS - parameter[i].first - j] == 1)
|
if (bits[GALILEO_DATA_JK_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1LL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -236,10 +236,10 @@ uint64_t Glonass_Gnav_Navigation_Message::read_navigation_unsigned(std::bitset<G
|
|||||||
{
|
{
|
||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; //shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GLONASS_GNAV_STRING_BITS - parameter[i].first - j] == 1)
|
if (bits[GLONASS_GNAV_STRING_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1ULL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -255,20 +255,20 @@ int64_t Glonass_Gnav_Navigation_Message::read_navigation_signed(std::bitset<GLON
|
|||||||
// read the MSB and perform the sign extension
|
// read the MSB and perform the sign extension
|
||||||
if (bits[GLONASS_GNAV_STRING_BITS - parameter[0].first] == 1)
|
if (bits[GLONASS_GNAV_STRING_BITS - parameter[0].first] == 1)
|
||||||
{
|
{
|
||||||
sign = -1;
|
sign = -1LL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sign = 1;
|
sign = 1LL;
|
||||||
}
|
}
|
||||||
for (int32_t i = 0; i < num_of_slices; i++)
|
for (int32_t i = 0; i < num_of_slices; i++)
|
||||||
{
|
{
|
||||||
for (int32_t j = 1; j < parameter[i].second; j++)
|
for (int32_t j = 1; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; //shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GLONASS_GNAV_STRING_BITS - parameter[i].first - j] == 1)
|
if (bits[GLONASS_GNAV_STRING_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1LL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -278,32 +278,32 @@ int64_t Glonass_Gnav_Navigation_Message::read_navigation_signed(std::bitset<GLON
|
|||||||
|
|
||||||
uint32_t Glonass_Gnav_Navigation_Message::get_frame_number(uint32_t satellite_slot_number)
|
uint32_t Glonass_Gnav_Navigation_Message::get_frame_number(uint32_t satellite_slot_number)
|
||||||
{
|
{
|
||||||
uint32_t frame_ID = 0;
|
uint32_t frame_ID = 0U;
|
||||||
|
|
||||||
if (satellite_slot_number >= 1 and satellite_slot_number <= 5)
|
if (satellite_slot_number >= 1 and satellite_slot_number <= 5)
|
||||||
{
|
{
|
||||||
frame_ID = 1;
|
frame_ID = 1U;
|
||||||
}
|
}
|
||||||
else if (satellite_slot_number >= 6 and satellite_slot_number <= 10)
|
else if (satellite_slot_number >= 6 and satellite_slot_number <= 10)
|
||||||
{
|
{
|
||||||
frame_ID = 2;
|
frame_ID = 2U;
|
||||||
}
|
}
|
||||||
else if (satellite_slot_number >= 11 and satellite_slot_number <= 15)
|
else if (satellite_slot_number >= 11 and satellite_slot_number <= 15)
|
||||||
{
|
{
|
||||||
frame_ID = 3;
|
frame_ID = 3U;
|
||||||
}
|
}
|
||||||
else if (satellite_slot_number >= 16 and satellite_slot_number <= 20)
|
else if (satellite_slot_number >= 16 and satellite_slot_number <= 20)
|
||||||
{
|
{
|
||||||
frame_ID = 4;
|
frame_ID = 4U;
|
||||||
}
|
}
|
||||||
else if (satellite_slot_number >= 21 and satellite_slot_number <= 24)
|
else if (satellite_slot_number >= 21 and satellite_slot_number <= 24)
|
||||||
{
|
{
|
||||||
frame_ID = 5;
|
frame_ID = 5U;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
LOG(WARNING) << "GLONASS GNAV: Invalid Satellite Slot Number";
|
LOG(WARNING) << "GLONASS GNAV: Invalid Satellite Slot Number";
|
||||||
frame_ID = 0;
|
frame_ID = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
return frame_ID;
|
return frame_ID;
|
||||||
@ -313,8 +313,8 @@ uint32_t Glonass_Gnav_Navigation_Message::get_frame_number(uint32_t satellite_sl
|
|||||||
int32_t Glonass_Gnav_Navigation_Message::string_decoder(std::string frame_string)
|
int32_t Glonass_Gnav_Navigation_Message::string_decoder(std::string frame_string)
|
||||||
{
|
{
|
||||||
int32_t J = 0;
|
int32_t J = 0;
|
||||||
d_string_ID = 0;
|
d_string_ID = 0U;
|
||||||
d_frame_ID = 0;
|
d_frame_ID = 0U;
|
||||||
|
|
||||||
// Unpack bytes to bits
|
// Unpack bytes to bits
|
||||||
std::bitset<GLONASS_GNAV_STRING_BITS> string_bits(frame_string);
|
std::bitset<GLONASS_GNAV_STRING_BITS> string_bits(frame_string);
|
||||||
|
@ -99,7 +99,7 @@ uint64_t Gps_CNAV_Navigation_Message::read_navigation_unsigned(std::bitset<GPS_C
|
|||||||
value <<= 1; // shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[i].first - j] == 1)
|
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1ULL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -115,11 +115,11 @@ int64_t Gps_CNAV_Navigation_Message::read_navigation_signed(std::bitset<GPS_CNAV
|
|||||||
// read the MSB and perform the sign extension
|
// read the MSB and perform the sign extension
|
||||||
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[0].first] == 1)
|
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[0].first] == 1)
|
||||||
{
|
{
|
||||||
value ^= 0xFFFFFFFFFFFFFFFF; // 64 bits variable
|
value ^= 0xFFFFFFFFFFFFFFFFLL; // 64 bits variable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= 0;
|
value &= 0LL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < num_of_slices; i++)
|
for (int32_t i = 0; i < num_of_slices; i++)
|
||||||
@ -127,10 +127,10 @@ int64_t Gps_CNAV_Navigation_Message::read_navigation_signed(std::bitset<GPS_CNAV
|
|||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; // shift left
|
value <<= 1; // shift left
|
||||||
value &= 0xFFFFFFFFFFFFFFFE; // reset the corresponding bit (for the 64 bits variable)
|
value &= 0xFFFFFFFFFFFFFFFELL; // reset the corresponding bit (for the 64 bits variable)
|
||||||
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[i].first - j] == 1)
|
if (bits[GPS_CNAV_DATA_PAGE_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1LL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,10 +184,10 @@ uint64_t Gps_Navigation_Message::read_navigation_unsigned(std::bitset<GPS_SUBFRA
|
|||||||
{
|
{
|
||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; //shift left
|
value <<= 1; // shift left
|
||||||
if (bits[GPS_SUBFRAME_BITS - parameter[i].first - j] == 1)
|
if (bits[GPS_SUBFRAME_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1ULL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -203,11 +203,11 @@ int64_t Gps_Navigation_Message::read_navigation_signed(std::bitset<GPS_SUBFRAME_
|
|||||||
// read the MSB and perform the sign extension
|
// read the MSB and perform the sign extension
|
||||||
if (bits[GPS_SUBFRAME_BITS - parameter[0].first] == 1)
|
if (bits[GPS_SUBFRAME_BITS - parameter[0].first] == 1)
|
||||||
{
|
{
|
||||||
value ^= 0xFFFFFFFFFFFFFFFF; // 64 bits variable
|
value ^= 0xFFFFFFFFFFFFFFFFLL; // 64 bits variable
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value &= 0;
|
value &= 0LL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t i = 0; i < num_of_slices; i++)
|
for (int32_t i = 0; i < num_of_slices; i++)
|
||||||
@ -215,10 +215,10 @@ int64_t Gps_Navigation_Message::read_navigation_signed(std::bitset<GPS_SUBFRAME_
|
|||||||
for (int32_t j = 0; j < parameter[i].second; j++)
|
for (int32_t j = 0; j < parameter[i].second; j++)
|
||||||
{
|
{
|
||||||
value <<= 1; // shift left
|
value <<= 1; // shift left
|
||||||
value &= 0xFFFFFFFFFFFFFFFE; // reset the corresponding bit (for the 64 bits variable)
|
value &= 0xFFFFFFFFFFFFFFFELL; // reset the corresponding bit (for the 64 bits variable)
|
||||||
if (bits[GPS_SUBFRAME_BITS - parameter[i].first - j] == 1)
|
if (bits[GPS_SUBFRAME_BITS - parameter[i].first - j] == 1)
|
||||||
{
|
{
|
||||||
value += 1; // insert the bit
|
value += 1LL; // insert the bit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user