mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-16 12:12:57 +00:00
Fix date in RINEX annotations beyond the rollover
This commit is contained in:
parent
879909861c
commit
4bb1872e17
@ -11082,8 +11082,16 @@ boost::posix_time::ptime Rinex_Printer::compute_UTC_time(const Gps_Navigation_Me
|
|||||||
//: idea resolve the ambiguity with the leap second http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.htm
|
//: idea resolve the ambiguity with the leap second http://www.colorado.edu/geography/gcraft/notes/gps/gpseow.htm
|
||||||
const double utc_t = nav_msg.utc_time(nav_msg.d_TOW);
|
const double utc_t = nav_msg.utc_time(nav_msg.d_TOW);
|
||||||
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((utc_t + 604800 * static_cast<double>(nav_msg.i_GPS_week)) * 1000));
|
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((utc_t + 604800 * static_cast<double>(nav_msg.i_GPS_week)) * 1000));
|
||||||
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
if (nav_msg.i_GPS_week > 512)
|
||||||
return p_time;
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(2019, 4, 7), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -11108,8 +11116,16 @@ boost::posix_time::ptime Rinex_Printer::compute_GPS_time(const Gps_Ephemeris& ep
|
|||||||
// --??? No time correction here, since it will be done in the RINEX processor
|
// --??? No time correction here, since it will be done in the RINEX processor
|
||||||
const double gps_t = obs_time;
|
const double gps_t = obs_time;
|
||||||
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((gps_t + 604800 * static_cast<double>(eph.i_GPS_week % 1024)) * 1000));
|
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((gps_t + 604800 * static_cast<double>(eph.i_GPS_week % 1024)) * 1000));
|
||||||
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
if (eph.i_GPS_week > 512)
|
||||||
return p_time;
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(2019, 4, 7), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -11121,8 +11137,16 @@ boost::posix_time::ptime Rinex_Printer::compute_GPS_time(const Gps_CNAV_Ephemeri
|
|||||||
// --??? No time correction here, since it will be done in the RINEX processor
|
// --??? No time correction here, since it will be done in the RINEX processor
|
||||||
const double gps_t = obs_time;
|
const double gps_t = obs_time;
|
||||||
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((gps_t + 604800 * static_cast<double>(eph.i_GPS_week % 1024)) * 1000));
|
boost::posix_time::time_duration t = boost::posix_time::milliseconds(static_cast<int64_t>((gps_t + 604800 * static_cast<double>(eph.i_GPS_week % 1024)) * 1000));
|
||||||
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
if (eph.i_GPS_week > 512)
|
||||||
return p_time;
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(2019, 4, 7), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
boost::posix_time::ptime p_time(boost::gregorian::date(1999, 8, 22), t);
|
||||||
|
return p_time;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -11178,6 +11202,7 @@ boost::posix_time::ptime Rinex_Printer::compute_UTC_time(const Glonass_Gnav_Ephe
|
|||||||
return utc_time;
|
return utc_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
double Rinex_Printer::get_leap_second(const Glonass_Gnav_Ephemeris& eph, const double gps_obs_time)
|
double Rinex_Printer::get_leap_second(const Glonass_Gnav_Ephemeris& eph, const double gps_obs_time)
|
||||||
{
|
{
|
||||||
double tod = 0.0;
|
double tod = 0.0;
|
||||||
|
Loading…
Reference in New Issue
Block a user