PROGRAMA SIMPLE QUE LEE UNA TRAMA DE GPS Y LA PONE EN PANTALLA DE LA TERMINAL DEL PC
Fork of GPS_Google_Cadenas by
main.cpp@3:d7d5111a39ac, 2017-04-28 (annotated)
- 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?
User | Revision | Line number | New 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 |