Tarea 6 Gps

Dependencies:   GPS mbed

Fork of Tarea6_Gsm_gps by Camilo Londoño

Revision:
1:e72724565122
Parent:
0:e48cba9116f6
Child:
2:20facdf67dcf
--- a/main.cpp	Wed May 25 23:20:17 2016 +0000
+++ b/main.cpp	Tue Jun 05 03:22:27 2018 +0000
@@ -1,22 +1,18 @@
-/*Tarea_GSM_GPS
-  Sistema de ubicacion basado en un receptor GPS y un celular siemens a56
-  como modem GSM.
-  El sistema recibe un mensaje de texto, lo procesa y si el mensaje recibido corresponde
-  con el codigo almacenado en el microcontrolador, este procede a enviar un mensaje de texto
-  con la ubicacion actual.
-*/
 
 #include "mbed.h"
 #include "iostream"
 #include "GPS.h"
 
 // Configuracion de los puertos del microcontrolador
-Serial gsm(PTE0, PTE1);                             // puerto serie para la comunicacíón GSM
+Serial gsm(PTE22, PTE23);                             // puerto serie para la comunicacíón GSM
 Serial pc(USBTX, USBRX);                            // puerto serie para debug
-GPS gps(PTD7, PTD6);                                // puerto para comunicacion GPS
+GPS gps(PTE0, PTE1);                                // puerto para comunicacion GPS
 
 // Declaracion de variables globales
-char buffer[200], pdu[] = "", vector1[] = "", vector2[] = "", dE[255], dS[255], dEs[255], dSs[255], Ctamanosms[1], Ctiposmsc[1],  Csmscnumber[12], Cdeliver[1], Ctamanoaddress[1], Ctipoaddress[1], Cnumero[11], Cprotocolo[1], Cencoding[1], Ctime[14], Ctamano[1], Cdato[30], Xnumero[10]; // Variables para almacenar las cadenas de caracteres
+char buffer[200], pdu[] = "", vector1[] = "", vector2[] = "", dE[255], dS[255], dEs[255], dSs[255]; 
+char Ctamanosms[1], Ctiposmsc[1],  Csmscnumber[12], Cdeliver[1];
+char Ctamanoaddress[1], Ctipoaddress[1], Cnumero[12], Cprotocolo[1], Cencoding[1];
+char Ctime[14], Ctamano[1], Cdato[30], Xnumero[10];
 int i, k, c, w, r, ta, tam, lenOUT, lenIN;          // variables auxiliares
 float lon, lat;                                     // variables para almacenar coordenadas
 char link[]= {"http://maps.google.com/?q="};        // inicio trama mensaje
@@ -24,7 +20,7 @@
 // Rutina principal
 int main()
 {
-    pc.printf("######################### INICIO DEL PROGRAMA #########################");                   // mensaje de bienvenida debug
+    pc.printf("###ss###################### INICIO DEL PROGRAMA #########################");                   // mensaje de bienvenida debug
     // Establecimiento de la comunicacion con el modem del telefono movil
     pc.printf("\r\n>>>>>>>>>>>>>>>>>>>>>> Configurando SIEMENS A56i <<<<<<<<<<<<<<<<<<<<<<\r\n");           // mensaje debug
     gsm.baud(9600);
@@ -71,7 +67,7 @@
     gsm.printf("CBST=0,0,1\r\n");                                                                           // en espera de mensajes entrantes
 
     if(gps.sample()) {
-        pc.printf("Estamos en %f, %f\r\n", gps.latitude, gps.longitude+50);                                 // muestro la ubicacion actual, para saber si el GPS esta recibiendo
+        pc.printf("Estamos en %f, %f\r\n", gps.latitude, gps.longitude);                                 // muestro la ubicacion actual, para saber si el GPS esta recibiendo
     } else {
         pc.printf("no se donde!:(\r\n");
     }
@@ -213,25 +209,29 @@
                 }
                 k--;
             }
+            dS[10] = dS[10] + 112;
+            
             pc.printf("\r\nMensaje entrante: ");
             for (i = 0; i < lenOUT; i++) {
                 pc.printf("%c",dS[i]);
             }
             pc.printf("\r\n>>>>>>>>>>> Termina convercion de los datos de PDU a texto <<<<<<<<<<<<\r\n");
         }
-
-        std::string strC ("Coordenada");                                                                        // cadenas para comparar el mensaje recibido
+        
+        
+        std::string strC ("Coordenadas");                                                                        // cadenas para comparar el mensaje recibido
 
         if(strC.compare(dS) == 0) {                                                                             // En caso de que se pidan las coordenadas
             pc.printf("\r\n>>>>>>>>>>>>>>>>>>>>>>>> Recibido: Coordenada <<<<<<<<<<<<<<<<<<<<<<<<<\n");
             pc.printf("\r\nEsperando GPS \r\n");
 
+
             while(1) {
                 i = 0;
                 if(gps.sample() && i == 0) {
                     pc.printf("\r\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Leyendo GPS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<\r\n");
                     //Toma de datos del gps y concatenacion para armar los datos.
-                    lon = gps.longitude+50;
+                    lon = gps.longitude;
                     lat = gps.latitude;
                     sprintf(vector1, "%f", lat);
                     strcat(link,vector1);
@@ -276,35 +276,35 @@
                         w = 26;
                     }
                     gsm.printf("AT+CMGS=%d\r\n", ((2*lenOUT)+w)/2);                                             // Inicia envio del mensaje
-                    pc.printf("\n AT+CMGS=%d\r\n", ((2*lenOUT)+w)/2);
+                    //pc.printf("\n AT+CMGS=%d\r\n", ((2*lenOUT)+w)/2);
                     wait(0.5);
 
                     gsm.printf("0011000A91");                                                                   // relleno inicial
-                    pc.printf("0011000A91");
+                    //pc.printf("0011000A91");
 
 
                     for(i = 0; i < 11; i++) {                                                                   // numero de destino
                         gsm.printf("%c", Cnumero[i]);
-                        pc.printf("%c", Cnumero[i]);
+                      //  pc.printf("%c", Cnumero[i]);
 
                     }
 
                     gsm.printf("000AA");                                                                        // segundo relleno
-                    pc.printf("000AA");
+                    //pc.printf("000AA");
 
                     gsm.printf("%2X",lenIN);                                                                    // longitud de los datos
-                    pc.printf("%2X",lenIN);
+                    //pc.printf("%2X",lenIN);
 
 
                     for (i = 0; i < lenOUT; i++) {
                         gsm.printf("%02X",dSs[i]&0x000000FF);
-                        pc.printf("%02X",dSs[i]&0x000000FF);
-                        wait(0.1);
+                      //  pc.printf("%02X",dSs[i]&0x000000FF);
+                        //wait(0.1);
                     }
                     gsm.putc((char)0x1A);
                     gsm.scanf("%s",buffer);                                                                     // lectura respuesta del modem
                     gsm.scanf("%s",buffer);
-                    pc.printf("\r\nRespuesta movil: %s \r\n",buffer);
+                    //pc.printf("\r\nRespuesta movil: %s \r\n",buffer);
                     i = 1;
                     gsm.printf("AT+CMGD=1\r\n");