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

Conexion propuesta de celular siemens A56i y La FRDMKL25Z /media/uploads/tony63/imgb.jpg Se puede emular un GPS usando una aplicación de Proteus /media/uploads/tony63/imgc.jpg

Committer:
procesadores_FAC
Date:
Fri Jun 19 17:45:34 2015 +0000
Revision:
0:b2a6aa7c0c8c
Child:
1:e2bd083802c0
Tarea UnalMed;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
procesadores_FAC 0:b2a6aa7c0c8c 1 //programa para celular siemens que recibe un mensaje de texto t activa una salida en formato
procesadores_FAC 0:b2a6aa7c0c8c 2 //pdu hex
procesadores_FAC 0:b2a6aa7c0c8c 3 #include "mbed.h"
procesadores_FAC 0:b2a6aa7c0c8c 4 #include "DebouncedIn.h"
procesadores_FAC 0:b2a6aa7c0c8c 5 #include "stdio.h"
procesadores_FAC 0:b2a6aa7c0c8c 6 #include "string.h"
procesadores_FAC 0:b2a6aa7c0c8c 7 #include "GPS.h"
procesadores_FAC 0:b2a6aa7c0c8c 8
procesadores_FAC 0:b2a6aa7c0c8c 9
procesadores_FAC 0:b2a6aa7c0c8c 10
procesadores_FAC 0:b2a6aa7c0c8c 11
procesadores_FAC 0:b2a6aa7c0c8c 12 Timer t;
procesadores_FAC 0:b2a6aa7c0c8c 13 DigitalOut LedVerde(LED2);
procesadores_FAC 0:b2a6aa7c0c8c 14 DigitalOut LedRojo(LED1);
procesadores_FAC 0:b2a6aa7c0c8c 15 DigitalOut LedAzul(LED3);
procesadores_FAC 0:b2a6aa7c0c8c 16
procesadores_FAC 0:b2a6aa7c0c8c 17 ///////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 18
procesadores_FAC 0:b2a6aa7c0c8c 19 Serial GSM(PTE0,PTE1); //puertos del FRDM para el modem
procesadores_FAC 0:b2a6aa7c0c8c 20 Serial pc(USBTX,USBRX);
procesadores_FAC 0:b2a6aa7c0c8c 21 GPS gps(PTE22, PTE23); // Puerto del FDRM para el gps
procesadores_FAC 0:b2a6aa7c0c8c 22
procesadores_FAC 0:b2a6aa7c0c8c 23 ////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 24 //PARAMETROS
procesadores_FAC 0:b2a6aa7c0c8c 25 ////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 26
procesadores_FAC 0:b2a6aa7c0c8c 27
procesadores_FAC 0:b2a6aa7c0c8c 28 short DE[255];
procesadores_FAC 0:b2a6aa7c0c8c 29 short DS[255];
procesadores_FAC 0:b2a6aa7c0c8c 30
procesadores_FAC 0:b2a6aa7c0c8c 31 char buffer[512];
procesadores_FAC 0:b2a6aa7c0c8c 32 char buffermsg[100];
procesadores_FAC 0:b2a6aa7c0c8c 33 char buffer1[13];
procesadores_FAC 0:b2a6aa7c0c8c 34 char mensaje[100];
procesadores_FAC 0:b2a6aa7c0c8c 35 int count;
procesadores_FAC 0:b2a6aa7c0c8c 36 int i,K,LENOUT,LENIN,C;
procesadores_FAC 0:b2a6aa7c0c8c 37
procesadores_FAC 0:b2a6aa7c0c8c 38 char Tel[15];
procesadores_FAC 0:b2a6aa7c0c8c 39 char cel[15];
procesadores_FAC 0:b2a6aa7c0c8c 40 char ojala[15]; // OJO
procesadores_FAC 0:b2a6aa7c0c8c 41
procesadores_FAC 0:b2a6aa7c0c8c 42 int c=0;
procesadores_FAC 0:b2a6aa7c0c8c 43 int cont=0;
procesadores_FAC 0:b2a6aa7c0c8c 44 unsigned char CtrlZ = 0x1A;
procesadores_FAC 0:b2a6aa7c0c8c 45 bool Flag = false;
procesadores_FAC 0:b2a6aa7c0c8c 46 char r[]="";
procesadores_FAC 0:b2a6aa7c0c8c 47 char msg[256];
procesadores_FAC 0:b2a6aa7c0c8c 48 char char1;
procesadores_FAC 0:b2a6aa7c0c8c 49
procesadores_FAC 0:b2a6aa7c0c8c 50 int index;
procesadores_FAC 0:b2a6aa7c0c8c 51
procesadores_FAC 0:b2a6aa7c0c8c 52 //////
procesadores_FAC 0:b2a6aa7c0c8c 53 //longitud y latitud
procesadores_FAC 0:b2a6aa7c0c8c 54 ////
procesadores_FAC 0:b2a6aa7c0c8c 55
procesadores_FAC 0:b2a6aa7c0c8c 56
procesadores_FAC 0:b2a6aa7c0c8c 57 float lo,la;
procesadores_FAC 0:b2a6aa7c0c8c 58 char clo[255], cla[255]; //
procesadores_FAC 0:b2a6aa7c0c8c 59 int LENINlo,LENINla,LENINla_lo;
procesadores_FAC 0:b2a6aa7c0c8c 60 char la_lo[255];
procesadores_FAC 0:b2a6aa7c0c8c 61
procesadores_FAC 0:b2a6aa7c0c8c 62 char http2[255];
procesadores_FAC 0:b2a6aa7c0c8c 63 char http[] = "http://maps.google.com/maps?q=";
procesadores_FAC 0:b2a6aa7c0c8c 64
procesadores_FAC 0:b2a6aa7c0c8c 65
procesadores_FAC 0:b2a6aa7c0c8c 66
procesadores_FAC 0:b2a6aa7c0c8c 67 //////////////
procesadores_FAC 0:b2a6aa7c0c8c 68 // convercion oct sept
procesadores_FAC 0:b2a6aa7c0c8c 69 ////////////
procesadores_FAC 0:b2a6aa7c0c8c 70
procesadores_FAC 0:b2a6aa7c0c8c 71
procesadores_FAC 0:b2a6aa7c0c8c 72 int iht,Kht,ChtLENOUTht,LENINht;
procesadores_FAC 0:b2a6aa7c0c8c 73 int ioct,Koct,LENOUToct,LENINoct,Coct;
procesadores_FAC 0:b2a6aa7c0c8c 74 char DEoct[255];
procesadores_FAC 0:b2a6aa7c0c8c 75 char DSoct[255];
procesadores_FAC 0:b2a6aa7c0c8c 76 char buf[100];
procesadores_FAC 0:b2a6aa7c0c8c 77
procesadores_FAC 0:b2a6aa7c0c8c 78 /////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 79 //cocanteo rellenos y numero
procesadores_FAC 0:b2a6aa7c0c8c 80 //////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 81
procesadores_FAC 0:b2a6aa7c0c8c 82 char relle1[]= "0011000A91";
procesadores_FAC 0:b2a6aa7c0c8c 83 char relle2[]= "10000AA";
procesadores_FAC 0:b2a6aa7c0c8c 84 char relle3[]= "68";
procesadores_FAC 0:b2a6aa7c0c8c 85
procesadores_FAC 0:b2a6aa7c0c8c 86 /////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 87 // funciones
procesadores_FAC 0:b2a6aa7c0c8c 88 ////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 89
procesadores_FAC 0:b2a6aa7c0c8c 90 int readBuffer(char *buffer,int count)
procesadores_FAC 0:b2a6aa7c0c8c 91 {
procesadores_FAC 0:b2a6aa7c0c8c 92 int i=0;
procesadores_FAC 0:b2a6aa7c0c8c 93 t.start();
procesadores_FAC 0:b2a6aa7c0c8c 94 while(1) {
procesadores_FAC 0:b2a6aa7c0c8c 95 while (GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 96 char c = GSM.getc();
procesadores_FAC 0:b2a6aa7c0c8c 97 if (c == '\r' || c == '\n') c = '$';
procesadores_FAC 0:b2a6aa7c0c8c 98 buffer[i++] = c;
procesadores_FAC 0:b2a6aa7c0c8c 99 if(i > count)break;
procesadores_FAC 0:b2a6aa7c0c8c 100 }
procesadores_FAC 0:b2a6aa7c0c8c 101 if(i > count)break; // ojooo
procesadores_FAC 0:b2a6aa7c0c8c 102 if(t.read() > 3) {
procesadores_FAC 0:b2a6aa7c0c8c 103 t.stop();
procesadores_FAC 0:b2a6aa7c0c8c 104 t.reset();
procesadores_FAC 0:b2a6aa7c0c8c 105 break;
procesadores_FAC 0:b2a6aa7c0c8c 106 }
procesadores_FAC 0:b2a6aa7c0c8c 107 }
procesadores_FAC 0:b2a6aa7c0c8c 108
procesadores_FAC 0:b2a6aa7c0c8c 109 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 110 while(GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 111 char c = GSM.getc();
procesadores_FAC 0:b2a6aa7c0c8c 112 }
procesadores_FAC 0:b2a6aa7c0c8c 113 return 0;
procesadores_FAC 0:b2a6aa7c0c8c 114 }
procesadores_FAC 0:b2a6aa7c0c8c 115
procesadores_FAC 0:b2a6aa7c0c8c 116 ///////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 117 //Programass
procesadores_FAC 0:b2a6aa7c0c8c 118 ///////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 119
procesadores_FAC 0:b2a6aa7c0c8c 120 int main(void)
procesadores_FAC 0:b2a6aa7c0c8c 121 {
procesadores_FAC 0:b2a6aa7c0c8c 122
procesadores_FAC 0:b2a6aa7c0c8c 123 LedVerde=1;
procesadores_FAC 0:b2a6aa7c0c8c 124 LedRojo=1;
procesadores_FAC 0:b2a6aa7c0c8c 125 LedAzul=1;
procesadores_FAC 0:b2a6aa7c0c8c 126
procesadores_FAC 0:b2a6aa7c0c8c 127
procesadores_FAC 0:b2a6aa7c0c8c 128 GSM.baud(9600);
procesadores_FAC 0:b2a6aa7c0c8c 129 GSM.format(8,Serial::None,1);
procesadores_FAC 0:b2a6aa7c0c8c 130
procesadores_FAC 0:b2a6aa7c0c8c 131 GSM.printf("AT\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 132 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 133 GSM.printf("AT+CNMI=1,1\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 134 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 135 GSM.printf("AT+CMGF=0\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 136 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 137 GSM.printf("ATE\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 138 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 139 GSM.printf("CBST=0,0,1\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 140 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 141
procesadores_FAC 0:b2a6aa7c0c8c 142
procesadores_FAC 0:b2a6aa7c0c8c 143 while(1){
procesadores_FAC 0:b2a6aa7c0c8c 144
procesadores_FAC 0:b2a6aa7c0c8c 145 if (GSM.readable()) {
procesadores_FAC 0:b2a6aa7c0c8c 146 readBuffer(buffer,100);
procesadores_FAC 0:b2a6aa7c0c8c 147 pc.printf("buffer= %s\n\r ",buffer);
procesadores_FAC 0:b2a6aa7c0c8c 148 pc.printf("buffer= %c %c\n\r ",buffer[10],buffer[11]);
procesadores_FAC 0:b2a6aa7c0c8c 149 if(buffer[67]=='A'){for(i=0;i<86;i++)
procesadores_FAC 0:b2a6aa7c0c8c 150 {buffermsg[i]=buffer[i];}
procesadores_FAC 0:b2a6aa7c0c8c 151 pc.printf("mensaje= %s\n\r ",buffermsg);
procesadores_FAC 0:b2a6aa7c0c8c 152 pc.printf("mensaje[72]= %c mensaje[73]=%c\n\r ",buffermsg[72],buffermsg[73]);
procesadores_FAC 0:b2a6aa7c0c8c 153 buffer[67]='c';
procesadores_FAC 0:b2a6aa7c0c8c 154
procesadores_FAC 0:b2a6aa7c0c8c 155 if (buffermsg[69] == '2'){ // PARA CUANDO LA CLAVE ES On
procesadores_FAC 0:b2a6aa7c0c8c 156 LENIN=2; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 157 DE[0]=0x47;
procesadores_FAC 0:b2a6aa7c0c8c 158 DE[1]=0x37;
procesadores_FAC 0:b2a6aa7c0c8c 159 }
procesadores_FAC 0:b2a6aa7c0c8c 160 if (buffermsg[69] == '3'&& buffermsg[70] == '4'){ // PARA CUANDO LA CLAVE ES Off
procesadores_FAC 0:b2a6aa7c0c8c 161 LENIN=3; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 162 DE[0]=0x4F;
procesadores_FAC 0:b2a6aa7c0c8c 163 DE[1]=0xB3;
procesadores_FAC 0:b2a6aa7c0c8c 164 DE[2]=0x19;
procesadores_FAC 0:b2a6aa7c0c8c 165 }
procesadores_FAC 0:b2a6aa7c0c8c 166 if (buffermsg[69] == '3'&& buffermsg[70] == 'C'){ // PARA CUANDO LA CLAVE ES Cor
procesadores_FAC 0:b2a6aa7c0c8c 167 LENIN=3; //numero de caracteres de abajo son los octetos
procesadores_FAC 0:b2a6aa7c0c8c 168 DE[0]=0xC3;
procesadores_FAC 0:b2a6aa7c0c8c 169 DE[1]=0xB7;
procesadores_FAC 0:b2a6aa7c0c8c 170 DE[2]=0x1C;
procesadores_FAC 0:b2a6aa7c0c8c 171 }
procesadores_FAC 0:b2a6aa7c0c8c 172
procesadores_FAC 0:b2a6aa7c0c8c 173 LENOUT= LENIN*8/7;
procesadores_FAC 0:b2a6aa7c0c8c 174 K=7;
procesadores_FAC 0:b2a6aa7c0c8c 175 C=0;
procesadores_FAC 0:b2a6aa7c0c8c 176 DS[0]=DE[0] & 0x7F; // la primera sola
procesadores_FAC 0:b2a6aa7c0c8c 177 pc.printf("%2X\n",DS[0]);
procesadores_FAC 0:b2a6aa7c0c8c 178
procesadores_FAC 0:b2a6aa7c0c8c 179 for (i=1;i < LENOUT;i++){ // inicia el algoritmo
procesadores_FAC 0:b2a6aa7c0c8c 180 DS[i]=(DE[i-1-C]>>K | DE[i-C]<<(8-K))& 0x7F; //valido para todos
procesadores_FAC 0:b2a6aa7c0c8c 181 pc.printf("%2X\n",DS[i]);
procesadores_FAC 0:b2a6aa7c0c8c 182
procesadores_FAC 0:b2a6aa7c0c8c 183 if (K==0) {K=8;C++;}
procesadores_FAC 0:b2a6aa7c0c8c 184 K--;
procesadores_FAC 0:b2a6aa7c0c8c 185 }
procesadores_FAC 0:b2a6aa7c0c8c 186
procesadores_FAC 0:b2a6aa7c0c8c 187 for (i=0 ;i<=9;i++)
procesadores_FAC 0:b2a6aa7c0c8c 188 {
procesadores_FAC 0:b2a6aa7c0c8c 189 Tel[i] = buffermsg[40+i];
procesadores_FAC 0:b2a6aa7c0c8c 190 }
procesadores_FAC 0:b2a6aa7c0c8c 191 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 192 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]);
procesadores_FAC 0:b2a6aa7c0c8c 193
procesadores_FAC 0:b2a6aa7c0c8c 194 }
procesadores_FAC 0:b2a6aa7c0c8c 195
procesadores_FAC 0:b2a6aa7c0c8c 196 if(buffer[10]=='S'&& buffer[11]=='M'){
procesadores_FAC 0:b2a6aa7c0c8c 197 for(i=0;i<5;i++)
procesadores_FAC 0:b2a6aa7c0c8c 198 {buffer1[i]=buffer[2+i];}
procesadores_FAC 0:b2a6aa7c0c8c 199 pc.printf("buffer1= %s\n\r ",buffer1);
procesadores_FAC 0:b2a6aa7c0c8c 200 buffer[10]='c';
procesadores_FAC 0:b2a6aa7c0c8c 201 buffer[11]='c';
procesadores_FAC 0:b2a6aa7c0c8c 202 }
procesadores_FAC 0:b2a6aa7c0c8c 203 if(buffer1[3]=='T'){pc.printf("AT+CMGL=0\n\r");
procesadores_FAC 0:b2a6aa7c0c8c 204 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 205 GSM.printf("AT+CMGL=0\r\n");
procesadores_FAC 0:b2a6aa7c0c8c 206 buffer1[3]='p';
procesadores_FAC 0:b2a6aa7c0c8c 207 }
procesadores_FAC 0:b2a6aa7c0c8c 208
procesadores_FAC 0:b2a6aa7c0c8c 209
procesadores_FAC 0:b2a6aa7c0c8c 210 if(DS[0]-67 == 0&& DS[1]-111==0) // Cor en octetos es 436f72
procesadores_FAC 0:b2a6aa7c0c8c 211 {
procesadores_FAC 0:b2a6aa7c0c8c 212 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 213 LedAzul=0;
procesadores_FAC 0:b2a6aa7c0c8c 214
procesadores_FAC 0:b2a6aa7c0c8c 215 DS[0] = '\0';
procesadores_FAC 0:b2a6aa7c0c8c 216 DS[1] = '\0';
procesadores_FAC 0:b2a6aa7c0c8c 217
procesadores_FAC 0:b2a6aa7c0c8c 218 if(gps.sample())
procesadores_FAC 0:b2a6aa7c0c8c 219 {
procesadores_FAC 0:b2a6aa7c0c8c 220 lo =gps.longitude;
procesadores_FAC 0:b2a6aa7c0c8c 221 la =gps.latitude;
procesadores_FAC 0:b2a6aa7c0c8c 222 pc.printf("longitud_entera=%f, Latitud entera=%f\n", lo, la);
procesadores_FAC 0:b2a6aa7c0c8c 223
procesadores_FAC 0:b2a6aa7c0c8c 224 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 225 //LONGITUD/
procesadores_FAC 0:b2a6aa7c0c8c 226 sprintf (clo, "%f", lo);
procesadores_FAC 0:b2a6aa7c0c8c 227 pc.printf ( "\nlongitud = %s\n",clo);
procesadores_FAC 0:b2a6aa7c0c8c 228 LENINlo=strlen(clo);
procesadores_FAC 0:b2a6aa7c0c8c 229
procesadores_FAC 0:b2a6aa7c0c8c 230 /* for (ilo=0;ilo<LENINlo;ilo++){
procesadores_FAC 0:b2a6aa7c0c8c 231 pc.printf("%c,",clo[ilo]);
procesadores_FAC 0:b2a6aa7c0c8c 232 } */
procesadores_FAC 0:b2a6aa7c0c8c 233
procesadores_FAC 0:b2a6aa7c0c8c 234 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 235 //LATITUD/
procesadores_FAC 0:b2a6aa7c0c8c 236 sprintf (cla, "%f", la);
procesadores_FAC 0:b2a6aa7c0c8c 237 pc.printf ( "\nlatitud = %s\n",cla);
procesadores_FAC 0:b2a6aa7c0c8c 238 LENINla=strlen(cla);
procesadores_FAC 0:b2a6aa7c0c8c 239
procesadores_FAC 0:b2a6aa7c0c8c 240 /*for (ila1=0;ila1<LENINla1;ila1++){
procesadores_FAC 0:b2a6aa7c0c8c 241 pc.printf("%c,",cla[ila1]);
procesadores_FAC 0:b2a6aa7c0c8c 242 }*/
procesadores_FAC 0:b2a6aa7c0c8c 243
procesadores_FAC 0:b2a6aa7c0c8c 244
procesadores_FAC 0:b2a6aa7c0c8c 245 ///////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 246 // CONCATENO LONGITUD Y LATITUD
procesadores_FAC 0:b2a6aa7c0c8c 247 ///////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 248
procesadores_FAC 0:b2a6aa7c0c8c 249 strcpy(la_lo,cla);
procesadores_FAC 0:b2a6aa7c0c8c 250 strcat(la_lo,",");
procesadores_FAC 0:b2a6aa7c0c8c 251 strcat(la_lo,clo);
procesadores_FAC 0:b2a6aa7c0c8c 252
procesadores_FAC 0:b2a6aa7c0c8c 253 pc.printf ( "\nla_lo: %s\n",la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 254
procesadores_FAC 0:b2a6aa7c0c8c 255 LENINla_lo=strlen(la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 256
procesadores_FAC 0:b2a6aa7c0c8c 257 /*for (j=0;j<LENINla_lo;j++){
procesadores_FAC 0:b2a6aa7c0c8c 258 pc.printf("%c\n",la_lo[j]);
procesadores_FAC 0:b2a6aa7c0c8c 259 }*/
procesadores_FAC 0:b2a6aa7c0c8c 260
procesadores_FAC 0:b2a6aa7c0c8c 261 ////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 262 // CONCATENO LONGITUD, LATITUD Y EL http//:
procesadores_FAC 0:b2a6aa7c0c8c 263 ////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 264 strcpy(http2,http);
procesadores_FAC 0:b2a6aa7c0c8c 265 strcat(http2,la_lo);
procesadores_FAC 0:b2a6aa7c0c8c 266 pc.printf ( "%s\n",http2);
procesadores_FAC 0:b2a6aa7c0c8c 267 pc.printf ( "\n" );
procesadores_FAC 0:b2a6aa7c0c8c 268
procesadores_FAC 0:b2a6aa7c0c8c 269
procesadores_FAC 0:b2a6aa7c0c8c 270 //////////////////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 271 // convierto http2 de oct a sep
procesadores_FAC 0:b2a6aa7c0c8c 272 ////////////////////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 273
procesadores_FAC 0:b2a6aa7c0c8c 274 LENINht=strlen(http2);
procesadores_FAC 0:b2a6aa7c0c8c 275 pc.printf("%d\n",LENINht);
procesadores_FAC 0:b2a6aa7c0c8c 276 for (iht=0;iht<LENINht;iht++){
procesadores_FAC 0:b2a6aa7c0c8c 277 pc.printf("%2X",http2[iht]);
procesadores_FAC 0:b2a6aa7c0c8c 278 }
procesadores_FAC 0:b2a6aa7c0c8c 279 pc.printf ( "\n" );
procesadores_FAC 0:b2a6aa7c0c8c 280
procesadores_FAC 0:b2a6aa7c0c8c 281 /////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 282
procesadores_FAC 0:b2a6aa7c0c8c 283 LENINoct=strlen(http2);
procesadores_FAC 0:b2a6aa7c0c8c 284 pc.printf("%d\n",LENINoct);
procesadores_FAC 0:b2a6aa7c0c8c 285 for (ioct=0;ioct<LENINoct;ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 286 {
procesadores_FAC 0:b2a6aa7c0c8c 287 DEoct[ioct]=http2[ioct];
procesadores_FAC 0:b2a6aa7c0c8c 288 pc.printf("%2X,%d\n",DEoct[ioct],ioct);
procesadores_FAC 0:b2a6aa7c0c8c 289 }
procesadores_FAC 0:b2a6aa7c0c8c 290 ////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 291
procesadores_FAC 0:b2a6aa7c0c8c 292 Koct=0;
procesadores_FAC 0:b2a6aa7c0c8c 293 Coct=0;
procesadores_FAC 0:b2a6aa7c0c8c 294
procesadores_FAC 0:b2a6aa7c0c8c 295 for (ioct=0;ioct < LENINoct;ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 296 {
procesadores_FAC 0:b2a6aa7c0c8c 297 DSoct[ioct]=DEoct[ioct+Coct]>>Koct | DEoct[ioct+Coct+1]<<(7-Koct);
procesadores_FAC 0:b2a6aa7c0c8c 298 if (DSoct[ioct]==0x00){
procesadores_FAC 0:b2a6aa7c0c8c 299 LENOUToct=ioct;
procesadores_FAC 0:b2a6aa7c0c8c 300 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 301 pc.printf("%s",DEoct);
procesadores_FAC 0:b2a6aa7c0c8c 302 pc.printf("out =%d",LENOUToct);
procesadores_FAC 0:b2a6aa7c0c8c 303 for (ioct=0;ioct<LENOUToct;ioct++){
procesadores_FAC 0:b2a6aa7c0c8c 304 pc.printf("%2X,%d\r\n",DSoct[ioct]&0x000000FF,ioct);
procesadores_FAC 0:b2a6aa7c0c8c 305 }
procesadores_FAC 0:b2a6aa7c0c8c 306 }
procesadores_FAC 0:b2a6aa7c0c8c 307 // pc.printf("LENOUT:%d,LENIN:%d\r\n",LENOUToct,strlen(DEoct));
procesadores_FAC 0:b2a6aa7c0c8c 308
procesadores_FAC 0:b2a6aa7c0c8c 309 //}
procesadores_FAC 0:b2a6aa7c0c8c 310 Koct++;
procesadores_FAC 0:b2a6aa7c0c8c 311 if (Koct==7)
procesadores_FAC 0:b2a6aa7c0c8c 312 {
procesadores_FAC 0:b2a6aa7c0c8c 313 Koct=0;Coct++;
procesadores_FAC 0:b2a6aa7c0c8c 314 } // se chequea que ya se acabaron los bits en un ciclo de conversion.
procesadores_FAC 0:b2a6aa7c0c8c 315 }
procesadores_FAC 0:b2a6aa7c0c8c 316
procesadores_FAC 0:b2a6aa7c0c8c 317 /////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 318 // CONCATENO LOS RELLENOS Y EL NUMERO DEL CELULAR
procesadores_FAC 0:b2a6aa7c0c8c 319 ////////////////////////////////////////////////////////
procesadores_FAC 0:b2a6aa7c0c8c 320
procesadores_FAC 0:b2a6aa7c0c8c 321
procesadores_FAC 0:b2a6aa7c0c8c 322
procesadores_FAC 0:b2a6aa7c0c8c 323
procesadores_FAC 0:b2a6aa7c0c8c 324 wait(5);
procesadores_FAC 0:b2a6aa7c0c8c 325 index=56;
procesadores_FAC 0:b2a6aa7c0c8c 326 GSM.printf("AT+CMGS=%d\r\n",index);
procesadores_FAC 0:b2a6aa7c0c8c 327 pc.printf("AT+CMGS=%d\r\n",index);
procesadores_FAC 0:b2a6aa7c0c8c 328 pc.printf("0011000A91");
procesadores_FAC 0:b2a6aa7c0c8c 329 GSM.printf("0011000A91");
procesadores_FAC 0:b2a6aa7c0c8c 330 for (i=0 ;i<=9;i++)
procesadores_FAC 0:b2a6aa7c0c8c 331 {
procesadores_FAC 0:b2a6aa7c0c8c 332 pc.printf("%c",Tel[i]);
procesadores_FAC 0:b2a6aa7c0c8c 333 GSM.printf("%c",Tel[i]);
procesadores_FAC 0:b2a6aa7c0c8c 334 }
procesadores_FAC 0:b2a6aa7c0c8c 335 pc.printf("10000AA");
procesadores_FAC 0:b2a6aa7c0c8c 336 GSM.printf("0000AA");
procesadores_FAC 0:b2a6aa7c0c8c 337 pc.printf("31");
procesadores_FAC 0:b2a6aa7c0c8c 338 GSM.printf("31");
procesadores_FAC 0:b2a6aa7c0c8c 339
procesadores_FAC 0:b2a6aa7c0c8c 340 for (ioct=0;ioct<=((LENOUToct*7)/8);ioct++)
procesadores_FAC 0:b2a6aa7c0c8c 341 {
procesadores_FAC 0:b2a6aa7c0c8c 342 pc.printf("%02X",DSoct[ioct]);
procesadores_FAC 0:b2a6aa7c0c8c 343 GSM.printf("%02X",DSoct[ioct]);
procesadores_FAC 0:b2a6aa7c0c8c 344 }
procesadores_FAC 0:b2a6aa7c0c8c 345 wait(0.5);
procesadores_FAC 0:b2a6aa7c0c8c 346 GSM.putc((char)0x1A);
procesadores_FAC 0:b2a6aa7c0c8c 347 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 348 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 349 GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 350 //GSM.scanf("%s",buf);
procesadores_FAC 0:b2a6aa7c0c8c 351 pc.printf(">%s\n",buf);
procesadores_FAC 0:b2a6aa7c0c8c 352 pc.printf("\n");
procesadores_FAC 0:b2a6aa7c0c8c 353
procesadores_FAC 0:b2a6aa7c0c8c 354 } // if
procesadores_FAC 0:b2a6aa7c0c8c 355
procesadores_FAC 0:b2a6aa7c0c8c 356
procesadores_FAC 0:b2a6aa7c0c8c 357
procesadores_FAC 0:b2a6aa7c0c8c 358 }
procesadores_FAC 0:b2a6aa7c0c8c 359
procesadores_FAC 0:b2a6aa7c0c8c 360 if(DS[0]-79==0 && DS[1]-102==0) // Off en octetos es 4F6666
procesadores_FAC 0:b2a6aa7c0c8c 361 {
procesadores_FAC 0:b2a6aa7c0c8c 362 LedAzul=1; //apaga con Lgeverde
procesadores_FAC 0:b2a6aa7c0c8c 363 LedVerde = 0;
procesadores_FAC 0:b2a6aa7c0c8c 364 LedRojo=1;
procesadores_FAC 0:b2a6aa7c0c8c 365 }
procesadores_FAC 0:b2a6aa7c0c8c 366
procesadores_FAC 0:b2a6aa7c0c8c 367 if(DS[0]-71==0 && DS[1]-110==0) // On en octetos es 476E
procesadores_FAC 0:b2a6aa7c0c8c 368 {
procesadores_FAC 0:b2a6aa7c0c8c 369 LedAzul=1; //apaga con Lgeverde
procesadores_FAC 0:b2a6aa7c0c8c 370 LedRojo =0;
procesadores_FAC 0:b2a6aa7c0c8c 371 LedVerde = 1;
procesadores_FAC 0:b2a6aa7c0c8c 372 }
procesadores_FAC 0:b2a6aa7c0c8c 373 }
procesadores_FAC 0:b2a6aa7c0c8c 374 }
procesadores_FAC 0:b2a6aa7c0c8c 375 }