GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
channel_status_msg_receiver.h
Go to the documentation of this file.
1 /*!
2  * \file channel_status_msg_receiver.h
3  * \brief GNU Radio block that receives asynchronous channel messages from
4  * acquisition and tracking blocks
5  * \author Javier Arribas, 2019. jarribas(at)cttc.es
6  *
7  * -----------------------------------------------------------------------------
8  *
9  * GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
10  * This file is part of GNSS-SDR.
11  *
12  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
13  * SPDX-License-Identifier: GPL-3.0-or-later
14  *
15  * -----------------------------------------------------------------------------
16  */
17 
18 #ifndef GNSS_SDR_CHANNEL_STATUS_MSG_RECEIVER_CC_H
19 #define GNSS_SDR_CHANNEL_STATUS_MSG_RECEIVER_CC_H
20 
21 #include "gnss_block_interface.h"
22 #include "gnss_synchro.h"
23 #include "monitor_pvt.h"
24 #include <gnuradio/block.h>
25 #include <pmt/pmt.h>
26 #include <map>
27 #include <memory>
28 
29 /** \addtogroup Core
30  * \{ */
31 /** \addtogroup Core_Receiver_Library
32  * \{ */
33 
34 
36 
37 using channel_status_msg_receiver_sptr = gnss_shared_ptr<channel_status_msg_receiver>;
38 
39 channel_status_msg_receiver_sptr channel_status_msg_receiver_make();
40 
41 /*!
42  * \brief GNU Radio block that receives asynchronous channel messages from tlm blocks
43  */
44 class channel_status_msg_receiver : public gr::block
45 {
46 public:
47  ~channel_status_msg_receiver() = default; //!< Default destructor
48 
49  /*!
50  * \brief return the current status map of all channels with valid telemetry
51  */
52  std::map<int, std::shared_ptr<Gnss_Synchro>> get_current_status_map();
53 
54  /*!
55  * \brief return the current receiver PVT
56  */
58 
59 private:
60  friend channel_status_msg_receiver_sptr channel_status_msg_receiver_make();
62  void msg_handler_channel_status(const pmt::pmt_t& msg);
63  Monitor_Pvt d_pvt_status{};
64  std::map<int, std::shared_ptr<Gnss_Synchro>> d_channel_status_map;
65 };
66 
67 
68 /** \} */
69 /** \} */
70 #endif // GNSS_SDR_CHANNEL_STATUS_MSG_RECEIVER_CC_H
GNU Radio block that receives asynchronous channel messages from tlm blocks.
std::map< int, std::shared_ptr< Gnss_Synchro > > get_current_status_map()
return the current status map of all channels with valid telemetry
Monitor_Pvt get_current_status_pvt()
return the current receiver PVT
This class contains parameters and outputs of the PVT block.
Definition: monitor_pvt.h:33
This interface represents a GNSS block.
~channel_status_msg_receiver()=default
Default destructor.
Interface of the Monitor_Pvt class.
Interface of the Gnss_Synchro class.