mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-11-17 23:34:56 +00:00
Merge branch 'next' into ssr
This commit is contained in:
commit
c99d5d2b97
@ -432,7 +432,7 @@ int galileo_e6_has_msg_receiver::decode_message_type1(uint8_t message_id, uint8_
|
||||
|
||||
void galileo_e6_has_msg_receiver::read_MT1_header(const std::string& message_header)
|
||||
{
|
||||
// ICD v1.4 Table 7: MT1 Message Header
|
||||
// HAS SIS ICD v1.0 Table 13: MT1 Message Header
|
||||
const std::bitset<GALILEO_CNAV_MT1_HEADER_BITS> has_mt1_header(message_header);
|
||||
d_HAS_data.header.toh = read_has_message_header_parameter_uint16(has_mt1_header, GALILEO_MT1_HEADER_TOH);
|
||||
d_HAS_data.header.mask_flag = read_has_message_header_parameter_bool(has_mt1_header, GALILEO_MT1_HEADER_MASK_FLAG);
|
||||
@ -461,7 +461,7 @@ void galileo_e6_has_msg_receiver::read_MT1_header(const std::string& message_hea
|
||||
|
||||
void galileo_e6_has_msg_receiver::read_MT1_body(const std::string& message_body)
|
||||
{
|
||||
// ICD v1.4 Table 8: MT1 Message Body.
|
||||
// HAS SIS ICD v1.0 Table 17: MT1 Message Body
|
||||
auto message = std::string(message_body);
|
||||
int Nsat = 0;
|
||||
bool have_mask = false;
|
||||
|
@ -1,9 +1,9 @@
|
||||
/*!
|
||||
* \file Galileo_CNAV.h
|
||||
* \brief Galileo CNAV mesage constants. Data from:
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.4
|
||||
* (February 2021).
|
||||
* \author Carles Fernandez-Prades, 2020-2021. cfernandez(at)cttc.es
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
* \author Carles Fernandez-Prades, 2020-2022. cfernandez(at)cttc.es
|
||||
*
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -11,7 +11,7 @@
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -91,10 +91,11 @@ constexpr float HAS_MSG_PHASE_BIAS_SCALE_FACTOR = 0.01;
|
||||
|
||||
constexpr uint16_t HAS_MSG_NUMBER_MAX_TOH = 3599;
|
||||
|
||||
constexpr uint8_t HAS_MSG_GPS_SYSTEM = 0; // Table 9 ICD v1.4
|
||||
constexpr uint8_t HAS_MSG_GALILEO_SYSTEM = 2; // Table 9 ICD v1.4
|
||||
constexpr uint8_t HAS_MSG_GPS_SYSTEM = 0; // HAS SIS ICD v1.0 Table 18
|
||||
constexpr uint8_t HAS_MSG_GALILEO_SYSTEM = 2; // HAS SIS ICD v1.0 Table 18
|
||||
constexpr uint8_t HAS_MSG_WRONG_SYSTEM = 255;
|
||||
|
||||
// HAS SIS ICD v1.0 Table 7
|
||||
const std::pair<int32_t, int32_t> GALILEO_HAS_STATUS({1, 2});
|
||||
const std::pair<int32_t, int32_t> GALILEO_HAS_RESERVED({3, 2});
|
||||
const std::pair<int32_t, int32_t> GALILEO_HAS_MESSAGE_TYPE({5, 2});
|
||||
@ -102,6 +103,7 @@ const std::pair<int32_t, int32_t> GALILEO_HAS_MESSAGE_ID({7, 5});
|
||||
const std::pair<int32_t, int32_t> GALILEO_HAS_MESSAGE_SIZE({12, 5});
|
||||
const std::pair<int32_t, int32_t> GALILEO_HAS_MESSAGE_PAGE_ID({17, 8});
|
||||
|
||||
// HAS SIS ICD v1.0 Table 12
|
||||
const std::pair<int32_t, int32_t> GALILEO_MT1_HEADER_TOH({1, 12});
|
||||
const std::pair<int32_t, int32_t> GALILEO_MT1_HEADER_MASK_FLAG({13, 1});
|
||||
const std::pair<int32_t, int32_t> GALILEO_MT1_HEADER_ORBIT_CORRECTION_FLAG({14, 1});
|
||||
|
@ -1,16 +1,16 @@
|
||||
/*!
|
||||
* \file galileo_cnav_message.cc
|
||||
* \brief Implementation of a Galileo CNAV Data message as described in
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
|
||||
* (April 2020)
|
||||
* \author Carles Fernandez-Prades, 2020-2021 cfernandez(at)cttc.es
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
* \author Carles Fernandez-Prades, 2020-2022 cfernandez(at)cttc.es
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2021 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -67,7 +67,7 @@ void Galileo_Cnav_Message::read_HAS_page(const std::string& page_string)
|
||||
read_HAS_page_header(page_string.substr(GALILEO_CNAV_PAGE_RESERVED_BITS, GALILEO_CNAV_PAGE_HEADER_BITS));
|
||||
bool use_has = false;
|
||||
d_test_mode = false;
|
||||
// HAS status as defined in ICD v1.2 Table 5 HAS Page Header
|
||||
// HAS status as defined in HAS SIS ICD v1.0 Table 9 - HASS values and corresponding semantic
|
||||
if (!d_page_dummy)
|
||||
{
|
||||
switch (d_has_page_status)
|
||||
@ -118,7 +118,7 @@ void Galileo_Cnav_Message::read_HAS_page_header(const std::string& page_string)
|
||||
}
|
||||
if (!d_page_dummy)
|
||||
{
|
||||
// ICD v1.2 Table 5: HAS page header
|
||||
// HAS SIS ICD v1.0 Table 7: HAS page header
|
||||
const std::bitset<GALILEO_CNAV_PAGE_HEADER_BITS> has_page_header(page_string);
|
||||
d_has_page_status = read_has_page_header_parameter(has_page_header, GALILEO_HAS_STATUS);
|
||||
d_has_reserved = read_has_page_header_parameter(has_page_header, GALILEO_HAS_RESERVED);
|
||||
|
@ -1,16 +1,16 @@
|
||||
/*!
|
||||
* \file galileo_cnav_message.h
|
||||
* \brief Implementation of a Galileo CNAV Data message as described in
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
|
||||
* (April 2020)
|
||||
* \author Carles Fernandez-Prades, 2020-2021 cfernandez(at)cttc.es
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
* \author Carles Fernandez-Prades, 2020-2022 cfernandez(at)cttc.es
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2021 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -34,8 +34,8 @@
|
||||
|
||||
/*!
|
||||
* \brief This class handles the Galileo CNAV Data message, as described in the
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
|
||||
* (April 2020)
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
*/
|
||||
class Galileo_Cnav_Message
|
||||
{
|
||||
|
@ -1,14 +1,14 @@
|
||||
/*!
|
||||
* \file galileo_has_data.cc
|
||||
* \brief Class for Galileo HAS message type 1 data storage
|
||||
* \author Carles Fernandez-Prades, 2020-2021 cfernandez(at)cttc.es
|
||||
* \author Carles Fernandez-Prades, 2020-2022 cfernandez(at)cttc.es
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2021 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -117,6 +117,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
{
|
||||
uint8_t system = gnss_id_mask[nsys];
|
||||
std::string signal;
|
||||
// See HAS SIS ICD v1.0 Table 20
|
||||
switch (k)
|
||||
{
|
||||
case 0:
|
||||
@ -171,7 +172,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L1 L1C(D)";
|
||||
signal = "L1C(D)";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -187,7 +188,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L1 L1C(P)";
|
||||
signal = "L1C(P)";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -203,7 +204,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L1 L1C(D+P)";
|
||||
signal = "L1C(D+P)";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -219,7 +220,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L2 L2C(M)";
|
||||
signal = "L2 CM";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -235,7 +236,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L2 L2C(L)";
|
||||
signal = "L2 CL";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -251,7 +252,7 @@ std::vector<std::string> Galileo_HAS_data::get_signals_in_mask(uint8_t nsys) con
|
||||
if (system == 0)
|
||||
{
|
||||
// GPS
|
||||
signal = "L2 L2C(M+L)";
|
||||
signal = "L2 CM+CL";
|
||||
}
|
||||
else if (system == 2)
|
||||
{
|
||||
@ -405,6 +406,7 @@ uint8_t Galileo_HAS_data::get_gnss_id(int nsat) const
|
||||
uint16_t Galileo_HAS_data::get_validity_interval_s(uint8_t validity_interval_index) const
|
||||
{
|
||||
uint16_t validity_interval;
|
||||
// See HAS SIS ICD v1.0 Table 23
|
||||
switch (validity_interval_index)
|
||||
{
|
||||
case 0:
|
||||
|
@ -1,14 +1,14 @@
|
||||
/*!
|
||||
* \file galileo_has_data.h
|
||||
* \brief Class for Galileo HAS message type 1 data storage
|
||||
* \author Carles Fernandez-Prades, 2020-2021 cfernandez(at)cttc.es
|
||||
* \author Carles Fernandez-Prades, 2020-2022 cfernandez(at)cttc.es
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2021 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -43,8 +43,8 @@ struct mt1_header
|
||||
|
||||
/*!
|
||||
* \brief This class is a storage for Galileo HAS message type 1, as defined in
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
|
||||
* (April 2020).
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
*/
|
||||
class Galileo_HAS_data
|
||||
{
|
||||
|
@ -8,7 +8,7 @@
|
||||
* GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
|
||||
* This file is part of GNSS-SDR.
|
||||
*
|
||||
* Copyright (C) 2010-2021 (see AUTHORS file for a list of contributors)
|
||||
* Copyright (C) 2010-2022 (see AUTHORS file for a list of contributors)
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
@ -29,8 +29,8 @@
|
||||
|
||||
/*!
|
||||
* \brief This class is a storage for Galileo HAS message page, as defined in
|
||||
* Galileo High Accuracy Service E6-B Signal-In-Space Message Specification v1.2
|
||||
* (April 2020).
|
||||
* Galileo High Accuracy Service Signal-In-Space Interface Control Document
|
||||
* (HAS SIS ICD) Issue 1.0, May 2022
|
||||
*/
|
||||
class Galileo_HAS_page
|
||||
{
|
||||
|
@ -22,12 +22,12 @@
|
||||
|
||||
TEST(ReedSolomonE6BTest, EncodeWithGenMatrix)
|
||||
{
|
||||
// input vector as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// input vector
|
||||
const std::vector<uint8_t> input = {71, 12, 25, 210, 178, 81, 243, 9, 112,
|
||||
98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31, 128,
|
||||
245, 87, 150, 58, 192, 66, 130, 179};
|
||||
|
||||
// Expected encoded output as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// Expected encoded output
|
||||
const std::vector<uint8_t> expected_output = {71, 12, 25, 210, 178, 81, 243,
|
||||
9, 112, 98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31,
|
||||
128, 245, 87, 150, 58, 192, 66, 130, 179, 133, 210, 122, 224, 75, 138,
|
||||
@ -55,12 +55,12 @@ TEST(ReedSolomonE6BTest, EncodeWithGenMatrix)
|
||||
|
||||
TEST(ReedSolomonE6BTest, EncodeWithGenPoly)
|
||||
{
|
||||
// input vector as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// input vector
|
||||
const std::vector<uint8_t> input = {71, 12, 25, 210, 178, 81, 243, 9, 112,
|
||||
98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31, 128,
|
||||
245, 87, 150, 58, 192, 66, 130, 179};
|
||||
|
||||
// Expected encoded output as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// Expected encoded output
|
||||
const std::vector<uint8_t> expected_output = {71, 12, 25, 210, 178, 81, 243,
|
||||
9, 112, 98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31,
|
||||
128, 245, 87, 150, 58, 192, 66, 130, 179, 133, 210, 122, 224, 75, 138,
|
||||
@ -88,12 +88,12 @@ TEST(ReedSolomonE6BTest, EncodeWithGenPoly)
|
||||
|
||||
TEST(ReedSolomonE6BTest, EncodeWithCustomPoly)
|
||||
{
|
||||
// input vector as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// input vector
|
||||
const std::vector<uint8_t> input = {71, 12, 25, 210, 178, 81, 243, 9, 112,
|
||||
98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31, 128,
|
||||
245, 87, 150, 58, 192, 66, 130, 179};
|
||||
|
||||
// Expected encoded output as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// Expected encoded output
|
||||
const std::vector<uint8_t> expected_output = {71, 12, 25, 210, 178, 81, 243,
|
||||
9, 112, 98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31,
|
||||
128, 245, 87, 150, 58, 192, 66, 130, 179, 133, 210, 122, 224, 75, 138,
|
||||
@ -144,12 +144,12 @@ TEST(ReedSolomonE6BTest, EncodeWithCustomPoly)
|
||||
|
||||
TEST(ReedSolomonE6BTest, EncodeWithCustomMatrix)
|
||||
{
|
||||
// input vector as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// input vector
|
||||
const std::vector<uint8_t> input = {71, 12, 25, 210, 178, 81, 243, 9, 112,
|
||||
98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31, 128,
|
||||
245, 87, 150, 58, 192, 66, 130, 179};
|
||||
|
||||
// Expected encoded output as defined in Galileo HAS ICD v1.2, Annex D
|
||||
// Expected encoded output
|
||||
const std::vector<uint8_t> expected_output = {71, 12, 25, 210, 178, 81, 243,
|
||||
9, 112, 98, 196, 203, 48, 125, 114, 165, 181, 193, 71, 174, 168, 42, 31,
|
||||
128, 245, 87, 150, 58, 192, 66, 130, 179, 133, 210, 122, 224, 75, 138,
|
||||
|
Loading…
Reference in New Issue
Block a user