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
main.cpp@0:b2a6aa7c0c8c, 2015-06-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |