Saludos,
Tengo un lector RIDF que me entrega este dato
//!Numero tarteja: 0009531147
//!Dato : 00 91 6f 0b f5
//!check bit, f5 = 00^91^6f^0b
Solo tengo que leer por uart y reenviarlo por BLE, el problema que tengo es que ese modulo envia HEX y no ASCII.
UID[i++]=c;
Ahi tengo el dato 00 91 6f 0b f5
Si lo quiero imprimir en string, no imprime el buffer porque no es un asccii
for (k
=0;k
<5;k
++) fprintf(debug
,"%c",UID
[k
]); // imprime ruido, no identifica cada byte como caracter.
si uso esto :
for (k
=0;k
<5;k
++) fprintf(debug
,"%X",UID
[k
]); // IUD imprime 00916f0bf5
La pregunta es, porque el dato de entrada no es un simple ascii?
necesito imprimir ese buffer como un ascii, o mejor dicho, necesito identificar cada "dígito" como un accii para usar una función que convierte asccii a pulsaciones de teclado USB.
Tengo que separar el Hex 0x00 en dos numero 0x0 y 0x0 para poder usar esta función:
// ******* ASCCI to KEYBOARD
uint16_t ToHidKeyboardScancode(char c){
switch(c){
// Hex
case 'A': return(0x04);
case 'B': return(0x05);
case 'C': return(0x06);
case 'D': return(0x07);
case 'E': return(0x08);
case 'F': return(0x09);
case '1': return(0x1E);
case '2': return(0x1F);
case '3': return(0x20);
case '4': return(0x21);
case '5': return(0x22); //
case '6': return(0x23); //
case '7': return(0x24); //
case '8': return(0x25); //
case '9': return(0x26); //
case '0': return(0x27);
}
//if ((c>='a') && (c<='z')) return (c-'a'+'A');
return(0);
}