GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
gen_signal_source.h
Go to the documentation of this file.
1 /*!
2  * \file gen_signal_source.h
3  * \brief It wraps blocks that generates synthesized GNSS signal and filters
4  * it.
5  * \author Marc Molina, 2013. marc.molina.pena@gmail.com
6  *
7  *
8  * -----------------------------------------------------------------------------
9  *
10  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
11  * This file is part of GNSS-SDR.
12  *
13  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
14  * SPDX-License-Identifier: GPL-3.0-or-later
15  *
16  * -----------------------------------------------------------------------------
17  */
18 
19 #ifndef GNSS_SDR_GEN_SIGNAL_SOURCE_H
20 #define GNSS_SDR_GEN_SIGNAL_SOURCE_H
21 
22 
23 #include "concurrent_queue.h"
24 #include "gnss_block_interface.h"
25 #include "signal_source_interface.h"
26 #include <pmt/pmt.h>
27 #include <memory>
28 #include <string>
29 
30 
31 /** \addtogroup Signal_Source
32  * \{ */
33 /** \addtogroup Signal_Source_adapters
34  * \{ */
35 
36 
37 /*!
38  * \brief This class wraps blocks that generates synthesized GNSS signal and
39  * filters the signal.
40  */
42 {
43 public:
44  //! Constructor
45  GenSignalSource(std::shared_ptr<GNSSBlockInterface> signal_generator, std::shared_ptr<GNSSBlockInterface> filter,
46  std::string role, Concurrent_Queue<pmt::pmt_t> *queue);
47 
48  void connect(gr::top_block_sptr top_block) override;
49  void disconnect(gr::top_block_sptr top_block) override;
50  gr::basic_block_sptr get_left_block() override;
51  gr::basic_block_sptr get_right_block() override;
52 
53  inline std::string role() override { return role_; }
54  //! Returns "Signal Source"
55  inline std::string implementation() override { return "Signal Source"; }
56  inline size_t item_size() override { return 0; }
57  inline size_t getRfChannels() const final { return 0; }
58 
59  inline std::shared_ptr<GNSSBlockInterface> signal_generator() const { return signal_generator_; }
60 
61 private:
62  std::shared_ptr<GNSSBlockInterface> signal_generator_;
63  std::shared_ptr<GNSSBlockInterface> filter_;
64  std::string role_;
65  std::string implementation_;
66  bool connected_;
67 };
68 
69 
70 /** \} */
71 /** \} */
72 #endif // GNSS_SDR_GEN_SIGNAL_SOURCE_H
Interface of a thread-safe std::queue.
This abstract class represents an interface to signal_source GNSS block.
std::string implementation() override
Returns "Signal Source".
GenSignalSource(std::shared_ptr< GNSSBlockInterface > signal_generator, std::shared_ptr< GNSSBlockInterface > filter, std::string role, Concurrent_Queue< pmt::pmt_t > *queue)
Constructor.
This interface represents a GNSS block.
This class wraps blocks that generates synthesized GNSS signal and filters the signal.