--

Dependencies:   mbed

Committer:
dan_cuspi
Date:
Tue May 17 23:53:15 2016 +0000
Revision:
0:288744c7febe
Partes del Frame

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dan_cuspi 0:288744c7febe 1 #include "mbed.h"
dan_cuspi 0:288744c7febe 2 Serial Pc(USBTX, USBRX); // tx, rx
dan_cuspi 0:288744c7febe 3 Serial Xb(p9, p10);
dan_cuspi 0:288744c7febe 4 DigitalOut myled(LED1);
dan_cuspi 0:288744c7febe 5
dan_cuspi 0:288744c7febe 6 int i,tmp1,tmp2,Lenght; // Variables Int para el For, Primer Caracter, Segundo Caracter,Tamaño del Mensaje
dan_cuspi 0:288744c7febe 7
dan_cuspi 0:288744c7febe 8 int msg[23]={0x7E,0x00,0x13,0x10,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x41,0x64,0x69,0x6F,0x73,0x02}; // Frame
dan_cuspi 0:288744c7febe 9
dan_cuspi 0:288744c7febe 10
dan_cuspi 0:288744c7febe 11 char msgR[100]; // Arreglo para el Mensaje
dan_cuspi 0:288744c7febe 12 char Len[100]; // Arrelo para la longitud del Mensaje
dan_cuspi 0:288744c7febe 13 char Str[100]; // Arreglo para el primer y segundo caracter de cada posición del Frame
dan_cuspi 0:288744c7febe 14 char Str1[100]; // Arreglo para la escritura del Frame a ASCII
dan_cuspi 0:288744c7febe 15 int Dato; //Variable para la conversion de HEX a INT
dan_cuspi 0:288744c7febe 16
dan_cuspi 0:288744c7febe 17 char* ch[16]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};//Conversión de int a HEX
dan_cuspi 0:288744c7febe 18 int main() {
dan_cuspi 0:288744c7febe 19
dan_cuspi 0:288744c7febe 20 for(i=0 ; i<23; i++) // Recorrido del Frame
dan_cuspi 0:288744c7febe 21 {
dan_cuspi 0:288744c7febe 22
dan_cuspi 0:288744c7febe 23 Xb.putc(msg[i]); // Lectura serial de cada caracter del frame
dan_cuspi 0:288744c7febe 24 tmp1 = msg[i]/16; // División de la i Posicion del frame para el primer caracter
dan_cuspi 0:288744c7febe 25 tmp2 = msg[i]%16; // Modulo de la i Posicion del frame para el segundo caracter 7E= 126 126/16 = 7 16*7= 112 126-112=14
dan_cuspi 0:288744c7febe 26 Dato = msg[i]; // Asignacion a variable tipo int de para convertir HEX a int
dan_cuspi 0:288744c7febe 27 Pc.printf("%02i ",Dato); // Impresion HEX a Int
dan_cuspi 0:288744c7febe 28 if (i>1 && i<3){snprintf(Len,90,"%s%d",Len,Dato);Lenght=atoi(Len);} // Condición para separar las partes del frame y conversión ej. Tamaño del mensaje
dan_cuspi 0:288744c7febe 29 if (i>16 && i<(Lenght+3)){ snprintf(msgR,90,"%s%c",msgR,Dato);} // Condición para separar las partes del frame y conversión ej. Mensaje
dan_cuspi 0:288744c7febe 30 snprintf(Str,90,"%s%s%s ",Str,ch[tmp1],ch[tmp2]); // Concatenacion del pimer y segundo caracter y formar el Frame Completo en ASCII
dan_cuspi 0:288744c7febe 31
dan_cuspi 0:288744c7febe 32 }
dan_cuspi 0:288744c7febe 33 Pc.printf("\n\rMessage %s\n\r",msgR); // Impresión del Mensaje en ASCII
dan_cuspi 0:288744c7febe 34 Pc.printf("\n\rLenght %i\n\r",Lenght);// Impresión del Tamaño del mensaje
dan_cuspi 0:288744c7febe 35 Pc.printf("\n\r%s\n\r",Str);// Impresión del frame en HEX con ASCII
dan_cuspi 0:288744c7febe 36
dan_cuspi 0:288744c7febe 37
dan_cuspi 0:288744c7febe 38 }