PRUEBA GSM

Dependencies:   mbed

Fork of leerr_voltaje_GSM by Gustavo Ramirez

Revision:
1:1eef577dc44b
Parent:
0:d7d64e8b652a
diff -r d7d64e8b652a -r 1eef577dc44b main.cpp
--- a/main.cpp	Sat Nov 21 16:58:55 2015 +0000
+++ b/main.cpp	Tue Nov 28 21:18:02 2017 +0000
@@ -1,12 +1,12 @@
 /*==========================================================================================
-PROGRAMA PARA EL ENVÍO DE MEDICIONES ANALÓGICAS MEDIANTE RED GSM.
-ING. JUAN PABLO VIANA VILLA
+PROGRAMA PARA EL ENVÍO DE MEDICIONES ANALÓGICAS Y RECEPCION DE MENSAJES MEDIANTE RED GSM.
 UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN
 
 DESCRIPCIÓN DEL FUNCIONAMIENTO:
 El programa comienza realizando la inicialización del modem GSM mediante el envío de comandos "AT", se configuraron 10 intentos de conexión, en caso de no recibir respuesta del modem el programa terminará y será necesario reiniciar la plataforma KL25z.
 Una vez detectada actividad por parte del modem el programa ingresa en un bucle infinito y se pone a la espera de recibir un mensaje de texto.
 El programa está constantemente tratando de leer el modem, una vez detecta el mensaje SMS entrante (+CMTI), envía al modem el comando AT para la lectura de la cadena recibida y se activa una variable bandera para el envío de la respuesta.
+
 NOTA: La cadena entrante sólo es útil para encontrar el número remitente, no se programó restricción alguna sobre el mensaje (sirve cualquiera).
 Una vez leído el mensaje e identificado el remitente se sensa el valor de entrada analógica como valor de punto flotante. Se incluye una secuencia de líneas que convierten el valor medido en caracteres ASCII de la forma "Volt=x.xV" y estos a su vez son convertidos en octetos para proceder a su envío.
 La trama PDU generada se despliega en pantalla en el pc monitor y es enviada al modem GSM finalizando con el caracter ASCII submit (26 - 0x1A) para de esta manera finalizar la transmisión del valor.
@@ -347,34 +347,34 @@
  {  
 pc.printf("****************************************************************************\r\n");     
 //Las siguientes líneas tienen como fin leer el voltaje y convertirlo en ASCII;
-V_float=A.read()*3.3; 
-V_int=V_float*10; //Multiplico por 10 y almaceno en una variable tipo entero para tomar un decimal y eliminar el punto flotante;
-TEMP=V_int/10; 
-DE[5]=TEMP+48; //Convierto el valor el caracter;
-V_int = V_int-TEMP*10;
+V_float=A.read()*3.3;  
+V_int=V_float*10;      //Multiplico por 10 y almaceno en una variable tipo entero para tomar un decimal y eliminar el punto flotante;
+TEMP=V_int/10;         //Divido entre 10 y almacno en una variable tipo entero.
+DE[5]=TEMP+48;          //Convierto el valor en caracter y lo almaceno en D[5];
+V_int = V_int-TEMP*10;  //
 DE[7]=V_int + 48;//Convierto el valor en caracter;      
 //Las siguientes líneas tienen por objeto la conversión de una cadena de caracteres a octetos que puedan enviarse mediante PDU;
         
         
-        DE[0]=86;//V
-        DE[1]=111;//o
-        DE[2]=108;//l
-        DE[3]=116;//t
-        DE[4]=61;//=
-        //D[5]=;
-        DE[6]=46;//.
-        //D[7]=;//.
-        DE[8]=86;//V
+        DE[0]=86;   //cadena de caracteres que corresponde a V
+        DE[1]=111;  //cadena de caracteres que corresponde a o
+        DE[2]=108;  //cadena de caracteres que corresponde a l
+        DE[3]=116;  //cadena de caracteres que corresponde a t
+        DE[4]=61;   //cadena de caracteres que corresponde a =
+        //D[5]=;   //Imprime el valor entero del voltaje leido,es decir si se lee : 3.5, imprime el 3
+        DE[6]=46;   //. Punto decimal o flotante
+        //D[7]=;    //Imprime el valor decimal del voltaje leido, es decir si se lee : 3.5, imprime el 5
+        DE[8]=86;   //cadena de caracteres que corresponde a V
         
         
         pc.printf("\r\nVoltaje: %s\r\n", DE);
-        LENIN=strlen(DE); //Se mide el tamaño de la cadena;
+        LENIN=strlen(DE);       //Se mide el tamaño de la cadena;
         for(i=0;i<LENIN;i++)
         {DE[i]=DE[i]&0x000000FF;} //Convierto en formato 0x00;
         
         for (i=0;i < LENIN;i++)
         {
-            DS[i]=(DE[i]>>i|DE[i+1]<<(7-i));
+            DS[i]=(DE[i]>>i|DE[i+1]<<(7-i)); //Convierto octetos a septetos
             LENOUT=i+1;
             if(DS[i]==0){DS[i]='\0';break;}
         }        
@@ -414,7 +414,7 @@
              
             pc.printf("%s\r\n",resp);
             if(strcmp("$$+CM",resp) == 0){  //COMPARA resp con "+CMTI"
-                pc.printf("****************************************************************************\r\n");
+                pc.printf("--------------------------------------------------------\r\n");
                 pc.printf("Nuevo Mensaje de texto. \r\n");
                 EnviarMensaje=1;
                 cleanBuffer(buffer,10);