GPS y GSM con envío de cadena de google maps.

Dependencies:   GPSGSM TextLCD mbed

Fork of TAREA_4_GPS_GSM by joshema 216

Committer:
AaronGonzalez
Date:
Fri Jun 03 01:03:02 2016 +0000
Revision:
1:e2bd083802c0
Parent:
0:b2a6aa7c0c8c
Child:
2:ea6275d1222f
Tarea GPS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AaronGonzalez 1:e2bd083802c0 1 ///Tarea de comunicación celular y módulo GPS
AaronGonzalez 1:e2bd083802c0 2 //programa para celular siemens que recibe un mensaje de texto y activa una salida en formato
procesadores_FAC 0:b2a6aa7c0c8c 3 //pdu hex
procesadores_FAC 0:b2a6aa7c0c8c 4 #include "mbed.h"
procesadores_FAC 0:b2a6aa7c0c8c 5 #include "DebouncedIn.h"
procesadores_FAC 0:b2a6aa7c0c8c 6 #include "stdio.h"
procesadores_FAC 0:b2a6aa7c0c8c 7 #include "string.h"
procesadores_FAC 0:b2a6aa7c0c8c 8 #include "GPS.h"
AaronGonzalez 1:e2bd083802c0 9 //Salidas digitales
procesadores_FAC 0:b2a6aa7c0c8c 10 Timer t;
procesadores_FAC 0:b2a6aa7c0c8c 11 DigitalOut LedVerde(LED2);
procesadores_FAC 0:b2a6aa7c0c8c 12 DigitalOut LedRojo(LED1);
procesadores_FAC 0:b2a6aa7c0c8c 13 DigitalOut LedAzul(LED3);
procesadores_FAC 0:b2a6aa7c0c8c 14
AaronGonzalez 1:e2bd083802c0 15 //Declaración de los puertos de la FRDm, modem y GPS
procesadores_FAC 0:b2a6aa7c0c8c 16
procesadores_FAC 0:b2a6aa7c0c8c 17 Serial GSM(PTE0,PTE1); //puertos del FRDM para el modem
procesadores_FAC 0:b2a6aa7c0c8c 18 Serial pc(USBTX,USBRX);
procesadores_FAC 0:b2a6aa7c0c8c 19 GPS gps(PTE22, PTE23); // Puerto del FDRM para el gps
procesadores_FAC 0:b2a6aa7c0c8c 20
AaronGonzalez 1:e2bd083802c0 21 //Declaración de variables
procesadores_FAC 0:b2a6aa7c0c8c 22
AaronGonzalez 1:e2bd083802c0 23 //Cadenas de caracteres con las que se va a trabajar
procesadores_FAC 0:b2a6aa7c0c8c 24 short DE[255];
procesadores_FAC 0:b2a6aa7c0c8c 25 short DS[255];
procesadores_FAC 0:b2a6aa7c0c8c 26 char buffer[512];
procesadores_FAC 0:b2a6aa7c0c8c 27 char buffermsg[100];
procesadores_FAC 0:b2a6aa7c0c8c 28 char buffer1[13];
procesadores_FAC 0:b2a6aa7c0c8c 29 char mensaje[100];
AaronGonzalez 1:e2bd083802c0 30 //Variables enteras y caracteres
procesadores_FAC 0:b2a6aa7c0c8c 31 int count;
procesadores_FAC 0:b2a6aa7c0c8c 32 int i,K,LENOUT,LENIN,C;
procesadores_FAC 0:b2a6aa7c0c8c 33 int c=0;
procesadores_FAC 0:b2a6aa7c0c8c 34 int cont=0;
procesadores_FAC 0:b2a6aa7c0c8c 35 unsigned char CtrlZ = 0x1A;
procesadores_FAC 0:b2a6aa7c0c8c 36 bool Flag = false;
procesadores_FAC 0:b2a6aa7c0c8c 37 char r[]="";
procesadores_FAC 0:b2a6aa7c0c8c 38 char msg[256];
procesadores_FAC 0:b2a6aa7c0c8c 39 char char1;
procesadores_FAC 0:b2a6aa7c0c8c 40 int index;
AaronGonzalez 1:e2bd083802c0 41 //Adquisición de números de teléfono, emisor - receptor
AaronGonzalez 1:e2bd083802c0 42 char Tel[15];
AaronGonzalez 1:e2bd083802c0 43 char cel[15];
AaronGonzalez 1:e2bd083802c0 44 char ojala[15]; // OJO
procesadores_FAC 0:b2a6aa7c0c8c 45
AaronGonzalez 1:e2bd083802c0 46 //El GPS entregará al celular coordenadas expresadas en latitud y longitud según la ubicación que encuentre
AaronGonzalez 1:e2bd083802c0 47 // por tanto se declaran estas variables:
procesadores_FAC 0:b2a6aa7c0c8c 48
procesadores_FAC 0:b2a6aa7c0c8c 49 float lo,la;
AaronGonzalez 1:e2bd083802c0 50 char clo[255], cla[255]; //Cadenas a capturar para latitud y longitud
procesadores_FAC 0:b2a6aa7c0c8c 51 int LENINlo,LENINla,LENINla_lo;
procesadores_FAC 0:b2a6aa7c0c8c 52 char la_lo[255];
AaronGonzalez 1:e2bd083802c0 53 //Cadena de google maps
procesadores_FAC 0:b2a6aa7c0c8c 54 char http2[255];
procesadores_FAC 0:b2a6aa7c0c8c 55 char http[] = "http://maps.google.com/maps?q=";
procesadores_FAC 0:b2a6aa7c0c8c 56
AaronGonzalez 1:e2bd083802c0 57 //Conversión octetos septetos
procesadores_FAC 0:b2a6aa7c0c8c 58
procesadores_FAC 0:b2a6aa7c0c8c 59 int iht,Kht,ChtLENOUTht,LENINht;
procesadores_FAC 0:b2a6aa7c0c8c 60 int ioct,Koct,LENOUToct,LENINoct,Coct;
procesadores_FAC 0:b2a6aa7c0c8c 61 char DEoct[255];
procesadores_FAC 0:b2a6aa7c0c8c 62 char DSoct[255];
procesadores_FAC 0:b2a6aa7c0c8c 63 char buf[100];
procesadores_FAC 0:b2a6aa7c0c8c 64
AaronGonzalez 1:e2bd083802c0 65 //Relleno de datos - con el fin de que tengan el mismo número de caracteres
procesadores_FAC 0:b2a6aa7c0c8c 66
procesadores_FAC 0:b2a6aa7c0c8c 67 char relle1[]= "0011000A91";
procesadores_FAC 0:b2a6aa7c0c8c 68 char relle2[]= "10000AA";
procesadores_FAC 0:b2a6aa7c0c8c 69 char relle3[]= "68";
procesadores_FAC 0:b2a6aa7c0c8c 70
AaronGonzalez 1:e2bd083802c0 71 //Funciones del programa
procesadores_FAC 0:b2a6aa7c0c8c 72
procesadores_FAC 0:b2a6aa7c0c8c 73 int readBuffer(char *buffer,int count)
procesadores_FAC 0:b2a6aa7c0c8c 74 {
procesadores_FAC 0:b2a6aa7c0c8c 75 int i=0;
procesadores_FAC 0:b2a6aa7c0c8c 76 t.start();
procesadores_FAC 0:b2a6aa7c0c8c 77 while(1) {
procesadores_FAC 0:b2a6aa7c0c8c 78 while (GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 79 char c = GSM.getc();
procesadores_FAC 0:b2a6aa7c0c8c 80 if (c == '\r' || c == '\n') c = '$';
procesadores_FAC 0:b2a6aa7c0c8c 81 buffer[i++] = c;
procesadores_FAC 0:b2a6aa7c0c8c 82 if(i > count)break;
procesadores_FAC 0:b2a6aa7c0c8c 83 }
procesadores_FAC 0:b2a6aa7c0c8c 84 if(i > count)break; // ojooo
procesadores_FAC 0:b2a6aa7c0c8c 85 if(t.read() > 3) {
procesadores_FAC 0:b2a6aa7c0c8c 86 t.stop();
procesadores_FAC 0:b2a6aa7c0c8c 87 t.reset();
procesadores_FAC 0:b2a6aa7c0c8c 88 break;
procesadores_FAC 0:b2a6aa7c0c8c 89 }
procesadores_FAC 0:b2a6aa7c0c8c 90 }
procesadores_FAC 0:b2a6aa7c0c8c 91
procesadores_FAC 0:b2a6aa7c0c8c 92 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 93 while(GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 94 char c = GSM.getc();
procesadores_FAC 0:b2a6aa7c0c8c 95 }
procesadores_FAC 0:b2a6aa7c0c8c 96 return 0;
procesadores_FAC 0:b2a6aa7c0c8c 97 }
procesadores_FAC 0:b2a6aa7c0c8c 98
AaronGonzalez 1:e2bd083802c0 99 //Programas a ejecutar
procesadores_FAC 0:b2a6aa7c0c8c 100
procesadores_FAC 0:b2a6aa7c0c8c 101 int main(void)
procesadores_FAC 0:b2a6aa7c0c8c 102 {
AaronGonzalez 1:e2bd083802c0 103 //LED´S en alto
procesadores_FAC 0:b2a6aa7c0c8c 104 LedVerde=1;
procesadores_FAC 0:b2a6aa7c0c8c 105 LedRojo=1;
procesadores_FAC 0:b2a6aa7c0c8c 106 LedAzul=1;
AaronGonzalez 1:e2bd083802c0 107 //Tasa de baudios
procesadores_FAC 0:b2a6aa7c0c8c 108 GSM.baud(9600);
procesadores_FAC 0:b2a6aa7c0c8c 109 GSM.format(8,Serial::None,1);
AaronGonzalez 1:e2bd083802c0 110 //Lectura del modem
procesadores_FAC 0:b2a6aa7c0c8c 111 GSM.printf("AT\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 112 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 113 GSM.printf("AT+CNMI=1,1\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 114 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 115 GSM.printf("AT+CMGF=0\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 116 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 117 GSM.printf("ATE\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 118 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 119 GSM.printf("CBST=0,0,1\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 120 wait(0.5);
AaronGonzalez 1:e2bd083802c0 121
procesadores_FAC 0:b2a6aa7c0c8c 122 while(1){
AaronGonzalez 1:e2bd083802c0 123 //Lectura del buffer
procesadores_FAC 0:b2a6aa7c0c8c 124 if (GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 125 readBuffer(buffer,100);
procesadores_FAC 0:b2a6aa7c0c8c 126 pc.printf("buffer= %s\n\r ",buffer);
procesadores_FAC 0:b2a6aa7c0c8c 127 pc.printf("buffer= %c %c\n\r ",buffer[10],buffer[11]);
procesadores_FAC 0:b2a6aa7c0c8c 128 if(buffer[67]=='A'){for(i=0;i<86;i++)
procesadores_FAC 0:b2a6aa7c0c8c 129 {buffermsg[i]=buffer[i];}
procesadores_FAC 0:b2a6aa7c0c8c 130 pc.printf("mensaje= %s\n\r ",buffermsg);
procesadores_FAC 0:b2a6aa7c0c8c 131 pc.printf("mensaje[72]= %c mensaje[73]=%c\n\r ",buffermsg[72],buffermsg[73]);
procesadores_FAC 0:b2a6aa7c0c8c 132 buffer[67]='c';
AaronGonzalez 1:e2bd083802c0 133 //Si llegan estos tres tipos de mensajes...
procesadores_FAC 0:b2a6aa7c0c8c 134 if (buffermsg[69] == '2'){ // PARA CUANDO LA CLAVE ES On
procesadores_FAC 0:b2a6aa7c0c8c 135 LENIN=2; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 136 DE[0]=0x47;
procesadores_FAC 0:b2a6aa7c0c8c 137 DE[1]=0x37;
procesadores_FAC 0:b2a6aa7c0c8c 138 }
procesadores_FAC 0:b2a6aa7c0c8c 139 if (buffermsg[69] == '3'&& buffermsg[70] == '4'){ // PARA CUANDO LA CLAVE ES Off
procesadores_FAC 0:b2a6aa7c0c8c 140 LENIN=3; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 141 DE[0]=0x4F;
procesadores_FAC 0:b2a6aa7c0c8c 142 DE[1]=0xB3;
procesadores_FAC 0:b2a6aa7c0c8c 143 DE[2]=0x19;
procesadores_FAC 0:b2a6aa7c0c8c 144 }
AaronGonzalez 1:e2bd083802c0 145 //Recepción de las coordenadas otorgadas por el GPS
procesadores_FAC 0:b2a6aa7c0c8c 146 if (buffermsg[69] == '3'&& buffermsg[70] == 'C'){ // PARA CUANDO LA CLAVE ES Cor
procesadores_FAC 0:b2a6aa7c0c8c 147 LENIN=3; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 148 DE[0]=0xC3;
procesadores_FAC 0:b2a6aa7c0c8c 149 DE[1]=0xB7;
procesadores_FAC 0:b2a6aa7c0c8c 150 DE[2]=0x1C;
procesadores_FAC 0:b2a6aa7c0c8c 151 }
procesadores_FAC 0:b2a6aa7c0c8c 152
procesadores_FAC 0:b2a6aa7c0c8c 153 LENOUT= LENIN*8/7;
procesadores_FAC 0:b2a6aa7c0c8c 154 K=7;
procesadores_FAC 0:b2a6aa7c0c8c 155 C=0;
procesadores_FAC 0:b2a6aa7c0c8c 156 DS[0]=DE[0] & 0x7F; // la primera sola
procesadores_FAC 0:b2a6aa7c0c8c 157 pc.printf("%2X\n",DS[0]);
procesadores_FAC 0:b2a6aa7c0c8c 158
procesadores_FAC 0:b2a6aa7c0c8c 159 for (i=1;i < LENOUT;i++){ // inicia el algoritmo
procesadores_FAC 0:b2a6aa7c0c8c 160 DS[i]=(DE[i-1-C]>>K | DE[i-C]<<(8-K))& 0x7F; //valido para todos
procesadores_FAC 0:b2a6aa7c0c8c 161 pc.printf("%2X\n",DS[i]);
procesadores_FAC 0:b2a6aa7c0c8c 162
procesadores_FAC 0:b2a6aa7c0c8c 163 if (K==0) {K=8;C++;}
procesadores_FAC 0:b2a6aa7c0c8c 164 K--;
procesadores_FAC 0:b2a6aa7c0c8c 165 }
procesadores_FAC 0:b2a6aa7c0c8c 166
procesadores_FAC 0:b2a6aa7c0c8c 167 for (i=0 ;i<=9;i++)
procesadores_FAC 0:b2a6aa7c0c8c 168 {
procesadores_FAC 0:b2a6aa7c0c8c 169 Tel[i] = buffermsg[40+i];
procesadores_FAC 0:b2a6aa7c0c8c 170 }
AaronGonzalez 1:e2bd083802c0 171 //Lectura del número de teléfono
procesadores_FAC 0:b2a6aa7c0c8c 172 pc.printf("\n");
AaronGonzalez 1:e2bd083802c0 173 pc.printf("%c%c%c%c%c%c%c%c%c%c",Tel[1],Tel[0],Tel[3],Tel[2],Tel[5],Tel[4],Tel[7],Tel[6],Tel[9],Tel[8]);
AaronGonzalez 1:e2bd083802c0 174 }
procesadores_FAC 0:b2a6aa7c0c8c 175 if(buffer[10]=='S'&& buffer[11]=='M'){
procesadores_FAC 0:b2a6aa7c0c8c 176 for(i=0;i<5;i++)
procesadores_FAC 0:b2a6aa7c0c8c 177 {buffer1[i]=buffer[2+i];}
procesadores_FAC 0:b2a6aa7c0c8c 178 pc.printf("buffer1= %s\n\r ",buffer1);
procesadores_FAC 0:b2a6aa7c0c8c 179 buffer[10]='c';
procesadores_FAC 0:b2a6aa7c0c8c 180 buffer[11]='c';
procesadores_FAC 0:b2a6aa7c0c8c 181 }
procesadores_FAC 0:b2a6aa7c0c8c 182 if(buffer1[3]=='T'){pc.printf("AT+CMGL=0\n\r");
procesadores_FAC 0:b2a6aa7c0c8c 183 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 184 GSM.printf("AT+CMGL=0\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 185 buffer1[3]='p';
AaronGonzalez 1:e2bd083802c0 186 }
procesadores_FAC 0:b2a6aa7c0c8c 187 if(DS[0]-67 == 0&& DS[1]-111==0) // Cor en octetos es 436f72
procesadores_FAC 0:b2a6aa7c0c8c 188 {
procesadores_FAC 0:b2a6aa7c0c8c 189 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 190 LedAzul=0;
procesadores_FAC 0:b2a6aa7c0c8c 191
procesadores_FAC 0:b2a6aa7c0c8c 192 DS[0] = '\0';
procesadores_FAC 0:b2a6aa7c0c8c 193 DS[1] = '\0';
AaronGonzalez 1:e2bd083802c0 194 //Entrega los datos de longitud y latitud
procesadores_FAC 0:b2a6aa7c0c8c 195 if(gps.sample())
procesadores_FAC 0:b2a6aa7c0c8c 196 {
procesadores_FAC 0:b2a6aa7c0c8c 197 lo =gps.longitude;
procesadores_FAC 0:b2a6aa7c0c8c 198 la =gps.latitude;
procesadores_FAC 0:b2a6aa7c0c8c 199 pc.printf("longitud_entera=%f, Latitud entera=%f\n", lo, la);
AaronGonzalez 1:e2bd083802c0 200 wait(0.5);
AaronGonzalez 1:e2bd083802c0 201
procesadores_FAC 0:b2a6aa7c0c8c 202 //LONGITUD/
procesadores_FAC 0:b2a6aa7c0c8c 203 sprintf (clo, "%f", lo);
procesadores_FAC 0:b2a6aa7c0c8c 204 pc.printf ( "\nlongitud = %s\n",clo);
procesadores_FAC 0:b2a6aa7c0c8c 205 LENINlo=strlen(clo);
AaronGonzalez 1:e2bd083802c0 206 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 207
procesadores_FAC 0:b2a6aa7c0c8c 208 //LATITUD/
procesadores_FAC 0:b2a6aa7c0c8c 209 sprintf (cla, "%f", la);
procesadores_FAC 0:b2a6aa7c0c8c 210 pc.printf ( "\nlatitud = %s\n",cla);
procesadores_FAC 0:b2a6aa7c0c8c 211 LENINla=strlen(cla);
AaronGonzalez 1:e2bd083802c0 212
AaronGonzalez 1:e2bd083802c0 213 //Concatenando las cadenas de Latitud y Longitud...
procesadores_FAC 0:b2a6aa7c0c8c 214
procesadores_FAC 0:b2a6aa7c0c8c 215 strcpy(la_lo,cla);
procesadores_FAC 0:b2a6aa7c0c8c 216 strcat(la_lo,",");
procesadores_FAC 0:b2a6aa7c0c8c 217 strcat(la_lo,clo);
procesadores_FAC 0:b2a6aa7c0c8c 218
procesadores_FAC 0:b2a6aa7c0c8c 219 pc.printf ( "\nla_lo: %s\n",la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 220
procesadores_FAC 0:b2a6aa7c0c8c 221 LENINla_lo=strlen(la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 222
AaronGonzalez 1:e2bd083802c0 223 //Ahora se juntan las cadenas obtenidas y se agrega el protocolo de transferencia de hipertextos http
procesadores_FAC 0:b2a6aa7c0c8c 224 strcpy(http2,http);
procesadores_FAC 0:b2a6aa7c0c8c 225 strcat(http2,la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 226 pc.printf ( "%s\n",http2);
procesadores_FAC 0:b2a6aa7c0c8c 227 pc.printf ( "\n" );
procesadores_FAC 0:b2a6aa7c0c8c 228
procesadores_FAC 0:b2a6aa7c0c8c 229
AaronGonzalez 1:e2bd083802c0 230 //Conversión de la cadena de http2 de octetos a septetos
procesadores_FAC 0:b2a6aa7c0c8c 231
procesadores_FAC 0:b2a6aa7c0c8c 232 LENINht=strlen(http2);
procesadores_FAC 0:b2a6aa7c0c8c 233 pc.printf("%d\n",LENINht);
procesadores_FAC 0:b2a6aa7c0c8c 234 for (iht=0;iht<LENINht;iht++){
procesadores_FAC 0:b2a6aa7c0c8c 235 pc.printf("%2X",http2[iht]);
procesadores_FAC 0:b2a6aa7c0c8c 236 }
procesadores_FAC 0:b2a6aa7c0c8c 237 pc.printf ( "\n" );
procesadores_FAC 0:b2a6aa7c0c8c 238
procesadores_FAC 0:b2a6aa7c0c8c 239 LENINoct=strlen(http2);
procesadores_FAC 0:b2a6aa7c0c8c 240 pc.printf("%d\n",LENINoct);
procesadores_FAC 0:b2a6aa7c0c8c 241 for (ioct=0;ioct<LENINoct;ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 242 {
procesadores_FAC 0:b2a6aa7c0c8c 243 DEoct[ioct]=http2[ioct];
procesadores_FAC 0:b2a6aa7c0c8c 244 pc.printf("%2X,%d\n",DEoct[ioct],ioct);
procesadores_FAC 0:b2a6aa7c0c8c 245 }
AaronGonzalez 1:e2bd083802c0 246
procesadores_FAC 0:b2a6aa7c0c8c 247 Koct=0;
procesadores_FAC 0:b2a6aa7c0c8c 248 Coct=0;
procesadores_FAC 0:b2a6aa7c0c8c 249
procesadores_FAC 0:b2a6aa7c0c8c 250 for (ioct=0;ioct < LENINoct;ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 251 {
procesadores_FAC 0:b2a6aa7c0c8c 252 DSoct[ioct]=DEoct[ioct+Coct]>>Koct | DEoct[ioct+Coct+1]<<(7-Koct);
procesadores_FAC 0:b2a6aa7c0c8c 253 if (DSoct[ioct]==0x00){
procesadores_FAC 0:b2a6aa7c0c8c 254 LENOUToct=ioct;
procesadores_FAC 0:b2a6aa7c0c8c 255 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 256 pc.printf("%s",DEoct);
procesadores_FAC 0:b2a6aa7c0c8c 257 pc.printf("out =%d",LENOUToct);
procesadores_FAC 0:b2a6aa7c0c8c 258 for (ioct=0;ioct<LENOUToct;ioct++){
procesadores_FAC 0:b2a6aa7c0c8c 259 pc.printf("%2X,%d\r\n",DSoct[ioct]&0x000000FF,ioct);
procesadores_FAC 0:b2a6aa7c0c8c 260 }
procesadores_FAC 0:b2a6aa7c0c8c 261 }
procesadores_FAC 0:b2a6aa7c0c8c 262
procesadores_FAC 0:b2a6aa7c0c8c 263 Koct++;
procesadores_FAC 0:b2a6aa7c0c8c 264 if (Koct==7)
procesadores_FAC 0:b2a6aa7c0c8c 265 {
procesadores_FAC 0:b2a6aa7c0c8c 266 Koct=0;Coct++;
procesadores_FAC 0:b2a6aa7c0c8c 267 } // se chequea que ya se acabaron los bits en un ciclo de conversion.
procesadores_FAC 0:b2a6aa7c0c8c 268 }
procesadores_FAC 0:b2a6aa7c0c8c 269
AaronGonzalez 1:e2bd083802c0 270 //Concatenación de los datos relleno y el número de celular
procesadores_FAC 0:b2a6aa7c0c8c 271 wait(5);
procesadores_FAC 0:b2a6aa7c0c8c 272 index=56;
procesadores_FAC 0:b2a6aa7c0c8c 273 GSM.printf("AT+CMGS=%d\r\n",index);
procesadores_FAC 0:b2a6aa7c0c8c 274 pc.printf("AT+CMGS=%d\r\n",index);
procesadores_FAC 0:b2a6aa7c0c8c 275 pc.printf("0011000A91");
procesadores_FAC 0:b2a6aa7c0c8c 276 GSM.printf("0011000A91");
procesadores_FAC 0:b2a6aa7c0c8c 277 for (i=0 ;i<=9;i++)
procesadores_FAC 0:b2a6aa7c0c8c 278 {
procesadores_FAC 0:b2a6aa7c0c8c 279 pc.printf("%c",Tel[i]);
procesadores_FAC 0:b2a6aa7c0c8c 280 GSM.printf("%c",Tel[i]);
procesadores_FAC 0:b2a6aa7c0c8c 281 }
procesadores_FAC 0:b2a6aa7c0c8c 282 pc.printf("10000AA");
procesadores_FAC 0:b2a6aa7c0c8c 283 GSM.printf("0000AA");
procesadores_FAC 0:b2a6aa7c0c8c 284 pc.printf("31");
procesadores_FAC 0:b2a6aa7c0c8c 285 GSM.printf("31");
procesadores_FAC 0:b2a6aa7c0c8c 286
procesadores_FAC 0:b2a6aa7c0c8c 287 for (ioct=0;ioct<=((LENOUToct*7)/8);ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 288 {
procesadores_FAC 0:b2a6aa7c0c8c 289 pc.printf("%02X",DSoct[ioct]);
procesadores_FAC 0:b2a6aa7c0c8c 290 GSM.printf("%02X",DSoct[ioct]);
procesadores_FAC 0:b2a6aa7c0c8c 291 }
procesadores_FAC 0:b2a6aa7c0c8c 292 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 293 GSM.putc((char)0x1A);
procesadores_FAC 0:b2a6aa7c0c8c 294 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 295 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 296 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 297 //GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 298 pc.printf(">%s\n",buf);
procesadores_FAC 0:b2a6aa7c0c8c 299 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 300
AaronGonzalez 1:e2bd083802c0 301 }
procesadores_FAC 0:b2a6aa7c0c8c 302 }
AaronGonzalez 1:e2bd083802c0 303 //Si el mensaje recibido fue OFF...
procesadores_FAC 0:b2a6aa7c0c8c 304 if(DS[0]-79==0 && DS[1]-102==0) // Off en octetos es 4F6666
procesadores_FAC 0:b2a6aa7c0c8c 305 {
AaronGonzalez 1:e2bd083802c0 306 //Secuencia de apagado
AaronGonzalez 1:e2bd083802c0 307 LedAzul=1;
procesadores_FAC 0:b2a6aa7c0c8c 308 LedVerde = 0;
procesadores_FAC 0:b2a6aa7c0c8c 309 LedRojo=1;
procesadores_FAC 0:b2a6aa7c0c8c 310 }
AaronGonzalez 1:e2bd083802c0 311 //Si el mensaje recibido fue ON...
procesadores_FAC 0:b2a6aa7c0c8c 312 if(DS[0]-71==0 && DS[1]-110==0) // On en octetos es 476E
procesadores_FAC 0:b2a6aa7c0c8c 313 {
AaronGonzalez 1:e2bd083802c0 314 //Secuencia de apagado
AaronGonzalez 1:e2bd083802c0 315 LedAzul=1;
procesadores_FAC 0:b2a6aa7c0c8c 316 LedRojo =0;
procesadores_FAC 0:b2a6aa7c0c8c 317 LedVerde = 1;
procesadores_FAC 0:b2a6aa7c0c8c 318 }
procesadores_FAC 0:b2a6aa7c0c8c 319 }
procesadores_FAC 0:b2a6aa7c0c8c 320 }
AaronGonzalez 1:e2bd083802c0 321 }