GNSS-SDR  0.0.17
An Open Source GNSS Software Defined Receiver
monitor_pvt.h
Go to the documentation of this file.
1 /*!
2  * \file monitor_pvt.h
3  * \brief Interface of the Monitor_Pvt class
4  * \author
5  * Álvaro Cebrián Juan, 2019. acebrianjuan(at)gmail.com
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_MONITOR_PVT_H
18 #define GNSS_SDR_MONITOR_PVT_H
19 
20 #include <boost/serialization/nvp.hpp>
21 #include <cstdint>
22 
23 /** \addtogroup PVT
24  * \{ */
25 /** \addtogroup PVT_libs
26  * \{ */
27 
28 
29 /*!
30  * \brief This class contains parameters and outputs of the PVT block
31  */
33 {
34 public:
35  // TOW
36  uint32_t TOW_at_current_symbol_ms;
37  // WEEK
38  uint32_t week;
39  // PVT GPS time
40  double RX_time;
41  // User clock offset [s]
42  double user_clk_offset;
43 
44  // ECEF POS X,Y,X [m] + ECEF VEL X,Y,X [m/s] (6 x double)
45  double pos_x;
46  double pos_y;
47  double pos_z;
48  double vel_x;
49  double vel_y;
50  double vel_z;
51 
52  // position variance/covariance (m^2) {c_xx,c_yy,c_zz,c_xy,c_yz,c_zx} (6 x double)
53  double cov_xx;
54  double cov_yy;
55  double cov_zz;
56  double cov_xy;
57  double cov_yz;
58  double cov_zx;
59 
60  // GEO user position Latitude [deg]
61  double latitude;
62  // GEO user position Longitude [deg]
63  double longitude;
64  // GEO user position Height [m]
65  double height;
66 
67  // NUMBER OF VALID SATS
68  uint8_t valid_sats;
69  // RTKLIB solution status
70  uint8_t solution_status;
71  // RTKLIB solution type (0:xyz-ecef,1:enu-baseline)
72  uint8_t solution_type;
73  // AR ratio factor for validation
74  float AR_ratio_factor;
75  // AR ratio threshold for validation
76  float AR_ratio_threshold;
77 
78  // GDOP / PDOP/ HDOP/ VDOP
79  double gdop;
80  double pdop;
81  double hdop;
82  double vdop;
83 
84  // User clock drift [ppm]
85  double user_clk_drift_ppm;
86 
87  /*!
88  * \brief This member function serializes and restores
89  * Monitor_Pvt objects from a byte stream.
90  */
91  template <class Archive>
92 
93  void serialize(Archive& ar, const unsigned int version)
94  {
95  if (version)
96  {
97  };
98 
99  ar& BOOST_SERIALIZATION_NVP(TOW_at_current_symbol_ms);
100  ar& BOOST_SERIALIZATION_NVP(week);
101  ar& BOOST_SERIALIZATION_NVP(RX_time);
102  ar& BOOST_SERIALIZATION_NVP(user_clk_offset);
103 
104  ar& BOOST_SERIALIZATION_NVP(pos_x);
105  ar& BOOST_SERIALIZATION_NVP(pos_y);
106  ar& BOOST_SERIALIZATION_NVP(pos_z);
107  ar& BOOST_SERIALIZATION_NVP(vel_x);
108  ar& BOOST_SERIALIZATION_NVP(vel_y);
109  ar& BOOST_SERIALIZATION_NVP(vel_z);
110 
111  ar& BOOST_SERIALIZATION_NVP(cov_xx);
112  ar& BOOST_SERIALIZATION_NVP(cov_yy);
113  ar& BOOST_SERIALIZATION_NVP(cov_zz);
114  ar& BOOST_SERIALIZATION_NVP(cov_xy);
115  ar& BOOST_SERIALIZATION_NVP(cov_yz);
116  ar& BOOST_SERIALIZATION_NVP(cov_zx);
117 
118  ar& BOOST_SERIALIZATION_NVP(latitude);
119  ar& BOOST_SERIALIZATION_NVP(longitude);
120  ar& BOOST_SERIALIZATION_NVP(height);
121 
122  ar& BOOST_SERIALIZATION_NVP(valid_sats);
123  ar& BOOST_SERIALIZATION_NVP(solution_status);
124  ar& BOOST_SERIALIZATION_NVP(solution_type);
125  ar& BOOST_SERIALIZATION_NVP(AR_ratio_factor);
126  ar& BOOST_SERIALIZATION_NVP(AR_ratio_threshold);
127 
128  ar& BOOST_SERIALIZATION_NVP(gdop);
129  ar& BOOST_SERIALIZATION_NVP(pdop);
130  ar& BOOST_SERIALIZATION_NVP(hdop);
131  ar& BOOST_SERIALIZATION_NVP(vdop);
132 
133  ar& BOOST_SERIALIZATION_NVP(user_clk_drift_ppm);
134  }
135 };
136 
137 
138 /** \} */
139 /** \} */
140 #endif // GNSS_SDR_MONITOR_PVT_H
This class contains parameters and outputs of the PVT block.
Definition: monitor_pvt.h:32
void serialize(Archive &ar, const unsigned int version)
This member function serializes and restores Monitor_Pvt objects from a byte stream.
Definition: monitor_pvt.h:93