programa para pasar de septetos a octetos en tramas PDU
Fork of pdu1 by
main.cpp@0:0d2c03fdec12, 2014-10-16 (annotated)
- Committer:
- tony63
- Date:
- Thu Oct 16 22:12:30 2014 +0000
- Revision:
- 0:0d2c03fdec12
- Child:
- 1:b0989e540fff
programa para pasar de septetos a octetos PDU
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 0:0d2c03fdec12 | 1 | #include "mbed.h" |
tony63 | 0:0d2c03fdec12 | 2 | Serial pc(USBTX, USBRX); // tx, rx |
tony63 | 0:0d2c03fdec12 | 3 | /* |
tony63 | 0:0d2c03fdec12 | 4 | ALGORITMO PARA PASAR DE SEPTETOS A OCTETOS |
tony63 | 0:0d2c03fdec12 | 5 | EN UNA MENSAJE DE TEXTO DE CELULAR EN FORMATO PDU |
tony63 | 0:0d2c03fdec12 | 6 | USA DOS CADENAS UNA DE ENTRADA Y OTRA DE SALIDA |
tony63 | 0:0d2c03fdec12 | 7 | LENIN ES LA LONGITUD DE ENTRADA |
tony63 | 0:0d2c03fdec12 | 8 | LENOUT LA LONGITUD DE SALIDA |
tony63 | 0:0d2c03fdec12 | 9 | SE USA PARA ENSAMBLAR UNA TRAMA PDU |
tony63 | 0:0d2c03fdec12 | 10 | ESTA CADENA DE SALIDA SE ENVIA SOBRE LA TRAMA PDU COMPLETA |
tony63 | 0:0d2c03fdec12 | 11 | VERIFIQUE CON EL DECODIFICADOR DE ESTA PAGINA:: |
tony63 | 0:0d2c03fdec12 | 12 | PROBADA PARA CUALQUIER LONGITUD VER:SEP 24 DEL 2014 |
tony63 | 0:0d2c03fdec12 | 13 | http://www.twit88.com/home/utility/sms-pdu-encode-decode |
tony63 | 0:0d2c03fdec12 | 14 | */ |
tony63 | 0:0d2c03fdec12 | 15 | char DE[255]; |
tony63 | 0:0d2c03fdec12 | 16 | char DS[255]; |
tony63 | 0:0d2c03fdec12 | 17 | int i,K,C,LENOUT,LENIN; |
tony63 | 0:0d2c03fdec12 | 18 | float chk; |
tony63 | 0:0d2c03fdec12 | 19 | |
tony63 | 0:0d2c03fdec12 | 20 | int main(){ |
tony63 | 0:0d2c03fdec12 | 21 | ; //numero de caracteres de abajo |
tony63 | 0:0d2c03fdec12 | 22 | char DE[]="la gallina cafe es una verdadera grosera que merece ser cocinada"; |
tony63 | 0:0d2c03fdec12 | 23 | LENIN=strlen(DE); |
tony63 | 0:0d2c03fdec12 | 24 | /* |
tony63 | 0:0d2c03fdec12 | 25 | los octetos ASI VIAJA POR LA RED GSM |
tony63 | 0:0d2c03fdec12 | 26 | 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:0d2c03fdec12 | 27 | 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:0d2c03fdec12 | 28 | |
tony63 | 0:0d2c03fdec12 | 29 | y los septetos ASI HAGO VISIBLE EL MENSAJE RECIBIDO |
tony63 | 0:0d2c03fdec12 | 30 | 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:0d2c03fdec12 | 31 | 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:0d2c03fdec12 | 32 | 63 69 6e 61 64 61 |
tony63 | 0:0d2c03fdec12 | 33 | */ |
tony63 | 0:0d2c03fdec12 | 34 | //----------------------------------- --------------------------- |
tony63 | 0:0d2c03fdec12 | 35 | K=0;C=0; |
tony63 | 0:0d2c03fdec12 | 36 | for (i=0;i < LENIN;i++){ |
tony63 | 0:0d2c03fdec12 | 37 | DS[i]=DE[i+C]>>K | DE[i+C+1]<<(7-K); |
tony63 | 0:0d2c03fdec12 | 38 | if (DS[i]==0x00) {LENOUT=i; goto salir;} |
tony63 | 0:0d2c03fdec12 | 39 | K++; |
tony63 | 0:0d2c03fdec12 | 40 | if (K==7) {K=0;C++;} // se chequea que ya se acabaron los bits en un ciclo de conversion. |
tony63 | 0:0d2c03fdec12 | 41 | } |
tony63 | 0:0d2c03fdec12 | 42 | |
tony63 | 0:0d2c03fdec12 | 43 | //-------------------------------------------------------------- |
tony63 | 0:0d2c03fdec12 | 44 | salir: for (i=0;i < LENIN;i++){ |
tony63 | 0:0d2c03fdec12 | 45 | pc.printf("%X",DE[i]); |
tony63 | 0:0d2c03fdec12 | 46 | } |
tony63 | 0:0d2c03fdec12 | 47 | pc.printf(":\r\n"); |
tony63 | 0:0d2c03fdec12 | 48 | for (i=0;i<LENOUT;i++){ |
tony63 | 0:0d2c03fdec12 | 49 | pc.printf("%2X,%d\r\n",DS[i]&0x000000FF,i); |
tony63 | 0:0d2c03fdec12 | 50 | } |
tony63 | 0:0d2c03fdec12 | 51 | pc.printf("LENOUT:%d,LENIN:%d\r\n",LENOUT,strlen(DE)); |
tony63 | 0:0d2c03fdec12 | 52 | |
tony63 | 0:0d2c03fdec12 | 53 | } |