GNSS-SDR  0.0.19
An Open Source GNSS Software Defined Receiver
nav_message_packet.h
Go to the documentation of this file.
1 /*!
2  * \file nav_message_packet.h
3  * \brief Class for storage of decoded navigation messages
4  * \author Carles Fernandez-Prades, 2021. cfernandez(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-2021 (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_NAV_MESSAGE_PACKET_H
18 #define GNSS_SDR_NAV_MESSAGE_PACKET_H
19 
20 #include <cstdint>
21 #include <string>
22 #include <utility>
23 
24 /** \addtogroup Core
25  * \{ */
26 /** \addtogroup Core_Receiver_Library
27  * \{ */
28 
30 {
31 public:
32  Nav_Message_Packet() = default; //!< Default constructor
33 
34  ~Nav_Message_Packet() = default; //!< Default destructor
35 
36  std::string system; //!< GNSS constellation: "G" for GPS, "R" for Glonass, "S" for SBAS, "E" for Galileo and "C" for Beidou.
37  std::string signal; //!< GNSS signal: "1C" for GPS L1 C/A, "1B" for Galileo E1b/c, "1G" for Glonass L1 C/A, "2S" for GPS L2 L2C(M), "2G" for Glonass L2 C/A, "L5" for GPS L5 and "5X" for Galileo E5a
38  int32_t prn; //!< SV ID
39  int32_t tow_at_current_symbol_ms; //!< Time of week of the current symbol, in ms
40  std::string nav_message; //!< Content of the navigation page
41 
42  /// Copy constructor
43  Nav_Message_Packet(const Nav_Message_Packet& other) noexcept
44  {
45  *this = other;
46  };
47 
48  /// Copy assignment operator
50  {
51  // Only do assignment if RHS is a different object from this.
52  if (this != &rhs)
53  {
54  this->system = rhs.system;
55  this->signal = rhs.signal;
56  this->prn = rhs.prn;
57  this->tow_at_current_symbol_ms = rhs.tow_at_current_symbol_ms;
58  this->nav_message = rhs.nav_message;
59  }
60  return *this;
61  };
62 
63  /// Move constructor
65  {
66  *this = std::move(other);
67  };
68 
69  /// Move assignment operator
71  {
72  if (this != &other)
73  {
74  this->system = other.system;
75  this->signal = other.signal;
76  this->prn = other.prn;
77  this->tow_at_current_symbol_ms = other.tow_at_current_symbol_ms;
78  this->nav_message = other.nav_message;
79  }
80  return *this;
81  };
82 };
83 
84 /** \} */
85 /** \} */
86 #endif // GNSS_SDR_NAV_MESSAGE_PACKET_H
~Nav_Message_Packet()=default
Default destructor.
std::string signal
GNSS signal: "1C" for GPS L1 C/A, "1B" for Galileo E1b/c, "1G" for Glonass L1 C/A, "2S" for GPS L2 L2C(M), "2G" for Glonass L2 C/A, "L5" for GPS L5 and "5X" for Galileo E5a.
Nav_Message_Packet(Nav_Message_Packet &&other) noexcept
Move constructor.
Nav_Message_Packet()=default
Default constructor.
Nav_Message_Packet & operator=(const Nav_Message_Packet &rhs) noexcept
Copy assignment operator.
std::string system
GNSS constellation: "G" for GPS, "R" for Glonass, "S" for SBAS, "E" for Galileo and "C" for Beidou...
int32_t tow_at_current_symbol_ms
Time of week of the current symbol, in ms.
Nav_Message_Packet(const Nav_Message_Packet &other) noexcept
Copy constructor.
Nav_Message_Packet & operator=(Nav_Message_Packet &&other) noexcept
Move assignment operator.
std::string nav_message
Content of the navigation page.