39#ifndef GNSS_SDR_RINEX_PRINTER_H
40#define GNSS_SDR_RINEX_PRINTER_H
43#include <boost/date_time/posix_time/posix_time.hpp>
90 const std::string& base_path =
".",
91 const std::string& base_name =
"-",
92 bool pre_2009_file =
false);
108 const std::map<int, Gnss_Synchro>& gnss_observables_map,
110 bool flag_write_RINEX_obs_output);
142 return d_rinex_header_written;
150 return output_navfilename;
165 const std::string& base_name,
166 const std::string& base_rinex_path,
173 void rinex_obs_header(std::fstream& out,
174 const std::string& time_constellation,
175 const boost::posix_time::ptime& system_time,
181 void rinex_nav_header(std::fstream& out,
182 const std::vector<std::string>& iono_lines,
183 const std::vector<std::string>& time_corr_lines,
184 const std::string& leap_second_line)
const;
203 boost::posix_time::ptime compute_GPS_time(
const Gps_Ephemeris& eph,
double obs_time)
const;
208 boost::posix_time::ptime compute_GPS_time(
const Gps_CNAV_Ephemeris& eph,
double obs_time)
const;
213 boost::posix_time::ptime compute_Galileo_time(
const Galileo_Ephemeris& eph,
double obs_time)
const;
227 void to_date_time(
int gps_week,
236 void update_obs_header(std::fstream& out,
const std::string& leap_second_line)
const;
238 const std::map<std::string, std::string> observationType;
239 const std::map<std::string, std::string> observationCode;
244 const std::string d_stringVersion;
246 double d_fake_cnav_iode;
247 bool d_rinex_header_updated;
248 bool d_rinex_header_gps_updated;
249 bool d_rinex_header_galileo_updated;
250 bool d_rinex_header_glonass_updated;
251 bool d_rinex_header_beidou_updated;
252 bool d_rinex_header_written;
253 const bool d_pre_2009_file;
255 const std::string navfilename;
256 const std::string obsfilename;
257 const std::string navGlofilename;
258 std::vector<std::string> output_navfilename;
260 std::fstream obsFile;
261 std::fstream navFile;
262 std::fstream navGloFile;
This is a storage class for the Beidou SV ephemeris data as described in BeiDou Navigation Satellite ...
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 and orbital model functions for the Galileo SV ephemeris data as described in...
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 and orbital model functions for the GLONASS SV ephemeris data as described in...
This class is a storage for the GLONASS GNAV UTC MODEL data as described in GLONASS ICD (Edition 5....
This is the class that contains the information that is shared by the processing blocks.
This is a storage class for the GPS CNAV ephemeris data as described 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 in IS-GPS-200M.
This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-...
This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200M.
This class decodes a GPS NAV Data message as described in IS-GPS-200M.
This class is a storage for the GPS UTC MODEL data as described in IS-GPS-200M.
Rinex_Printer(uint32_t signal_enabled_flags, int version=3, const std::string &base_path=".", const std::string &base_name="-", bool pre_2009_file=false)
Constructor. Creates GNSS Navigation and Observables RINEX files.
~Rinex_Printer()
Destructor. Removes created files if empty.
void log_rinex_nav_glo_gnav(const std::map< int32_t, Glonass_Gnav_Ephemeris > &new_glo_eph)
Print RINEX annotation for Glonass GNAV message.
void log_rinex_nav_gal_nav(const std::map< int32_t, Galileo_Ephemeris > &new_gal_eph)
Print RINEX annotation for Galileo NAV message.
void print_rinex_annotation(const Rtklib_Solver *pvt_solver, const std::map< int, Gnss_Synchro > &gnss_observables_map, double rx_time, bool flag_write_RINEX_obs_output)
Print RINEX annotation. If it is the first annotation, it also prints the RINEX headers for navigatio...
void log_rinex_nav_bds_dnav(const std::map< int32_t, Beidou_Dnav_Ephemeris > &new_bds_eph)
Print RINEX annotation for BeiDou DNAV message.
void log_rinex_nav_gps_nav(const std::map< int32_t, Gps_Ephemeris > &new_eph)
Print RINEX annotation for GPS NAV message.
std::string get_obsfilename() const
Returns name of RINEX observation file.
void log_rinex_nav_gps_cnav(const std::map< int32_t, Gps_CNAV_Ephemeris > &new_cnav_eph)
Print RINEX annotation for GPS CNAV message.
std::vector< std::string > get_navfilename() const
Returns name of RINEX navigation file(s).
bool is_rinex_header_written() const
Returns true is the RINEX file headers are already written.
This class implements a PVT solution based on RTKLIB.
Class to check the enabled signals.