34#ifndef GNSS_SDR_RTKLIB_SOLVER_H
35#define GNSS_SDR_RTKLIB_SOLVER_H
82class Rtklib_Solver :
public Pvt_Solution
85 Rtklib_Solver(
const rtk_t& rtk,
87 const std::string& dump_filename,
88 uint32_t signal_enabled_flags,
89 bool flag_dump_to_file,
90 bool flag_dump_to_mat);
94 bool get_PVT(
const std::map<int, Gnss_Synchro>& gnss_observables_map,
double kf_update_interval_s,
const SensorDataAggregator& sensor_data_aggregator);
96 double get_hdop()
const override;
97 double get_vdop()
const override;
98 double get_pdop()
const override;
99 double get_gdop()
const override;
102 void update_has_corrections(
const std::map<int, Gnss_Synchro>& obs_map);
105 std::array<ssat_t, MAXSAT> pvt_ssat{};
115 std::map<int, Galileo_Almanac> galileo_almanac_map;
119 std::map<int, Gps_Almanac> gps_almanac_map;
129 std::map<int, Beidou_Dnav_Almanac> beidou_dnav_almanac_map;
132 bool save_matfile()
const;
134 void check_has_orbit_clock_validity(
const std::map<int, Gnss_Synchro>& obs_map);
135 void get_has_biases(
const std::map<int, Gnss_Synchro>& obs_map);
136 void get_current_has_obs_correction(
const std::string& signal, uint32_t tow_obs,
int prn);
138 std::array<obsd_t, MAXOBS> d_obs_data{};
139 std::array<double, 4> d_dop{};
140 std::map<int, int> d_rtklib_freq_index;
141 std::map<std::string, int> d_rtklib_band_index;
143 std::map<std::string, std::map<int, HAS_orbit_corrections>> d_has_orbit_corrections_store_map;
144 std::map<std::string, std::map<int, HAS_clock_corrections>> d_has_clock_corrections_store_map;
146 std::map<std::string, std::map<int, std::pair<float, uint32_t>>> d_has_code_bias_store_map;
147 std::map<std::string, std::map<int, std::pair<float, uint32_t>>> d_has_phase_bias_store_map;
149 std::map<std::string, std::map<int, HAS_obs_corrections>> d_has_obs_corr_map;
151 std::string d_dump_filename;
152 std::ofstream d_dump_file;
155 Monitor_Pvt d_monitor_pvt{};
158 uint32_t d_signal_enabled_flags;
159 bool d_flag_dump_enabled;
160 bool d_flag_dump_mat_enabled;
Interface of a Beidou DNAV Almanac storage.
Interface of a BEIDOU EPHEMERIS storage.
Interface of a BEIDOU IONOSPHERIC MODEL storage.
Interface of a BeiDou UTC MODEL storage.
This class is a storage for the BEIDOU IONOSPHERIC data as described in ICD v2.1.
This class is a storage for the BeiDou DNAV UTC Model.
This class is a storage for Galileo HAS message type 1, as defined in Galileo High Accuracy Service S...
This class is a storage for the GALILEO IONOSPHERIC data as described in Galileo ICD paragraph 5....
This class is a storage for the GALILEO UTC MODEL data as described in Galileo ICD https://www....
This class is a storage for the GLONASS SV ALMANAC data as described GLONASS ICD (Edition 5....
This class is a storage for the GLONASS GNAV UTC MODEL data as described in GLONASS ICD (Edition 5....
This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200M.
This class is a storage for the GPS UTC MODEL data as described in in IS-GPS-200M.
This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200M.
This class is a storage for the GPS UTC MODEL data as described in IS-GPS-200M.
This class contains parameters and outputs of the PVT block.
Glonass_Gnav_Almanac glonass_gnav_almanac
Map storing GLONASS GNAV Almanac Model.
std::map< int, Gps_CNAV_Ephemeris > gps_cnav_ephemeris_map
Map storing new GPS_CNAV_Ephemeris.
std::map< int, Galileo_Ephemeris > galileo_ephemeris_map
Map storing new Galileo_Ephemeris.
std::map< int, Beidou_Dnav_Ephemeris > beidou_dnav_ephemeris_map
Map storing new BeiDou DNAV Ephmeris.
std::map< int, Gps_Ephemeris > gps_ephemeris_map
Map storing new GPS_Ephemeris.
std::map< int, Glonass_Gnav_Ephemeris > glonass_gnav_ephemeris_map
Map storing new GLONASS GNAV Ephemeris.
Glonass_Gnav_Utc_Model glonass_gnav_utc_model
Map storing GLONASS GNAV UTC Model.
Interface of a Galileo ALMANAC storage.
Interface of a Galileo EPHEMERIS storage.
Class for Galileo HAS message type 1 data storage.
Interface of a Galileo Ionospheric Model storage.
Interface of a Galileo UTC MODEL storage.
Interface of a GLONASS GNAV ALMANAC storage.
Interface of a GLONASS EPHEMERIS storage.
Interface of a GLONASS GNAV UTC MODEL storage.
Interface of the Gnss_Synchro class.
Interface of a GPS ALMANAC storage.
Interface of a GPS CNAV EPHEMERIS storage.
Interface of a GPS CNAV IONOSPHERIC MODEL storage.
Interface of a GPS CNAV UTC MODEL storage.
Interface of a GPS EPHEMERIS storage.
Interface of a GPS IONOSPHERIC MODEL storage.
Interface of a GPS UTC MODEL storage.
Interface of the Monitor_Pvt class.
Class that contains all the configuration parameters for the PVT block.
Kalman Filter for Position and Velocity.
Interface of a base class for a PVT solution.
main header file for the rtklib library
GNSS-SDR to RTKLIB data structures conversion functions.
Aggregates sensor samples from gnu radio stream tags into typed lists for easy access.