aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2015-04-09 22:28:51 +0200
committerLorenz Meier <lm@inf.ethz.ch>2015-04-09 22:28:51 +0200
commitee2eeba401fe5748228014291e265e587db45761 (patch)
tree3354c307e3fc02617f41f67d1f5c989504317534
parent79f645974088aaf73b1d76266cac55346295f5b6 (diff)
downloadpx4-firmware-gps_timefix.tar.gz
px4-firmware-gps_timefix.tar.bz2
px4-firmware-gps_timefix.zip
GPS driver: Fix for bad UTC timestampsgps_timefix
-rw-r--r--src/drivers/gps/ubx.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/drivers/gps/ubx.cpp b/src/drivers/gps/ubx.cpp
index f42c968d3..94c445014 100644
--- a/src/drivers/gps/ubx.cpp
+++ b/src/drivers/gps/ubx.cpp
@@ -737,7 +737,7 @@ UBX::payload_rx_done(void)
_gps_position->cog_rad = (float)_buf.payload_rx_nav_pvt.headMot * M_DEG_TO_RAD_F * 1e-5f;
_gps_position->c_variance_rad = (float)_buf.payload_rx_nav_pvt.headAcc * M_DEG_TO_RAD_F * 1e-5f;
- {
+ if (_buf.payload_rx_nav_pvt.valid & (1 << 2)) {
/* convert to unix timestamp */
struct tm timeinfo;
timeinfo.tm_year = _buf.payload_rx_nav_pvt.year - 1900;
@@ -765,6 +765,8 @@ UBX::payload_rx_done(void)
} else {
_gps_position->time_utc_usec = 0;
}
+ } else {
+ _gps_position->time_utc_usec = 0;
}
_gps_position->timestamp_time = hrt_absolute_time();
@@ -813,7 +815,7 @@ UBX::payload_rx_done(void)
case UBX_MSG_NAV_TIMEUTC:
UBX_TRACE_RXMSG("Rx NAV-TIMEUTC\n");
- {
+ if (_buf.payload_rx_nav_timeutc.valid & (1 << 2)) {
// convert to unix timestamp
struct tm timeinfo;
timeinfo.tm_year = _buf.payload_rx_nav_timeutc.year - 1900;
@@ -843,9 +845,11 @@ UBX::payload_rx_done(void)
} else {
_gps_position->time_utc_usec = 0;
}
- }
- _gps_position->timestamp_time = hrt_absolute_time();
+ _gps_position->timestamp_time = hrt_absolute_time();
+ } else {
+ _gps_position->time_utc_usec = 0;
+ }
ret = 1;
break;