Hola gente !!!.
De todas formas lo que interesa es el valor en hexadecimal, la representacion es una ventaja que te da el software y esta representacion no siempre tiene que ver con la realidad, como cuando representa un caracter de control (bel, lf, cr, etc, etc).
Es asi, pero si usas el hyperterminal imagino que poner CD D1 es mandar las letras "C","D"," ","D","1" y no su valor hexadecimal, por eso la importancia que le di. A no ser que use Alt+205 (═) y Alt+209 (Ð) cuando escriba en la terminal.
Lo que si no sabia era el unicode.
Si enviara las letras "C","D"," ","D","1" como caracteres estaria recontra mal, en ese caso tendria que enviar los caracteres "ÍÑ" que tambien esta mal, porque siempre hay que enviar los datos en hexadecimal (salvo que sepas que es texto, por ejemplo "hola").
Como Jose ya sabe que puede mandar en hexa por hiperterminal, doy vuelta de hoja con este tema.
Me parece que el que comienza la tranferencia es el PIC
SI yo tambien pense en eso al principio.. leyendo esta parte: Request transfers data from a client to a COM port , Creyendo que el cliente era el PIC, pero no es el PIC es el programa el cliente.
Las pruebas son las siguientes:
Si te fijas usa IRP_MJ_WRITE del driver de MS, el cliente ( programa ) pide al driver que trasfiera esos datos por el COM
Ademas tambien podes ver que pide un IOCTL_SERIAL_GET_COMMSTATU donde figura 2 bytes en cola de entrada
AmountInInQueue - 2
AmountInOutQueue - 0
Y procede con una lectura IRP_MJ_READ
Esta bien, es como digo. Fijate:
[04/12/2014 11:04:53]
36 IRP_MJ_WRITE - Request transfers data from a client to a COM port
STATUS_SUCCESS
cd d1 ÍÑ
----------------------------------------------------------------------------------
[04/12/2014 11:04:53]
37 IRP_MJ_DEVICE_CONTROL - Request operates a serial port
STATUS_SUCCESS
IOCTL_SERIAL_WAIT_ON_MASK - Request is used to wait for the occurrence of any wait event specified by using an IOCTL_SERIAL_SET_WAIT_MASK request
Mask - 0x00000001 (EV_RXCHAR)
----------------------------------------------------------------------------------
[04/12/2014 11:04:53]
39 IRP_MJ_DEVICE_CONTROL - Request operates a serial port
STATUS_SUCCESS
IOCTL_SERIAL_GET_COMMSTATUS - Request returns information about the communication status of a COM port
Errors - 0
HoldReasons - 0
AmountInInQueue - 2
AmountInOutQueue - 0
EofReceived - 0
WaitForImmediate - 0
----------------------------------------------------------------------------------------------------------
(saco de lo anterior lo que me interesa analizar)
36 IRP_MJ_WRITE - Request transfers data from a client to a COM port el PIC le envia a la PC 2 caracters (CD D1)
PIC ----> PC
STATUS_SUCCESS
IOCTL_SERIAL_GET_COMMSTATUS - Request returns information about the communication status of a COM port
Errors - 0
HoldReasons - 0
AmountInInQueue - 2
AmountInOutQueue - 0La PC lo recibe y los tiene que meter en algun lado, ¿donde lo pone? .... en su buffer de entrada (InQueue=2). Esta recibiendo.
Jose, si podes y si te parece bien, los futuros datos que subas hacelo como adjunto en archivo de texto plano (txt) y si queres zipealo asi no se hace tan largo el post.
Otra cosa, si podes publicar el nombre y modelo del aparato con el pic y el programa o sino pasamelo por privado para buscar mas informacion.
Una vez hice algo parecido con un aparato. Me arme un cable serie y ademas de los 2 conectores DB25 le puse 2 mas para capturar los datos. Estos iban a una PC con 2 puertos (solo usaba RX en cada interfase) y utilizaba un programa en DOS que mostraba los datos que enviaban la PC y el dispositivo (usaba 2 PC, una conectada al dispositivo y otra para monitorear los datos). Tenia uno que mostraba en pantalla separadas y no se si era el mismo programa o otro que me lo mostraba en una pero con distintos colores lo que enviaba uno u otro dispositivo. Al toque sabias quien empezaba y que enviaba cada uno.
Otra forma de saber quien comienza la transmision es con un tester de RS232. Hay algunos que poseen leds bicolor que te indican quien es DTE y quien DCE.
Cambiaron los tiempos y las pc con 2 seriales han practicamente desaparecido. Se me ocurre armar algo con un PIC que haga los mismo pero que envie los datos a la PC por USB. Lo pongo en la lista de cosas para hacer.
Saludos.