GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
gps_l1_ca_gaussian_tracking.h
Go to the documentation of this file.
1/*!
2 * \file gps_l1_ca_gaussian_tracking.h
3 * \brief Interface of an adapter of a DLL + Kalman carrier
4 * tracking loop block for GPS L1 C/A signals
5 * \author Javier Arribas, 2018. jarribas(at)cttc.es
6 * \author Jordi Vila-Valls 2018. jvila(at)cttc.es
7 * \author Carles Fernandez-Prades 2018. cfernandez(at)cttc.es
8 *
9 * Reference:
10 * J. Vila-Valls, P. Closas, M. Navarro and C. Fernandez-Prades,
11 * "Are PLLs Dead? A Tutorial on Kalman Filter-based Techniques for Digital
12 * Carrier Synchronization", IEEE Aerospace and Electronic Systems Magazine,
13 * Vol. 32, No. 7, pp. 28–45, July 2017. DOI: 10.1109/MAES.2017.150260
14 *
15 * -----------------------------------------------------------------------------
16 *
17 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
18 * This file is part of GNSS-SDR.
19 *
20 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
21 * SPDX-License-Identifier: GPL-3.0-or-later
22 *
23 * -----------------------------------------------------------------------------
24 */
25
26#ifndef GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H
27#define GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H
28
30#include "tracking_interface.h"
31#include <string>
32
33/** \addtogroup Tracking
34 * \{ */
35/** \addtogroup Tracking_adapters
36 * \{ */
37
38
40
41/*!
42 * \brief This class implements a code DLL + carrier PLL tracking loop
43 */
44class GpsL1CaGaussianTracking : public TrackingInterface
45{
46public:
47 GpsL1CaGaussianTracking(
48 const ConfigurationInterface* configuration,
49 const std::string& role,
50 unsigned int in_streams,
51 unsigned int out_streams);
52
53 ~GpsL1CaGaussianTracking() = default;
54
55 inline std::string role() override
56 {
57 return role_;
58 }
59
60 //! Returns "GPS_L1_CA_Gaussian_Tracking"
61 inline std::string implementation() override
62 {
63 return "GPS_L1_CA_Gaussian_Tracking";
64 }
65
66 inline size_t item_size() override
67 {
68 return item_size_;
69 }
70
71 void connect(gr::top_block_sptr top_block) override;
72 void disconnect(gr::top_block_sptr top_block) override;
73 gr::basic_block_sptr get_left_block() override;
74 gr::basic_block_sptr get_right_block() override;
75
76 /*!
77 * \brief Set tracking channel unique ID
78 */
79 void set_channel(unsigned int channel) override;
80
81 /*!
82 * \brief Set acquisition/tracking common Gnss_Synchro object pointer
83 * to efficiently exchange synchronization data between acquisition and tracking blocks
84 */
85 void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) override;
86
87 void start_tracking() override;
88
89 /*!
90 * \brief Stop running tracking
91 */
92 void stop_tracking() override;
93
94private:
95 gps_l1_ca_gaussian_tracking_cc_sptr tracking_sptr_;
96 std::string role_;
97 size_t item_size_;
98 unsigned int channel_;
99 unsigned int in_streams_;
100 unsigned int out_streams_;
101};
102
103
104/** \} */
105/** \} */
106#endif // GNSS_SDR_GPS_L1_CA_GAUSSIAN_TRACKING_H
This abstract class represents an interface to configuration parameters.
This is the class that contains the information that is shared by the processing blocks.
void stop_tracking() override
Stop running tracking.
void set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) override
Set acquisition/tracking common Gnss_Synchro object pointer to efficiently exchange synchronization d...
std::string implementation() override
Returns "GPS_L1_CA_Gaussian_Tracking".
void set_channel(unsigned int channel) override
Set tracking channel unique ID.
This abstract class represents an interface to a tracking block.
Interface of a processing block of a DLL + Kalman carrier tracking loop for GPS L1 C/A signals.
This class represents an interface to a tracking block.