este programa lo usaremos para enviar salida del conversor A\D de la frdmkl25z por mensaje de texto esta probada OK se le ingresa la cadena de caracteres del voltaje en ciofra entera de 0 a 1000 y entrega octetos para SMS PDU
main.cpp@0:6522ce9773bb, 2015-11-02 (annotated)
- Committer:
- tony63
- Date:
- Mon Nov 02 21:38:41 2015 +0000
- Revision:
- 0:6522ce9773bb
actualizado a solo numeros funciona mejor en este caso que pdu1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 0:6522ce9773bb | 1 | |
tony63 | 0:6522ce9773bb | 2 | #include "mbed.h" |
tony63 | 0:6522ce9773bb | 3 | Serial pc(USBTX, USBRX); // tx, rx |
tony63 | 0:6522ce9773bb | 4 | /* |
tony63 | 0:6522ce9773bb | 5 | ALGORITMO PARA PASAR DE SEPTETOS A OCTETOS en numeros solamente |
tony63 | 0:6522ce9773bb | 6 | EN UNA MENSAJE DE TEXTO DE CELULAR EN FORMATO PDU |
tony63 | 0:6522ce9773bb | 7 | USA DOS CADENAS UNA DE ENTRADA Y OTRA DE SALIDA |
tony63 | 0:6522ce9773bb | 8 | LENIN ES LA LONGITUD DE ENTRADA |
tony63 | 0:6522ce9773bb | 9 | LENOUT LA LONGITUD DE SALIDA |
tony63 | 0:6522ce9773bb | 10 | SE USA PARA ENSAMBLAR UNA TRAMA PDU |
tony63 | 0:6522ce9773bb | 11 | ESTA CADENA DE SALIDA SE ENVIA SOBRE LA TRAMA PDU COMPLETA |
tony63 | 0:6522ce9773bb | 12 | VERIFIQUE CON EL DECODIFICADOR DE ESTA PAGINA:: |
tony63 | 0:6522ce9773bb | 13 | PROBADA PARA LONGITUD corta VER:oct 2 2015 |
tony63 | 0:6522ce9773bb | 14 | la cadena de entrada saquela con esta webb |
tony63 | 0:6522ce9773bb | 15 | http://www.asciitohex.com/ |
tony63 | 0:6522ce9773bb | 16 | la de salida de movilon mandando mensaje |
tony63 | 0:6522ce9773bb | 17 | esta pagina tiene errores no la use mas!! http://www.twit88.com/home/utility/sms-pdu-encode-decode |
tony63 | 0:6522ce9773bb | 18 | */ |
tony63 | 0:6522ce9773bb | 19 | char DE[30]; |
tony63 | 0:6522ce9773bb | 20 | char DS[30]; |
tony63 | 0:6522ce9773bb | 21 | char gi[30]; |
tony63 | 0:6522ce9773bb | 22 | char gs[30]; |
tony63 | 0:6522ce9773bb | 23 | char gr[30]; |
tony63 | 0:6522ce9773bb | 24 | int i,LENOUT,LENIN; |
tony63 | 0:6522ce9773bb | 25 | void SepToOct(char *DE, char *DS); |
tony63 | 0:6522ce9773bb | 26 | int main(){ |
tony63 | 0:6522ce9773bb | 27 | ; //numero de caracteres de abajo |
tony63 | 0:6522ce9773bb | 28 | pc.printf("inicio\n"); |
tony63 | 0:6522ce9773bb | 29 | char gr[]="v=12"; //F65E4C36A301 v=1234 entrando=76 3d 31 32 33 34 |
tony63 | 0:6522ce9773bb | 30 | LENIN=strlen(gr); |
tony63 | 0:6522ce9773bb | 31 | pc.printf("%d\r\n",LENIN); |
tony63 | 0:6522ce9773bb | 32 | for (i=0;i<LENIN;i++){ |
tony63 | 0:6522ce9773bb | 33 | gi[i]=gr[i]&0x000000FF; |
tony63 | 0:6522ce9773bb | 34 | pc.printf("%2X,%d\r\n",gi[i],i); |
tony63 | 0:6522ce9773bb | 35 | } |
tony63 | 0:6522ce9773bb | 36 | SepToOct(gi,gs); |
tony63 | 0:6522ce9773bb | 37 | for (i=0;i<LENOUT;i++){ |
tony63 | 0:6522ce9773bb | 38 | pc.printf("%2X,%d\r\n",gs[i]&0x000000FF,i); |
tony63 | 0:6522ce9773bb | 39 | } |
tony63 | 0:6522ce9773bb | 40 | pc.printf("LENOUT:%d,LENIN:%d\r\n",LENOUT,strlen(gi)); |
tony63 | 0:6522ce9773bb | 41 | |
tony63 | 0:6522ce9773bb | 42 | /* |
tony63 | 0:6522ce9773bb | 43 | los octetos ASI VIAJA POR LA RED GSM |
tony63 | 0:6522ce9773bb | 44 | EC 30 E8 1C 66 B3 D3 EE 30 68 1C 36 97 41 E5 39 A8 EE 0E 83 EC 65 39 39 4C 2E CB |
tony63 | 0:6522ce9773bb | 45 | C3 A0 B3 FC 3D 2F CB C3 A0 78 BD 0C 6A 97 E5 E5 71 19 34 2F CB 41 E3 F7 38 ED 0E 93 C3 |
tony63 | 0:6522ce9773bb | 46 | |
tony63 | 0:6522ce9773bb | 47 | y los septetos ASI HAGO VISIBLE EL MENSAJE RECIBIDO |
tony63 | 0:6522ce9773bb | 48 | 6c 61 20 67 61 6c 6c 69 6e 61 20 63 61 66 65 20 65 73 20 75 6e 61 20 76 65 72 64 61 64 |
tony63 | 0:6522ce9773bb | 49 | 65 72 61 20 67 72 6f 73 65 72 61 20 71 75 65 20 6d 65 72 65 63 65 20 73 65 72 20 63 6f |
tony63 | 0:6522ce9773bb | 50 | 63 69 6e 61 64 61 |
tony63 | 0:6522ce9773bb | 51 | */ |
tony63 | 0:6522ce9773bb | 52 | } |
tony63 | 0:6522ce9773bb | 53 | //----------------------------------- --------------------------- |
tony63 | 0:6522ce9773bb | 54 | void SepToOct(char *DE, char *DS) |
tony63 | 0:6522ce9773bb | 55 | { |
tony63 | 0:6522ce9773bb | 56 | LENIN=strlen(DE); //se mide el tamaño de la cadena |
tony63 | 0:6522ce9773bb | 57 | LENOUT=0; |
tony63 | 0:6522ce9773bb | 58 | for (i=0;i < LENIN;i++){ |
tony63 | 0:6522ce9773bb | 59 | DS[i]=(DE[i]>>i|DE[i+1]<<(7-i)); |
tony63 | 0:6522ce9773bb | 60 | LENOUT=i+1; |
tony63 | 0:6522ce9773bb | 61 | if(DS[i]==0){ |
tony63 | 0:6522ce9773bb | 62 | DS[i]='\0'; |
tony63 | 0:6522ce9773bb | 63 | return;} |
tony63 | 0:6522ce9773bb | 64 | } |
tony63 | 0:6522ce9773bb | 65 | return ; |
tony63 | 0:6522ce9773bb | 66 | } |
tony63 | 0:6522ce9773bb | 67 | |
tony63 | 0:6522ce9773bb | 68 |