ESTE CORTO PROGRAMA DETECTA SI UNA CADENA ENTRANTE EN UNA NEGOCIACION GPRS LA RESPUESTA DEL COMANDO AT+CIFSR DEVUELVE UNA DIRECCION IP VALIDA EL PROGRAMA CUENTA LOS PUNTOS SI SON IGUALES A 3 LA IP ES VALIDA Y LA RESPUESTA DEL MODEN FUE CONFIABLE Y ADECUADA NO SE VERIFICO SI LOS NUMEROS SEPARADOS POR PUNTOS SON MENORES O IGUALES A 255 EL PROGRAMA SE PRUEBA ATRAVES DEL PUERTO SERIE DE LA FRDMKL25Z Y SE ENVIA DESDE UNA TERMINAL SERIE (TERMITE UNA DIR IP, EJEMPLO 255.12.3.100)
Revision 0:90b0b75a5d08, committed 2019-04-02
- Comitter:
- tony63
- Date:
- Tue Apr 02 06:15:30 2019 +0000
- Commit message:
- ESTE CORTO PROGRAMA DETECTA SI UNA CADENA ENTRANTE EN UNA NEGOCIACION GPRS; LA RESPUESTA DEL COMANDO AT+CIFSR DEVUELVE UNA DIRECCION IP VALIDA; EL PROGRAMA CUENTA LOS PUNTOS SI SON IGUALES A 3 LA IP ES VALIDA; Y LA RESPUESTA DEL MODEN FUE CONFIABLE Y A
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 000000000000 -r 90b0b75a5d08 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Apr 02 06:15:30 2019 +0000 @@ -0,0 +1,111 @@ +/* +ESTE CORTO PROGRAMA DETECTA SI UNA CADENA ENTRANTE EN UNA NEGOCIACION GPRS +LA RESPUESTA DEL COMANDO AT+CIFSR DEVUELVE UNA DIRECCION IP VALIDA +EL PROGRAMA CUENTA LOS PUNTOS SI SON IGUALES A 3 LA IP ES VALIDA +Y LA RESPUESTA DEL MODEN FUE CONFIABLE Y ADECUADA +NO SE VERIFICO SI LOS NUMEROS SEPARADOS POR PUNTOS SON MENORES O IGUALES A 255 + +EL PROGRAMA SE PRUEBA ATRAVES DEL PUERTO SERIE DE LA FRDMKL25Z +Y SE ENVIA DESDE UNA TERMINAL SERIE (TERMITE UNA DIR IP, EJEMPLO 255.12.3.100) +*/ +#include "mbed.h" +#include "stdio.h" +#include "string.h" + +int i,ret; +Timer t; +char gprsBuffer[20]; +char buffer[20]; +char resp[20]; +int result; +int z=0; + +Serial pc(USBTX,USBRX);//Configura puerto USB a la consola serial del PC conectado. +//----------------------------------------------------------------------------------------------------------------------------- +// 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 +// incorpora medida de tiempo si se demora mas de tres segundos retorna fracaso con -1 +int readBuffer(char *buffer,int count){ + int i=0; + t.start(); // start timer + while(1) { + while (pc.readable()) { + char c = pc.getc(); + if (c == '\r' || c == '\n') c = '$'; + buffer[i++] = c; + if(i > count)break; + } + if(i > count)break; + if(t.read() > 3) { + t.stop(); + t.reset(); + break; + } + } + wait(0.5); + while(pc.readable()){ // display the other thing.. + char c = pc.getc(); + } + return 0; +} +//-------------------------------------------------------------------------------------------------------------- +// Esta función de abajo limpia o borra todo un "buffer" de tamaño "count", +// lo revisa elemento por elemento y le mete el caracter null que indica fin de cadena. +// No retorna nada. +void cleanBuffer(char *buffer, int count){ + for(int i=0; i < count; i++) { + buffer[i] = '\0'; + } +} +//-------------------------------------------------------------------------------------------------------------- + + +int main() { + while(1){ + if (pc.readable()) { + readBuffer(buffer,15); + pc.printf("%s=\r\n",buffer); + for(i=0;i<15;i++) + { + resp[i]=buffer[i]; + } + pc.printf("respuesta=%s\r\n",resp); + //if(strcmp("255.255.255.255",resp) == 0){ + + cleanBuffer(buffer,20); + for(i=0;i<15;i++){ + if(resp[i]== '.'){ + z++; + } + } + if(z==3){ + pc.printf("llego ip=%d\r\n",z); + } + wait(10); + z=0; + + /* //leer telefono + for(i=0;i<10;i++){ + tel[i]=resp[i+40]; + } + pc.printf("%s-\r\n",tel); + //leer tamaño + for(i=0;i<2;i++){ + tam[i]=resp[i+68]; + } + pc.printf("%s-\r\n",tam); + //leer mensaje + for(i=0;i<14;i++){ + msg[i]=resp[i+70]; + } + pc.printf("%s-\r\n",msg); + + cleanBuffer(gprsBuffer,25); + readBuffer(gprsBuffer,25); + result = gprsBuffer.split(".") + if(result==3){ + */ + +} +} +} \ No newline at end of file
diff -r 000000000000 -r 90b0b75a5d08 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Apr 02 06:15:30 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file