GNSS-SDR  0.0.13
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  * Copyright (C) 2010-2020 (see AUTHORS file for a list of contributors)
9  *
10  * GNSS-SDR is a software defined Global Navigation
11  * Satellite Systems receiver
12  *
13  * This file is part of GNSS-SDR.
14  *
15  * SPDX-License-Identifier: GPL-3.0-or-later
16  *
17  * -----------------------------------------------------------------------------
18  */
19 
20 #ifndef GNSS_SDR_MONITOR_PVT_H
21 #define GNSS_SDR_MONITOR_PVT_H
22 
23 #include <boost/serialization/nvp.hpp>
24 #include <cstdint>
25 
26 /*!
27  * \brief This class contains parameters and outputs of the PVT block
28  */
30 {
31 public:
32  // TOW
33  uint32_t TOW_at_current_symbol_ms;
34  // WEEK
35  uint32_t week;
36  // PVT GPS time
37  double RX_time;
38  // User clock offset [s]
39  double user_clk_offset;
40 
41  // ECEF POS X,Y,X [m] + ECEF VEL X,Y,X [m/s] (6 x double)
42  double pos_x;
43  double pos_y;
44  double pos_z;
45  double vel_x;
46  double vel_y;
47  double vel_z;
48 
49  // position variance/covariance (m^2) {c_xx,c_yy,c_zz,c_xy,c_yz,c_zx} (6 x double)
50  double cov_xx;
51  double cov_yy;
52  double cov_zz;
53  double cov_xy;
54  double cov_yz;
55  double cov_zx;
56 
57  // GEO user position Latitude [deg]
58  double latitude;
59  // GEO user position Longitude [deg]
60  double longitude;
61  // GEO user position Height [m]
62  double height;
63 
64  // NUMBER OF VALID SATS
65  uint8_t valid_sats;
66  // RTKLIB solution status
67  uint8_t solution_status;
68  // RTKLIB solution type (0:xyz-ecef,1:enu-baseline)
69  uint8_t solution_type;
70  // AR ratio factor for validation
71  float AR_ratio_factor;
72  // AR ratio threshold for validation
73  float AR_ratio_threshold;
74 
75  // GDOP / PDOP/ HDOP/ VDOP
76  double gdop;
77  double pdop;
78  double hdop;
79  double vdop;
80 
81  // User clock drift [ppm]
82  double user_clk_drift_ppm;
83 
84  /*!
85  * \brief This member function serializes and restores
86  * Monitor_Pvt objects from a byte stream.
87  */
88  template <class Archive>
89 
90  void serialize(Archive& ar, const unsigned int version)
91  {
92  if (version)
93  {
94  };
95 
96  ar& BOOST_SERIALIZATION_NVP(TOW_at_current_symbol_ms);
97  ar& BOOST_SERIALIZATION_NVP(week);
98  ar& BOOST_SERIALIZATION_NVP(RX_time);
99  ar& BOOST_SERIALIZATION_NVP(user_clk_offset);
100 
101  ar& BOOST_SERIALIZATION_NVP(pos_x);
102  ar& BOOST_SERIALIZATION_NVP(pos_y);
103  ar& BOOST_SERIALIZATION_NVP(pos_z);
104  ar& BOOST_SERIALIZATION_NVP(vel_x);
105  ar& BOOST_SERIALIZATION_NVP(vel_y);
106  ar& BOOST_SERIALIZATION_NVP(vel_z);
107 
108  ar& BOOST_SERIALIZATION_NVP(cov_xx);
109  ar& BOOST_SERIALIZATION_NVP(cov_yy);
110  ar& BOOST_SERIALIZATION_NVP(cov_zz);
111  ar& BOOST_SERIALIZATION_NVP(cov_xy);
112  ar& BOOST_SERIALIZATION_NVP(cov_yz);
113  ar& BOOST_SERIALIZATION_NVP(cov_zx);
114 
115  ar& BOOST_SERIALIZATION_NVP(latitude);
116  ar& BOOST_SERIALIZATION_NVP(longitude);
117  ar& BOOST_SERIALIZATION_NVP(height);
118 
119  ar& BOOST_SERIALIZATION_NVP(valid_sats);
120  ar& BOOST_SERIALIZATION_NVP(solution_status);
121  ar& BOOST_SERIALIZATION_NVP(solution_type);
122  ar& BOOST_SERIALIZATION_NVP(AR_ratio_factor);
123  ar& BOOST_SERIALIZATION_NVP(AR_ratio_threshold);
124 
125  ar& BOOST_SERIALIZATION_NVP(gdop);
126  ar& BOOST_SERIALIZATION_NVP(pdop);
127  ar& BOOST_SERIALIZATION_NVP(hdop);
128  ar& BOOST_SERIALIZATION_NVP(vdop);
129 
130  ar& BOOST_SERIALIZATION_NVP(user_clk_drift_ppm);
131  }
132 };
133 
134 #endif // GNSS_SDR_MONITOR_PVT_H
This class contains parameters and outputs of the PVT block.
Definition: monitor_pvt.h:29
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:90