51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#include "GPS.hpp"
|
|
char c;
|
|
SoftwareSerial gps(RX, TX);
|
|
|
|
void GPS_Init(){
|
|
// RX, TX
|
|
|
|
Serial.begin(115500);
|
|
gps.begin(9600);
|
|
Serial.println("GPS Initialized");
|
|
}
|
|
|
|
void GPS_Read(){
|
|
|
|
if (gps.available()) {
|
|
c = gps.read();
|
|
|
|
}
|
|
}
|
|
//$GPRMC,044235.000,A,4322.0289,N,00824.5210,W,0.39,65.46,020615,,,A*44
|
|
|
|
void GPS_Data(const char* data) {
|
|
char buffer[100];
|
|
strncpy(buffer, data, sizeof(buffer)); // Copia segura de la cadena
|
|
buffer[sizeof(buffer) - 1] = '\0'; // Asegura que la cadena termine en '\0'
|
|
|
|
char* token = strtok(buffer, ","); // Divide la cadena por comas
|
|
int index = 0;
|
|
String check;
|
|
float lon = 0.0, lat = 0.0;
|
|
|
|
while (token != nullptr) {
|
|
if (index == 2) {
|
|
check = String(token); // Elemento en la posición 2
|
|
} else if (index == 3) {
|
|
lon = atof(token); // Elemento en la posición 3 convertido a float
|
|
} else if (index == 5) {
|
|
lat = atof(token); // Elemento en la posición 5 convertido a float
|
|
}
|
|
token = strtok(nullptr, ","); // Avanza al siguiente token
|
|
index++;
|
|
}
|
|
|
|
// Imprime los resultados
|
|
Serial.print("Check: ");
|
|
Serial.println(check);
|
|
Serial.print("Longitude: ");
|
|
Serial.println(lon, 6); // 6 decimales para precisión
|
|
Serial.print("Latitude: ");
|
|
Serial.println(lat, 6);
|
|
} |