diff --git a/msg/vehicle_gps_position.msg b/msg/vehicle_gps_position.msg index 77ef0f3e15..c57a078033 100644 --- a/msg/vehicle_gps_position.msg +++ b/msg/vehicle_gps_position.msg @@ -25,7 +25,7 @@ float32 vel_d_m_s # GPS Down velocity, (metres/sec) float32 cog_rad # Course over ground (NOT heading, but direction of movement), -PI..PI, (radians) bool vel_ned_valid # True if NED velocity is valid -uint64 timestamp_time # Time of the UTC timestamp since system start, (microseconds) +int32 timestamp_time_relative # timestamp + timestamp_time_relative = Time of the UTC timestamp since system start, (microseconds) uint64 time_utc_usec # Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0 uint8 satellites_used # Number of satellites used diff --git a/src/drivers/gps/devices b/src/drivers/gps/devices index 682fca425e..a5e3e263aa 160000 --- a/src/drivers/gps/devices +++ b/src/drivers/gps/devices @@ -1 +1 @@ -Subproject commit 682fca425e6f3d67ac8062dcc9b36d8bca210175 +Subproject commit a5e3e263aaaa613e007717d3ebf5ca7c597bcf51 diff --git a/src/drivers/gps/gps.cpp b/src/drivers/gps/gps.cpp index 54f5987deb..6d9d0f07c8 100644 --- a/src/drivers/gps/gps.cpp +++ b/src/drivers/gps/gps.cpp @@ -752,10 +752,9 @@ GPS::task_main() * no valid position lock */ - _report_gps_pos.timestamp_time = hrt_absolute_time(); - /* reset the timestamp for data, because we have no data yet */ _report_gps_pos.timestamp = 0; + _report_gps_pos.timestamp_time_relative = 0; /* set a massive variance */ _report_gps_pos.eph = 10000.0f; diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index 1c5730c3cf..8cbcdf682d 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1781,7 +1781,7 @@ MavlinkReceiver::handle_message_hil_gps(mavlink_message_t *msg) struct vehicle_gps_position_s hil_gps; memset(&hil_gps, 0, sizeof(hil_gps)); - hil_gps.timestamp_time = timestamp; + hil_gps.timestamp_time_relative = 0; hil_gps.time_utc_usec = gps.time_usec; hil_gps.timestamp = timestamp; diff --git a/src/platforms/posix/drivers/gpssim/gpssim.cpp b/src/platforms/posix/drivers/gpssim/gpssim.cpp index fa49bd0b2a..0b3f4ba2b2 100644 --- a/src/platforms/posix/drivers/gpssim/gpssim.cpp +++ b/src/platforms/posix/drivers/gpssim/gpssim.cpp @@ -339,7 +339,7 @@ GPSSIM::task_main() //Make sure to clear any stale data in case driver is reset memset(&_report_gps_pos, 0, sizeof(_report_gps_pos)); _report_gps_pos.timestamp = hrt_absolute_time(); - _report_gps_pos.timestamp_time = hrt_absolute_time(); + _report_gps_pos.timestamp_time_relative = 0; if (!(m_pub_blocked)) { if (_report_gps_pos_pub != nullptr) {