PROGRAMA SIMPLE QUE LEE UNA TRAMA DE GPS Y LA PONE EN PANTALLA DE LA TERMINAL DEL PC

Dependencies:   GPS7 mbed

Fork of GPS_Google by Gustavo Ramirez

Committer:
tony63
Date:
Fri Apr 28 13:16:09 2017 +0000
Revision:
3:d7d5111a39ac
Parent:
2:5abd8a794703
ESTE PROGRAMA SE ENCARGA DE LEER UN GPS Y GENERAR UNA CADENA DE GEOLOCALIZACION; PARA SER ENVIADA COMO LINK EN UN MENSAJE DE TEXTO; UTIL PARA IMPLEMENTAR UN RASTREADOR SATELITAL; EN CASO DE NO TENER GPS USE UN EMULADOR COMO SATGEMNMEA;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 3:d7d5111a39ac 1 //ESTE PROGRAMA SE ENCARGA DE LEER UN GPS Y GENERAR UNA CADENA DE GEOLOCALIZACION
tony63 3:d7d5111a39ac 2 //PARA SER ENVIADA COMO LINK EN UN MENSAJE DE TEXTO
tony63 3:d7d5111a39ac 3 //UTIL PARA IMPLEMENTAR UN RASTREADOR SATELITAL
tony63 3:d7d5111a39ac 4 //EN CASO DE NO TENER GPS USE UN EMULADOR COMO SATGEMNMEA
tony63 3:d7d5111a39ac 5 //https://www.labsat.co.uk/index.php/en/free-gps-nmea-simulator-software
tony63 3:d7d5111a39ac 6
simon 0:6b7345059afe 7 #include "mbed.h"
simon 0:6b7345059afe 8 #include "GPS.h"
tony63 3:d7d5111a39ac 9 #include <stdio.h>
tony63 3:d7d5111a39ac 10 #include <string.h>
tony63 3:d7d5111a39ac 11 #include <math.h>
simon 0:6b7345059afe 12
simon 0:6b7345059afe 13 Serial pc(USBTX, USBRX);
tony63 3:d7d5111a39ac 14 GPS gps(PTE0, PTE1);
tony63 3:d7d5111a39ac 15 int z;
tony63 3:d7d5111a39ac 16 int Lo_E,Lo_F,La_E,La_F;//longitud entera y fraccionaria
tony63 3:d7d5111a39ac 17 float frac_long, frac_lat; //fraccion longitud y fraccion latitud
tony63 3:d7d5111a39ac 18 char long_E[4]; //Subcadena con la longitud entera
tony63 3:d7d5111a39ac 19 char long_F[7];//Subcadena con la longitud fraccionaria(6 digitos)
tony63 3:d7d5111a39ac 20 char lat_E[4];//Subcadena con la latitud entera
tony63 3:d7d5111a39ac 21 char lat_F[7];////Subcadena con la latitud fraccionaria(6 digitos)
tony63 3:d7d5111a39ac 22 char GooMap[55]="http://maps.google.com/maps?q=";
tony63 3:d7d5111a39ac 23 char str[55];
tony63 3:d7d5111a39ac 24 void tostring(char[], int); //FUNCION QUE CONVIERTE UN ENTERO EN CARACTER Y VICEVERSA
tony63 3:d7d5111a39ac 25 int num;
simon 0:6b7345059afe 26 int main() {
tony63 3:d7d5111a39ac 27
simon 0:6b7345059afe 28 while(1) {
simon 0:6b7345059afe 29 if(gps.sample()) {
tony63 3:d7d5111a39ac 30 Lo_E = abs((int)gps.longitude);
tony63 3:d7d5111a39ac 31 Lo_F = (int)abs(1000000*(gps.longitude-(int)gps.longitude));
tony63 3:d7d5111a39ac 32 La_E = abs((int)gps.latitude);
tony63 3:d7d5111a39ac 33 La_F = (int)abs(1000000*(gps.latitude-(int)gps.latitude));
tony63 3:d7d5111a39ac 34
tony63 3:d7d5111a39ac 35 //calculo las cuatro subcadenas de las partes enteras y fraccionarias falta adicionar los puntos,las comas y los signos
tony63 3:d7d5111a39ac 36 tostring(long_E, Lo_E);
tony63 3:d7d5111a39ac 37 tostring(long_F, Lo_F);
tony63 3:d7d5111a39ac 38 tostring(lat_E, La_E);
tony63 3:d7d5111a39ac 39 tostring(lat_F, La_F);
tony63 3:d7d5111a39ac 40
tony63 3:d7d5111a39ac 41 if(gps.latitude<0){
tony63 3:d7d5111a39ac 42 strcat(GooMap,"-");
tony63 3:d7d5111a39ac 43 }
tony63 3:d7d5111a39ac 44 strcat(GooMap,lat_E);
tony63 3:d7d5111a39ac 45 strcat(GooMap,".");
tony63 3:d7d5111a39ac 46 strcat(GooMap,lat_F);
tony63 3:d7d5111a39ac 47 strcat(GooMap,",");
tony63 3:d7d5111a39ac 48 if(gps.longitude<0){
tony63 3:d7d5111a39ac 49 strcat(GooMap,"-");
tony63 3:d7d5111a39ac 50 }
tony63 3:d7d5111a39ac 51 strcat(GooMap,long_E);
tony63 3:d7d5111a39ac 52 strcat(GooMap,".");
tony63 3:d7d5111a39ac 53 strcat(GooMap,long_F);
tony63 3:d7d5111a39ac 54 strcat(GooMap,"\n");
tony63 3:d7d5111a39ac 55 pc.printf("%s\n",GooMap); //la omprimo o hago algo con ella
tony63 3:d7d5111a39ac 56 for(z=30;z<51;z++){ //la lleno de ceros para evitar problemas despues!!
tony63 3:d7d5111a39ac 57 GooMap[z]=0;
tony63 3:d7d5111a39ac 58 }
tony63 3:d7d5111a39ac 59 }
tony63 3:d7d5111a39ac 60
tony63 3:d7d5111a39ac 61 else {
tony63 1:99bb5d61015f 62
simon 0:6b7345059afe 63 pc.printf("Oh Dear! No lock :(\n");
simon 0:6b7345059afe 64 }
simon 0:6b7345059afe 65 }
tony63 3:d7d5111a39ac 66 }
tony63 3:d7d5111a39ac 67
tony63 3:d7d5111a39ac 68
tony63 3:d7d5111a39ac 69 //***********************************************************************************************
tony63 3:d7d5111a39ac 70 //funcion que convierte entero en caracter
tony63 3:d7d5111a39ac 71 void tostring(char str[], int num)
tony63 3:d7d5111a39ac 72 {
tony63 3:d7d5111a39ac 73 int i, rem, len = 0, n;
tony63 3:d7d5111a39ac 74
tony63 3:d7d5111a39ac 75 n = num;
tony63 3:d7d5111a39ac 76 while (n != 0)
tony63 3:d7d5111a39ac 77 {
tony63 3:d7d5111a39ac 78 len++;
tony63 3:d7d5111a39ac 79 n /= 10;
tony63 3:d7d5111a39ac 80 }
tony63 3:d7d5111a39ac 81 for (i = 0; i < len; i++)
tony63 3:d7d5111a39ac 82 {
tony63 3:d7d5111a39ac 83 rem = num % 10;
tony63 3:d7d5111a39ac 84 num = num / 10;
tony63 3:d7d5111a39ac 85 str[len - (i + 1)] = rem + '0';
tony63 3:d7d5111a39ac 86 }
tony63 3:d7d5111a39ac 87 str[len] = '\0';
tony63 3:d7d5111a39ac 88 }
tony63 3:d7d5111a39ac 89
tony63 3:d7d5111a39ac 90