KL25Z Send COR or VOL , smms Back Coord. or Ang. read data.
Fork of smms by
Revision 1:b447e3b8fc27, committed 2016-11-30
- 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 |
diff -r c55614493217 -r b447e3b8fc27 main.cpp --- 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