aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/gps/mtk.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-05-19 21:06:32 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-05-19 21:06:32 +0200
commitce62f073796f5956b32eaa8eb8d4a371821077de (patch)
tree024e97e62cf49dd76d75aa84dfab3b78bd411227 /src/drivers/gps/mtk.cpp
parent98f05ea5c127acd3d8ff0ebcba109f9e326a129b (diff)
downloadpx4-firmware-ce62f073796f5956b32eaa8eb8d4a371821077de.tar.gz
px4-firmware-ce62f073796f5956b32eaa8eb8d4a371821077de.tar.bz2
px4-firmware-ce62f073796f5956b32eaa8eb8d4a371821077de.zip
Fix EPH / EPV conversion for MediaTek units
Diffstat (limited to 'src/drivers/gps/mtk.cpp')
-rw-r--r--src/drivers/gps/mtk.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/drivers/gps/mtk.cpp b/src/drivers/gps/mtk.cpp
index c90ecbe28..60a98134d 100644
--- a/src/drivers/gps/mtk.cpp
+++ b/src/drivers/gps/mtk.cpp
@@ -253,8 +253,8 @@ MTK::handle_message(gps_mtk_packet_t &packet)
_gps_position->alt = (int32_t)(packet.msl_altitude * 10); // from cm to mm
_gps_position->fix_type = packet.fix_type;
- _gps_position->eph_m = packet.hdop; // XXX: Check this because eph_m is in m and hdop is without unit
- _gps_position->epv_m = 0.0; //unknown in mtk custom mode
+ _gps_position->eph_m = packet.hdop / 100.0f; // from cm to m
+ _gps_position->epv_m = _gps_position->eph_m; // unknown in mtk custom mode, so we cheat with eph
_gps_position->vel_m_s = ((float)packet.ground_speed) * 1e-2f; // from cm/s to m/s
_gps_position->cog_rad = ((float)packet.heading) * M_DEG_TO_RAD_F * 1e-2f; //from deg *100 to rad
_gps_position->satellites_visible = packet.satellites;