GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
galileo_e6_dll_pll_tracking.h
Go to the documentation of this file.
1 /*!
2  * \file galileo_e6_dll_pll_tracking.h
3  * \brief Adapts a code DLL + carrier PLL
4  * tracking block to a TrackingInterface for Galileo E6 signals
5  * \author Carles Fernandez-Prades, 2020. cfernandez(at)cttc.es
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_GALILEO_E6_DLL_PLL_TRACKING_H
20 #define GNSS_SDR_GALILEO_E6_DLL_PLL_TRACKING_H
21 
22 #include "dll_pll_veml_tracking.h"
23 #include "tracking_interface.h"
24 #include <string>
25 
26 /** \addtogroup Tracking
27  * \{ */
28 /** \addtogroup Tracking_adapters
29  * \{ */
30 
31 
33 
34 /*!
35  * \brief This class implements a code DLL + carrier PLL tracking loop
36  */
38 {
39 public:
41  const ConfigurationInterface* configuration,
42  const std::string& role,
43  unsigned int in_streams,
44  unsigned int out_streams);
45 
46  ~GalileoE6DllPllTracking() = default;
47 
48  inline std::string role() override
49  {
50  return role_;
51  }
52 
53  //! Returns "Galileo_E6_DLL_PLL_Tracking"
54  inline std::string implementation() override
55  {
56  return "Galileo_E6_DLL_PLL_Tracking";
57  }
58 
59  inline size_t item_size() override
60  {
61  return item_size_;
62  }
63 
64  /*!
65  * \brief Connect
66  */
67  void connect(gr::top_block_sptr top_block) override;
68 
69  /*!
70  * \brief Disconnect
71  */
72  void disconnect(gr::top_block_sptr top_block) override;
73 
74  /*!
75  * \brief Get left block
76  */
77  gr::basic_block_sptr get_left_block() override;
78 
79  /*!
80  * \brief Get right block
81  */
82  gr::basic_block_sptr get_right_block() override;
83 
84  /*!
85  * \brief Set tracking channel unique ID
86  */
87  void set_channel(unsigned int channel) override;
88 
89  /*!
90  * \brief Set acquisition/tracking common Gnss_Synchro object pointer
91  * to efficiently exchange synchronization data between acquisition and tracking blocks
92  */
93  void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) override;
94 
95  void start_tracking() override;
96 
97  /*!
98  * \brief Stop running tracking
99  */
100  void stop_tracking() override;
101 
102 private:
103  dll_pll_veml_tracking_sptr tracking_sptr_;
104  std::string role_;
105  size_t item_size_;
106  unsigned int channel_;
107  unsigned int in_streams_;
108  unsigned int out_streams_;
109 };
110 
111 
112 /** \} */
113 /** \} */
114 #endif // GNSS_SDR_GALILEO_E6_DLL_PLL_TRACKING_H
gr::basic_block_sptr get_left_block() override
Get left block.
This is the class that contains the information that is shared by the processing blocks.
Definition: gnss_synchro.h:38
This abstract class represents an interface to configuration parameters.
Implementation of a code DLL + carrier PLL tracking block.
This class implements a code DLL + carrier PLL tracking loop.
void stop_tracking() override
Stop running tracking.
std::string implementation() override
Returns "Galileo_E6_DLL_PLL_Tracking".
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) override
Set acquisition/tracking common Gnss_Synchro object pointer to efficiently exchange synchronization d...
This abstract class represents an interface to a tracking block.
void disconnect(gr::top_block_sptr top_block) override
Disconnect.
void connect(gr::top_block_sptr top_block) override
Connect.
gr::basic_block_sptr get_right_block() override
Get right block.
void set_channel(unsigned int channel) override
Set tracking channel unique ID.
This class represents an interface to a tracking block.