KL25Z Send COR or VOL , smms Back Coord. or Ang. read data.

Dependencies:   GPS_G mbed

Fork of smms by deiwid ricaurte

Files at this revision

API Documentation at this revision

Comitter:
kolive360
Date:
Wed Nov 30 12:50:33 2016 +0000
Parent:
0:c55614493217
Commit message:
KL25Z, COR: GPS + VOL: ANG Read. Send SMMS back DATA

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Nov 28 17:37:47 2016 +0000
+++ b/main.cpp	Wed Nov 30 12:50:33 2016 +0000
@@ -21,7 +21,7 @@
 //---Variables para paquetes---
 char buffer[100],Bkupbuffer[100];//buffer's de almacenación de mensajes
 char celular[10];
-char ENCA[255]={"http://maps.google.com/maps?q="};//para enviar las coordenadas en google encabezado  despues del encabezado
+char ENCA[255]={"estamos aqu http://maps.google.com/maps?q="};//para enviar las coordenadas en google encabezado  despues del encabezado
 char ENCA2[255]={"el voltaje es: "};//para enviar el voltaje
 char DS[255];
 char DS2[255];
@@ -33,9 +33,140 @@
 int longi_entera=0,lati_entera=0,longi_decimal=0,lati_decimal=0;
 //---Variables como contadores---
 int i=0,count=0,bandera=0,gh=0,negativo=0,K=0,C=0,p=0,j=0,z=0,ro=0,st=0,sol=0,aa=0;
+float num1 = 0.0;
+int jj=0;
 //*****************************************************************************************************************************************
 //*****************************************************************************************************************************************
 //es recomendable iniciar siempre oprimiendo el boton de configuración.
