From cd50fe82b6fb3dbef7aa396de3ee5820f5bab182 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 4 Sep 2014 06:37:42 +1000 Subject: [PATCH] AP_GPS: fixed GPS time in HIL account for 10 year difference in epoch between unix time and GPS time --- libraries/AP_GPS/AP_GPS.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/AP_GPS/AP_GPS.cpp b/libraries/AP_GPS/AP_GPS.cpp index adbcfcad66..f0f6a9469c 100644 --- a/libraries/AP_GPS/AP_GPS.cpp +++ b/libraries/AP_GPS/AP_GPS.cpp @@ -393,8 +393,9 @@ AP_GPS::setHIL(uint8_t instance, GPS_Status _status, uint64_t time_epoch_ms, istate.num_sats = _num_sats; istate.have_vertical_velocity = _have_vertical_velocity; istate.last_gps_time_ms = tnow; - istate.time_week = time_epoch_ms / (86400*7*(uint64_t)1000); - istate.time_week_ms = time_epoch_ms - istate.time_week*(86400*7*(uint64_t)1000); + uint64_t gps_time_ms = time_epoch_ms - (17000ULL*86400ULL + 52*10*7000ULL*86400ULL - 15000ULL); + istate.time_week = gps_time_ms / (86400*7*(uint64_t)1000); + istate.time_week_ms = gps_time_ms - istate.time_week*(86400*7*(uint64_t)1000); timing[instance].last_message_time_ms = tnow; timing[instance].last_fix_time_ms = tnow; _type[instance].set(GPS_TYPE_HIL);