programa para pasar de septetos a octetos en tramas PDU
Fork of pdu1 by
Diff: main.cpp
- Revision:
- 1:b0989e540fff
- Parent:
- 0:0d2c03fdec12
- Child:
- 2:00bc5b7669c6
--- a/main.cpp Thu Oct 16 22:12:30 2014 +0000 +++ b/main.cpp Fri Apr 28 04:27:07 2017 +0000 @@ -9,45 +9,42 @@ SE USA PARA ENSAMBLAR UNA TRAMA PDU ESTA CADENA DE SALIDA SE ENVIA SOBRE LA TRAMA PDU COMPLETA VERIFIQUE CON EL DECODIFICADOR DE ESTA PAGINA:: -PROBADA PARA CUALQUIER LONGITUD VER:SEP 24 DEL 2014 +PROBADA PARA CUALQUIER LONGITUD VER:abril 27 DEL 2017 http://www.twit88.com/home/utility/sms-pdu-encode-decode */ -char DE[255]; -char DS[255]; +char gi[50]; +char gs[50]; int i,K,C,LENOUT,LENIN; -float chk; - +void SepToOct(char *DE, char *DS);//se declara la funcion int main(){ ; //numero de caracteres de abajo - char DE[]="la gallina cafe es una verdadera grosera que merece ser cocinada"; - LENIN=strlen(DE); - /* - los octetos ASI VIAJA POR LA RED GSM - 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 - 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 - - y los septetos ASI HAGO VISIBLE EL MENSAJE RECIBIDO - 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 - 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 - 63 69 6e 61 64 61 - */ - //----------------------------------- --------------------------- - K=0;C=0; + pc.printf("prueba con gallina cafe\n"); + char gi[]="gallina cafe"; + //en septetos es 67 61 6c 6c 69 6e 61 20 63 61 66 65 + //en octetos es E7 30 9B 9D 76 87 41 E3 B0 B9 0C + SepToOct(gi,gs); + for (i=0;i<LENOUT;i++){//imprime resultados + pc.printf("%2X",gs[i]&0x000000FF); + } + pc.printf("\n"); + for (i=0;i<LENOUT;i++){ + pc.printf("-%2X",gs[i]); + } + pc.printf("\n"); + pc.printf("LENOUT:%2X,LENIN:%2X\r\n",LENOUT,strlen(gi));// longitudes en hex + } +//------------------funcion de interes-- --------------------------- + void SepToOct(char *DE, char *DS){ + LENIN=strlen(DE); //se mide el tamaño de la cadena de entrada + int K=0;int C=0; int i=0; for (i=0;i < LENIN;i++){ DS[i]=DE[i+C]>>K | DE[i+C+1]<<(7-K); - if (DS[i]==0x00) {LENOUT=i; goto salir;} + if (DS[i]==0x00) {LENOUT=i; goto salir99;}// fin de la transformacion K++; if (K==7) {K=0;C++;} // se chequea que ya se acabaron los bits en un ciclo de conversion. - } - - //-------------------------------------------------------------- -salir: for (i=0;i < LENIN;i++){ - pc.printf("%X",DE[i]); + } +salir99: for (i=0;i<LENOUT;i++){ + DS[i]=DS[i]&0x000000FF; } - pc.printf(":\r\n"); - for (i=0;i<LENOUT;i++){ - pc.printf("%2X,%d\r\n",DS[i]&0x000000FF,i); - } - pc.printf("LENOUT:%d,LENIN:%d\r\n",LENOUT,strlen(DE)); - -} + return; + } \ No newline at end of file