SevEd
Bovino maduro
- Desde
- 23 Ago 2009
- Mensajes
- 413
- Tema Autor
- #1
Que tal mis amigos del corral
Tengo un programa que corre 4 hilos de ejecución, en LINUX. En uno de ellos se corre una rutina que lee al puerto serie (/dev/ttyUSB0) cada 10 ms.
Mi problema es que si se desconecta el puerto serie mientras el programa está aún en ejecución, el programa se queda colgado. Por lo que tengo que forzar el cerrado.
Cuando intento abrir nuevamente el programa, el descriptor de archivo del programa queda inaccesible
He implementado lo siguiente:
Alguna idea de lo que está pasando?? Por qué no se termina el programa?
Saludos mi amigos y gracias por su ayuda
Tengo un programa que corre 4 hilos de ejecución, en LINUX. En uno de ellos se corre una rutina que lee al puerto serie (/dev/ttyUSB0) cada 10 ms.
Mi problema es que si se desconecta el puerto serie mientras el programa está aún en ejecución, el programa se queda colgado. Por lo que tengo que forzar el cerrado.
Cuando intento abrir nuevamente el programa, el descriptor de archivo del programa queda inaccesible
He implementado lo siguiente:
Con lo anterior detecto que el puerto serie se ha desconectado (se imprime en pantalla), pero el programa no cierra el descriptor de archivo, tampoco termina el programa, y el programa se queda colgado.u8BytesRead = Read_SerialPort(u32SerialFD, u8Buff, 1);
if(u8BytesRead > 0)
{
u8Sensor = u8Buff
}
else if (u8BytesRead < 0)
{
printf("Serial Port disconnected: Closing...\n");
close(u32SerialFD);
exit(0);
}
else
{
/* Nothing to do */
}
Alguna idea de lo que está pasando?? Por qué no se termina el programa?
Saludos mi amigos y gracias por su ayuda