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

Dependencies:   GPS7 mbed

Fork of GPS_7 by Gustavo Ramirez

main.cpp

Committer:
tony63
Date:
2017-04-28
Revision:
3:d7d5111a39ac
Parent:
2:5abd8a794703

File content as of revision 3:d7d5111a39ac:

//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
//https://www.labsat.co.uk/index.php/en/free-gps-nmea-simulator-software

#include "mbed.h"
#include "GPS.h"
#include <stdio.h>
#include <string.h>
#include <math.h>

Serial pc(USBTX, USBRX);
GPS gps(PTE0, PTE1);
int z;
int Lo_E,Lo_F,La_E,La_F;//longitud entera y fraccionaria
float frac_long, frac_lat; //fraccion longitud y fraccion latitud
char long_E[4]; //Subcadena con la longitud entera
char long_F[7];//Subcadena con la longitud fraccionaria(6 digitos)
char lat_E[4];//Subcadena con la latitud entera
char lat_F[7];////Subcadena con la latitud fraccionaria(6 digitos)
char GooMap[55]="http://maps.google.com/maps?q=";
char str[55];
void tostring(char[], int); //FUNCION QUE CONVIERTE UN ENTERO EN CARACTER Y VICEVERSA
int num;
int main() {
    
    while(1) {
        if(gps.sample()) {
            Lo_E = abs((int)gps.longitude); 
            Lo_F = (int)abs(1000000*(gps.longitude-(int)gps.longitude));
            La_E = abs((int)gps.latitude);
            La_F = (int)abs(1000000*(gps.latitude-(int)gps.latitude));
           
            //calculo las cuatro subcadenas de las partes enteras y fraccionarias falta adicionar los puntos,las comas y los signos     
            tostring(long_E, Lo_E);
            tostring(long_F, Lo_F);
            tostring(lat_E, La_E);
            tostring(lat_F, La_F);
            
            if(gps.latitude<0){
                strcat(GooMap,"-");
                }
            strcat(GooMap,lat_E);
            strcat(GooMap,".");
            strcat(GooMap,lat_F);
            strcat(GooMap,",");
            if(gps.longitude<0){
                strcat(GooMap,"-");
                }
            strcat(GooMap,long_E);
            strcat(GooMap,".");
            strcat(GooMap,long_F);
            strcat(GooMap,"\n");
            pc.printf("%s\n",GooMap);  //la omprimo o hago algo con ella
            for(z=30;z<51;z++){  //la lleno de ceros para evitar problemas despues!!
                    GooMap[z]=0;
                             }             
            }     
             
         else {
            
            pc.printf("Oh Dear! No lock :(\n");
        }
    }
} 


//***********************************************************************************************    
//funcion que convierte entero en caracter     
    void tostring(char str[], int num)
    {
        int i, rem, len = 0, n;
     
        n = num;
        while (n != 0)
        {
            len++;
            n /= 10;
        }
        for (i = 0; i < len; i++)
        {
            rem = num % 10;
            num = num / 10;
            str[len - (i + 1)] = rem + '0';
        }
        str[len] = '\0';
    }