Leer un puerto Serie

22/01/2007 - 18:32 por emiliano.sutil | Informe spam
Hola a todos

Estoy haciendo un programilla que lee un puerto serie usando
System.IO.Ports
Uso la clase SerialPort de la siguiente manera:

mySerial = new SerialPort("COM1", 9600);
mySerial.DataBits = 8;
mySerial.StopBits = StopBits.One;
mySerial.ReadTimeout = 5;
mySerial.Open();
mySerial.DiscardInBuffer();
string datos = mySerial.ReadLine();


El problema es que me da el error
Exception:System.TimeoutException: Se excedió el tiempo de espera de
la operación.

Si comento la linea mySerial.ReadTimeout = 5;
entonces el programa se queda en la linea ReadLine() y de ahi no pasa y
no lee nada de nada

A alguien se le ocurre que estoy haciendo mal?

Un saludo

Emiliano Sutil

Preguntas similare

Leer las respuestas

#6 RFOG
23/01/2007 - 00:08 | Informe spam
Hay una aplicación de terminal que yo usaba mucho (ahora no la uso
porque donde estoy no la hemos comprado) que se llama DockLight. Es una
gozada, te permite incluso responder con comandos ante comandos
recibidos.

http://www.docklight.de/


It happens that Francisco Matamoros formulated :
Prueba antes de nada con Hyperterminal, a mí me sacó ya de algunos apuros.
Saludos
"RFOG" escribió en el mensaje
news:
Si tuvieras dos puertos serie en el equipo podrías conectar uno con el otro
y hacer pruebas.

Deberías conectar el TX de un con el RX del otro, y viceversa. Y luego el
Comun o masa, como lo llames.

Para comprobar si estás recibiendo y enviando de verdad y sin tener ninguna
duda de ello necesitas al menos un osciloscopio y pinchar los hilos.
Algunos aparatos hasta te interpretan lo recibido y te mostrarían los
datos, pero valen una pasta.



formulated the question :
Puff, acabo de releer mi post y me da que tengo que tomarme un
descanso, que ya no se ni lo que escribo.. :-(

Mañana más

Saludos a todos

Emi




Respuesta Responder a este mensaje
#7 emiliano.sutil
23/01/2007 - 17:46 | Informe spam
RFOG ha escrito:
Hay una aplicación de terminal que yo usaba mucho (ahora no la uso
porque donde estoy no la hemos comprado) que se llama DockLight. Es una
gozada, te permite incluso responder con comandos ante comandos
recibidos.

http://www.docklight.de/





Hola me he descargado esta herramienta y bien, si que veo que la
centralita me manda datos, pero yo desde mi programa no leo nada.

Que puede ser lo que hago mal?

Si leo solo de un byte en un byte por si fuera un problema del final de
linea,

tmpByte = (byte) mySerial.ReadByte();

Ahi se queda. ¿puede ser por algo del control de flujo? o algo que se
me escapa

Un saludo
Respuesta Responder a este mensaje
#8 emiliano.sutil
23/01/2007 - 17:46 | Informe spam
RFOG ha escrito:
Hay una aplicación de terminal que yo usaba mucho (ahora no la uso
porque donde estoy no la hemos comprado) que se llama DockLight. Es una
gozada, te permite incluso responder con comandos ante comandos
recibidos.

http://www.docklight.de/





Hola me he descargado esta herramienta y bien, si que veo que la
centralita me manda datos, pero yo desde mi programa no leo nada.

Que puede ser lo que hago mal?

Si leo solo de un byte en un byte por si fuera un problema del final de
linea,

tmpByte = (byte) mySerial.ReadByte();

Ahi se queda. ¿puede ser por algo del control de flujo? o algo que se
me escapa

Un saludo
Respuesta Responder a este mensaje
#9 RFOG
23/01/2007 - 17:55 | Informe spam
Pues si el docklight te recibe los datos, el problema está seguro en tu
programa.

El componente funciona bastante bien, lo he probado en varias
aplicaciones y salvo algún tiquismiquis, funciona de cine.

Es muy posible que estés configurándolo mal, casi seguro.

Revisa las opciones de bit de stop, paridad y control de flujo.

After serious thinking wrote :
RFOG ha escrito:
Hay una aplicación de terminal que yo usaba mucho (ahora no la uso
porque donde estoy no la hemos comprado) que se llama DockLight. Es una
gozada, te permite incluso responder con comandos ante comandos
recibidos.

http://www.docklight.de/





Hola me he descargado esta herramienta y bien, si que veo que la
centralita me manda datos, pero yo desde mi programa no leo nada.

Que puede ser lo que hago mal?

Si leo solo de un byte en un byte por si fuera un problema del final de
linea,

tmpByte = (byte) mySerial.ReadByte();

Ahi se queda. ¿puede ser por algo del control de flujo? o algo que se
me escapa

Un saludo
Respuesta Responder a este mensaje
#10 emiliano.sutil
23/01/2007 - 18:44 | Informe spam
RFOG ha escrito:
Pues si el docklight te recibe los datos, el problema está seguro en tu
programa.

El componente funciona bastante bien, lo he probado en varias
aplicaciones y salvo algún tiquismiquis, funciona de cine.

Es muy posible que estés configurándolo mal, casi seguro.

Revisa las opciones de bit de stop, paridad y control de flujo.




Lo tengo configurado asi

private SerialPort port = new SerialPort("COM1", 19200, Parity.None,
8, StopBits.One);

Con esa configuracion en el docklight me lee los datos de la
centralita, pero con mi programa no hay manera,
No lee ni un misero byte
¿que mas puedo configurar?



Un saludo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida