GNSS-SDR  0.0.21
An Open Source GNSS Software Defined Receiver
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  */
43 {
44 public:
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 
70 protected:
71  void InitializeDecoder(telemetry_impl_interface_sptr decoder);
72 
73  const Gnss_Satellite& satellite() const;
74 
75  Tlm_Conf tlm_parameters_;
76 
77 private:
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
Class that contains all the configuration parameters for generic telemetry decoder block...
This class represents an interface to a telemetry decoder block.
Base class for Telemetry Decoder adapters.
This abstract class represents an interface to configuration parameters.
Interface of the Gnss_Satellite class.
This class represents a GNSS satellite.
Base class for telemetry decoder GNU Radio blocks.
This class represents an interface to configuration parameters.
This abstract class represents an interface to a navigation GNSS block.
Interface of the Gnss_Synchro class.