Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit 8e8ccbf

Browse files
committed
Added gpsDateValid and gpsTimeValid. Updated Example15.
1 parent 35a5869 commit 8e8ccbf

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

Diff for: examples/Example15_GetDateTime/Example15_GetDateTime.ino

+13-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,19 @@ void loop()
8888
Serial.print(":");
8989
Serial.print(myGPS.getMinute());
9090
Serial.print(":");
91-
Serial.println(myGPS.getSecond());
91+
Serial.print(myGPS.getSecond());
92+
93+
Serial.print(" Time is ");
94+
if (myGPS.getTimeValid() == false)
95+
{
96+
Serial.print("not ");
97+
}
98+
Serial.print("valid Date is ");
99+
if (myGPS.getDateValid() == false)
100+
{
101+
Serial.print("not ");
102+
}
103+
Serial.print("valid");
92104

93105
Serial.println();
94106
}

Diff for: src/SparkFun_Ublox_Arduino_Library.cpp

+24
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,8 @@ void SFE_UBLOX_GPS::processUBXpacket(ubxPacket *msg)
903903
gpsHour = extractByte(8);
904904
gpsMinute = extractByte(9);
905905
gpsSecond = extractByte(10);
906+
gpsDateValid = extractByte(11) & 0x01;
907+
gpsTimeValid = (extractByte(11) & 0x02) >> 1;
906908
gpsNanosecond = extractLong(16); //Includes milliseconds
907909

908910
fixType = extractByte(20 - startingSpot);
@@ -924,6 +926,8 @@ void SFE_UBLOX_GPS::processUBXpacket(ubxPacket *msg)
924926
moduleQueried.gpsHour = true;
925927
moduleQueried.gpsMinute = true;
926928
moduleQueried.gpsSecond = true;
929+
moduleQueried.gpsDateValid = true;
930+
moduleQueried.gpsTimeValid = true;
927931
moduleQueried.gpsNanosecond = true;
928932

929933
moduleQueried.all = true;
@@ -2694,6 +2698,24 @@ uint8_t SFE_UBLOX_GPS::getSecond(uint16_t maxWait)
26942698
return (gpsSecond);
26952699
}
26962700

2701+
//Get the current date validity
2702+
bool SFE_UBLOX_GPS::getDateValid(uint16_t maxWait)
2703+
{
2704+
if (moduleQueried.gpsDateValid == false)
2705+
getPVT(maxWait);
2706+
moduleQueried.gpsDateValid = false; //Since we are about to give this to user, mark this data as stale
2707+
return (gpsDateValid);
2708+
}
2709+
2710+
//Get the current time validity
2711+
bool SFE_UBLOX_GPS::getTimeValid(uint16_t maxWait)
2712+
{
2713+
if (moduleQueried.gpsTimeValid == false)
2714+
getPVT(maxWait);
2715+
moduleQueried.gpsTimeValid = false; //Since we are about to give this to user, mark this data as stale
2716+
return (gpsTimeValid);
2717+
}
2718+
26972719
//Get the current millisecond
26982720
uint16_t SFE_UBLOX_GPS::getMillisecond(uint16_t maxWait)
26992721
{
@@ -3090,6 +3112,8 @@ void SFE_UBLOX_GPS::flushPVT()
30903112
moduleQueried.gpsHour = false;
30913113
moduleQueried.gpsMinute = false;
30923114
moduleQueried.gpsSecond = false;
3115+
moduleQueried.gpsDateValid = false;
3116+
moduleQueried.gpsTimeValid = false;
30933117
moduleQueried.gpsNanosecond = false;
30943118

30953119
moduleQueried.all = false;

Diff for: src/SparkFun_Ublox_Arduino_Library.h

+6
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,8 @@ class SFE_UBLOX_GPS
555555
uint16_t getMillisecond(uint16_t maxWait = getPVTmaxWait);
556556
int32_t getNanosecond(uint16_t maxWait = getPVTmaxWait);
557557
uint32_t getTimeOfWeek(uint16_t maxWait = getPVTmaxWait);
558+
bool getDateValid(uint16_t maxWait = getPVTmaxWait);
559+
bool getTimeValid(uint16_t maxWait = getPVTmaxWait);
558560

559561
int32_t getHighResLatitude(uint16_t maxWait = getHPPOSLLHmaxWait);
560562
int8_t getHighResLatitudeHp(uint16_t maxWait = getHPPOSLLHmaxWait);
@@ -699,6 +701,8 @@ class SFE_UBLOX_GPS
699701
uint8_t gpsSecond;
700702
uint16_t gpsMillisecond;
701703
int32_t gpsNanosecond;
704+
bool gpsDateValid;
705+
bool gpsTimeValid;
702706

703707
int32_t latitude; //Degrees * 10^-7 (more accurate than floats)
704708
int32_t longitude; //Degrees * 10^-7 (more accurate than floats)
@@ -879,6 +883,8 @@ class SFE_UBLOX_GPS
879883
uint32_t gpsHour : 1;
880884
uint32_t gpsMinute : 1;
881885
uint32_t gpsSecond : 1;
886+
uint32_t gpsDateValid : 1;
887+
uint32_t gpsTimeValid : 1;
882888
uint32_t gpsNanosecond : 1;
883889

884890
uint32_t all : 1;

0 commit comments

Comments
 (0)