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

Dependencies:   mbed

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?

UserRevisionLine numberNew 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