diff options
| author | Giovani Espindola | 2017-10-20 12:19:02 +0000 |
|---|---|---|
| committer | John Crispin | 2018-02-12 14:39:31 +0000 |
| commit | 928cb537aa6a1951ff503b4d13f3c78cead7b581 (patch) | |
| tree | 2539408edf1dd6d42b70a1889a45af741ade1e00 | |
| parent | c30055a685bca1e81ccc8f4bd3bb08d780a7d762 (diff) | |
| download | ugps-928cb537aa6a1951ff503b4d13f3c78cead7b581.tar.gz | |
ugps: Only convert lat and lon to negative after parsing
This is a bugfix for package ugps.
Current code parses following GPRMC
$GPRMC,185834.0,A,2335.766399,S,04635.923564,W,0.0,,191017,0.0,E,A*20
as
position: -22.929440 -45.932056
with this fix it's being parsed correctly as
position: -23.596106 -46.598721
Signed-off-by: Giovani Milanez Espindola <gespindola@advantech-bb.com>
>From 092b311a3c8911ce9da3f913787b77397e88b4a8 Mon Sep 17 00:00:00 2001
From: Giovani Espindola <gespindola@advantech-bb.com>
Date: Thu, 19 Oct 2017 15:54:05 -0200
Subject: [PATCH] Only convert lat and lon to negative after parsing
| -rw-r--r-- | nmea.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -123,11 +123,6 @@ nmea_rmc_cb(void) float lat = strtof(nmea_params[3].str, NULL); float lon = strtof(nmea_params[5].str, NULL); - if (*nmea_params[4].str == 'S') - lat *= -1.0; - if (*nmea_params[6].str == 'W') - lon *= -1.0; - degrees = floor(lat / 100.0); minutes = lat - (degrees * 100.0); lat = degrees + minutes / 60.0; @@ -136,6 +131,11 @@ nmea_rmc_cb(void) minutes = lon - (degrees * 100.0); lon = degrees + minutes / 60.0; + if (*nmea_params[4].str == 'S') + lat *= -1.0; + if (*nmea_params[6].str == 'W') + lon *= -1.0; + snprintf(latitude, sizeof(latitude), "%f", lat); snprintf(longitude, sizeof(longitude), "%f", lon); |