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 |
--- 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
