Modificar datos GPS
hola todos,
estoy realizando un pequeño proyecto con un gps que debe mostrar una serie de valores por pantalla, como por ejemplo la fecha, hora, latitud y longitud.
el problema es que en el caso de la fecha y la hora, el gps muestra los datos de esta manera por defecto:
fecha: 03032014
hora: 173445.35
me gustaría modificar esos valores para que sean más "vistosos" y facilitar su lectura en pantalla, por ejemplo:
fecha: 03/03/2014
hora: 17:34:45
¿es esto posible? adjunto el código que estoy usando:
gracias.
estoy realizando un pequeño proyecto con un gps que debe mostrar una serie de valores por pantalla, como por ejemplo la fecha, hora, latitud y longitud.
el problema es que en el caso de la fecha y la hora, el gps muestra los datos de esta manera por defecto:
fecha: 03032014
hora: 173445.35
me gustaría modificar esos valores para que sean más "vistosos" y facilitar su lectura en pantalla, por ejemplo:
fecha: 03/03/2014
hora: 17:34:45
¿es esto posible? adjunto el código que estoy usando:
code: [select]
#include <geniearduino.h> //incluye la librería de la pantalla
#include <softwareserial.h> //incluye la librería del gps
softwareserial gpsserial(10, 11); // tx, rx (rx not used)
const int sentencesize = 80;
char sentence[sentencesize];
int curso;
void setup()
{
geniebegin (genie_serial, 9600); //serial0 comunicación con la pantalla
gpsserial.begin(9600); //comunicación con el gps
}
void loop()
{
static int = 0;
if (gpsserial.available())
{
char ch = gpsserial.read();
if (ch != '\n' && < sentencesize)
{
sentence[i] = ch;
i++;
}
else
{
sentence[i] = '\0';
i = 0;
displaygps();
}
}
}
void displaygps()
{
char field[20];
getfield(field, 0);
if (strcmp(field, "$gprmc") == 0)
{
getfield(field, 9); // fecha
geniewritestr(0,field); //comando para mostrar la fecha por pantalla en un string
getfield(field, 1); // hora
geniewritestr(1,field); // comando para mostrar la hora por pantalla en un string
getfield(field, 3); // latitud
geniewritestr(2,field);
getfield(field, 4); // n/s
geniewritestr(3,field);
getfield(field, 5); // longitud
geniewritestr(4,field);
getfield(field, 6); // e/w
geniewritestr(5,field);
}
void getfield(char* buffer, int index)
{
int sentencepos = 0;
int fieldpos = 0;
int commacount = 0;
while (sentencepos < sentencesize)
{
if (sentence[sentencepos] == ',')
{
commacount ++;
sentencepos ++;
}
if (commacount == index)
{
buffer[fieldpos] = sentence[sentencepos];
fieldpos ++;
}
sentencepos ++;
}
buffer[fieldpos] = '\0';
}
gracias.
hay que leerse los manuales de arduino o buscar por internet. son cosas básicas
string fecha="03032014";
string dia="";
string mes="";
string anyo;
dia=fecha.substring(0,2);
serial.print(dia);
serial.print("/");
mes=fecha.substring(2,4);
serial.print(mes);
serial.print("/");
anyo=fecha.substring(4,8);
serial.println(anyo);
jopapa
www.jopapa.me
string fecha="03032014";
string dia="";
string mes="";
string anyo;
dia=fecha.substring(0,2);
serial.print(dia);
serial.print("/");
mes=fecha.substring(2,4);
serial.print(mes);
serial.print("/");
anyo=fecha.substring(4,8);
serial.println(anyo);
jopapa
www.jopapa.me
Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Modificar datos GPS
arduino
Comments
Post a Comment