version que corrige algunos errores de sincronizacion probada y funciona ok

Dependencies:   DebouncedIn mbed

Fork of ALARMA_FINCA_GSM by Gustavo Ramirez

Files at this revision

API Documentation at this revision

Comitter:
tony63
Date:
Sun Nov 05 07:15:28 2017 +0000
Parent:
0:f7aa7972da4d
Commit message:
actualizacion de algunos errores de sincronizacion

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r f7aa7972da4d -r 9dc429267e43 main.cpp
--- a/main.cpp	Fri Oct 21 20:28:49 2016 +0000
+++ b/main.cpp	Sun Nov 05 07:15:28 2017 +0000
@@ -27,11 +27,11 @@
 DebouncedIn PIR(PTA13);  //señal que inicia el envio del mensaje
 Serial GSM(PTE0,PTE1); //Configura puerto UART de la FRDMKL25Z
 Serial pc(USBTX,USBRX);//Configura puerto USB a la consola serial del PC conectado.
-char buffer[50];
-char resp[10];
-char tel[10];
-char tam [2];
-char msg [10];
+char buffer[100];
+char resp[6];
+char tel[21];
+char tam [3];
+char msg [15];
 //***************************************FUNCIONES EN C*********************
 //****************************************************************************************************************
 //esta funcion de abajo lee todo un bufer hasta encontrar CR o LF y el resto lo rellena de
@@ -50,7 +50,7 @@
             if(i > count)break;
         }
         if(i > count)break;
-        if(t.read() > 3) {
+        if(t.read() > 5) {
             t.stop();
             t.reset();
             break;
@@ -71,7 +71,7 @@
 void cleanBuffer(char *buffer, int count)
 {
     for(int i=0; i < count; i++) {
-        buffer[i] = '\0';
+        buffer[i] = 0;
     }
 }
 /* esta funcion de abajo envia un comando parametrizado como cadena
@@ -222,7 +222,7 @@
 //inicia la recepcion de un mensaje de texto
 while(1){
        if (GSM.readable()) {
-            readBuffer(buffer,100);
+            readBuffer(buffer,6);
             pc.printf("%s\r\n",buffer);
             for(i=0;i<5;i++)
             {
@@ -230,31 +230,38 @@
             }  
             pc.printf("%s\r\n",resp);
             if(strcmp("$$+CM",resp) == 0){  //COMPARA resp con "+CMTI"
-                pc.printf("llego MSG\r\n");
-                cleanBuffer(buffer,10);
-                wait(0.5);
-                GSM.printf("AT+CMGL=0\r\n");//envio comando para leer mensaje
+                pc.printf("llegoo MSG\r\n");
+                cleanBuffer(buffer,6);
+                GSM.printf("AT+CMGL=0");//envio comando para leer mensaje
+                GSM.putc(0x0D);//envoi du caractere \n
                 pc.printf("AT+CMGL=0\r\n");
-                //if (GSM.readable()) {
-                GSM.printf("AT+CMGD=0\r\n");    
-                readBuffer(buffer,100);
-                pc.printf("%s\r\n",buffer);
-                wait(5);
+        loop1:    if (GSM.readable()) {
+                    readBuffer(buffer,100);
+                    pc.printf("%s\r\n",buffer);
+                    goto seguir1;
+                    }
+                    goto loop1;
                    //leer telefono
-                for(i=0;i<10;i++){
-                       tel[i]=buffer[i+40];
+   seguir1:        for(i=0;i<10;i++){
+                       tel[i]=buffer[i+50];
                        }
                 pc.printf("%s-\r\n",tel);        
                 //leer tamaño
                    for(i=0;i<2;i++){
-                       tam[i]=buffer[i+68];
+                       tam[i]=buffer[i+78];
                    }
                    pc.printf("%s-\r\n",tam);        
                    //leer mensaje
                     for(i=0;i<14;i++){
-                       msg[i]=buffer[i+70];
+                       msg[i]=buffer[i+80];
                    }
-                   pc.printf("%s-\r\n",msg);        
+                   pc.printf("%s-\r\n",msg);
+                   GSM.printf("AT+CMGD=0");//envio comando para borrar mensaje
+                   GSM.putc(0x0D);//envoi du caractere \n
+                   wait(1);
+                   GSM.printf("AT+CMGD=1");//envio comando para borrar mensaje
+                   GSM.putc(0x0D);//envoi du caractere \n
+                   wait(1);            
                    //decodificar mensaje
                    //comparar mensaje
                    if(strcmp("417658DE0EC700",msg) == 0){  //COMPARA resp con "417658DE0EC700" que es Alarma1
@@ -299,6 +306,15 @@
         GSM.printf("0011000A9113223717370000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10");
         wait_ms(200);
         GSM.putc((char)0x1A);
+        wait(10);
+        ///si el operador contesta con mensaje borrar de nuevo
+                   GSM.printf("AT+CMGD=0");//envio comando para borrar mensaje
+                   GSM.putc(0x0D);//envoi du caractere \n
+                   wait(1);
+                   GSM.printf("AT+CMGD=1");//envio comando para borrar mensaje
+                   GSM.putc(0x0D);//envoi du caractere \n
+                   wait(1);
+        
         }
         }
 
diff -r f7aa7972da4d -r 9dc429267e43 mbed.bld
--- a/mbed.bld	Fri Oct 21 20:28:49 2016 +0000
+++ b/mbed.bld	Sun Nov 05 07:15:28 2017 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/aae6fcc7d9bb
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/fb8e0ae1cceb
\ No newline at end of file