GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
gps_l1_ca_kf_tracking.h
Go to the documentation of this file.
1/*!
2 * \file gps_l1_ca_kf_tracking.h
3 * \brief Interface of an adapter of a code + carrier Kalman Filter tracking
4 * loop with VTL capabilities block
5 * for GPS L1 C/A to a TrackingInterface
6 * \author Javier Arribas, 2020. jarribas(at)cttc.es
7 *
8 *
9 * -----------------------------------------------------------------------------
10 *
11 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12 *
13 * GNSS-SDR is a software defined Global Navigation
14 * Satellite Systems receiver
15 *
16 * This file is part of GNSS-SDR.
17 *
18 * SPDX-License-Identifier: GPL-3.0-or-later
19 *
20 * -----------------------------------------------------------------------------
21 */
22
23#ifndef GNSS_SDR_GPS_L1_CA_KF_TRACKING_H
24#define GNSS_SDR_GPS_L1_CA_KF_TRACKING_H
25
26#include "kf_tracking.h"
27#include "tracking_interface.h"
28#include <string>
29
31
32/*!
33 * \brief This class implements a code + carrier Kalman Filter tracking loop
34 * with VTL capabilities
35 */
36class GpsL1CaKfTracking : public TrackingInterface
37{
38public:
39 GpsL1CaKfTracking(
40 const ConfigurationInterface* configuration,
41 const std::string& role,
42 unsigned int in_streams,
43 unsigned int out_streams);
44
45 ~GpsL1CaKfTracking() = default;
46
47 inline std::string role() override
48 {
49 return role_;
50 }
51
52 //! Returns "GPS_L1_CA_KF_Tracking"
53 inline std::string implementation() override
54 {
55 return "GPS_L1_CA_KF_Tracking";
56 }
57
58 inline size_t item_size() override
59 {
60 return item_size_;
61 }
62
63 void connect(gr::top_block_sptr top_block) override;
64 void disconnect(gr::top_block_sptr top_block) override;
65 gr::basic_block_sptr get_left_block() override;
66 gr::basic_block_sptr get_right_block() override;
67
68 /*!
69 * \brief Set tracking channel unique ID
70 */
71 void set_channel(unsigned int channel) override;
72
73 /*!
74 * \brief Set acquisition/tracking common Gnss_Synchro object pointer
75 * to efficiently exchange synchronization data between acquisition
76 * and tracking blocks
77 */
78 void set_gnss_synchro(Gnss_Synchro* p_gnss_synchro) override;
79
80 void start_tracking() override;
81
82 /*!
83 * \brief Stop running tracking
84 */
85 void stop_tracking() override;
86
87private:
88 kf_tracking_sptr tracking_sptr_;
89 std::string role_;
90 size_t item_size_;
91 unsigned int channel_;
92 unsigned int in_streams_;
93 unsigned int out_streams_;
94};
95
96#endif // GNSS_SDR_GPS_L1_CA_KF_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 set_gnss_synchro(Gnss_Synchro *p_gnss_synchro) override
Set acquisition/tracking common Gnss_Synchro object pointer to efficiently exchange synchronization d...
void stop_tracking() override
Stop running tracking.
std::string implementation() override
Returns "GPS_L1_CA_KF_Tracking".
void set_channel(unsigned int channel) override
Set tracking channel unique ID.
This abstract class represents an interface to a tracking block.
This class represents an interface to a tracking block.