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

#1 Alejandro Mezcua
22/01/2007 - 18:35 | Informe spam
Hola emiliano.

El timeout va en milisegundos. Si le pones un timeout de 5ms y en ese tiempo
no recibes nada, te da la excepción.

Un saludo,

Alejandro Mezcua
MVP Device Application Development
http://www.byteabyte.net/

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

Respuesta Responder a este mensaje
#2 emiliano.sutil
22/01/2007 - 18:55 | Informe spam
Alejandro Mezcua ha escrito:


Hola Alejandro

El timeout va en milisegundos. Si le pones un timeout de 5ms y en ese tiempo
no recibes nada, te da la excepción.



La verdad es que no se en que rango de velocidad se mueve el puerto
serie, pero he probado con distintos
valores desde 5 hasta 50000 y no leo nada de nada, asi que me que esto
metiendo la gamba por algun lado

Otra cosa, se os ocurre como puedo testear el puerto serie? porque yo
lo que tengo conectada es una centralita telefonica que envia datos por
el RS232, pero igual no me esta enviando los datos y por eso no leo
nada.

Si intento hacer otro programa que escriba en el puerto serie, me da
error de acceso, supongo porque ya lo tengo abierto con el primero
programa, asi que no se como hacer para testear mi programa ¿Alguna
sugerencia?

Emiliano Sutil
>
Respuesta Responder a este mensaje
#3 emiliano.sutil
22/01/2007 - 19:05 | Informe spam
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
#4 RFOG
22/01/2007 - 22:37 | Informe spam
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
#5 Francisco Matamoros
23/01/2007 - 00:01 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida