GNSS-SDR  0.0.14
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 <pmt/pmt.h>
26 #include <memory>
27 #include <string>
28 
29 
30 /** \addtogroup Signal_Source
31  * \{ */
32 /** \addtogroup Signal_Source_adapters
33  * \{ */
34 
35 
36 /*!
37  * \brief This class wraps blocks that generates synthesized GNSS signal and
38  * filters the signal.
39  */
41 {
42 public:
43  //! Constructor
44  GenSignalSource(std::shared_ptr<GNSSBlockInterface> signal_generator, std::shared_ptr<GNSSBlockInterface> filter,
45  std::string role, Concurrent_Queue<pmt::pmt_t> *queue);
46 
47  //! Virtual destructor
48  virtual ~GenSignalSource() = default;
49 
50  void connect(gr::top_block_sptr top_block) override;
51  void disconnect(gr::top_block_sptr top_block) override;
52  gr::basic_block_sptr get_left_block() override;
53  gr::basic_block_sptr get_right_block() override;
54 
55  inline std::string role() override { return role_; }
56  //! Returns "Signal Source"
57  inline std::string implementation() override { return "Signal Source"; }
58  inline size_t item_size() override { return 0; }
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.
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.
This abstract class represents an interface to GNSS blocks.
virtual ~GenSignalSource()=default
Virtual destructor.