diff --git a/README.md b/README.md index d42921bb8..7c902815c 100644 --- a/README.md +++ b/README.md @@ -1778,12 +1778,12 @@ is managed by a finite state machine. The common interface is [TelemetryDecoderInterface](./src/core/interfaces/telemetry_decoder_interface.h). -Check -[GpsL1CaTelemetryDecoder](./src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h) -for an example of the GPS L1 NAV message decoding adapter, and -[gps_l1_ca_telemetry_decoder_cc](./src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_cc.h) -for an actual implementation of a signal processing block. Configuration -example: +Telemetry decoder adapters are provided through +[TelemetryDecoderAdapter](./src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.h), +which wraps the corresponding GNU Radio telemetry decoder block. Check +[gps_l1_ca_telemetry_decoder_gs](./src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h) +for an actual implementation of a GPS L1 NAV message decoding block. +Configuration example: ``` ;######### TELEMETRY DECODER CONFIG ############ diff --git a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt index 1d0898719..bd198243e 100644 --- a/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt +++ b/src/algorithms/telemetry_decoder/adapters/CMakeLists.txt @@ -6,39 +6,11 @@ set(TELEMETRY_DECODER_ADAPTER_SOURCES - telemetry_decoder_adapter_base.cc - gps_l1_ca_telemetry_decoder.cc - gps_l2c_telemetry_decoder.cc - gps_l5_telemetry_decoder.cc - galileo_e1b_telemetry_decoder.cc - sbas_l1_telemetry_decoder.cc - galileo_e5a_telemetry_decoder.cc - galileo_e5b_telemetry_decoder.cc - galileo_e6_telemetry_decoder.cc - glonass_l1_ca_telemetry_decoder.cc - glonass_l2_ca_telemetry_decoder.cc - beidou_b1i_telemetry_decoder.cc - beidou_b3i_telemetry_decoder.cc - qzss_l1_telemetry_decoder.cc - qzss_l5_telemetry_decoder.cc + telemetry_decoder_adapter.cc ) set(TELEMETRY_DECODER_ADAPTER_HEADERS - telemetry_decoder_adapter_base.h - gps_l1_ca_telemetry_decoder.h - gps_l2c_telemetry_decoder.h - gps_l5_telemetry_decoder.h - galileo_e1b_telemetry_decoder.h - sbas_l1_telemetry_decoder.h - galileo_e5a_telemetry_decoder.h - galileo_e5b_telemetry_decoder.h - galileo_e6_telemetry_decoder.h - glonass_l1_ca_telemetry_decoder.h - glonass_l2_ca_telemetry_decoder.h - beidou_b1i_telemetry_decoder.h - beidou_b3i_telemetry_decoder.h - qzss_l1_telemetry_decoder.h - qzss_l5_telemetry_decoder.h + telemetry_decoder_adapter.h ) list(SORT TELEMETRY_DECODER_ADAPTER_HEADERS) diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc deleted file mode 100644 index a45539426..000000000 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file beidou_b1i_telemetry_decoder.cc - * \brief Implementation of an adapter of a Beidou B1I NAV data decoder block - * to a TelemetryDecoderInterface - * \author Sergi Segura, 2018. sergi.segura.munoz(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "beidou_b1i_telemetry_decoder.h" -#include "beidou_b1i_telemetry_decoder_gs.h" - -BeidouB1iTelemetryDecoder::BeidouB1iTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(beidou_b1i_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h deleted file mode 100644 index 027b7b43f..000000000 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b1i_telemetry_decoder.h +++ /dev/null @@ -1,55 +0,0 @@ -/*! - * \file beidou_b1i_telemetry_decoder.h - * \brief Interface of an adapter of a Beidou B1I NAV data decoder block - * to a TelemetryDecoderInterface - * \author Damian Miralles, 2018. dmiralles2009@gmail.com - * \author Sergi Segura, 2018. sergi.segura.munoz(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_H -#define GNSS_SDR_BEIDOU_B1I_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for BEIDOU B1I - */ -class BeidouB1iTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - BeidouB1iTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "BEIDOU_B1I_Telemetry_Decoder" - inline std::string implementation() override - { - return "BEIDOU_B1I_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc deleted file mode 100644 index 75d99129d..000000000 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.cc +++ /dev/null @@ -1,32 +0,0 @@ -/*! - * \file beidou_b3i_telemetry_decoder.cc - * \brief Implementation of an adapter of a Beidou B3I NAV data decoder block - * to a TelemetryDecoderInterface - * \author Damian Miralles, 2019. dmiralles2009@gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "beidou_b3i_telemetry_decoder.h" -#include "beidou_b3i_telemetry_decoder_gs.h" - -BeidouB3iTelemetryDecoder::BeidouB3iTelemetryDecoder( - const ConfigurationInterface *configuration, - const std::string &role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(beidou_b3i_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h deleted file mode 100644 index 4726156cb..000000000 --- a/src/algorithms/telemetry_decoder/adapters/beidou_b3i_telemetry_decoder.h +++ /dev/null @@ -1,52 +0,0 @@ -/*! - * \file beidou_b3i_telemetry_decoder.h - * \brief Interface of an adapter of a Beidou B3I NAV data decoder block - * to a TelemetryDecoderInterface - * \author Damian Miralles, 2019. dmiralles2009@gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#ifndef GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_H -#define GNSS_SDR_BEIDOU_B3I_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for BEIDOU B1I - */ -class BeidouB3iTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - BeidouB3iTelemetryDecoder( - const ConfigurationInterface *configuration, - const std::string &role, unsigned int in_streams, - unsigned int out_streams); - - //! Returns "BEIDOU_B3I_Telemetry_Decoder" - inline std::string implementation() override - { - return "BEIDOU_B3I_Telemetry_Decoder"; - } -}; - -/** \} */ -/** \} */ -#endif diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc deleted file mode 100644 index a3d5415f9..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.cc +++ /dev/null @@ -1,38 +0,0 @@ -/*! - * \file galileo_e1b_telemetry_decoder.cc - * \brief Implementation of an adapter of a Galileo INAV data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas 2013. jarribas(at)cttc.es, - * Mara Branzanti 2013. mara.branzanti(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "galileo_e1b_telemetry_decoder.h" -#include "galileo_telemetry_decoder_gs.h" - -GalileoE1BTelemetryDecoder::GalileoE1BTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - if (configuration != nullptr) - { - tlm_parameters_.enable_reed_solomon = configuration->property(role + ".enable_reed_solomon", false); - tlm_parameters_.use_ced = configuration->property(role + ".use_reduced_ced", false); - } - InitializeDecoder(galileo_make_telemetry_decoder_gs(satellite(), tlm_parameters_, 1)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h deleted file mode 100644 index c42462aa3..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e1b_telemetry_decoder.h +++ /dev/null @@ -1,57 +0,0 @@ -/*! - * \file galileo_e1b_telemetry_decoder.h - * \brief Interface of an adapter of a GALILEO E1B NAV data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas 2013 jarribas(at)cttc.es, - * Mara Branzanti 2013. mara.branzanti(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GALILEO_E1B_TELEMETRY_DECODER_H -#define GNSS_SDR_GALILEO_E1B_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for Galileo INAV frames in E1B radio link - */ -class GalileoE1BTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GalileoE1BTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - /*! - * \brief Returns "Galileo_E1B_Telemetry_Decoder" - */ - inline std::string implementation() override - { - return "Galileo_E1B_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GALILEO_E1B_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc deleted file mode 100644 index 6900bd98d..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.cc +++ /dev/null @@ -1,37 +0,0 @@ -/*! - * \file galileo_e5a_telemetry_decoder.cc - * \brief Interface of an adapter of a GALILEO E5a FNAV data decoder block - * to a TelemetryDecoderInterface - * \author Marc Sales, 2014. marcsales92(at)gmail.com - * \based on work from: - *
    - *
  • Javier Arribas, 2011. jarribas(at)cttc.es - *
- * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "galileo_e5a_telemetry_decoder.h" -#include "galileo_telemetry_decoder_gs.h" - -GalileoE5aTelemetryDecoder::GalileoE5aTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(galileo_make_telemetry_decoder_gs(satellite(), tlm_parameters_, 2)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h deleted file mode 100644 index f9f8a01f6..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5a_telemetry_decoder.h +++ /dev/null @@ -1,59 +0,0 @@ -/*! - * \file galileo_e5a_telemetry_decoder.h - * \brief Interface of an adapter of a GALILEO E5a FNAV data decoder block - * to a TelemetryDecoderInterface - * \author Marc Sales, 2014. marcsales92(at)gmail.com - * \based on work from: - *
    - *
  • Javier Arribas, 2011. jarribas(at)cttc.es - *
- * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#ifndef GNSS_SDR_GALILEO_E5A_TELEMETRY_DECODER_H -#define GNSS_SDR_GALILEO_E5A_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - -/*! - * \brief This class implements a NAV data decoder for Galileo INAV frames in E1B radio link - */ -class GalileoE5aTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GalileoE5aTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - /*! - * \brief Returns "Galileo_E5a_Telemetry_Decoder" - */ - inline std::string implementation() override - { - return "Galileo_E5A_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GALILEO_E5A_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc deleted file mode 100644 index 2ebfe6cc2..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.cc +++ /dev/null @@ -1,34 +0,0 @@ -/*! - * \file galileo_e5b_telemetry_decoder.cc - * \brief Interface of an adapter of a GALILEO E5B NAV data decoder block - * to a TelemetryDecoderInterface - * \author Piyush Gupta 2020 piyush04111999@gmail.com. - * \note Code added as part of GSoC 2020 Program. - * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "galileo_e5b_telemetry_decoder.h" -#include "galileo_telemetry_decoder_gs.h" - -GalileoE5bTelemetryDecoder::GalileoE5bTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(galileo_make_telemetry_decoder_gs(satellite(), tlm_parameters_, 1)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h deleted file mode 100644 index 0e51fcf47..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e5b_telemetry_decoder.h +++ /dev/null @@ -1,57 +0,0 @@ -/*! - * \file galileo_e5b_telemetry_decoder.h - * \brief Interface of an adapter of a GALILEO E5B NAV data decoder block - * to a TelemetryDecoderInterface - * \author Piyush Gupta 2020 piyush04111999@gmail.com. - * \note Code added as part of GSoC 2020 Program. - * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GALILEO_E5B_TELEMETRY_DECODER_H -#define GNSS_SDR_GALILEO_E5B_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for Galileo INAV frames in E5b radio link - */ -class GalileoE5bTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GalileoE5bTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - /*! - * \brief Returns "Galileo_E5b_Telemetry_Decoder" - */ - inline std::string implementation() override - { - return "Galileo_E5b_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GALILEO_E5B_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc deleted file mode 100644 index 488e7a33a..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file galileo_e6_telemetry_decoder.cc - * \brief Interface of an adapter of a GALILEO E6 CNAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2020 cfernandez@cttc.es - * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "galileo_e6_telemetry_decoder.h" -#include "galileo_telemetry_decoder_gs.h" - -GalileoE6TelemetryDecoder::GalileoE6TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(galileo_make_telemetry_decoder_gs(satellite(), tlm_parameters_, 3)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h deleted file mode 100644 index 8b507a068..000000000 --- a/src/algorithms/telemetry_decoder/adapters/galileo_e6_telemetry_decoder.h +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * \file galileo_e6_telemetry_decoder.h - * \brief Interface of an adapter of a GALILEO E6 CNAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2020 cfernandez@cttc.es - * - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GALILEO_E6_TELEMETRY_DECODER_H -#define GNSS_SDR_GALILEO_E6_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for Galileo CNAV frames in E6 radio link - */ -class GalileoE6TelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GalileoE6TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - /*! - * \brief Returns "Galileo_E6_Telemetry_Decoder" - */ - inline std::string implementation() override - { - return "Galileo_E6_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GALILEO_E6_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc deleted file mode 100644 index eb753cdbb..000000000 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file glonass_l1_ca_telemetry_decoder.cc - * \brief Implementation of an adapter of a GLONASS L1 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \note Code added as part of GSoC 2017 program - * \author Damian Miralles, 2017. dmiralles2009(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "glonass_l1_ca_telemetry_decoder.h" -#include "glonass_l1_ca_telemetry_decoder_gs.h" - -GlonassL1CaTelemetryDecoder::GlonassL1CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(glonass_l1_ca_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h deleted file mode 100644 index fb19931cd..000000000 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l1_ca_telemetry_decoder.h +++ /dev/null @@ -1,54 +0,0 @@ -/*! - * \file glonass_l1_ca_telemetry_decoder.h - * \brief Interface of an adapter of a GLONASS L1 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \note Code added as part of GSoC 2017 program - * \author Damian Miralles, 2017. dmiralles2009(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_H -#define GNSS_SDR_GLONASS_L1_CA_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for GLONASS L1 C/A - */ -class GlonassL1CaTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GlonassL1CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "GLONASS_L1_CA_Telemetry_Decoder" - inline std::string implementation() override - { - return "GLONASS_L1_CA_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc deleted file mode 100644 index da4951b8e..000000000 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.cc +++ /dev/null @@ -1,32 +0,0 @@ -/*! - * \file glonass_l2_ca_telemetry_decoder.cc - * \brief Implementation of an adapter of a GLONASS L2 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \author Damian Miralles, 2018. dmiralles2009(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "glonass_l2_ca_telemetry_decoder.h" -#include "glonass_l2_ca_telemetry_decoder_gs.h" - -GlonassL2CaTelemetryDecoder::GlonassL2CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(glonass_l2_ca_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h deleted file mode 100644 index d9ae1c557..000000000 --- a/src/algorithms/telemetry_decoder/adapters/glonass_l2_ca_telemetry_decoder.h +++ /dev/null @@ -1,53 +0,0 @@ -/*! - * \file glonass_l2_ca_telemetry_decoder.h - * \brief Interface of an adapter of a GLONASS L2 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \author Damian Miralles, 2018. dmiralles2009(at)gmail.com - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_H -#define GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for GLONASS L2 C/A - */ -class GlonassL2CaTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GlonassL2CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "GLONASS_L2_CA_Telemetry_Decoder" - inline std::string implementation() override - { - return "GLONASS_L2_CA_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GLONASS_L2_CA_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc deleted file mode 100644 index 333e088b1..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.cc +++ /dev/null @@ -1,34 +0,0 @@ -/*! - * \file gps_l1_ca_telemetry_decoder.cc - * \brief Implementation of an adapter of a GPS L1 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas, 2011. jarribas(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "gps_l1_ca_telemetry_decoder.h" -#include "gps_l1_ca_telemetry_decoder_gs.h" - - -GpsL1CaTelemetryDecoder::GpsL1CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(gps_l1_ca_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h deleted file mode 100644 index ca468d965..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l1_ca_telemetry_decoder.h +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * \file gps_l1_ca_telemetry_decoder.h - * \brief Interface of an adapter of a GPS L1 C/A NAV data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas, 2011. jarribas(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_H -#define GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder Telemetry Decoder - * Classes for the decoding of GNSS Navigation messages. - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters telemetry_decoder_adapters - * Wrap GNU Radio blocks for the decoding of GNSS Navigation messages with a - * TelemetryDecoderInterface - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for GPS L1 C/A - */ -class GpsL1CaTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GpsL1CaTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "GPS_L1_CA_Telemetry_Decoder" - inline std::string implementation() override - { - return "GPS_L1_CA_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GPS_L1_CA_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc deleted file mode 100644 index 336a66832..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file gps_l2c_telemetry_decoder.cc - * \brief Implementation of an adapter of a GPS L2C M NAV data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas, 2015. jarribas(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "gps_l2c_telemetry_decoder.h" -#include "gps_l2c_telemetry_decoder_gs.h" - -GpsL2CTelemetryDecoder::GpsL2CTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(gps_l2c_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h deleted file mode 100644 index 88173b872..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l2c_telemetry_decoder.h +++ /dev/null @@ -1,54 +0,0 @@ -/*! - * \file gps_l2c_telemetry_decoder.h - * \brief Interface of an adapter of a GPS L2C (CNAV) data decoder block - * to a TelemetryDecoderInterface - * \author Javier Arribas, 2015. jarribas(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_H -#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for GPS L2 M - */ -class GpsL2CTelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GpsL2CTelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "GPS_L2C_Telemetry_Decoder" - inline std::string implementation() override - { - return "GPS_L2C_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc deleted file mode 100644 index e5adc4866..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file gps_l5_telemetry_decoder.cc - * \brief Implementation of an adapter of a GPS L5 NAV data decoder block - * to a TelemetryDecoderInterface - * \author Antonio Ramos, 2017. antonio.ramos(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "gps_l5_telemetry_decoder.h" -#include "gps_l5_telemetry_decoder_gs.h" - -GpsL5TelemetryDecoder::GpsL5TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(gps_l5_make_telemetry_decoder_gs(satellite(), tlm_parameters_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h deleted file mode 100644 index c47d8376a..000000000 --- a/src/algorithms/telemetry_decoder/adapters/gps_l5_telemetry_decoder.h +++ /dev/null @@ -1,53 +0,0 @@ -/*! - * \file gps_l5_telemetry_decoder.h - * \brief Interface of an adapter of a GPS L5 (CNAV) data decoder block - * to a TelemetryDecoderInterface - * \author Antonio Ramos, 2017. antonio.ramos(at)cttc.es - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_GPS_L5_TELEMETRY_DECODER_H -#define GNSS_SDR_GPS_L5_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - -/*! - * \brief This class implements a NAV data decoder for GPS L5 - */ -class GpsL5TelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - GpsL5TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "GPS_L5_Telemetry_Decoder" - inline std::string implementation() override - { - return "GPS_L5_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_GPS_L5_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.cc deleted file mode 100644 index c01c33bef..000000000 --- a/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.cc +++ /dev/null @@ -1,34 +0,0 @@ -/*! - * \file qzss_l1_telemetry_decoder.cc - * \brief Interface of an adapter of a QZSS L1 NAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2026. 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-2026 (see AUTHORS file for a list of contributors) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "qzss_l1_telemetry_decoder.h" -#include "gps_l1_ca_telemetry_decoder_gs.h" - - -QzssL1TelemetryDecoder::QzssL1TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(gps_l1_ca_make_telemetry_decoder_gs(satellite(), tlm_parameters_, L1LnavSystem::QZSS)); -} \ No newline at end of file diff --git a/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.h deleted file mode 100644 index 04115c1f8..000000000 --- a/src/algorithms/telemetry_decoder/adapters/qzss_l1_telemetry_decoder.h +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * \file qzss_l1_telemetry_decoder.h - * \brief Interface of an adapter of a QZSS L1 NAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2026. 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-2026 (see AUTHORS file for a list of contributors) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_QZSS_L1_TELEMETRY_DECODER_H -#define GNSS_SDR_QZSS_L1_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder Telemetry Decoder - * Classes for the decoding of GNSS Navigation messages. - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters telemetry_decoder_adapters - * Wrap GNU Radio blocks for the decoding of GNSS Navigation messages with a - * TelemetryDecoderInterface - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for QZSS L1 - */ -class QzssL1TelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - QzssL1TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "QZSS_L1_Telemetry_Decoder" - inline std::string implementation() override - { - return "QZSS_L1_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_QZSS_L1_TELEMETRY_DECODER_H \ No newline at end of file diff --git a/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.cc deleted file mode 100644 index 41b842e41..000000000 --- a/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.cc +++ /dev/null @@ -1,34 +0,0 @@ -/*! - * \file qzss_l5_telemetry_decoder.cc - * \brief Interface of an adapter of a QZSS L5 NAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2026. 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-2026 (see AUTHORS file for a list of contributors) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#include "qzss_l5_telemetry_decoder.h" -#include "gps_l5_telemetry_decoder_gs.h" - - -QzssL5TelemetryDecoder::QzssL5TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) - : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams) -{ - InitializeDecoder(gps_l5_make_telemetry_decoder_gs(satellite(), tlm_parameters_, CnavSystem::QZSS)); -} \ No newline at end of file diff --git a/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.h deleted file mode 100644 index 63afd8b17..000000000 --- a/src/algorithms/telemetry_decoder/adapters/qzss_l5_telemetry_decoder.h +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * \file qzss_l5_telemetry_decoder.h - * \brief Interface of an adapter of a QZSS L5 NAV data decoder block - * to a TelemetryDecoderInterface - * \author Carles Fernandez-Prades, 2026. 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-2026 (see AUTHORS file for a list of contributors) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_QZSS_L5_TELEMETRY_DECODER_H -#define GNSS_SDR_QZSS_L5_TELEMETRY_DECODER_H - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder Telemetry Decoder - * Classes for the decoding of GNSS Navigation messages. - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters telemetry_decoder_adapters - * Wrap GNU Radio blocks for the decoding of GNSS Navigation messages with a - * TelemetryDecoderInterface - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for QZSS L5 - */ -class QzssL5TelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - QzssL5TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - //! Returns "QZSS_L5_Telemetry_Decoder" - inline std::string implementation() override - { - return "QZSS_L5_Telemetry_Decoder"; - } -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_QZSS_L5_TELEMETRY_DECODER_H \ No newline at end of file diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc deleted file mode 100644 index 7e079b133..000000000 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.cc +++ /dev/null @@ -1,33 +0,0 @@ -/*! - * \file sbas_l1_telemetry_decoder.cc - * \brief Implementation of an adapter of a SBAS telemetry data decoder block - * to a TelemetryDecoderInterface - * \author Daniel Fehr 2013. daniel.co(at)bluewin.ch - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - -#include "sbas_l1_telemetry_decoder.h" -#include "sbas_l1_telemetry_decoder_gs.h" - -SbasL1TelemetryDecoder::SbasL1TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams) : TelemetryDecoderAdapterBase(configuration, - role, - in_streams, - out_streams), - dump_filename_(configuration != nullptr ? configuration->property(role + ".dump_filename", std::string("./navigation.dat")) : std::string("./navigation.dat")), - dump_(configuration != nullptr ? configuration->property(role + ".dump", false) : false) -{ - InitializeDecoder(sbas_l1_make_telemetry_decoder_gs(satellite(), dump_)); -} diff --git a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h b/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h deleted file mode 100644 index a238b7e81..000000000 --- a/src/algorithms/telemetry_decoder/adapters/sbas_l1_telemetry_decoder.h +++ /dev/null @@ -1,60 +0,0 @@ -/*! - * \file sbas_l1_telemetry_decoder.h - * \brief Interface of an adapter of a SBAS telemetry data decoder block - * to a TelemetryDecoderInterface - * \author Daniel Fehr 2013. daniel.co(at)bluewin.ch - * - * ----------------------------------------------------------------------------- - * - * 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) - * SPDX-License-Identifier: GPL-3.0-or-later - * - * ----------------------------------------------------------------------------- - */ - - -#ifndef GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_H -#define GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_H - - -#include "telemetry_decoder_adapter_base.h" -#include - -/** \addtogroup Telemetry_Decoder - * \{ */ -/** \addtogroup Telemetry_Decoder_adapters - * \{ */ - - -/*! - * \brief This class implements a NAV data decoder for SBAS frames in L1 radio link - */ -class SbasL1TelemetryDecoder : public TelemetryDecoderAdapterBase -{ -public: - SbasL1TelemetryDecoder( - const ConfigurationInterface* configuration, - const std::string& role, - unsigned int in_streams, - unsigned int out_streams); - - /*! - * \brief Returns "SBAS_L1_Telemetry_Decoder" - */ - inline std::string implementation() override - { - return "SBAS_L1_Telemetry_Decoder"; - } - -private: - std::string dump_filename_; - bool dump_; -}; - - -/** \} */ -/** \} */ -#endif // GNSS_SDR_SBAS_L1_TELEMETRY_DECODER_H diff --git a/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.cc b/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.cc similarity index 51% rename from src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.cc rename to src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.cc index 1832efd86..c3022985c 100644 --- a/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.cc +++ b/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.cc @@ -1,5 +1,5 @@ /*! - * \file telemetry_decoder_adapter_base.cc + * \file telemetry_decoder_adapter.cc * \brief Common functionality for telemetry decoder adapters * \author Carles Fernandez-Prades, 2025 cfernandez@cttc.es * @@ -15,8 +15,8 @@ */ -#include "telemetry_decoder_adapter_base.h" -#include +#include "telemetry_decoder_adapter.h" +#include "gnss_synchro.h" #if USE_GLOG_AND_GFLAGS #include @@ -25,39 +25,32 @@ #endif -TelemetryDecoderAdapterBase::TelemetryDecoderAdapterBase(const ConfigurationInterface* configuration, +TelemetryDecoderAdapter::TelemetryDecoderAdapter( const std::string& role, + const std::string& implementation, unsigned int in_streams, - unsigned int out_streams) : role_(role), - in_streams_(in_streams), - out_streams_(out_streams) + unsigned int out_streams, + telemetry_impl_interface_sptr decoder) : telemetry_decoder_(std::move(decoder)), + role_(role), + implementation_(implementation) { DLOG(INFO) << "role " << role_; - if (configuration != nullptr) - { - tlm_parameters_.SetFromConfiguration(configuration, role_); - } - if (in_streams_ > 1) + DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; + + if (in_streams > 1) { LOG(ERROR) << "This implementation only supports one input stream (" - << in_streams_ << " provided)"; + << in_streams << " provided)"; } - if (out_streams_ > 1) + if (out_streams > 1) { LOG(ERROR) << "This implementation only supports one output stream (" - << out_streams_ << " provided)"; + << out_streams << " provided)"; } } -void TelemetryDecoderAdapterBase::InitializeDecoder(telemetry_impl_interface_sptr decoder) -{ - telemetry_decoder_ = std::move(decoder); - DLOG(INFO) << "telemetry_decoder(" << telemetry_decoder_->unique_id() << ")"; -} - - -void TelemetryDecoderAdapterBase::connect(gr::top_block_sptr top_block) +void TelemetryDecoderAdapter::connect(gr::top_block_sptr top_block) { if (top_block) { @@ -67,7 +60,7 @@ void TelemetryDecoderAdapterBase::connect(gr::top_block_sptr top_block) } -void TelemetryDecoderAdapterBase::disconnect(gr::top_block_sptr top_block) +void TelemetryDecoderAdapter::disconnect(gr::top_block_sptr top_block) { if (top_block) { @@ -76,36 +69,40 @@ void TelemetryDecoderAdapterBase::disconnect(gr::top_block_sptr top_block) } -gr::basic_block_sptr TelemetryDecoderAdapterBase::get_left_block() +gr::basic_block_sptr TelemetryDecoderAdapter::get_left_block() { return telemetry_decoder_; } -gr::basic_block_sptr TelemetryDecoderAdapterBase::get_right_block() +gr::basic_block_sptr TelemetryDecoderAdapter::get_right_block() { return telemetry_decoder_; } -void TelemetryDecoderAdapterBase::set_satellite(const Gnss_Satellite& satellite) +void TelemetryDecoderAdapter::set_satellite(const Gnss_Satellite& satellite) { - satellite_ = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); if (telemetry_decoder_) { - telemetry_decoder_->set_satellite(satellite_); - DLOG(INFO) << "TELEMETRY DECODER: satellite set to " << satellite_; + const auto sat = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); // Why is this required + telemetry_decoder_->set_satellite(sat); + DLOG(INFO) << "TELEMETRY DECODER: satellite set to " << sat; } } -std::string TelemetryDecoderAdapterBase::role() +std::string TelemetryDecoderAdapter::role() { return role_; } +std::string TelemetryDecoderAdapter::implementation() +{ + return implementation_; +} -void TelemetryDecoderAdapterBase::set_channel(int channel) +void TelemetryDecoderAdapter::set_channel(int channel) { if (telemetry_decoder_) { @@ -114,7 +111,7 @@ void TelemetryDecoderAdapterBase::set_channel(int channel) } -void TelemetryDecoderAdapterBase::reset() +void TelemetryDecoderAdapter::reset() { if (telemetry_decoder_) { @@ -123,13 +120,7 @@ void TelemetryDecoderAdapterBase::reset() } -size_t TelemetryDecoderAdapterBase::item_size() +size_t TelemetryDecoderAdapter::item_size() { return sizeof(Gnss_Synchro); } - - -const Gnss_Satellite& TelemetryDecoderAdapterBase::satellite() const -{ - return satellite_; -} \ No newline at end of file diff --git a/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.h b/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.h similarity index 67% rename from src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.h rename to src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.h index 4d10c6fb0..487d8079b 100644 --- a/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter_base.h +++ b/src/algorithms/telemetry_decoder/adapters/telemetry_decoder_adapter.h @@ -1,5 +1,5 @@ /*! - * \file telemetry_decoder_adapter_base.h + * \file telemetry_decoder_adapter.h * \brief Common functionality for telemetry decoder adapters * \author Carles Fernandez-Prades, 2025 cfernandez@cttc.es * @@ -17,15 +17,8 @@ #ifndef GNSS_SDR_TELEMETRY_DECODER_ADAPTER_BASE_H #define GNSS_SDR_TELEMETRY_DECODER_ADAPTER_BASE_H -#include "configuration_interface.h" -#include "gnss_satellite.h" -#include "gnss_synchro.h" #include "telemetry_decoder_interface.h" #include "telemetry_impl_interface.h" -#include "tlm_conf.h" -#include -#include -#include class ConfigurationInterface; @@ -39,15 +32,17 @@ class ConfigurationInterface; /*! * \brief Base class for Telemetry Decoder adapters */ -class TelemetryDecoderAdapterBase : public TelemetryDecoderInterface +class TelemetryDecoderAdapter : public TelemetryDecoderInterface { public: - TelemetryDecoderAdapterBase(const ConfigurationInterface* configuration, + TelemetryDecoderAdapter( const std::string& role, + const std::string& implementation, unsigned int in_streams, - unsigned int out_streams); + unsigned int out_streams, + telemetry_impl_interface_sptr decoder); - ~TelemetryDecoderAdapterBase() override = default; + ~TelemetryDecoderAdapter() override = default; void connect(gr::top_block_sptr top_block) override; @@ -61,25 +56,18 @@ public: std::string role() override; + std::string implementation() override; + void set_channel(int channel) override; void reset() override; size_t item_size() override; -protected: - void InitializeDecoder(telemetry_impl_interface_sptr decoder); - - const Gnss_Satellite& satellite() const; - - Tlm_Conf tlm_parameters_; - private: telemetry_impl_interface_sptr telemetry_decoder_; - Gnss_Satellite satellite_; - std::string role_; - unsigned int in_streams_ = 0; - unsigned int out_streams_ = 0; + const std::string role_; + const std::string implementation_; }; /** \} */ diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc index 4a31912eb..79217ffbb 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.cc @@ -45,43 +45,41 @@ beidou_b1i_telemetry_decoder_gs_sptr -beidou_b1i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) +beidou_b1i_make_telemetry_decoder_gs(const Tlm_Conf &conf) { - return beidou_b1i_telemetry_decoder_gs_sptr(new beidou_b1i_telemetry_decoder_gs(satellite, conf)); + return beidou_b1i_telemetry_decoder_gs_sptr(new beidou_b1i_telemetry_decoder_gs(conf)); } -beidou_b1i_telemetry_decoder_gs::beidou_b1i_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf) : telemetry_impl_interface("beidou_b1i_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_satellite(satellite.get_system(), satellite.get_PRN()), - d_dump_filename(conf.dump_filename), - d_sample_counter(0), - d_preamble_index(0), - d_channel(0), - d_symbols_per_preamble(BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), - d_samples_per_preamble(BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), - d_preamble_period_samples(BEIDOU_DNAV_PREAMBLE_PERIOD_SYMBOLS), - d_CRC_error_counter(0), - d_required_symbols(BEIDOU_DNAV_SUBFRAME_SYMBOLS + BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), - d_stat(0), - d_last_valid_preamble(0), - d_symbol_duration_ms(BEIDOU_B1I_TELEMETRY_SYMBOLS_PER_BIT * BEIDOU_B1I_CODE_PERIOD_MS), - d_TOW_at_Preamble_ms(0U), - d_TOW_at_current_symbol_ms(0U), - d_flag_SOW_set(false), - d_flag_frame_sync(false), - d_flag_preamble(false), - d_flag_valid_word(false), - d_sent_tlm_failed_msg(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk) +beidou_b1i_telemetry_decoder_gs::beidou_b1i_telemetry_decoder_gs(const Tlm_Conf &conf) + : telemetry_impl_interface("beidou_b1i_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump_filename(conf.dump_filename), + d_sample_counter(0), + d_preamble_index(0), + d_channel(0), + d_symbols_per_preamble(BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), + d_samples_per_preamble(BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), + d_preamble_period_samples(BEIDOU_DNAV_PREAMBLE_PERIOD_SYMBOLS), + d_CRC_error_counter(0), + d_required_symbols(BEIDOU_DNAV_SUBFRAME_SYMBOLS + BEIDOU_DNAV_PREAMBLE_LENGTH_SYMBOLS), + d_stat(0), + d_last_valid_preamble(0), + d_symbol_duration_ms(BEIDOU_B1I_TELEMETRY_SYMBOLS_PER_BIT * BEIDOU_B1I_CODE_PERIOD_MS), + d_TOW_at_Preamble_ms(0U), + d_TOW_at_current_symbol_ms(0U), + d_flag_SOW_set(false), + d_flag_frame_sync(false), + d_flag_preamble(false), + d_flag_valid_word(false), + d_sent_tlm_failed_msg(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk) { configure_basic_outputs(); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h index d266499eb..b7df4ae65 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b1i_telemetry_decoder_gs.h @@ -32,13 +32,12 @@ * \{ */ +class ConfigurationInterface; class beidou_b1i_telemetry_decoder_gs; using beidou_b1i_telemetry_decoder_gs_sptr = gnss_shared_ptr; -beidou_b1i_telemetry_decoder_gs_sptr beidou_b1i_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); +beidou_b1i_telemetry_decoder_gs_sptr beidou_b1i_make_telemetry_decoder_gs(const Tlm_Conf &conf); /*! @@ -60,11 +59,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend beidou_b1i_telemetry_decoder_gs_sptr beidou_b1i_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); + friend beidou_b1i_telemetry_decoder_gs_sptr beidou_b1i_make_telemetry_decoder_gs(const Tlm_Conf &conf); - beidou_b1i_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); + explicit beidou_b1i_telemetry_decoder_gs(const Tlm_Conf &conf); void decode_subframe(float *symbols, double cn0); void decode_word(int32_t word_counter, const float *enc_word_symbols, int32_t *dec_word_symbols); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.cc index 7c19c530a..3aae4f467 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.cc @@ -43,15 +43,13 @@ #define CRC_ERROR_LIMIT 8 beidou_b3i_telemetry_decoder_gs_sptr -beidou_b3i_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, - const Tlm_Conf &conf) +beidou_b3i_make_telemetry_decoder_gs(const Tlm_Conf &conf) { - return beidou_b3i_telemetry_decoder_gs_sptr(new beidou_b3i_telemetry_decoder_gs(satellite, conf)); + return beidou_b3i_telemetry_decoder_gs_sptr(new beidou_b3i_telemetry_decoder_gs(conf)); } -beidou_b3i_telemetry_decoder_gs::beidou_b3i_telemetry_decoder_gs( - const Gnss_Satellite &satellite, const Tlm_Conf &conf) +beidou_b3i_telemetry_decoder_gs::beidou_b3i_telemetry_decoder_gs(const Tlm_Conf &conf) : telemetry_impl_interface("beidou_b3i_telemetry_decoder_gs", gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), @@ -91,9 +89,6 @@ beidou_b3i_telemetry_decoder_gs::beidou_b3i_telemetry_decoder_gs( d_nav_msg_packet.signal = std::string("B3"); } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); - LOG(INFO) << "Initializing BeiDou B3I Telemetry Decoding for satellite " << this->d_satellite; - // Setting samples of preamble code for (int32_t i = 0; i < d_symbols_per_preamble; i++) { diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h index c97bd98fe..a4faa101f 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/beidou_b3i_telemetry_decoder_gs.h @@ -31,12 +31,9 @@ class beidou_b3i_telemetry_decoder_gs; -using beidou_b3i_telemetry_decoder_gs_sptr = - gnss_shared_ptr; +using beidou_b3i_telemetry_decoder_gs_sptr = gnss_shared_ptr; -beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); +beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs(const Tlm_Conf &conf); /*! * \brief This class implements a block that decodes the BeiDou DNAV data. @@ -57,11 +54,9 @@ public: gr_vector_void_star &output_items) override; private: - friend beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); + friend beidou_b3i_telemetry_decoder_gs_sptr beidou_b3i_make_telemetry_decoder_gs(const Tlm_Conf &conf); - beidou_b3i_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); + explicit beidou_b3i_telemetry_decoder_gs(const Tlm_Conf &conf); void decode_subframe(float *symbols, double cn0); void decode_word(int32_t word_counter, const float *enc_word_symbols, diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc index bca1f7f36..886da32c3 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.cc @@ -70,52 +70,50 @@ namespace wht = std; #define CRC_ERROR_LIMIT 6 galileo_telemetry_decoder_gs_sptr -galileo_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, int frame_type) +galileo_make_telemetry_decoder_gs(const Tlm_Conf &conf, int frame_type) { - return galileo_telemetry_decoder_gs_sptr(new galileo_telemetry_decoder_gs(satellite, conf, frame_type)); + return galileo_telemetry_decoder_gs_sptr(new galileo_telemetry_decoder_gs(conf, frame_type)); } -galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf, - int frame_type) : telemetry_impl_interface("galileo_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_dump_filename(conf.dump_filename), - d_delta_t(0), - d_symbol_counter(0ULL), - d_preamble_index(0ULL), - d_last_valid_preamble(0ULL), - d_received_sample_counter(0), - d_frame_type(frame_type), - d_CRC_error_counter(0), - d_channel(0), - d_flag_even_word_arrived(0), - d_stat(0), - d_TOW_at_Preamble_ms(0), - d_TOW_at_current_symbol_ms(0), - d_received_tow_ms(std::numeric_limits::max()), - d_band('1'), - d_sent_tlm_failed_msg(false), - d_flag_frame_sync(false), - d_flag_PLL_180_deg_phase_locked(false), - d_flag_preamble(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_first_eph_sent(false), - d_cnav_dummy_page(false), - d_print_cnav_page(true), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_enable_reed_solomon_inav(false), - d_valid_timetag(false), - d_E6_TOW_set(false), - d_there_are_e1_channels(conf.there_are_e1_channels), - d_there_are_e6_channels(conf.there_are_e6_channels), - d_use_ced(conf.use_ced), - d_tow_to_trk(conf.tow_to_trk) +galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs(const Tlm_Conf &conf, int frame_type) + : telemetry_impl_interface("galileo_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump_filename(conf.dump_filename), + d_delta_t(0), + d_symbol_counter(0ULL), + d_preamble_index(0ULL), + d_last_valid_preamble(0ULL), + d_received_sample_counter(0), + d_frame_type(frame_type), + d_CRC_error_counter(0), + d_channel(0), + d_flag_even_word_arrived(0), + d_stat(0), + d_TOW_at_Preamble_ms(0), + d_TOW_at_current_symbol_ms(0), + d_received_tow_ms(std::numeric_limits::max()), + d_band('1'), + d_sent_tlm_failed_msg(false), + d_flag_frame_sync(false), + d_flag_PLL_180_deg_phase_locked(false), + d_flag_preamble(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_first_eph_sent(false), + d_cnav_dummy_page(false), + d_print_cnav_page(true), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_enable_reed_solomon_inav(false), + d_valid_timetag(false), + d_E6_TOW_set(false), + d_there_are_e1_channels(conf.there_are_e1_channels), + d_there_are_e6_channels(conf.there_are_e6_channels), + d_use_ced(conf.use_ced), + d_tow_to_trk(conf.tow_to_trk) { configure_basic_outputs(); @@ -153,8 +151,6 @@ galileo_telemetry_decoder_gs::galileo_telemetry_decoder_gs( this->message_port_register_out(pmt::mp("Nav_msg_from_TLM")); } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); - // Viterbi decoder vars const int32_t nn = 2; // Coding rate 1/n const int32_t KK = 7; // Constraint Length diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h index 452b70107..df5993093 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/galileo_telemetry_decoder_gs.h @@ -40,10 +40,7 @@ class galileo_telemetry_decoder_gs; // forward declaration using galileo_telemetry_decoder_gs_sptr = gnss_shared_ptr; -galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf, - int frame_type); +galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs(const Tlm_Conf &conf, int frame_type); /*! * \brief This class implements a block that decodes the INAV and FNAV data defined in Galileo ICD @@ -63,12 +60,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf, - int frame_type); + friend galileo_telemetry_decoder_gs_sptr galileo_make_telemetry_decoder_gs(const Tlm_Conf &conf, int frame_type); - galileo_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, int frame_type); + galileo_telemetry_decoder_gs(const Tlm_Conf &conf, int frame_type); void check_tlm_separation(); void msg_handler_read_galileo_tow_map(const pmt::pmt_t &msg); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc index fb514b9e2..056e462a7 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.cc @@ -43,34 +43,32 @@ #define CRC_ERROR_LIMIT 6 -glonass_l1_ca_telemetry_decoder_gs_sptr -glonass_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) +glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf) { - return glonass_l1_ca_telemetry_decoder_gs_sptr(new glonass_l1_ca_telemetry_decoder_gs(satellite, conf)); + return glonass_l1_ca_telemetry_decoder_gs_sptr(new glonass_l1_ca_telemetry_decoder_gs(conf)); } -glonass_l1_ca_telemetry_decoder_gs::glonass_l1_ca_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf) : telemetry_impl_interface("glonass_l1_ca_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_dump_filename(conf.dump_filename), - d_preamble_time_samples(0), - d_TOW_at_current_symbol(0), - d_sample_counter(0ULL), - d_preamble_index(0ULL), - d_stat(0), - d_CRC_error_counter(0), - d_channel(0), - d_flag_frame_sync(false), - d_flag_preamble(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk) +glonass_l1_ca_telemetry_decoder_gs::glonass_l1_ca_telemetry_decoder_gs(const Tlm_Conf &conf) + : telemetry_impl_interface("glonass_l1_ca_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump_filename(conf.dump_filename), + d_preamble_time_samples(0), + d_TOW_at_current_symbol(0), + d_sample_counter(0ULL), + d_preamble_index(0ULL), + d_stat(0), + d_CRC_error_counter(0), + d_channel(0), + d_flag_frame_sync(false), + d_flag_preamble(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk) { configure_basic_outputs(); @@ -84,7 +82,6 @@ glonass_l1_ca_telemetry_decoder_gs::glonass_l1_ca_telemetry_decoder_gs( d_nav_msg_packet.signal = std::string("1G"); } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing GLONASS L1 CA TELEMETRY DECODING"; d_symbol_history.set_capacity(GLONASS_GNAV_STRING_BIBINARY_WITH_PREABLE); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h index 31f6ff920..5fdbe43b6 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l1_ca_telemetry_decoder_gs.h @@ -35,9 +35,7 @@ class glonass_l1_ca_telemetry_decoder_gs; using glonass_l1_ca_telemetry_decoder_gs_sptr = gnss_shared_ptr; -glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); +glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf); /*! * \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1 @@ -60,11 +58,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); + friend glonass_l1_ca_telemetry_decoder_gs_sptr glonass_l1_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf); - glonass_l1_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); + explicit glonass_l1_ca_telemetry_decoder_gs(const Tlm_Conf &conf); const std::array d_preambles_bits{GLONASS_GNAV_PREAMBLE_SAMPLES}; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc index 792fa38e1..dd0d9bab8 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.cc @@ -43,34 +43,32 @@ #define CRC_ERROR_LIMIT 6 -glonass_l2_ca_telemetry_decoder_gs_sptr -glonass_l2_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) +glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf) { - return glonass_l2_ca_telemetry_decoder_gs_sptr(new glonass_l2_ca_telemetry_decoder_gs(satellite, conf)); + return glonass_l2_ca_telemetry_decoder_gs_sptr(new glonass_l2_ca_telemetry_decoder_gs(conf)); } -glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf) : telemetry_impl_interface("glonass_l2_ca_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_dump_filename(conf.dump_filename), - d_preamble_time_samples(0), - d_TOW_at_current_symbol(0), - d_sample_counter(0ULL), - d_preamble_index(0ULL), - d_stat(0), - d_CRC_error_counter(0), - d_channel(0), - d_flag_frame_sync(false), - d_flag_preamble(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk) +glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs(const Tlm_Conf &conf) + : telemetry_impl_interface("glonass_l2_ca_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump_filename(conf.dump_filename), + d_preamble_time_samples(0), + d_TOW_at_current_symbol(0), + d_sample_counter(0ULL), + d_preamble_index(0ULL), + d_stat(0), + d_CRC_error_counter(0), + d_channel(0), + d_flag_frame_sync(false), + d_flag_preamble(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk) { configure_basic_outputs(); @@ -84,7 +82,6 @@ glonass_l2_ca_telemetry_decoder_gs::glonass_l2_ca_telemetry_decoder_gs( d_nav_msg_packet.signal = std::string("2G"); } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "Initializing GLONASS L2 CA TELEMETRY DECODING"; d_symbol_history.set_capacity(GLONASS_GNAV_STRING_BIBINARY_WITH_PREABLE); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h index 002a602cc..0c8374f40 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/glonass_l2_ca_telemetry_decoder_gs.h @@ -35,9 +35,7 @@ class glonass_l2_ca_telemetry_decoder_gs; using glonass_l2_ca_telemetry_decoder_gs_sptr = gnss_shared_ptr; -glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); +glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf); /*! * \brief This class implements a block that decodes the GNAV data defined in GLONASS ICD v5.1 @@ -59,11 +57,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); + friend glonass_l2_ca_telemetry_decoder_gs_sptr glonass_l2_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf); - glonass_l2_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); + explicit glonass_l2_ca_telemetry_decoder_gs(const Tlm_Conf &conf); const std::array d_preambles_bits{GLONASS_GNAV_PREAMBLE_SAMPLES}; void decode_string(const double *symbols, double cn0); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc index 77a467fda..e6e0a01f0 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.cc @@ -70,49 +70,47 @@ namespace wht = std; #endif -gps_l1_ca_telemetry_decoder_gs_sptr -gps_l1_ca_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, L1LnavSystem system) +gps_l1_ca_telemetry_decoder_gs_sptr gps_l1_ca_make_telemetry_decoder_gs(const Tlm_Conf &conf, L1LnavSystem system) { - return gps_l1_ca_telemetry_decoder_gs_sptr(new gps_l1_ca_telemetry_decoder_gs(satellite, conf, system)); + return gps_l1_ca_telemetry_decoder_gs_sptr(new gps_l1_ca_telemetry_decoder_gs(conf, system)); } -gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf, - L1LnavSystem system) : telemetry_impl_interface("gps_navigation_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_system(system), - d_dump_filename(conf.dump_filename), - d_sample_counter(0ULL), - d_preamble_index(0ULL), - d_last_valid_preamble(0), - d_bits_per_preamble(GPS_CA_PREAMBLE_LENGTH_BITS), - d_samples_per_preamble(GPS_CA_PREAMBLE_LENGTH_BITS), - d_preamble_period_symbols(GPS_SUBFRAME_BITS), - d_CRC_error_counter(0), - d_channel(0), - d_required_symbols(GPS_SUBFRAME_BITS), - d_prev_GPS_frame_4bytes(0), - d_max_symbols_without_valid_frame(d_required_symbols * 20), - d_stat(0), - d_TOW_at_Preamble_ms(0), - d_TOW_at_current_symbol_ms(0), - d_last_decoded_tow_s(0), - d_last_decoded_tow_sample_counter(0), - d_flag_frame_sync(false), - d_flag_preamble(false), - d_sent_tlm_failed_msg(false), - d_flag_PLL_180_deg_phase_locked(false), - d_flag_TOW_set(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk), - d_have_last_decoded_tow(false) // rise alarm 120 segs without valid tlm +gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs(const Tlm_Conf &conf, + L1LnavSystem system) + : telemetry_impl_interface("gps_navigation_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_system(system), + d_dump_filename(conf.dump_filename), + d_sample_counter(0ULL), + d_preamble_index(0ULL), + d_last_valid_preamble(0), + d_bits_per_preamble(GPS_CA_PREAMBLE_LENGTH_BITS), + d_samples_per_preamble(GPS_CA_PREAMBLE_LENGTH_BITS), + d_preamble_period_symbols(GPS_SUBFRAME_BITS), + d_CRC_error_counter(0), + d_channel(0), + d_required_symbols(GPS_SUBFRAME_BITS), + d_prev_GPS_frame_4bytes(0), + d_max_symbols_without_valid_frame(d_required_symbols * 20), + d_stat(0), + d_TOW_at_Preamble_ms(0), + d_TOW_at_current_symbol_ms(0), + d_last_decoded_tow_s(0), + d_last_decoded_tow_sample_counter(0), + d_flag_frame_sync(false), + d_flag_preamble(false), + d_sent_tlm_failed_msg(false), + d_flag_PLL_180_deg_phase_locked(false), + d_flag_TOW_set(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk), + d_have_last_decoded_tow(false) // rise alarm 120 segs without valid tlm { configure_basic_outputs(); @@ -141,7 +139,6 @@ gps_l1_ca_telemetry_decoder_gs::gps_l1_ca_telemetry_decoder_gs( d_nav_msg_packet.signal = std::string("J1"); } } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "Initializing " << ((d_system == L1LnavSystem::GPS) ? "GPS" : "QZSS") << " L1 TELEMETRY DECODER"; // set the preamble diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h index e43e7d355..2c1388488 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l1_ca_telemetry_decoder_gs.h @@ -43,7 +43,6 @@ class gps_l1_ca_telemetry_decoder_gs; using gps_l1_ca_telemetry_decoder_gs_sptr = gnss_shared_ptr; gps_l1_ca_telemetry_decoder_gs_sptr gps_l1_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, const Tlm_Conf &conf, L1LnavSystem system = L1LnavSystem::GPS); @@ -66,11 +65,10 @@ public: private: friend gps_l1_ca_telemetry_decoder_gs_sptr gps_l1_ca_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, const Tlm_Conf &conf, L1LnavSystem system); - gps_l1_ca_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, L1LnavSystem system); + gps_l1_ca_telemetry_decoder_gs(const Tlm_Conf &conf, L1LnavSystem system); void check_tlm_separation(); void frame_synchronization(const Gnss_Synchro ¤t_gs); diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc index f6416505f..2e541b7de 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.cc @@ -42,34 +42,32 @@ #include #endif -gps_l2c_telemetry_decoder_gs_sptr -gps_l2c_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf) +gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(const Tlm_Conf &conf) { - return gps_l2c_telemetry_decoder_gs_sptr(new gps_l2c_telemetry_decoder_gs(satellite, conf)); + return gps_l2c_telemetry_decoder_gs_sptr(new gps_l2c_telemetry_decoder_gs(conf)); } -gps_l2c_telemetry_decoder_gs::gps_l2c_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf) : telemetry_impl_interface("gps_l2c_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_dump_filename(conf.dump_filename), - d_TOW_at_current_symbol(0), - d_TOW_at_Preamble(0), - d_sample_counter(0), - d_last_valid_preamble(0), - d_channel(0), - d_max_symbols_without_valid_frame(GPS_L2_CNAV_DATA_PAGE_BITS * GPS_L2_SYMBOLS_PER_BIT * 5), - d_dump(conf.dump), - d_sent_tlm_failed_msg(false), - d_flag_PLL_180_deg_phase_locked(false), - d_flag_valid_word(false), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk) // rise alarm if 5 consecutive subframes have no valid CRC +gps_l2c_telemetry_decoder_gs::gps_l2c_telemetry_decoder_gs(const Tlm_Conf &conf) + : telemetry_impl_interface("gps_l2c_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump_filename(conf.dump_filename), + d_TOW_at_current_symbol(0), + d_TOW_at_Preamble(0), + d_sample_counter(0), + d_last_valid_preamble(0), + d_channel(0), + d_max_symbols_without_valid_frame(GPS_L2_CNAV_DATA_PAGE_BITS * GPS_L2_SYMBOLS_PER_BIT * 5), + d_dump(conf.dump), + d_sent_tlm_failed_msg(false), + d_flag_PLL_180_deg_phase_locked(false), + d_flag_valid_word(false), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk) // rise alarm if 5 consecutive subframes have no valid CRC { configure_basic_outputs(); @@ -82,7 +80,6 @@ gps_l2c_telemetry_decoder_gs::gps_l2c_telemetry_decoder_gs( d_nav_msg_packet.signal = std::string("2S"); } - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << "GPS L2C M TELEMETRY PROCESSING: satellite " << d_satellite; // initialize the CNAV frame decoder (libswiftcnav) diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h index 7fb9ad3c7..774dcee13 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l2c_telemetry_decoder_gs.h @@ -37,9 +37,7 @@ class gps_l2c_telemetry_decoder_gs; using gps_l2c_telemetry_decoder_gs_sptr = gnss_shared_ptr; -gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); +gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(const Tlm_Conf &conf); /*! * \brief This class implements a block that decodes CNAV data defined in IS-GPS-200M @@ -59,11 +57,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf); + friend gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(const Tlm_Conf &conf); - gps_l2c_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf); + explicit gps_l2c_telemetry_decoder_gs(const Tlm_Conf &conf); Gnss_Satellite d_satellite; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc index a8201817a..5a3a9b14c 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.cc @@ -44,35 +44,34 @@ #endif gps_l5_telemetry_decoder_gs_sptr -gps_l5_make_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, CnavSystem system) +gps_l5_make_telemetry_decoder_gs(const Tlm_Conf &conf, CnavSystem system) { - return gps_l5_telemetry_decoder_gs_sptr(new gps_l5_telemetry_decoder_gs(satellite, conf, system)); + return gps_l5_telemetry_decoder_gs_sptr(new gps_l5_telemetry_decoder_gs(conf, system)); } -gps_l5_telemetry_decoder_gs::gps_l5_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - const Tlm_Conf &conf, - CnavSystem system) : telemetry_impl_interface("gps_l5_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_system(system), - d_dump_filename(conf.dump_filename), - d_sample_counter(0), - d_last_valid_preamble(0), - d_channel(0), - d_TOW_at_current_symbol_ms(0U), - d_TOW_at_Preamble_ms(0U), - d_max_symbols_without_valid_frame(GPS_L5_CNAV_DATA_PAGE_BITS * GPS_L5_SYMBOLS_PER_BIT * 10), // rise alarm if 20 consecutive subframes have no valid CRC - d_flag_PLL_180_deg_phase_locked(false), - d_flag_valid_word(false), - d_sent_tlm_failed_msg(false), - d_dump(conf.dump), - d_dump_mat(conf.dump_mat), - d_remove_dat(conf.remove_dat), - d_enable_navdata_monitor(conf.enable_navdata_monitor), - d_dump_crc_stats(conf.dump_crc_stats), - d_tow_to_trk(conf.tow_to_trk) +gps_l5_telemetry_decoder_gs::gps_l5_telemetry_decoder_gs(const Tlm_Conf &conf, + CnavSystem system) + : telemetry_impl_interface("gps_l5_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_system(system), + d_dump_filename(conf.dump_filename), + d_sample_counter(0), + d_last_valid_preamble(0), + d_channel(0), + d_TOW_at_current_symbol_ms(0U), + d_TOW_at_Preamble_ms(0U), + d_max_symbols_without_valid_frame(GPS_L5_CNAV_DATA_PAGE_BITS * GPS_L5_SYMBOLS_PER_BIT * 10), // rise alarm if 20 consecutive subframes have no valid CRC + d_flag_PLL_180_deg_phase_locked(false), + d_flag_valid_word(false), + d_sent_tlm_failed_msg(false), + d_dump(conf.dump), + d_dump_mat(conf.dump_mat), + d_remove_dat(conf.remove_dat), + d_enable_navdata_monitor(conf.enable_navdata_monitor), + d_dump_crc_stats(conf.dump_crc_stats), + d_tow_to_trk(conf.tow_to_trk) { configure_basic_outputs(); @@ -93,7 +92,6 @@ gps_l5_telemetry_decoder_gs::gps_l5_telemetry_decoder_gs( } d_CNAV_Message = std::make_unique(d_system); - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); DLOG(INFO) << ((d_system == CnavSystem::GPS) ? "GPS" : "QZSS") << " L5 TELEMETRY PROCESSING: satellite " << d_satellite; // initialize the CNAV frame decoder (libswiftcnav) diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h index 8f5237e42..07bb96c03 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/gps_l5_telemetry_decoder_gs.h @@ -39,7 +39,6 @@ class gps_l5_telemetry_decoder_gs; using gps_l5_telemetry_decoder_gs_sptr = gnss_shared_ptr; gps_l5_telemetry_decoder_gs_sptr gps_l5_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, const Tlm_Conf &conf, CnavSystem system = CnavSystem::GPS); @@ -59,11 +58,10 @@ public: private: friend gps_l5_telemetry_decoder_gs_sptr gps_l5_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, const Tlm_Conf &conf, CnavSystem system); - gps_l5_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf, CnavSystem system); + gps_l5_telemetry_decoder_gs(const Tlm_Conf &conf, CnavSystem system); cnav_msg_decoder_t d_cnav_decoder{}; diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc index 95f9aa7dc..5e3521168 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.cc @@ -37,27 +37,23 @@ #define LMORE 5 // -sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - bool dump) +sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(bool dump) { - return sbas_l1_telemetry_decoder_gs_sptr(new sbas_l1_telemetry_decoder_gs(satellite, dump)); + return sbas_l1_telemetry_decoder_gs_sptr(new sbas_l1_telemetry_decoder_gs(dump)); } -sbas_l1_telemetry_decoder_gs::sbas_l1_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - bool dump) : telemetry_impl_interface("sbas_l1_telemetry_decoder_gs", - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), - gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), - d_dump(dump), - d_channel(0), - d_block_size(D_SAMPLES_PER_SYMBOL * D_SYMBOLS_PER_BIT * D_BLOCK_SIZE_IN_BITS) +sbas_l1_telemetry_decoder_gs::sbas_l1_telemetry_decoder_gs(bool dump) + : telemetry_impl_interface("sbas_l1_telemetry_decoder_gs", + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro)), + gr::io_signature::make(1, 1, sizeof(Gnss_Synchro))), + d_dump(dump), + d_channel(0), + d_block_size(D_SAMPLES_PER_SYMBOL * D_SYMBOLS_PER_BIT * D_BLOCK_SIZE_IN_BITS) { configure_basic_outputs(); // initialize internal vars - d_satellite = Gnss_Satellite(satellite.get_system(), satellite.get_PRN()); LOG(INFO) << "SBAS L1 TELEMETRY PROCESSING: satellite " << d_satellite; set_output_multiple(1); } diff --git a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h index 6f462129a..acad02fd4 100644 --- a/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h +++ b/src/algorithms/telemetry_decoder/gnuradio_blocks/sbas_l1_telemetry_decoder_gs.h @@ -36,9 +36,7 @@ class sbas_l1_telemetry_decoder_gs; using sbas_l1_telemetry_decoder_gs_sptr = gnss_shared_ptr; -sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - bool dump); +sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(bool dump); /*! * \brief This class implements a block that decodes the SBAS integrity and @@ -59,11 +57,9 @@ public: gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override; private: - friend sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs( - const Gnss_Satellite &satellite, - bool dump); + friend sbas_l1_telemetry_decoder_gs_sptr sbas_l1_make_telemetry_decoder_gs(bool dump); - sbas_l1_telemetry_decoder_gs(const Gnss_Satellite &satellite, bool dump); + explicit sbas_l1_telemetry_decoder_gs(bool dump); void viterbi_decoder(double *page_part_symbols, int32_t *page_part_bits); void align_samples(); diff --git a/src/core/receiver/gnss_block_factory.cc b/src/core/receiver/gnss_block_factory.cc index 0b88166a5..dafb1ba5d 100644 --- a/src/core/receiver/gnss_block_factory.cc +++ b/src/core/receiver/gnss_block_factory.cc @@ -29,9 +29,9 @@ #include "array_signal_conditioner.h" #include "beamformer_filter.h" #include "beidou_b1i_pcps_acquisition.h" -#include "beidou_b1i_telemetry_decoder.h" +#include "beidou_b1i_telemetry_decoder_gs.h" #include "beidou_b3i_pcps_acquisition.h" -#include "beidou_b3i_telemetry_decoder.h" +#include "beidou_b3i_telemetry_decoder_gs.h" #include "byte_to_short.h" #include "channel.h" #include "configuration_interface.h" @@ -50,18 +50,15 @@ #include "galileo_e1_pcps_quicksync_ambiguous_acquisition.h" #include "galileo_e1_pcps_tong_ambiguous_acquisition.h" #include "galileo_e1_tcp_connector_tracking.h" -#include "galileo_e1b_telemetry_decoder.h" #include "galileo_e5a_noncoherent_iq_acquisition_caf.h" #include "galileo_e5a_pcps_acquisition.h" -#include "galileo_e5a_telemetry_decoder.h" #include "galileo_e5b_pcps_acquisition.h" -#include "galileo_e5b_telemetry_decoder.h" #include "galileo_e6_pcps_acquisition.h" -#include "galileo_e6_telemetry_decoder.h" +#include "galileo_telemetry_decoder_gs.h" #include "glonass_l1_ca_pcps_acquisition.h" -#include "glonass_l1_ca_telemetry_decoder.h" +#include "glonass_l1_ca_telemetry_decoder_gs.h" #include "glonass_l2_ca_pcps_acquisition.h" -#include "glonass_l2_ca_telemetry_decoder.h" +#include "glonass_l2_ca_telemetry_decoder_gs.h" #include "gnss_block_interface.h" #include "gnss_sdr_make_unique.h" #include "gnss_sdr_string_literals.h" @@ -73,16 +70,15 @@ #include "gps_l1_ca_pcps_quicksync_acquisition.h" #include "gps_l1_ca_pcps_tong_acquisition.h" #include "gps_l1_ca_tcp_connector_tracking.h" -#include "gps_l1_ca_telemetry_decoder.h" +#include "gps_l1_ca_telemetry_decoder_gs.h" #include "gps_l2_m_pcps_acquisition.h" -#include "gps_l2c_telemetry_decoder.h" -#include "gps_l5_telemetry_decoder.h" +#include "gps_l2c_telemetry_decoder_gs.h" +#include "gps_l5_telemetry_decoder_gs.h" #include "gps_l5i_pcps_acquisition.h" #include "hybrid_observables.h" #include "ibyte_to_cbyte.h" #include "ibyte_to_complex.h" #include "ibyte_to_cshort.h" -#include "in_memory_configuration.h" #include "ishort_to_complex.h" #include "ishort_to_cshort.h" #include "labsat_signal_source.h" @@ -95,17 +91,17 @@ #include "pass_through.h" #include "pulse_blanking_filter.h" #include "qzss_l1_pcps_acquisition.h" -#include "qzss_l1_telemetry_decoder.h" -#include "qzss_l5_telemetry_decoder.h" #include "qzss_l5i_pcps_acquisition.h" #include "rtklib_pvt.h" #include "rtl_tcp_signal_source.h" -#include "sbas_l1_telemetry_decoder.h" +#include "sbas_l1_telemetry_decoder_gs.h" #include "signal_conditioner.h" #include "signal_flag.h" #include "spir_file_signal_source.h" #include "spir_gss6450_file_signal_source.h" +#include "telemetry_decoder_adapter.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include "tracking_interface.h" #include "two_bit_cpx_file_signal_source.h" #include "two_bit_packed_file_signal_source.h" @@ -677,6 +673,33 @@ std::unique_ptr get_trk_block( } +Tlm_Conf get_tlm_conf(const ConfigurationInterface* configuration, const std::string& role) +{ + Tlm_Conf conf; + + if (configuration != nullptr) + { + conf.SetFromConfiguration(configuration, role); + } + + return conf; +} + + +Tlm_Conf get_e1_tlm_conf(const ConfigurationInterface* configuration, const std::string& role) +{ + auto tlm_parameters = get_tlm_conf(configuration, role); + + if (configuration != nullptr) + { + tlm_parameters.enable_reed_solomon = configuration->property(role + ".enable_reed_solomon", false); + tlm_parameters.use_ced = configuration->property(role + ".use_reduced_ced", false); + } + + return tlm_parameters; +} + + std::unique_ptr get_tlm_block( const std::string& implementation, const ConfigurationInterface* configuration, @@ -684,61 +707,68 @@ std::unique_ptr get_tlm_block( unsigned int in_streams, unsigned int out_streams) { + telemetry_impl_interface_sptr telemetry; + if (implementation == "GPS_L1_CA_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = gps_l1_ca_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "Galileo_E1B_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = galileo_make_telemetry_decoder_gs(get_e1_tlm_conf(configuration, role), 1); } else if (implementation == "SBAS_L1_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = sbas_l1_make_telemetry_decoder_gs(configuration != nullptr ? configuration->property(role + ".dump", false) : false); } else if (implementation == "Galileo_E5a_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = galileo_make_telemetry_decoder_gs(get_tlm_conf(configuration, role), 2); } else if (implementation == "Galileo_E5b_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = galileo_make_telemetry_decoder_gs(get_tlm_conf(configuration, role), 1); } else if (implementation == "Galileo_E6_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = galileo_make_telemetry_decoder_gs(get_tlm_conf(configuration, role), 3); } else if (implementation == "GPS_L2C_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = gps_l2c_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "GLONASS_L1_CA_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = glonass_l1_ca_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "GLONASS_L2_CA_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = glonass_l2_ca_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "GPS_L5_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = gps_l5_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "BEIDOU_B1I_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = beidou_b1i_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "BEIDOU_B3I_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = beidou_b3i_make_telemetry_decoder_gs(get_tlm_conf(configuration, role)); } else if (implementation == "QZSS_L1_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = gps_l1_ca_make_telemetry_decoder_gs(get_tlm_conf(configuration, role), L1LnavSystem::QZSS); } else if (implementation == "QZSS_L5_Telemetry_Decoder") { - return std::make_unique(configuration, role, in_streams, out_streams); + telemetry = gps_l5_make_telemetry_decoder_gs(get_tlm_conf(configuration, role), CnavSystem::QZSS); + } + + if (telemetry) + { + return std::make_unique(role, implementation, in_streams, out_streams, std::move(telemetry)); } return nullptr; diff --git a/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc b/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc index 63afcf770..80631a6a9 100644 --- a/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc +++ b/tests/unit-tests/signal-processing-blocks/telemetry_decoder/gps_l1_ca_telemetry_decoder_test.cc @@ -35,10 +35,12 @@ #include "dll_pll_tracking_adapter.h" #include "gnss_block_interface.h" #include "gnss_synchro.h" -#include "gps_l1_ca_telemetry_decoder.h" +#include "gps_l1_ca_telemetry_decoder_gs.h" #include "in_memory_configuration.h" #include "signal_generator_flags.h" +#include "telemetry_decoder_adapter.h" #include "telemetry_decoder_interface.h" +#include "tlm_conf.h" #include "tlm_dump_reader.h" #include "tracking_dump_reader.h" #include "tracking_interface.h" @@ -421,7 +423,10 @@ TEST_F(GpsL1CATelemetryDecoderTest, ValidationOfResults) gnss_synchro.Acq_doppler_hz = true_obs_data.doppler_l1_hz; gnss_synchro.Acq_samplestamp_samples = 0; - std::shared_ptr tlm = std::make_shared(config.get(), "TelemetryDecoder_1C", 1, 1); + Tlm_Conf tlm_conf; + tlm_conf.SetFromConfiguration(config.get(), "TelemetryDecoder_1C"); + auto telemetry_decoder = gps_l1_ca_make_telemetry_decoder_gs(tlm_conf); + std::shared_ptr tlm = std::make_shared("TelemetryDecoder_1C", "GPS_L1_CA_Telemetry_Decoder", 1, 1, std::move(telemetry_decoder)); tlm->set_channel(0); std::shared_ptr tlm_msg_rx = GpsL1CADllPllTelemetryDecoderTest_tlm_msg_rx_make();