Programación General > Visual Basic 6.0 e inferiores
Transmision Serie
DrakerDG:
--- Citar ---Sinceramente no se mucho del tema, pero se me ocurre que si obtienes los datos byte por byte para pasarlo a hexadecimal puedes hacer:
Hex(Asc(Dato))
--- Fin de la cita ---
En este caso da error cuando se trate de bytes cuyo codigo en ASCII no sea imprimible. por lo que funciona si utilizas estas otras funciones:
Hex(AscB(Dato)
--- Código: Text ---While (Pos < LenB(Datos) - 1) Hex(AscB(MidB(Datos,Pos,1) ' Eso se lo asignas a una variable o control donde quieras almacenar los datos Pos = Pos + 1 Wend
La B de estas funciones (AscB, LenB, MidB) garantiza que trabajara con la cadena de bytes sin pre-definir en ASCII, es decir con el valor del byte tal cual es.
Epa:
Me haces quedar mal :P
No tenia idea de eso, buen punto. :o
Saludos
DrakerDG:
Epa:
No es mi intension hecerte quedar mal, no creas, al principio me partí la cabeza cuando intenté conectar un osciloscopio al serial e interpretar los códigos desde VB. No entendía porque unos codigos si los leia y otros no, y todo por la funcion Len(), esta no contaba los codigos no imprimibles y por consiguiente me era imposible entender la trama de los codigos. No detectaba algunos. Hasta llegué a pensar que el osciloscopio no funcionaba bien, incluso culpe al cable y hasta el puerto serial, que si que en la ayuda del MSDN estaba hasta abajo una notita en la informacion del Len(), donde comentaba la diferencia en caso de querer contar caracteres como byte o sea LenB().
Por una letrita todo el lio que se me armó. :D . Consecuentemente encontre que tambien tenía que usar MidB() en vez de Mid(), AscB() en vez de Asc(), y así sucecibamente. :hola:
Navegación
[*] Página Anterior
Ir a la versión completa