diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-05-20 23:20:17 +0200 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-05-20 23:20:17 +0200 |
commit | 47562990a125706b0182a314f34a2cbf8bfa0d10 (patch) | |
tree | e96d358bda5d4ae69b4d04f5b6fed279b14d10c3 /src/drivers | |
parent | c945693054a15db03414b0446372c7a457fa743a (diff) | |
parent | fb801b6faecd77fe2aac54d3389cacf73993ccc4 (diff) | |
download | px4-firmware-47562990a125706b0182a314f34a2cbf8bfa0d10.tar.gz px4-firmware-47562990a125706b0182a314f34a2cbf8bfa0d10.tar.bz2 px4-firmware-47562990a125706b0182a314f34a2cbf8bfa0d10.zip |
Merge branch 'master' of github.com:PX4/Firmware into master2
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/frsky_telemetry/frsky_data.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/drivers/frsky_telemetry/frsky_data.c b/src/drivers/frsky_telemetry/frsky_data.c index 18de3f4da..dd9b90fb3 100644 --- a/src/drivers/frsky_telemetry/frsky_data.c +++ b/src/drivers/frsky_telemetry/frsky_data.c @@ -194,17 +194,12 @@ void frsky_send_frame1(int uart) } /** - * Formats the decimal latitude/longitude to the required degrees/minutes/seconds. + * Formats the decimal latitude/longitude to the required degrees/minutes. */ static float frsky_format_gps(float dec) { - float dms_deg = (int) dec; - float dec_deg = dec - dms_deg; - float dms_min = (int) (dec_deg * 60); - float dec_min = (dec_deg * 60) - dms_min; - float dms_sec = dec_min * 60; - - return (dms_deg * 100.0f) + dms_min + (dms_sec / 100.0f); + float dm_deg = (int) dec; + return (dm_deg * 100.0f) + (dec - dm_deg) * 60; } /** @@ -232,9 +227,9 @@ void frsky_send_frame2(int uart) struct tm *tm_gps = gmtime(&time_gps); course = (global_pos.yaw + M_PI_F) / M_PI_F * 180.0f; - lat = frsky_format_gps(abs(global_pos.lat)); + lat = frsky_format_gps(fabsf(global_pos.lat)); lat_ns = (global_pos.lat < 0) ? 'S' : 'N'; - lon = frsky_format_gps(abs(global_pos.lon)); + lon = frsky_format_gps(fabsf(global_pos.lon)); lon_ew = (global_pos.lon < 0) ? 'W' : 'E'; speed = sqrtf(global_pos.vel_n * global_pos.vel_n + global_pos.vel_e * global_pos.vel_e) * 25.0f / 46.0f; |