GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
telemetry_decoder_adapter_base.h
Go to the documentation of this file.
1/*!
2 * \file telemetry_decoder_adapter_base.h
3 * \brief Common functionality for telemetry decoder adapters
4 * \author Carles Fernandez-Prades, 2025 cfernandez@cttc.es
5 *
6 * -----------------------------------------------------------------------------
7 *
8 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9 * This file is part of GNSS-SDR.
10 *
11 * Copyright (C) 2010-2025 (see AUTHORS file for a list of contributors)
12 * SPDX-License-Identifier: GPL-3.0-or-later
13 *
14 * -----------------------------------------------------------------------------
15 */
16
17#ifndef GNSS_SDR_TELEMETRY_DECODER_ADAPTER_BASE_H
18#define GNSS_SDR_TELEMETRY_DECODER_ADAPTER_BASE_H
19
21#include "gnss_satellite.h"
22#include "gnss_synchro.h"
25#include "tlm_conf.h"
26#include <gnuradio/runtime_types.h>
27#include <cstddef>
28#include <string>
29
31
32/** \addtogroup Telemetry_Decoder
33 * \{
34 */
35/** \addtogroup Telemetry_Decoder_adapters
36 * \{
37 */
38
39/*!
40 * \brief Base class for Telemetry Decoder adapters
41 */
42class TelemetryDecoderAdapterBase : public TelemetryDecoderInterface
43{
44public:
45 TelemetryDecoderAdapterBase(const ConfigurationInterface* configuration,
46 const std::string& role,
47 unsigned int in_streams,
48 unsigned int out_streams);
49
50 ~TelemetryDecoderAdapterBase() override = default;
51
52 void connect(gr::top_block_sptr top_block) override;
53
54 void disconnect(gr::top_block_sptr top_block) override;
55
56 gr::basic_block_sptr get_left_block() override;
57
58 gr::basic_block_sptr get_right_block() override;
59
60 void set_satellite(const Gnss_Satellite& satellite) override;
61
62 std::string role() override;
63
64 void set_channel(int channel) override;
65
66 void reset() override;
67
68 size_t item_size() override;
69
70protected:
71 void InitializeDecoder(telemetry_impl_interface_sptr decoder);
72
73 const Gnss_Satellite& satellite() const;
74
75 Tlm_Conf tlm_parameters_;
76
77private:
78 telemetry_impl_interface_sptr telemetry_decoder_;
79 Gnss_Satellite satellite_;
80 std::string role_;
81 unsigned int in_streams_ = 0;
82 unsigned int out_streams_ = 0;
83};
84
85/** \} */
86/** \} */
87
88#endif // GNSS_SDR_TELEMETRY_DECODER_ADAPTER_BASE_H
This abstract class represents an interface to configuration parameters.
This class represents a GNSS satellite.
This abstract class represents an interface to a navigation GNSS block.
This class represents an interface to configuration parameters.
Interface of the Gnss_Satellite class.
Interface of the Gnss_Synchro class.
This class represents an interface to a telemetry decoder block.
Base class for telemetry decoder GNU Radio blocks.
Class that contains all the configuration parameters for generic telemetry decoder block.