GNSS-SDR  0.0.13
An Open Source GNSS Software Defined Receiver
hybrid_observables.h
Go to the documentation of this file.
1 /*!
2  * \file hybrid_observables.h
3  * \brief Implementation of an adapter of an observables block accepting all kind
4  * of signals to a ObservablesInterface
5  * \author Mara Branzanti 2013. mara.branzanti(at)gmail.com
6  * \author Javier Arribas 2013. jarribas(at)cttc.es
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 
23 #ifndef GNSS_SDR_HYBRID_OBSERVABLES_H
24 #define GNSS_SDR_HYBRID_OBSERVABLES_H
25 
26 #include "gnss_synchro.h"
27 #include "hybrid_observables_gs.h"
28 #include "observables_interface.h"
29 #include <gnuradio/gr_complex.h> // for gr_complex
30 #include <gnuradio/runtime_types.h> // for basic_block_sptr, top_block_sptr
31 #include <cstddef>
32 #include <string>
33 
35 
36 /*!
37  * \brief This class implements an ObservablesInterface for observables of all kind of GNSS signals
38  */
40 {
41 public:
42  HybridObservables(const ConfigurationInterface* configuration,
43  const std::string& role,
44  unsigned int in_streams,
45  unsigned int out_streams);
46 
47  ~HybridObservables() = default;
48 
49  inline std::string role() override
50  {
51  return role_;
52  }
53 
54  //! Returns "Hybrid_Observables"
55  inline std::string implementation() override
56  {
57  return "Hybrid_Observables";
58  }
59 
60  void connect(gr::top_block_sptr top_block) override;
61  void disconnect(gr::top_block_sptr top_block) override;
62  gr::basic_block_sptr get_left_block() override;
63  gr::basic_block_sptr get_right_block() override;
64 
65  inline void reset() override
66  {
67  return;
68  }
69 
70  //! All blocks must have an item_size() function implementation
71  inline size_t item_size() override
72  {
73  return sizeof(Gnss_Synchro);
74  }
75 
76 private:
77  hybrid_observables_gs_sptr observables_;
78  std::string dump_filename_;
79  std::string role_;
80  unsigned int in_streams_;
81  unsigned int out_streams_;
82  bool dump_;
83  bool dump_mat_;
84 };
85 
86 #endif
std::string implementation() override
Returns "Hybrid_Observables".
This class implements an ObservablesInterface for observables of all kind of GNSS signals...
This is the class that contains the information that is shared by the processing blocks.
Definition: gnss_synchro.h:33
This abstract class represents an interface to configuration parameters.
Interface of the observables computation block.
size_t item_size() override
All blocks must have an item_size() function implementation.
This abstract class represents an interface to an observables block.
This class represents an interface to an Observables block.
Interface of the Gnss_Synchro class.