From 809f54cb1bebfa8abc6fc9e11ceae13a101fccef Mon Sep 17 00:00:00 2001 From: Silvano Seva Date: Mon, 29 Sep 2025 20:52:35 +0200 Subject: [PATCH] core: gps: get position from GGA sentence Moved retrieval of latitude and longitude coordinates from RMC to GGA sentence. This prevents from having a valid fix but coordinates still equal to 0.0, 0.0 Signed-off-by: Silvano Seva --- openrtx/src/core/gps.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openrtx/src/core/gps.c b/openrtx/src/core/gps.c index 6667ea7f..4ab59fbe 100644 --- a/openrtx/src/core/gps.c +++ b/openrtx/src/core/gps.c @@ -73,8 +73,6 @@ void gps_task(const struct gpsDevice *dev) struct minmea_sentence_rmc frame; if (minmea_parse_rmc(&frame, sentence)) { - gps_data.latitude = minmea_tofixedpoint(&frame.latitude); - gps_data.longitude = minmea_tofixedpoint(&frame.longitude); gps_data.timestamp.hour = frame.time.hours; gps_data.timestamp.minute = frame.time.minutes; gps_data.timestamp.second = frame.time.seconds; @@ -82,9 +80,8 @@ void gps_task(const struct gpsDevice *dev) gps_data.timestamp.date = frame.date.day; gps_data.timestamp.month = frame.date.month; gps_data.timestamp.year = frame.date.year; + gps_data.speed = KNOTS2KMH(minmea_toint(&frame.speed)); } - - gps_data.speed = KNOTS2KMH(minmea_toint(&frame.speed)); } break; @@ -93,6 +90,8 @@ void gps_task(const struct gpsDevice *dev) struct minmea_sentence_gga frame; if (minmea_parse_gga(&frame, sentence)) { + gps_data.latitude = minmea_tofixedpoint(&frame.latitude); + gps_data.longitude = minmea_tofixedpoint(&frame.longitude); gps_data.fix_quality = frame.fix_quality; gps_data.satellites_tracked = frame.satellites_tracked; gps_data.altitude = minmea_toint(&frame.altitude);