Programa para establecer la comunicación con un módem Siemens A56 y un modulo FRDMKL25Z opera como rastreador satelital para Geolocalizacion. Por la UART (1) se conecta el MODEM y por la uart (2) el GPS (se lee en modo NEMEA) Este sistema genera una cadena de geolocalizacion para GoogleMaps con las coordenadas locales Si previamente se envia el mensaje (Coordenadas o coordenadas) El sistema ademas recibe ordenes de tipo mensaje GSM PDU para accionar cargas

Dependencies:   mbed GPS_G

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 }