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)

Dependencies:   mbed

Files at this revision

API Documentation at this revision

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