Equipo Azul

Dependencies:   mbed RASTREO_GPRS DebouncedIn GPS_G

Files at this revision

API Documentation at this revision

Comitter:
Giovani_Cardona
Date:
Fri Aug 30 21:22:41 2019 +0000
Parent:
2:f4483748eee0
Commit message:
Equipo Azul

Changed in this revision

61_RASTREO_GPRS.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r f4483748eee0 -r 17d367fba9c1 61_RASTREO_GPRS.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/61_RASTREO_GPRS.lib	Fri Aug 30 21:22:41 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/tony63/code/RASTREO_GPRS/#f4483748eee0
diff -r f4483748eee0 -r 17d367fba9c1 main.cpp
--- a/main.cpp	Fri Aug 30 04:47:49 2019 +0000
+++ b/main.cpp	Fri Aug 30 21:22:41 2019 +0000
@@ -1,4 +1,4 @@
-/*
+/*-----Equipo Azul-----
 PROGRAMA PARA HACER SEGUIMIENTO DE FLOTAS CON GPS Y CONEXION A LA RED GPRS
 se pueden simular trayectorias gravando archivos kml en google earth y usando
 SatGen
@@ -27,6 +27,9 @@
 char lon[15], lat[15]; // Cadenas a capturar para latitud y longitud.
 char gprsBuffer[20];
 char resp[15];
+
+char aux[100];
+
 Serial GSM(PTE0,PTE1);  // Puertos del FRDM para el Módem.
 Serial pc(USBTX,USBRX);
 GPS gps(PTE22, PTE23);   // Puerto del FDRM para el GPS.
@@ -36,6 +39,7 @@
 int count=0;
 int g=0;
 
+
 //-----------------------------------------------------------------------------------------------------------------------------
 // Esta funcion de abajo lee todo un bufer hasta encontrar CR o LF y el resto lo rellena de
 // $, count es lo que va a leer. Lo leido lo mete en buffer que es una cadena previamente definida
@@ -87,10 +91,13 @@
     int len = strlen(resp);
     int sum=0;
     t.start();
- 
+    i = 0;
     while(1) {
         if(GSM.readable()) {
             char c = GSM.getc();
+            //pc.printf("\nc:%c",c);
+            aux[i] = c;
+            i++;
             sum = (c==resp[sum]) ? sum+1 : 0;// esta linea de C# sum se incrementa o se hace cero segun c
             if(sum == len)break;  //ya acabo se sale
         }
@@ -203,28 +210,35 @@
 int init_gprs(void){
         
     if (0 != sendCmdAndWaitForResp("AT\r\n", "OK", 3)){
+        pc.printf("1");
         return -1;
     }
      if (0 != sendCmdAndWaitForResp("ATE0\r\n", "OK", 3)){  //sin eco
+       pc.printf("2");
         return -1;
     }
     if (0 != sendCmdAndWaitForResp("AT+CGATT=1\r\n", "OK", 3)){//inicia conexion GPRS
+        pc.printf("3");
         return -1;
     }
     if (0 != sendCmdAndWaitForResp("AT+CSTT=internet.comcel.com.co,comcel,comcel\r\n", "OK", 3)){ //set apn
+        pc.printf("4");
         return -1;
     }
     if (0 != sendCmdAndWaitForResp("AT+CIICR\r\n", "OK", 3)){ //habilitar conexion inalambrica
+        pc.printf("5");
         return -1;
     }
     
     cleanBuffer(gprsBuffer,25);
     sendCmd("AT+CIFSR\r\n"); //obtener direccion ip
     if(0 != ip_detect()){  //esperar la llegada de un direccion IP
+        pc.printf("6");
         return -1;
     }    
     wait(1);    
     LedVerde=0;//CONEXION OK... PRENDE LED VERDE..
+    pc.printf("Led verde");
     return 0;
 }
 
@@ -269,10 +283,11 @@
     if(init_gprs()<0){
         LedRojo=0;//PRENDE ROJO, APAGA VERDE
         LedVerde=1;
+        pc.printf("\n\nlop1\n\n");
         goto lop1;//NO SE PUEDE RECONECTAR INFINITAMENTE ESTE SALTO ES PROVISIONAL
         //CONTAR LOS INTENTOS Y DAR SEÑAL DE ERROR PERMANENTE
         }
-        button.fall(&off_gprs);//perdida de alimentacion,apagaron carro  ejecuta interupcion
+        //button.fall(&off_gprs);//perdida de alimentacion,apagaron carro  ejecuta interupcion
         //que desconecta la conexion GPRS
     while(1){  //si el GPS tiene conexion y datos se envian coordenadas a pagina web
            LedAzul=1;
@@ -282,26 +297,54 @@
                         la = gps.latitude;
                         sprintf (lon, "%f", lo);//pasa de flotante a caracter
                         sprintf (lat, "%f", la);//pasa de flotante a caracter
-               repetir1:if (0 != sendCmdAndWaitForResp("AT+CIPSTART=TCP,unrobotica.com,80\r\n","OK", 3)){
+                        
+                        GSM.printf("AT+CIPSTART=\"TCP\",\"unrobotica.com\",\"80\"\r\n");
+                        pc.printf("AT+CIPSTART=\"TCP\",\"unrobotica.com\",\"80\"\r\n");
+               /*repetir1:if (0 != sendCmdAndWaitForResp("AT+CIPSTART=TCP,unrobotica.com,80\r\n","OK", 5)){
                         wait(3);
                         LedVerde=1;
                         LedRojo=0;
+                        pc.printf("\n\nRep1\n\n");
                         goto repetir1;//salto provisional debe contar intentos y no hacer nada ya que es imposible conectarse
-                        } 
+                        } */
                             
                repetir2:cleanBuffer(gprsBuffer,10);
