From e483b119cc254833419d528c9b23c520475d2dbc Mon Sep 17 00:00:00 2001 From: PaulZC Date: Thu, 1 Apr 2021 11:14:04 +0100 Subject: [PATCH] Update ZED_F9P\Example10 - corrects issue #19 --- .../Example16_Nanosecond_MaxOutput.ino | 4 ++-- .../Example16_PartialSecond_MaxOutput.ino | 2 +- ...10_GetHighPrecisionPositionAndAccuracy.ino | 22 +++++++++++++++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/examples/Example16_Nanosecond_MaxOutput/Example16_Nanosecond_MaxOutput.ino b/examples/Example16_Nanosecond_MaxOutput/Example16_Nanosecond_MaxOutput.ino index 0f159f2..6fa1d68 100644 --- a/examples/Example16_Nanosecond_MaxOutput/Example16_Nanosecond_MaxOutput.ino +++ b/examples/Example16_Nanosecond_MaxOutput/Example16_Nanosecond_MaxOutput.ino @@ -99,8 +99,8 @@ void loop() Serial.print(myGNSS.getMinute()); Serial.print(":"); Serial.print(myGNSS.getSecond()); - Serial.print("."); - Serial.print(myGNSS.getNanosecond()); + Serial.print(" nanoseconds: "); + Serial.print(myGNSS.getNanosecond()); // Nanoseconds can be negative myGNSS.flushPVT(); diff --git a/examples/Example16_PartialSecond_MaxOutput/Example16_PartialSecond_MaxOutput.ino b/examples/Example16_PartialSecond_MaxOutput/Example16_PartialSecond_MaxOutput.ino index 58c8876..aee070b 100644 --- a/examples/Example16_PartialSecond_MaxOutput/Example16_PartialSecond_MaxOutput.ino +++ b/examples/Example16_PartialSecond_MaxOutput/Example16_PartialSecond_MaxOutput.ino @@ -110,7 +110,7 @@ void loop() Serial.print("0"); Serial.print(mseconds); - Serial.print(" nanoSeconds: "); + Serial.print(" nanoseconds: "); Serial.print(myGNSS.getNanosecond()); Serial.println(); diff --git a/examples/ZED-F9P/Example10_GetHighPrecisionPositionAndAccuracy/Example10_GetHighPrecisionPositionAndAccuracy.ino b/examples/ZED-F9P/Example10_GetHighPrecisionPositionAndAccuracy/Example10_GetHighPrecisionPositionAndAccuracy.ino index 90d97ea..0496d5c 100644 --- a/examples/ZED-F9P/Example10_GetHighPrecisionPositionAndAccuracy/Example10_GetHighPrecisionPositionAndAccuracy.ino +++ b/examples/ZED-F9P/Example10_GetHighPrecisionPositionAndAccuracy/Example10_GetHighPrecisionPositionAndAccuracy.ino @@ -115,11 +115,12 @@ void loop() Serial.print("Lat (deg): "); Serial.print(lat_int); // Print the integer part of the latitude Serial.print("."); - Serial.print(lat_frac); // Print the fractional part of the latitude + printFractional(lat_frac, 9); // Print the fractional part of the latitude with leading zeros Serial.print(", Lon (deg): "); Serial.print(lon_int); // Print the integer part of the latitude Serial.print("."); - Serial.println(lon_frac); // Print the fractional part of the latitude + printFractional(lon_frac, 9); // Print the fractional part of the latitude with leading zeros + Serial.println(); // Now define float storage for the heights and accuracy float f_ellipsoid; @@ -152,3 +153,20 @@ void loop() Serial.println(f_accuracy, 4); // Print the accuracy with 4 decimal places } } + +// Pretty-print the fractional part with leading zeros - without using printf +// (Only works with positive numbers) +void printFractional(int32_t fractional, uint8_t places) +{ + if (places > 1) + { + for (uint8_t place = places - 1; place > 0; place--) + { + if (fractional < pow(10, place)) + { + Serial.print("0"); + } + } + } + Serial.print(fractional); +}