Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: SARGE553413 en 11 Diciembre 2014, 12:24 pm



Título: Problema con COMMTIMEOUTS [SOLUCIONADO]
Publicado por: SARGE553413 en 11 Diciembre 2014, 12:24 pm
Hola a todos. Estoy desarrollando una aplicación en la que, entre otras cosas, tengo que leer y escribir por el puerto seria. Para ello uso la WinAPI.

No consigo configurar bien los timeouts (SetCommTimeouts), yo lo que quiero es que si al intentar leer del puerto serie no hay nada, éste espere un tiempo razonable (500 ms, 1 sec.) y luego continúe con la ejecución.

He leído la documentación de microsoft, y lo que entiendo es:

- El ReadIntervalTimeout es el tiempo max. que transcurre desde que llega un byte hasta que llega el siguiente.

- El ReadTotalTimeoutMultiplier: en cada operación de lectura, la cantidad de bytes a leer se multiplica por este valor. No entiendo para que sirve esto.

- El ReadTotalTimeoutConstant: este valor se suma al resultado de multiplicar el número de bytes a leer por el ReadTotalTimeoutMultiplier. No entiendo para que sirve esto.

De lo mencionado, ¿hay algo correcto?

¿Qué valores debo dar a las variables anteriores para tener por ej. 500 milisegundos de timeout en total?

Saludos, gracias.





Título: Re: Problema con COMMTIMEOUTS
Publicado por: SARGE553413 en 11 Diciembre 2014, 18:25 pm
Hola de nuevo.

Ya he encontrado la respuesta a mi pregunta. Si que lo había entendido bien, aquí dejo un enlace:
http://winapi.conclase.net/curso/?wintip=COMMTIMEOUTS#inicio

En respuesta a por qué no me funcionan las cosas bien, creo que es porque yo el puertyo seria que uso es uno virtual generado por una API de una máquina. Entonces por lo que veo genera un puerto serie justito para leer y escribir, pero no es como un puerto serie de verdad.

Saludos.