Merge branch 'Jcps-master'
This commit is contained in:
commit
419bc437be
|
|
@ -79,11 +79,14 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
minutes = 50 * atol(degreebuff) / 3;
|
minutes = 50 * atol(degreebuff) / 3;
|
||||||
latitude_fixed = degree + minutes;
|
latitude_fixed = degree + minutes;
|
||||||
latitude = degree / 100000 + minutes * 0.000006F;
|
latitude = degree / 100000 + minutes * 0.000006F;
|
||||||
|
latitudeDegrees = (latitude-100*int(latitude/100))/60.0;
|
||||||
|
latitudeDegrees += int(latitude/100);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (',' != *p)
|
if (',' != *p)
|
||||||
{
|
{
|
||||||
|
if (p[0] == 'S') latitudeDegrees *= -1.0;
|
||||||
if (p[0] == 'N') lat = 'N';
|
if (p[0] == 'N') lat = 'N';
|
||||||
else if (p[0] == 'S') lat = 'S';
|
else if (p[0] == 'S') lat = 'S';
|
||||||
else if (p[0] == ',') lat = 0;
|
else if (p[0] == ',') lat = 0;
|
||||||
|
|
@ -105,11 +108,14 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
minutes = 50 * atol(degreebuff) / 3;
|
minutes = 50 * atol(degreebuff) / 3;
|
||||||
longitude_fixed = degree + minutes;
|
longitude_fixed = degree + minutes;
|
||||||
longitude = degree / 100000 + minutes * 0.000006F;
|
longitude = degree / 100000 + minutes * 0.000006F;
|
||||||
|
longitudeDegrees = (longitude-100*int(longitude/100))/60.0;
|
||||||
|
longitudeDegrees += int(longitude/100);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (',' != *p)
|
if (',' != *p)
|
||||||
{
|
{
|
||||||
|
if (p[0] == 'W') longitudeDegrees *= -1.0;
|
||||||
if (p[0] == 'W') lon = 'W';
|
if (p[0] == 'W') lon = 'W';
|
||||||
else if (p[0] == 'E') lon = 'E';
|
else if (p[0] == 'E') lon = 'E';
|
||||||
else if (p[0] == ',') lon = 0;
|
else if (p[0] == ',') lon = 0;
|
||||||
|
|
@ -186,11 +192,14 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
long minutes = 50 * atol(degreebuff) / 3;
|
long minutes = 50 * atol(degreebuff) / 3;
|
||||||
latitude_fixed = degree + minutes;
|
latitude_fixed = degree + minutes;
|
||||||
latitude = degree / 100000 + minutes * 0.000006F;
|
latitude = degree / 100000 + minutes * 0.000006F;
|
||||||
|
latitudeDegrees = (latitude-100*int(latitude/100))/60.0;
|
||||||
|
latitudeDegrees += int(latitude/100);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (',' != *p)
|
if (',' != *p)
|
||||||
{
|
{
|
||||||
|
if (p[0] == 'S') latitudeDegrees *= -1.0;
|
||||||
if (p[0] == 'N') lat = 'N';
|
if (p[0] == 'N') lat = 'N';
|
||||||
else if (p[0] == 'S') lat = 'S';
|
else if (p[0] == 'S') lat = 'S';
|
||||||
else if (p[0] == ',') lat = 0;
|
else if (p[0] == ',') lat = 0;
|
||||||
|
|
@ -212,11 +221,14 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
minutes = 50 * atol(degreebuff) / 3;
|
minutes = 50 * atol(degreebuff) / 3;
|
||||||
longitude_fixed = degree + minutes;
|
longitude_fixed = degree + minutes;
|
||||||
longitude = degree / 100000 + minutes * 0.000006F;
|
longitude = degree / 100000 + minutes * 0.000006F;
|
||||||
|
longitudeDegrees = (longitude-100*int(longitude/100))/60.0;
|
||||||
|
longitudeDegrees += int(longitude/100);
|
||||||
}
|
}
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (',' != *p)
|
if (',' != *p)
|
||||||
{
|
{
|
||||||
|
if (p[0] == 'W') longitudeDegrees *= -1.0;
|
||||||
if (p[0] == 'W') lon = 'W';
|
if (p[0] == 'W') lon = 'W';
|
||||||
else if (p[0] == 'E') lon = 'E';
|
else if (p[0] == 'E') lon = 'E';
|
||||||
else if (p[0] == ',') lon = 0;
|
else if (p[0] == ',') lon = 0;
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ class Adafruit_GPS {
|
||||||
// and minutes stored in units of 1/100000 degrees. See pull #13 for more details:
|
// and minutes stored in units of 1/100000 degrees. See pull #13 for more details:
|
||||||
// https://github.com/adafruit/Adafruit-GPS-Library/pull/13
|
// https://github.com/adafruit/Adafruit-GPS-Library/pull/13
|
||||||
int32_t latitude_fixed, longitude_fixed;
|
int32_t latitude_fixed, longitude_fixed;
|
||||||
|
float latitudeDegrees, longitudeDegrees;
|
||||||
float geoidheight, altitude;
|
float geoidheight, altitude;
|
||||||
float speed, angle, magvariation, HDOP;
|
float speed, angle, magvariation, HDOP;
|
||||||
char lat, lon, mag;
|
char lat, lon, mag;
|
||||||
|
|
|
||||||
|
|
@ -161,6 +161,10 @@ void loop() // run over and over again
|
||||||
Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
|
Serial.print(GPS.latitude, 4); Serial.print(GPS.lat);
|
||||||
Serial.print(", ");
|
Serial.print(", ");
|
||||||
Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
|
Serial.print(GPS.longitude, 4); Serial.println(GPS.lon);
|
||||||
|
Serial.print("Location (in degrees, works with Google Maps): ");
|
||||||
|
Serial.print(GPS.latitudeDegrees, 4);
|
||||||
|
Serial.print(", ");
|
||||||
|
Serial.println(GPS.longitudeDegrees, 4);
|
||||||
|
|
||||||
Serial.print("Speed (knots): "); Serial.println(GPS.speed);
|
Serial.print("Speed (knots): "); Serial.println(GPS.speed);
|
||||||
Serial.print("Angle: "); Serial.println(GPS.angle);
|
Serial.print("Angle: "); Serial.println(GPS.angle);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue