From 05e92352ad992a5fa82f08b4247c3586b6270bac Mon Sep 17 00:00:00 2001 From: Sascha Wessel Date: Fri, 5 Sep 2008 23:23:38 +0200 Subject: [PATCH] Fixed NMEA latitude and longitude generation for negative values --- ChangeLog | 3 +++ fso-gpsd.c | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4342527..e3b0780 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +fso-gpsd 0.5 (not yet released) +* Fixed NMEA latitude and longitude generation for negative values + fso-gpsd 0.4 (2008-09-04) * Fixed fixstatus for position.field != 7 diff --git a/fso-gpsd.c b/fso-gpsd.c index 66f68b6..205ef07 100644 --- a/fso-gpsd.c +++ b/fso-gpsd.c @@ -216,12 +216,13 @@ add_nmea_latitude(GString *nmea) if (isnan(position_latitude)) { g_string_append(nmea, ",,"); } else { - double d; + double a, d; - d = floor(fabs(position_latitude)); + a = fabs(position_latitude); + d = floor(a); g_string_append_printf(nmea, ",%010.5f,%C", - (d * 100.0) + ((position_latitude - d) * 60.0), + (d * 100.0) + ((a - d) * 60.0), (position_latitude > 0) ? 'N' : 'S'); } } @@ -232,12 +233,13 @@ add_nmea_longitude(GString *nmea) if (isnan(position_longitude)) { g_string_append(nmea, ",,"); } else { - double d; + double a, d; - d = floor(fabs(position_longitude)); + a = fabs(position_longitude); + d = floor(a); g_string_append_printf(nmea, ",%011.5f,%C", - (d * 100.0) + ((position_longitude - d) * 60.0), + (d * 100.0) + ((a - d) * 60.0), (position_longitude > 0) ? 'E' : 'W'); } } -- 2.11.4.GIT