GNSS-SDR  0.0.13
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  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
11  *
12  * GNSS-SDR is a software defined Global Navigation
13  * Satellite Systems receiver
14  *
15  * This file is part of GNSS-SDR.
16  *
17  * SPDX-License-Identifier: GPL-3.0-or-later
18  *
19  * -----------------------------------------------------------------------------
20  */
21 
22 #ifndef GNSS_SDR_GEN_SIGNAL_SOURCE_H
23 #define GNSS_SDR_GEN_SIGNAL_SOURCE_H
24 
25 
26 #include "concurrent_queue.h"
27 #include "gnss_block_interface.h"
28 #include <pmt/pmt.h>
29 #include <memory>
30 #include <string>
31 
32 /*!
33  * \brief This class wraps blocks that generates synthesized GNSS signal and
34  * filters the signal.
35  */
37 {
38 public:
39  //! Constructor
40  GenSignalSource(std::shared_ptr<GNSSBlockInterface> signal_generator, std::shared_ptr<GNSSBlockInterface> filter,
41  std::string role, Concurrent_Queue<pmt::pmt_t> *queue);
42 
43  //! Virtual destructor
44  virtual ~GenSignalSource() = default;
45 
46  void connect(gr::top_block_sptr top_block) override;
47  void disconnect(gr::top_block_sptr top_block) override;
48  gr::basic_block_sptr get_left_block() override;
49  gr::basic_block_sptr get_right_block() override;
50 
51  inline std::string role() override { return role_; }
52  //! Returns "Signal Source"
53  inline std::string implementation() override { return "Signal Source"; }
54  inline size_t item_size() override { return 0; }
55  inline std::shared_ptr<GNSSBlockInterface> signal_generator() const { return signal_generator_; }
56 
57 private:
58  std::shared_ptr<GNSSBlockInterface> signal_generator_;
59  std::shared_ptr<GNSSBlockInterface> filter_;
60  std::string role_;
61  std::string implementation_;
62  bool connected_;
63 };
64 
65 #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.