100 lines
2.4 KiB
C++
100 lines
2.4 KiB
C++
#include "GPS.hpp"
|
|
|
|
// A sample NMEA stream.
|
|
const char *gpsStream =
|
|
"$GPRMC,045103.000,A,3014.1984,N,09749.2872,W,0.67,161.46,030913,,,A*7C\r\n"
|
|
"$GPGGA,045104.000,3014.1985,N,09749.2873,W,1,09,1.2,211.6,M,-22.5,M,,0000*62\r\n"
|
|
"$GPRMC,045200.000,A,3014.3820,N,09748.9514,W,36.88,65.02,030913,,,A*77\r\n"
|
|
"$GPGGA,045201.000,3014.3864,N,09748.9411,W,1,10,1.2,200.8,M,-22.5,M,,0000*6C\r\n"
|
|
"$GPRMC,045251.000,A,3014.4275,N,09749.0626,W,0.51,217.94,030913,,,A*7D\r\n"
|
|
"$GPGGA,045252.000,3014.4273,N,09749.0628,W,1,09,1.3,206.9,M,-22.5,M,,0000*6F\r\n";
|
|
|
|
// The TinyGPSPlus object
|
|
TinyGPSPlus gps;
|
|
|
|
void GPS_Init()
|
|
{
|
|
Serial.begin(115200);
|
|
|
|
Serial.println(F("BasicExample.ino"));
|
|
Serial.println(F("Basic demonstration of TinyGPSPlus (no device needed)"));
|
|
Serial.print(F("Testing TinyGPSPlus library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
|
|
Serial.println(F("by Mikal Hart"));
|
|
Serial.println();
|
|
|
|
while (*gpsStream)
|
|
if (gps.encode(*gpsStream++))
|
|
GPS_Read();
|
|
|
|
Serial.println();
|
|
Serial.println(F("Done."));
|
|
}
|
|
|
|
void GPS_Read()
|
|
{
|
|
Serial.print(F("Location: "));
|
|
if (gps.location.isValid())
|
|
{
|
|
Serial.print(gps.location.lat(), 6);
|
|
Serial.print(F(","));
|
|
Serial.print(gps.location.lng(), 6);
|
|
}
|
|
else
|
|
{
|
|
Serial.print(F("INVALID"));
|
|
}
|
|
|
|
Serial.print(F(" Date/Time: "));
|
|
if (gps.date.isValid())
|
|
{
|
|
Serial.print(gps.date.month());
|
|
Serial.print(F("/"));
|
|
Serial.print(gps.date.day());
|
|
Serial.print(F("/"));
|
|
Serial.print(gps.date.year());
|
|
}
|
|
else
|
|
{
|
|
Serial.print(F("INVALID"));
|
|
}
|
|
|
|
Serial.print(F(" "));
|
|
if (gps.time.isValid())
|
|
{
|
|
if (gps.time.hour() < 10) Serial.print(F("0"));
|
|
Serial.print(gps.time.hour());
|
|
Serial.print(F(":"));
|
|
if (gps.time.minute() < 10) Serial.print(F("0"));
|
|
Serial.print(gps.time.minute());
|
|
Serial.print(F(":"));
|
|
if (gps.time.second() < 10) Serial.print(F("0"));
|
|
Serial.print(gps.time.second());
|
|
Serial.print(F("."));
|
|
if (gps.time.centisecond() < 10) Serial.print(F("0"));
|
|
Serial.print(gps.time.centisecond());
|
|
}
|
|
else
|
|
{
|
|
Serial.print(F("INVALID"));
|
|
}
|
|
|
|
Serial.println();
|
|
}
|
|
|
|
float GPS_longitud(){
|
|
float log;
|
|
if (gps.location.isValid())
|
|
{
|
|
log = gps.location.lng();
|
|
}
|
|
return log;
|
|
}
|
|
|
|
float GPS_latitud(){
|
|
float lat;
|
|
if (gps.location.isValid())
|
|
{
|
|
lat = gps.location.lat();
|
|
}
|
|
return lat;
|
|
} |