From 8c44fea994c923e5ffd4d169785b5d21b258f855 Mon Sep 17 00:00:00 2001 From: Nightt <87569709+nightt5879@users.noreply.github.com> Date: Mon, 15 Jun 2026 21:32:36 +0800 Subject: [PATCH 1/2] examples/gps: show units in output The GPS example prints parsed measurements without explicit units. The RMC floating-point speed path also used minmea_tocoord(), even though speed is not a coordinate. Add units to the output labels, print speed with minmea_tofloat(), and print GGA altitude as a scaled value with the sentence-provided unit. Signed-off-by: Nightt <87569709+nightt5879@users.noreply.github.com> --- examples/gps/gps_main.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/gps/gps_main.c b/examples/gps/gps_main.c index 72673944d38..4434a97ed35 100644 --- a/examples/gps/gps_main.c +++ b/examples/gps/gps_main.c @@ -99,21 +99,21 @@ int main(int argc, FAR char *argv[]) if (minmea_parse_rmc(&frame, line)) { - printf("Fixed-point Latitude...........: %" PRIdLEAST32 - "\n", + printf("Fixed-point Latitude (NMEA * 1000)..: %" + PRIdLEAST32 "\n", minmea_rescale(&frame.latitude, 1000)); - printf("Fixed-point Longitude..........: %" PRIdLEAST32 - "\n", + printf("Fixed-point Longitude (NMEA * 1000).: %" + PRIdLEAST32 "\n", minmea_rescale(&frame.longitude, 1000)); - printf("Fixed-point Speed..............: %" PRIdLEAST32 - "\n", + printf("Fixed-point Speed (knots * 1000)....: %" + PRIdLEAST32 "\n", minmea_rescale(&frame.speed, 1000)); - printf("Floating point degree latitude.: %2.6f\n", + printf("Floating point Latitude (degrees)...: %2.6f\n", minmea_tocoord(&frame.latitude)); - printf("Floating point degree longitude: %2.6f\n", + printf("Floating point Longitude (degrees)..: %2.6f\n", minmea_tocoord(&frame.longitude)); - printf("Floating point speed...........: %2.6f\n", - minmea_tocoord(&frame.speed)); + printf("Floating point Speed (knots)........: %2.6f\n", + minmea_tofloat(&frame.speed)); } else { @@ -130,9 +130,9 @@ int main(int argc, FAR char *argv[]) { printf("Fix quality....................: %d\n", frame.fix_quality); - printf("Altitude.......................: %" PRIdLEAST32 - "\n", - frame.altitude.value); + printf("Altitude (%c)...................: %2.6f\n", + frame.altitude_units ? frame.altitude_units : '?', + minmea_tofloat(&frame.altitude)); printf("Tracked satellites.............: %d\n", frame.satellites_tracked); } From 36538149104a6536569a6d31f6dfb6a0f819e1fd Mon Sep 17 00:00:00 2001 From: Nightt <87569709+nightt5879@users.noreply.github.com> Date: Wed, 17 Jun 2026 16:54:40 +0800 Subject: [PATCH 2/2] examples/gps: print units after measurements --- examples/gps/gps_main.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/gps/gps_main.c b/examples/gps/gps_main.c index 4434a97ed35..47942caa16e 100644 --- a/examples/gps/gps_main.c +++ b/examples/gps/gps_main.c @@ -99,20 +99,20 @@ int main(int argc, FAR char *argv[]) if (minmea_parse_rmc(&frame, line)) { - printf("Fixed-point Latitude (NMEA * 1000)..: %" - PRIdLEAST32 "\n", + printf("Fixed-point Latitude................: %" + PRIdLEAST32 " (NMEA * 1000)\n", minmea_rescale(&frame.latitude, 1000)); - printf("Fixed-point Longitude (NMEA * 1000).: %" - PRIdLEAST32 "\n", + printf("Fixed-point Longitude...............: %" + PRIdLEAST32 " (NMEA * 1000)\n", minmea_rescale(&frame.longitude, 1000)); - printf("Fixed-point Speed (knots * 1000)....: %" - PRIdLEAST32 "\n", + printf("Fixed-point Speed...................: %" + PRIdLEAST32 " (knots * 1000)\n", minmea_rescale(&frame.speed, 1000)); - printf("Floating point Latitude (degrees)...: %2.6f\n", + printf("Floating point Latitude.............: %2.6f degrees\n", minmea_tocoord(&frame.latitude)); - printf("Floating point Longitude (degrees)..: %2.6f\n", + printf("Floating point Longitude............: %2.6f degrees\n", minmea_tocoord(&frame.longitude)); - printf("Floating point Speed (knots)........: %2.6f\n", + printf("Floating point Speed................: %2.6f knots\n", minmea_tofloat(&frame.speed)); } else @@ -130,9 +130,9 @@ int main(int argc, FAR char *argv[]) { printf("Fix quality....................: %d\n", frame.fix_quality); - printf("Altitude (%c)...................: %2.6f\n", - frame.altitude_units ? frame.altitude_units : '?', - minmea_tofloat(&frame.altitude)); + printf("Altitude.......................: %2.6f %c\n", + minmea_tofloat(&frame.altitude), + frame.altitude_units ? frame.altitude_units : '?'); printf("Tracked satellites.............: %d\n", frame.satellites_tracked); }