programa para pasar de septetos a octetos en tramas PDU

Dependencies:   mbed

Fork of pdu1 by Gustavo Ramirez

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