Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda puerto serial

SevEd

Bovino maduro
Desde
23 Ago 2009
Mensajes
413
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:

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 */
}

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.

Alguna idea de lo que está pasando?? Por qué no se termina el programa?

Ahora bien, si solo leo el puerto serie en un loop infinito (sin ningun otro hilo) con la rutina arriba mencionada, el programa si se cierra el puerto y termina

Que raro que cuando esta rutina se encuentra en un hilo no funcione... Alguien sabe porque??

Saludos mis hermanos
 
creo que esto no va en electronica, pero de todos modos no mencionas en que lenguaje estas programando
 
creo que esto no va en electronica, pero de todos modos no mencionas en que lenguaje estas programando

Sorry, estoy programando en lenguaje C, y publique aqui xq en el foro de programadores nadie puedo darme una respuesta, gracias por su ayuda
 
Volver
Arriba