mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2026-08-17 15:48:58 +00:00
Merge branch 'refactor/remove-telemetry-adapters' of https://github.com/MathieuFavreau/gnss-sdr into MathieuFavreau-refactor/remove-telemetry-adapters
This commit is contained in:
@@ -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 ############
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
|
||||
/** \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
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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:
|
||||
* <ul>
|
||||
* <li> Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* 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));
|
||||
}
|
||||
@@ -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:
|
||||
* <ul>
|
||||
* <li> Javier Arribas, 2011. jarribas(at)cttc.es
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
* -----------------------------------------------------------------------------
|
||||
*
|
||||
* 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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
@@ -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_));
|
||||
}
|
||||
@@ -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 <string>
|
||||
|
||||
/** \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
|
||||
+31
-40
@@ -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 <utility>
|
||||
#include "telemetry_decoder_adapter.h"
|
||||
#include "gnss_synchro.h"
|
||||
|
||||
#if USE_GLOG_AND_GFLAGS
|
||||
#include <glog/logging.h>
|
||||
@@ -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_;
|
||||
}
|
||||
+11
-23
@@ -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 <gnuradio/runtime_types.h>
|
||||
#include <cstddef>
|
||||
#include <string>
|
||||
|
||||
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_;
|
||||
};
|
||||
|
||||
/** \} */
|
||||
+31
-33
@@ -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();
|
||||
|
||||
|
||||
@@ -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>;
|
||||
|
||||
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);
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
|
||||
@@ -31,12 +31,9 @@
|
||||
|
||||
class beidou_b3i_telemetry_decoder_gs;
|
||||
|
||||
using beidou_b3i_telemetry_decoder_gs_sptr =
|
||||
gnss_shared_ptr<beidou_b3i_telemetry_decoder_gs>;
|
||||
using beidou_b3i_telemetry_decoder_gs_sptr = gnss_shared_ptr<beidou_b3i_telemetry_decoder_gs>;
|
||||
|
||||
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,
|
||||
|
||||
@@ -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<uint32_t>::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<uint32_t>::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
|
||||
|
||||
@@ -40,10 +40,7 @@ class galileo_telemetry_decoder_gs; // forward declaration
|
||||
|
||||
using galileo_telemetry_decoder_gs_sptr = gnss_shared_ptr<galileo_telemetry_decoder_gs>;
|
||||
|
||||
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);
|
||||
|
||||
+22
-25
@@ -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);
|
||||
|
||||
+3
-7
@@ -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>;
|
||||
|
||||
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<int16_t, GLONASS_GNAV_PREAMBLE_LENGTH_BITS> d_preambles_bits{GLONASS_GNAV_PREAMBLE_SAMPLES};
|
||||
|
||||
|
||||
+22
-25
@@ -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);
|
||||
|
||||
+3
-7
@@ -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>;
|
||||
|
||||
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<int16_t, GLONASS_GNAV_PREAMBLE_LENGTH_BITS> d_preambles_bits{GLONASS_GNAV_PREAMBLE_SAMPLES};
|
||||
void decode_string(const double *symbols, double cn0);
|
||||
|
||||
+37
-40
@@ -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
|
||||
|
||||
@@ -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>;
|
||||
|
||||
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);
|
||||
|
||||
@@ -42,34 +42,32 @@
|
||||
#include <absl/log/log.h>
|
||||
#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)
|
||||
|
||||
@@ -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>;
|
||||
|
||||
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;
|
||||
|
||||
|
||||
@@ -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<Gps_CNAV_Navigation_Message>(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)
|
||||
|
||||
@@ -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>;
|
||||
|
||||
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{};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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>;
|
||||
|
||||
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();
|
||||
|
||||
@@ -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<TrackingInterface> 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<TelemetryDecoderInterface> get_tlm_block(
|
||||
const std::string& implementation,
|
||||
const ConfigurationInterface* configuration,
|
||||
@@ -684,61 +707,68 @@ std::unique_ptr<TelemetryDecoderInterface> 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<GpsL1CaTelemetryDecoder>(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<GalileoE1BTelemetryDecoder>(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<SbasL1TelemetryDecoder>(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<GalileoE5aTelemetryDecoder>(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<GalileoE5bTelemetryDecoder>(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<GalileoE6TelemetryDecoder>(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<GpsL2CTelemetryDecoder>(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<GlonassL1CaTelemetryDecoder>(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<GlonassL2CaTelemetryDecoder>(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<GpsL5TelemetryDecoder>(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<BeidouB1iTelemetryDecoder>(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<BeidouB3iTelemetryDecoder>(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<QzssL1TelemetryDecoder>(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<QzssL5TelemetryDecoder>(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<TelemetryDecoderAdapter>(role, implementation, in_streams, out_streams, std::move(telemetry));
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
+7
-2
@@ -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<TelemetryDecoderInterface> tlm = std::make_shared<GpsL1CaTelemetryDecoder>(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<TelemetryDecoderInterface> tlm = std::make_shared<TelemetryDecoderAdapter>("TelemetryDecoder_1C", "GPS_L1_CA_Telemetry_Decoder", 1, 1, std::move(telemetry_decoder));
|
||||
tlm->set_channel(0);
|
||||
|
||||
std::shared_ptr<GpsL1CADllPllTelemetryDecoderTest_tlm_msg_rx> tlm_msg_rx = GpsL1CADllPllTelemetryDecoderTest_tlm_msg_rx_make();
|
||||
|
||||
Reference in New Issue
Block a user