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 <silseva@fastwebnet.it>
This commit is contained in:
Silvano Seva 2025-09-29 20:52:35 +02:00
parent d2ddddf478
commit 809f54cb1b
1 changed files with 3 additions and 4 deletions

View File

@ -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);