Browse Source

gps_position: convert uint64 timestamp_time -> int32 timestamp_time_relative

We need to make this timestamp relative to the main timestamp. Necessary
for replay, and saves some space.
sbg
Beat Küng 9 years ago committed by Lorenz Meier
parent
commit
f8e9a19889
  1. 2
      msg/vehicle_gps_position.msg
  2. 2
      src/drivers/gps/devices
  3. 3
      src/drivers/gps/gps.cpp
  4. 2
      src/modules/mavlink/mavlink_receiver.cpp
  5. 2
      src/platforms/posix/drivers/gpssim/gpssim.cpp

2
msg/vehicle_gps_position.msg

@ -25,7 +25,7 @@ float32 vel_d_m_s # GPS Down velocity, (metres/sec) @@ -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

2
src/drivers/gps/devices

@ -1 +1 @@ @@ -1 +1 @@
Subproject commit 682fca425e6f3d67ac8062dcc9b36d8bca210175
Subproject commit a5e3e263aaaa613e007717d3ebf5ca7c597bcf51

3
src/drivers/gps/gps.cpp

@ -752,10 +752,9 @@ GPS::task_main() @@ -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;

2
src/modules/mavlink/mavlink_receiver.cpp

@ -1781,7 +1781,7 @@ MavlinkReceiver::handle_message_hil_gps(mavlink_message_t *msg) @@ -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;

2
src/platforms/posix/drivers/gpssim/gpssim.cpp

@ -339,7 +339,7 @@ GPSSIM::task_main() @@ -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) {

Loading…
Cancel
Save