mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 15:23:04 +00:00 
			
		
		
		
	Fix date in RINEX annotations beyond the rollover
This commit is contained in:
		| @@ -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 | ||||
|     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::ptime p_time(boost::gregorian::date(1999, 8, 22), t); | ||||
|     return p_time; | ||||
|     if (nav_msg.i_GPS_week > 512) | ||||
|         { | ||||
|             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 | ||||
|     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::ptime p_time(boost::gregorian::date(1999, 8, 22), t); | ||||
|     return p_time; | ||||
|     if (eph.i_GPS_week > 512) | ||||
|         { | ||||
|             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 | ||||
|     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::ptime p_time(boost::gregorian::date(1999, 8, 22), t); | ||||
|     return p_time; | ||||
|     if (eph.i_GPS_week > 512) | ||||
|         { | ||||
|             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; | ||||
| } | ||||
|  | ||||
|  | ||||
| double Rinex_Printer::get_leap_second(const Glonass_Gnav_Ephemeris& eph, const double gps_obs_time) | ||||
| { | ||||
|     double tod = 0.0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez