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.
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.