+//
+int readBuffer(char *buffer,int count)//Recepción por comunicación serial con el celular
+{
+t.start(); 
+    while(1) 
+    {
+        while (GSM.readable())//si hay algo que leer en la comunicación
+        {
+        char c = GSM.getc();
+        if (c == '\r' || c == '\n') c = '$';//remplaza los espacios y saltos de linea por comodín
+        buffer[i++] = c;//almacena la información en una cadena de caracteres "buffer"
+        if(i > count)break;
+        }
+        if(i > count)break;
+        if(t.read() > 3) 
+        {
+        t.stop();
+        t.reset();
+        break;
+        }
+    }
+wait(0.5);
+    while(GSM.readable())
+    {  
+    char c = GSM.getc();
+    }
+return 0;
+}
+//*****************************************************************************************************************************************
+//*****************************************************************************************************************************************
+void enviar(int LENIN1,char *DS,char *numero)
+{
+GSM.printf("at+cmgs=%d\r\n",13+LENIN1);//Comando para enviar el mensaje, empieza con la longitud total -1
+pc.printf("at+cmgs=%d\r\n",13+LENIN1);
+wait(0.5);
+GSM.printf("0011000A91");//Envía relleno
+pc.printf("0011000A91"); 
+    for(p=0;p<10;p++)//Envía el número del celular trocado
+    {
+    GSM.printf("%c",celular[p]);
+    pc.printf("%c",celular[p]);
+    } 
+GSM.printf("0000AA");//Envía segundo relleno
+pc.printf("0000AA"); 
+    if(LENIN1<=15)//Si es menor a 15 le adiciona un 0 al comienzo de la dirección
+    {
+    pc.printf("0");
+    GSM.printf("0");
+    pc.printf("%X",LENIN1);//Envía la longitud del mensaje
+    GSM.printf("%X",LENIN1);
+    }
+    else
+    {    
+    pc.printf("%2X",LENIN1);
+    GSM.printf("%2X",LENIN1);
+    }
+    for (p=0;p < LENIN1;p++)//envía el número de caracteres del mensaje
+    {
+        if(DS[p]<=15)//agrega ceros a cada número menos a 15 en el mensaje
+        {
+        pc.printf("0");
+        GSM.printf("0");
+        pc.printf("%X",DS[p]);
+        GSM.printf("%X",DS[p]);
+        }
+        else
+        {    
+        pc.printf("%2X",DS[p]&0x000000FF);
+        GSM.printf("%2X",DS[p]&0x000000FF);
+        }
+    }
+wait(0.5);
+GSM.putc(0x1A);//culmina el envío del mensaje
+pc.putc(0x1A);          
+}
+//*****************************************************************************************************************************************
+//*****************************************************************************************************************************************
+void borrar_todo(void)//reinicia todas las varaibles del programa
+{
+    for(ro=0;ro<=50;ro++)
+    {
+    coorden[ro]='\0';
+    }
+    ro=0;
+    for(ro=0;ro<=100;ro++)
+    {
+    buffer[ro]='\0';
+    Bkupbuffer[ro]='\0';
+    }
+    for(ro=0;ro<=255;ro++)
+    {
+    DS[ro]='\0';
+    }
+    ro=0;
+    for(ro=0;ro<=10;ro++)
+    {
+    celular[ro]='\0';
+    }
+ro=0;
+LENIN=0;LENIN1=0;LENOUT=0;
+longi_entera=0;lati_entera=0;longi_decimal=0;lati_decimal=0;
+i=0;count=0;bandera=0;gh=0;negativo=0;K=0;C=0;p=0;j=0;z=0;ro=0;sol=0;st=0;
+ledr=0;
+}
+//*****************************************************************************************************************************************
+//*****************************************************************************************************************************************
+void config(void)//setear la configuración en el celular
+{
+        GSM.printf("AT\r\n");
+        pc.printf("AT\r\n");
+        wait(0.5);
+        GSM.printf("AT+CNMI=1,1\r\n");
+        pc.printf("AT+CNMI=1,1\r\n");
+        wait(0.5);
+        GSM.printf("AT+CMGF=0\r\n");
+        pc.printf("AT+CMGF=0\r\n");
+        wait(0.5);
+        GSM.printf("ATE\r\n");//eco
+        pc.printf("ATE\r\n");
+        wait(0.5);
+        GSM.printf("CBST=0,0,1\r\n");
+        pc.printf("CBST=0,0,1\r\n");
+        wait(0.5);
+        LedVerde=0;
+        LedRojo=0;
+        LedAzul=1;
+
+}
+//fun
 int main(void)
 {
 inicio: 
@@ -54,23 +185,6 @@
         if(aa==0)//si se preciona, se procede a cofigurar el celular con comandos AT
         {
         config();
-        num = input*10;      //agrando el numero de cero a mil
-                int jj=0;
-                pc.printf("\n spp %d",num);
-                while(num>0)
-                {
-                aux[jj]=(num%10)+48;//se toma la parte entera de la longitud y se pasa a ASCII y guarda en el vector coorden
-                num=num/10;
-                if(num<1){
-                    break;
-                    }
-                pc.printf("\n %c",aux[jj]);
-                jj++;
-                }
-                if(num==0){
-                    aux[jj]==48;
-                    }
-                pc.printf("\n sss %c",aux);
         aa=1;
         }           
  //________________________________________________________________________________________________________________________________________
@@ -248,26 +362,29 @@
         }//if ELE
             else if(Bkupbuffer[68]=='D'&& Bkupbuffer[69]=='6'&&Bkupbuffer[70]=='2'&& Bkupbuffer[71]=='7'&& Bkupbuffer[72]=='1'&& Bkupbuffer[73]=='3')//compara mensaje para leer voltje
             {
-                num = input*10;      //agrando el numero de cero a mil
-                int jj=0;
-                pc.printf("\n spp %d",num);
+                num1 = input.read()*3.3f;
+                num = num1*1000;
+                pc.printf("\n %d \n",num);
                 while(num>0)
                 {
                 aux[jj]=(num%10)+48;//se toma la parte entera de la longitud y se pasa a ASCII y guarda en el vector coorden
-                num=num/10;
-                if(num<1){
+                if(num<11){
+                    aux[jj]=(num/1) + 48;
+                    pc.printf("\n %c",aux[jj]);
                     break;
                     }
+                num=num/10;
+                
                 pc.printf("\n %c",aux[jj]);
                 jj++;
                 }
                 if(num==0){
-                    aux[jj]==48;
+                    aux[jj]=(num/1) + 48;
                     }
                 pc.printf("\n sss %c",aux);
                 int z;
                 z=strlen(ENCA2);//hace z = al tamaño de la variable ENCA
-                for(i=j;i>=0;i--)
+                for(i=jj;i>=0;i--)
                 {
                 ENCA2[z]=aux[i];//guarda las coordenadas en un vector auxiliar ENCA en orden
                 z++;
@@ -306,130 +423,3 @@
 }//main
 //*****************************************************************************************************************************************
 //*****************************************************************************************************************************************
-int readBuffer(char *buffer,int count)//Recepción por comunicación serial con el celular
-{
-t.start(); 
-    while(1) 
-    {
-        while (GSM.readable())//si hay algo que leer en la comunicación
-        {
-        char c = GSM.getc();
-        if (c == '\r' || c == '\n') c = '$';//remplaza los espacios y saltos de linea por comodín
-        buffer[i++] = c;//almacena la información en una cadena de caracteres "buffer"
-        if(i > count)break;
-        }
-        if(i > count)break;
-        if(t.read() > 3) 
-        {
-        t.stop();
-        t.reset();
-        break;
-        }
-    }
-wait(0.5);
-    while(GSM.readable())
-    {  
-    char c = GSM.getc();
-    }
-return 0;
-}
-//*****************************************************************************************************************************************
-//*****************************************************************************************************************************************
-void enviar(int LENIN1,char *DS,char *numero)
-{
-GSM.printf("at+cmgs=%d\r\n",13+LENIN1);//Comando para enviar el mensaje, empieza con la longitud total -1
-pc.printf("at+cmgs=%d\r\n",13+LENIN1);
-wait(0.5);
-GSM.printf("0011000A91");//Envía relleno
-pc.printf("0011000A91"); 
-    for(p=0;p<10;p++)//Envía el número del celular trocado
-    {
-    GSM.printf("%c",celular[p]);
-    pc.printf("%c",celular[p]);
-    } 
-GSM.printf("0000AA");//Envía segundo relleno
-pc.printf("0000AA"); 
-    if(LENIN1<=15)//Si es menor a 15 le adiciona un 0 al comienzo de la dirección
-    {
-    pc.printf("0");
-    GSM.printf("0");
-    pc.printf("%X",LENIN1);//Envía la longitud del mensaje
-    GSM.printf("%X",LENIN1);
-    }
-    else
-    {    
-    pc.printf("%2X",LENIN1);
-    GSM.printf("%2X",LENIN1);
-    }
-    for (p=0;p < LENIN1;p++)//envía el número de caracteres del mensaje
-    {
-        if(DS[p]<=15)//agrega ceros a cada número menos a 15 en el mensaje
-        {
-        pc.printf("0");
-        GSM.printf("0");
-        pc.printf("%X",DS[p]);
-        GSM.printf("%X",DS[p]);
-        }
-        else
-        {    
-        pc.printf("%2X",DS[p]&0x000000FF);
-        GSM.printf("%2X",DS[p]&0x000000FF);
-        }
-    }
-wait(0.5);
-GSM.putc(0x1A);//culmina el envío del mensaje
-pc.putc(0x1A);          
-}
-//*****************************************************************************************************************************************
-//*****************************************************************************************************************************************
-void borrar_todo(void)//reinicia todas las varaibles del programa
-{
-    for(ro=0;ro<=50;ro++)
-    {
-    coorden[ro]='\0';
-    }
-    ro=0;
-    for(ro=0;ro<=100;ro++)
-    {
-    buffer[ro]='\0';
-    Bkupbuffer[ro]='\0';
-    }
-    for(ro=0;ro<=255;ro++)
-    {
-    DS[ro]='\0';
-    }
-    ro=0;
-    for(ro=0;ro<=10;ro++)
-    {
-    celular[ro]='\0';
-    }
-ro=0;
-LENIN=0;LENIN1=0;LENOUT=0;
-longi_entera=0;lati_entera=0;longi_decimal=0;lati_decimal=0;
-i=0;count=0;bandera=0;gh=0;negativo=0;K=0;C=0;p=0;j=0;z=0;ro=0;sol=0;st=0;
-ledr=0;
-}
-//*****************************************************************************************************************************************
-//*****************************************************************************************************************************************
-void config(void)//setear la configuración en el celular
-{
-        GSM.printf("AT\r\n");
-        pc.printf("AT\r\n");
-        wait(0.5);
-        GSM.printf("AT+CNMI=1,1\r\n");
-        pc.printf("AT+CNMI=1,1\r\n");
-        wait(0.5);
-        GSM.printf("AT+CMGF=0\r\n");
-        pc.printf("AT+CMGF=0\r\n");
-        wait(0.5);
-        GSM.printf("ATE\r\n");//eco
-        pc.printf("ATE\r\n");
-        wait(0.5);
-        GSM.printf("CBST=0,0,1\r\n");
-        pc.printf("CBST=0,0,1\r\n");
-        wait(0.5);
-        LedVerde=0;
-        LedRojo=0;
-        LedAzul=1;
-
-}
\ No newline at end of file