18 #ifndef GNSS_SDR_PVT_SOLUTION_H 19 #define GNSS_SDR_PVT_SOLUTION_H 21 #include <boost/date_time/posix_time/posix_time.hpp> 41 void set_rx_pos(
const std::array<double, 3> &pos);
42 void set_rx_vel(
const std::array<double, 3> &vel);
43 void set_position_UTC_time(
const boost::posix_time::ptime &pt);
48 void set_valid_position(
bool is_valid);
53 void set_averaging_flag(
bool flag);
54 void perform_pos_averaging();
56 std::array<double, 3> get_rx_pos()
const;
57 std::array<double, 3> get_rx_vel()
const;
58 boost::posix_time::ptime get_position_UTC_time()
const;
70 bool is_pre_2009()
const;
71 bool is_valid_position()
const;
72 bool is_averaging()
const;
74 virtual double get_hdop()
const = 0;
75 virtual double get_vdop()
const = 0;
76 virtual double get_pdop()
const = 0;
77 virtual double get_gdop()
const = 0;
95 int cart2geo(
double X,
double Y,
double Z,
int elipsoid_selection);
97 std::array<double, 3> d_rx_pos{};
98 std::array<double, 3> d_rx_vel{};
99 boost::posix_time::ptime d_position_UTC_time;
101 std::deque<double> d_hist_latitude_d;
102 std::deque<double> d_hist_longitude_d;
103 std::deque<double> d_hist_height_m;
105 double d_latitude_d{0.0};
106 double d_longitude_d{0.0};
107 double d_height_m{0.0};
108 double d_rx_dt_s{0.0};
109 double d_rx_clock_drift_ppm{0.0};
110 double d_speed_over_ground_m_s{0.0};
111 double d_course_over_ground_d{0.0};
113 double d_avg_latitude_d{0.0};
114 double d_avg_longitude_d{0.0};
115 double d_avg_height_m{0.0};
117 int d_averaging_depth{0};
118 int d_valid_observations{0};
120 bool d_pre_2009_file{
false};
121 bool d_valid_position{
false};
122 bool d_flag_averaging{
false};
128 #endif // GNSS_SDR_PVT_SOLUTION_H double get_latitude() const
Get RX position Latitude WGS84 [deg].
void set_clock_drift_ppm(double clock_drift_ppm)
Set the Rx clock drift [ppm].
void set_pre_2009_file(bool pre_2009_file)
Flag for the week rollover computation in post processing mode for signals older than 2009...
double get_speed_over_ground() const
Get RX speed over ground [m/s].
double get_height() const
Get RX position height WGS84 [m].
int get_num_valid_observations() const
Get the number of valid pseudorange observations (valid satellites)
double get_course_over_ground() const
Get RX course over ground [deg].
void set_course_over_ground(double cog_deg)
Set RX course over ground [deg].
void set_num_valid_observations(int num)
Set the number of valid pseudorange observations (valid satellites)
void set_rx_pos(const std::array< double, 3 > &pos)
Set position: X, Y, Z in Cartesian ECEF coordinates [m].
double get_avg_height() const
Get RX position averaged height WGS84 [m].
double get_longitude() const
Get RX position Longitude WGS84 [deg].
void set_rx_vel(const std::array< double, 3 > &vel)
Set velocity: East [m/s], North [m/s], Up [m/s].
void set_time_offset_s(double offset)
Set RX time offset [s].
double get_avg_latitude() const
Get RX position averaged Latitude WGS84 [deg].
void set_averaging_depth(int depth)
Set length of averaging window.
double get_clock_drift_ppm() const
Get the Rx clock drift [ppm].
double get_time_offset_s() const
Get RX time offset [s].
double get_avg_longitude() const
Get RX position averaged Longitude WGS84 [deg].
Base class for a PVT solution.
void set_speed_over_ground(double speed_m_s)
Set RX speed over ground [m/s].