Move fixed point value to latitude_fixed and longitude_fixed members.
This commit is contained in:
parent
32e40234c8
commit
5523d30fed
|
|
@ -70,7 +70,8 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
strncpy(degreebuff + 2, p, 4);
|
strncpy(degreebuff + 2, p, 4);
|
||||||
degreebuff[6] = '\0';
|
degreebuff[6] = '\0';
|
||||||
long minutes = 50 * atol(degreebuff) / 3;
|
long minutes = 50 * atol(degreebuff) / 3;
|
||||||
latitude = degree + minutes;
|
latitude_fixed = degree + minutes;
|
||||||
|
latitude = latitude_fixed / 100000.0F;
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (p[0] == 'N') lat = 'N';
|
if (p[0] == 'N') lat = 'N';
|
||||||
|
|
@ -89,7 +90,8 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
strncpy(degreebuff + 2, p, 4);
|
strncpy(degreebuff + 2, p, 4);
|
||||||
degreebuff[6] = '\0';
|
degreebuff[6] = '\0';
|
||||||
minutes = 50 * atol(degreebuff) / 3;
|
minutes = 50 * atol(degreebuff) / 3;
|
||||||
longitude = degree + minutes;
|
longitude_fixed = degree + minutes;
|
||||||
|
longitude = longitude_fixed / 100000.0F;
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (p[0] == 'W') lon = 'W';
|
if (p[0] == 'W') lon = 'W';
|
||||||
|
|
@ -147,7 +149,8 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
strncpy(degreebuff + 2, p, 4);
|
strncpy(degreebuff + 2, p, 4);
|
||||||
degreebuff[6] = '\0';
|
degreebuff[6] = '\0';
|
||||||
long minutes = 50 * atol(degreebuff) / 3;
|
long minutes = 50 * atol(degreebuff) / 3;
|
||||||
latitude = degree + minutes;
|
latitude_fixed = degree + minutes;
|
||||||
|
latitude = latitude_fixed / 100000.0F;
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (p[0] == 'N') lat = 'N';
|
if (p[0] == 'N') lat = 'N';
|
||||||
|
|
@ -166,7 +169,8 @@ boolean Adafruit_GPS::parse(char *nmea) {
|
||||||
strncpy(degreebuff + 2, p, 4);
|
strncpy(degreebuff + 2, p, 4);
|
||||||
degreebuff[6] = '\0';
|
degreebuff[6] = '\0';
|
||||||
minutes = 50 * atol(degreebuff) / 3;
|
minutes = 50 * atol(degreebuff) / 3;
|
||||||
longitude = degree + minutes;
|
longitude_fixed = degree + minutes;
|
||||||
|
longitude = longitude_fixed / 100000.0F;
|
||||||
|
|
||||||
p = strchr(p, ',')+1;
|
p = strchr(p, ',')+1;
|
||||||
if (p[0] == 'W') lon = 'W';
|
if (p[0] == 'W') lon = 'W';
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,12 @@ class Adafruit_GPS {
|
||||||
|
|
||||||
uint8_t hour, minute, seconds, year, month, day;
|
uint8_t hour, minute, seconds, year, month, day;
|
||||||
uint16_t milliseconds;
|
uint16_t milliseconds;
|
||||||
int32_t latitude, longitude;
|
// Floating point latitude and longitude value in degrees.
|
||||||
|
float latitude, longitude;
|
||||||
|
// Fixed point latitude and longitude value in 1/100000 degrees.
|
||||||
|
// For example a latitude of 4,767.99916 degrees would have a value of 476799916.
|
||||||
|
// More precise than the floating point value, but a little more difficult to use.
|
||||||
|
int32_t latitude_fixed, longitude_fixed;
|
||||||
float geoidheight, altitude;
|
float geoidheight, altitude;
|
||||||
float speed, angle, magvariation, HDOP;
|
float speed, angle, magvariation, HDOP;
|
||||||
char lat, lon, mag;
|
char lat, lon, mag;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue