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
 

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

Preguntas similares