mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-16 12:12:57 +00:00
Merge remote-tracking branch 'cf/rinex-l2' into next
Add to the RINEX printer the ability to handle GPS CNAV messages and L2C observations
This commit is contained in:
commit
f816f4630c
File diff suppressed because it is too large
Load Diff
@ -59,8 +59,7 @@
|
||||
#include <map>
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
#include "gps_navigation_message.h"
|
||||
#include "gps_utc_model.h"
|
||||
#include "gps_iono.h"
|
||||
#include "gps_cnav_navigation_message.h"
|
||||
#include "galileo_navigation_message.h"
|
||||
#include "sbas_telemetry_data.h"
|
||||
#include "GPS_L1_CA.h"
|
||||
@ -93,10 +92,15 @@ public:
|
||||
std::fstream navMixFile ; //<! Output file stream for RINEX Mixed navigation data file
|
||||
|
||||
/*!
|
||||
* \brief Generates the GPS Navigation Data header
|
||||
* \brief Generates the GPS L1 C/A Navigation Data header
|
||||
*/
|
||||
void rinex_nav_header(std::fstream & out, const Gps_Iono & iono, const Gps_Utc_Model & utc_model);
|
||||
|
||||
/*!
|
||||
* \brief Generates the GPS L2C(M) Navigation Data header
|
||||
*/
|
||||
void rinex_nav_header(std::fstream & out, const Gps_CNAV_Iono & iono, const Gps_CNAV_Utc_Model & utc_model);
|
||||
|
||||
/*!
|
||||
* \brief Generates the Galileo Navigation Data header
|
||||
*/
|
||||
@ -112,6 +116,16 @@ public:
|
||||
*/
|
||||
void rinex_obs_header(std::fstream & out, const Gps_Ephemeris & eph, const double d_TOW_first_observation);
|
||||
|
||||
/*!
|
||||
* \brief Generates the GPS L2 Observation data header
|
||||
*/
|
||||
void rinex_obs_header(std::fstream & out, const Gps_CNAV_Ephemeris & eph, const double d_TOW_first_observation);
|
||||
|
||||
/*!
|
||||
* \brief Generates the dual frequency GPS L1 & L2 Observation data header
|
||||
*/
|
||||
void rinex_obs_header(std::fstream & out, const Gps_Ephemeris & eph, const Gps_CNAV_Ephemeris & eph_cnav, const double d_TOW_first_observation);
|
||||
|
||||
/*!
|
||||
* \brief Generates the Galileo Observation data header
|
||||
*/
|
||||
@ -137,16 +151,26 @@ public:
|
||||
*/
|
||||
boost::posix_time::ptime compute_GPS_time(const Gps_Ephemeris & eph, const double obs_time);
|
||||
|
||||
/*!
|
||||
* \brief Computes the GPS time and returns a boost::posix_time::ptime object
|
||||
*/
|
||||
boost::posix_time::ptime compute_GPS_time(const Gps_CNAV_Ephemeris & eph, const double obs_time);
|
||||
|
||||
/*!
|
||||
* \brief Computes the Galileo time and returns a boost::posix_time::ptime object
|
||||
*/
|
||||
boost::posix_time::ptime compute_Galileo_time(const Galileo_Ephemeris & eph, const double obs_time);
|
||||
|
||||
/*!
|
||||
* \brief Writes data from the GPS navigation message into the RINEX file
|
||||
* \brief Writes data from the GPS L1 C/A navigation message into the RINEX file
|
||||
*/
|
||||
void log_rinex_nav(std::fstream & out, const std::map<int, Gps_Ephemeris> & eph_map);
|
||||
|
||||
/*!
|
||||
* \brief Writes data from the GPS L2 navigation message into the RINEX file
|
||||
*/
|
||||
void log_rinex_nav(std::fstream & out, const std::map<int, Gps_CNAV_Ephemeris> & eph_map);
|
||||
|
||||
/*!
|
||||
* \brief Writes data from the Galileo navigation message into the RINEX file
|
||||
*/
|
||||
@ -158,17 +182,27 @@ public:
|
||||
void log_rinex_nav(std::fstream & out, const std::map<int, Gps_Ephemeris> & gps_eph_map, const std::map<int, Galileo_Ephemeris> & galileo_eph_map);
|
||||
|
||||
/*!
|
||||
* \brief Writes GPS observables into the RINEX file
|
||||
* \brief Writes GPS L1 observables into the RINEX file
|
||||
*/
|
||||
void log_rinex_obs(std::fstream & out, const Gps_Ephemeris & eph, double obs_time, const std::map<int, Gnss_Synchro> & pseudoranges);
|
||||
|
||||
/*!
|
||||
* \brief Writes GPS L2 observables into the RINEX file
|
||||
*/
|
||||
void log_rinex_obs(std::fstream & out, const Gps_CNAV_Ephemeris & eph, double obs_time, const std::map<int, Gnss_Synchro> & pseudoranges);
|
||||
|
||||
/*!
|
||||
* \brief Writes dual frequency GPS L1 and L2 observables into the RINEX file
|
||||
*/
|
||||
void log_rinex_obs(std::fstream & out, const Gps_Ephemeris & eph, const Gps_CNAV_Ephemeris & eph_cnav, double obs_time, const std::map<int, Gnss_Synchro> & pseudoranges);
|
||||
|
||||
/*!
|
||||
* \brief Writes Galileo observables into the RINEX file
|
||||
*/
|
||||
void log_rinex_obs(std::fstream & out, const Galileo_Ephemeris & eph, double obs_time, const std::map<int, Gnss_Synchro> & pseudoranges);
|
||||
|
||||
/*!
|
||||
* \brief Writes Galileo observables into the RINEX file
|
||||
* \brief Writes Mixed GPS / Galileo observables into the RINEX file
|
||||
*/
|
||||
void log_rinex_obs(std::fstream & out, const Gps_Ephemeris & gps_eph, const Galileo_Ephemeris & galileo_eph, const double gps_obs_time, const std::map<int, Gnss_Synchro> & pseudoranges);
|
||||
|
||||
@ -184,12 +218,16 @@ public:
|
||||
|
||||
void update_nav_header(std::fstream & out, const Gps_Utc_Model & gps_utc, const Gps_Iono & gps_iono);
|
||||
|
||||
void update_nav_header(std::fstream & out, const Gps_CNAV_Utc_Model & utc_model, const Gps_CNAV_Iono & iono);
|
||||
|
||||
void update_nav_header(std::fstream & out, const Gps_Iono & gps_iono, const Gps_Utc_Model & gps_utc_model, const Galileo_Iono & galileo_iono, const Galileo_Utc_Model & galileo_utc_model, const Galileo_Almanac& galileo_almanac);
|
||||
|
||||
void update_nav_header(std::fstream & out, const Galileo_Iono & galileo_iono, const Galileo_Utc_Model & utc_model, const Galileo_Almanac & galileo_almanac);
|
||||
|
||||
void update_obs_header(std::fstream & out, const Gps_Utc_Model & utc_model);
|
||||
|
||||
void update_obs_header(std::fstream & out, const Gps_CNAV_Utc_Model & utc_model);
|
||||
|
||||
void update_obs_header(std::fstream & out, const Galileo_Utc_Model & galileo_utc_model);
|
||||
|
||||
std::map<std::string,std::string> satelliteSystem; //<! GPS, GLONASS, SBAS payload, Galileo or Compass
|
||||
|
@ -37,9 +37,9 @@
|
||||
|
||||
|
||||
/*!
|
||||
* \brief This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200E
|
||||
* \brief This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200H
|
||||
*
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200H.pdf Appendix III
|
||||
*/
|
||||
class Gps_CNAV_Ephemeris
|
||||
{
|
||||
|
@ -38,9 +38,9 @@
|
||||
|
||||
|
||||
/*!
|
||||
* \brief This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200E
|
||||
* \brief This class is a storage for the GPS IONOSPHERIC data as described in IS-GPS-200H
|
||||
*
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200H.pdf Appendix III
|
||||
*/
|
||||
class Gps_CNAV_Iono
|
||||
{
|
||||
|
@ -48,9 +48,9 @@
|
||||
|
||||
|
||||
/*!
|
||||
* \brief This class decodes a GPS CNAV Data message as described in IS-GPS-200E
|
||||
* \brief This class decodes a GPS CNAV Data message as described in IS-GPS-200H
|
||||
*
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200H.pdf Appendix III
|
||||
*/
|
||||
class Gps_CNAV_Navigation_Message
|
||||
{
|
||||
|
@ -37,18 +37,18 @@
|
||||
|
||||
|
||||
/*!
|
||||
* \brief This class is a storage for the GPS UTC MODEL data as described in IS-GPS-200E
|
||||
* \brief This class is a storage for the GPS UTC MODEL data as described in in IS-GPS-200H
|
||||
*
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200E.pdf Appendix II
|
||||
* See http://www.gps.gov/technical/icwg/IS-GPS-200H.pdf Appendix III
|
||||
*/
|
||||
class Gps_CNAV_Utc_Model
|
||||
{
|
||||
public:
|
||||
bool valid;
|
||||
// UTC parameters
|
||||
double d_A1; //!< 1st order term of a model that relates GPS and UTC time (ref. 20.3.3.5.2.4 IS-GPS-200E) [s/s]
|
||||
double d_A0; //!< Constant of a model that relates GPS and UTC time (ref. 20.3.3.5.2.4 IS-GPS-200E) [s]
|
||||
double d_t_OT; //!< Reference time for UTC data (reference 20.3.4.5 and 20.3.3.5.2.4 IS-GPS-200E) [s]
|
||||
double d_A1; //!< 1st order term of a model that relates GPS and UTC time (ref. 20.3.3.5.2.4 IS-GPS-200H) [s/s]
|
||||
double d_A0; //!< Constant of a model that relates GPS and UTC time (ref. 20.3.3.5.2.4 IS-GPS-200H) [s]
|
||||
double d_t_OT; //!< Reference time for UTC data (reference 20.3.4.5 and 20.3.3.5.2.4 IS-GPS-200H) [s]
|
||||
int i_WN_T; //!< UTC reference week number [weeks]
|
||||
double d_DeltaT_LS; //!< delta time due to leap seconds [s]. Number of leap seconds since 6-Jan-1980 as transmitted by the GPS almanac.
|
||||
int i_WN_LSF; //!< Week number at the end of which the leap second becomes effective [weeks]
|
||||
|
Loading…
Reference in New Issue
Block a user