version que corrige algunos errores de sincronizacion probada y funciona ok
Dependencies: DebouncedIn mbed
Fork of ALARMA_FINCA_GSM by
Revision 1:9dc429267e43, committed 2017-11-05
- 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