GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
gps_l2c_telemetry_decoder_gs.h
Go to the documentation of this file.
1/*!
2 * \file gps_l2c_telemetry_decoder_gs.h
3 * \brief Interface of a CNAV message demodulator block
4 * \author Javier Arribas, 2015. jarribas(at)cttc.es
5 *
6 * -----------------------------------------------------------------------------
7 *
8 * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
9 * This file is part of GNSS-SDR.
10 *
11 * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
12 * SPDX-License-Identifier: GPL-3.0-or-later
13 *
14 * -----------------------------------------------------------------------------
15 */
16
17#ifndef GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H
18#define GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H
19
20
22#include "nav_message_packet.h"
24#include "tlm_conf.h"
25#include <gnuradio/types.h> // for gr_vector_const_void_star
26
27extern "C"
28{
29#include "cnav_msg.h"
30}
31
32/** \addtogroup Telemetry_Decoder
33 * \{ */
34/** \addtogroup Telemetry_Decoder_gnuradio_blocks
35 * \{ */
36
37
39
40using gps_l2c_telemetry_decoder_gs_sptr = gnss_shared_ptr<gps_l2c_telemetry_decoder_gs>;
41
42gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(
43 const Gnss_Satellite &satellite,
44 const Tlm_Conf &conf);
45
46/*!
47 * \brief This class implements a block that decodes CNAV data defined in IS-GPS-200M
48 */
49class gps_l2c_telemetry_decoder_gs : public telemetry_impl_interface
50{
51public:
52 ~gps_l2c_telemetry_decoder_gs() override;
53 void set_satellite(const Gnss_Satellite &satellite) override; //!< Set satellite PRN
54 void set_channel(int32_t channel) override; //!< Set receiver's channel
55 void reset() override;
56
57 /*!
58 * \brief This is where all signal processing takes place
59 */
60 int general_work(int noutput_items, gr_vector_int &ninput_items,
61 gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override;
62
63private:
64 friend gps_l2c_telemetry_decoder_gs_sptr gps_l2c_make_telemetry_decoder_gs(
65 const Gnss_Satellite &satellite,
66 const Tlm_Conf &conf);
67
68 gps_l2c_telemetry_decoder_gs(const Gnss_Satellite &satellite, const Tlm_Conf &conf);
69
70 Gnss_Satellite d_satellite;
71
72 cnav_msg_decoder_t d_cnav_decoder{};
73
74 Gps_CNAV_Navigation_Message d_CNAV_Message;
75
76 Nav_Message_Packet d_nav_msg_packet;
77 std::unique_ptr<Tlm_CRC_Stats> d_Tlm_CRC_Stats;
78
79 std::string d_dump_filename;
80 std::ofstream d_dump_file;
81
82 double d_TOW_at_current_symbol;
83 double d_TOW_at_Preamble;
84
85 uint64_t d_sample_counter;
86 uint64_t d_last_valid_preamble;
87
88 int32_t d_channel;
89
90 uint32_t d_max_symbols_without_valid_frame;
91
92 bool d_dump;
93 bool d_sent_tlm_failed_msg;
94 bool d_flag_PLL_180_deg_phase_locked;
95 bool d_flag_valid_word;
96 bool d_dump_mat;
97 bool d_remove_dat;
98 bool d_enable_navdata_monitor;
99 bool d_dump_crc_stats;
100 bool d_tow_to_trk;
101};
102
103
104/** \} */
105/** \} */
106#endif // GNSS_SDR_GPS_L2C_TELEMETRY_DECODER_GS_H
This class represents a GNSS satellite.
This class decodes a GPS CNAV Data message as described in IS-GPS-200M.
This class implements a block that decodes CNAV data defined in IS-GPS-200M.
int general_work(int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
This is where all signal processing takes place.
void set_satellite(const Gnss_Satellite &satellite) override
Set satellite PRN.
void set_channel(int32_t channel) override
Set receiver's channel.
Utilities for CNAV message manipulation of the libswiftnav library.
Interface of a GPS CNAV Data message decoder.
Class for storage of decoded navigation messages.
Base class for telemetry decoder GNU Radio blocks.
Class that contains all the configuration parameters for generic telemetry decoder block.