Programa para pasar de Octetos a septetos en tramas PDU usadas en mensajes de texto SMS que viajan por la red GSM
Diff: main.cpp
- Revision:
- 1:a1fe02210bb6
- Parent:
- 0:e74448c0b740
--- a/main.cpp Thu Oct 16 22:16:35 2014 +0000 +++ b/main.cpp Fri Apr 28 04:08:36 2017 +0000 @@ -11,44 +11,48 @@ VERIFIQUE CON EL DECODIFICADOR DE ESTA PAGINA:: http://www.twit88.com/home/utility/sms-pdu-encode-decode en septetos use esta....http://www.asciitohex.com/ -LA ULTIMA VERSION ES PARA CUALQUIER NUMERO DE CARACTERES VER:SEP 24 DEL 2014 +LA ULTIMA VERSION ES PARA CUALQUIER NUMERO DE CARACTERES VER:abril 27 2017 tanto LENIN y LENOUT se deben especificar al ensamblar la trama PDU en el MODEM GSM o GPRS */ -short DE[255]; -short DS[255]; +char gi[50]; +char gs[50]; int i,K,LENOUT,LENIN,C; -//PROBAR CON ESTOS -//E7309B9D768741E3B0B90C son octetos ///.gallina cafe 67 61 6c 6c 69 6e 61 20 63 61 66 65 son septetos +// PRUEBA CON LA CADENA "gallina cafe" +// cadena de octetos = E7309B9D768741E3B0B90C +// cadena de septetos o lo que entrega esta funcion = 67 61 6c 6c 69 6e 61 20 63 61 66 65 +void OctToSep(char *DE, char *DS); int main(){ - LENIN=11; //numero de caracteres de abajo son los octetos - DE[0]=0xE7; - DE[1]=0x30; - DE[2]=0x9B; - DE[3]=0x9D; - DE[4]=0x76; - DE[5]=0x87; - DE[6]=0x41; - DE[7]=0xE3; - DE[8]=0xB0; - DE[9]=0xB9; - DE[10]=0x0C; -//----------------------------------- --------------------------- + + gi[0]=0xE7; + gi[1]=0x30; + gi[2]=0x9B; + gi[3]=0x9D; + gi[4]=0x76; + gi[5]=0x87; + gi[6]=0x41; + gi[7]=0xE3; + gi[8]=0xB0; + gi[9]=0xB9; + gi[10]=0x0C; + OctToSep(gi,gs);//se llama la funcion + for (i=0;i < LENOUT;i++){ // se imprime el resultado + pc.printf("%2X,%d,%d\r\n",gs[i],i,K); + } + + } +//----------------funcion de interes --------------------------- + void OctToSep(char *DE, char *DS){ + LENIN=strlen(DE); LENOUT= LENIN*8/7; K=7; C=0; DS[0]=DE[0] & 0x7F; // la primera sola - pc.printf("%2X,%d,%d\r\n",DS[0],i,K); for (i=1;i < LENOUT;i++){ // inicia el algoritmo DS[i]=(DE[i-1-C]>>K | DE[i-C]<<(8-K))& 0x7F; //valido para todos - pc.printf("%2X,%d,%d\r\n",DS[i],i,K); if (K==0) {K=8;C++;} K--; } - for (i=0;i < LENOUT;i++){ - pc.printf("%c",DS[i]); + return; } - pc.printf(" ---"); - -}