-                        if(0 !=sendCmdAndWaitForResp("AT+CIPSEND\r\n","",3)){  //devuelve control+Z
+                        if(0 !=sendCmdAndWaitForResp("AT+CIPSEND\r\n","",5)){  //devuelve control+Z
                         wait(1);
+                        pc.printf("\n\nRep2\n\n");
                         goto repetir2;//salto provisional debe contar intentos y no hacer nada ya que es imposible conectarse
                         }
-                        
-                        GSM.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.0\r\n",lat,lon);
-                        GSM.printf("Host: unrobotica.com\n\n");
+                        for(i=0;i<100;i++)
+                        {
+                            pc.printf("%c",aux[i]);
+                        }  
+                         wait(5);
+                        pc.printf("\n\nRep3\n\n");
+                        GSM.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.1\r\n",lat,lon);
+                        pc.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.1\r\n",lat,lon);
+                        wait(5);
+                        GSM.printf("Host: unrobotica.com\r\n");
+                        wait(5);
                         GSM.printf("\r\n");
-                        if(0 !=sendCmdAndWaitForResp("\n\r","SEND OK",10))
+                        wait(5);
+                        cleanBuffer(aux,100);
+                        //GSM.putc((char)0x1A); 
+                        GSM.printf("\r\n");
+                        for(i=0;i<100;i++)
+                        {
+                            pc.printf("%c",aux[i]);
+                        }  
+                        /*if(0 !=sendCmdAndWaitForResp(">\r\n","SEND OK",10))
                         {
+                         pc.printf("\n -\n");
+                         for(i=0;i<100;i++)
+                        {
+                            pc.printf("%c",aux[i]);
+                        }  
                          
+                         pc.printf("Not - SEND OK");
                         }
+                        else{pc.printf("SEND OK");}*/
                          //mas tarde  devuelve SEND OK ...esto es suficiente para indicarnos que los datos se fueron a la nube
                         //cleanBuffer(gprsBuffer,20);
                         //leer bufer y encontrar respuesta exitosa  devuelve "SEND OK"