TODOPIC

Misceláneas - Interés General => Off Topic => Mensaje iniciado por: PCCM en 04 de Enero de 2013, 13:23:55

Título: Ruido externo cuelga a software de PC?
Publicado por: PCCM en 04 de Enero de 2013, 13:23:55
Buenas, espero que me puedan ayudar.

Descripcion general del proyecto:
--------------------------------------------

He realizado un software en C (linux, ubuntu 11.04), que realiza 3 procesamientos a la vez(multihilos), uno que hace procesamiento con opencv, otro que se comunica via sockets con un  software llamado blender y el tercer se comunica via serial con el exterior.

Para la salida serial utilizo un cable comercial conversor usb-232, y este va a una tarjeta electronica conversora de 232-485 y a su salida de esta tarjeta sale un cable de aprox 15 metros a otro sistema.

--------------------------------------------

El problema es que cuando ejecuto el programa, lo utilizo ... y despues lo cierro (tecla escape), A VECES se cuelga (no se cierra, se pone pantalla del programa en negro o el mouse y teclado deja de funcionar), ese comportamiento de que a veces se cuelgue me hizo pensar de que algo estaba mal en la programación, tal ves que no finalizaba bien el procesamiento, no cerraba bien el puerto serial, el socket, etc...

Para lo cual lo probé el software solo,  sin la conexión externa del 485 al otro sistema, y de todas las pruebas que hice, nunca se me colgó,

Mi pregunta concreta es si a alguien le ha sucedido algo parecido,  o si es posible de que un ruido externo afecte a un software de PC.

Gracias.

Título: Re: Ruido externo cuelga a software de PC?
Publicado por: willynovi en 04 de Enero de 2013, 15:45:42
No creo que por ruido te deje el soft colgado, yo creo que el problema es porque en tu programa no estas liberando bien el dispositivo al momento de cerrarlo, por eso quizas cuando lo usas (el soft) sin conectar funciona correctamente porque no has abierto ninguna conexión.

Yo intentaría colocar alguna sentencia en tu programa que pueda darte algún mensaje si se produce algún error.

No tengo experiencia en programar en Linux, en windows esto que te comento es una buena técnica  ;-)
Título: Re: Ruido externo cuelga a software de PC?
Publicado por: todopic en 05 de Enero de 2013, 11:24:54
Una consulta?... la placa conversora de 485... es alimentada por el propio USB o tiene una fuente aparte?

Saludos!

Norberto
Título: Re: Ruido externo cuelga a software de PC?
Publicado por: PCCM en 08 de Enero de 2013, 21:56:27
El Puerto serial siempre esta conectado, uso un cable conversor 232-usb, ya que para probarlo sin sistema adicional, solo conecte este cable conversor, para que el programa piense que esta el dispositivo, ya que no funciona si no esta conectado.

La placa conversora tiene su propia alimentación (fuente aparte), pero la tierra del usb si esta conectadas por medio de una resistencia de 100 ohm.

Pero si no estaria liberando bien, porque me sucede en casos aleatorios?.

Asi libero mi programa:
Código: [Seleccionar]
             
      cvReleaseCapture(&capture);     //Libero puntero de captura de video
      cvReleaseImage(&contourImg); //Libero puntero de imagen
      cvReleaseImage(&frame);
      cvReleaseImage(&grayImg);
      cvDestroyWindow("src");             //Libero puntero de ventana
      close(sockfd);                                  //libero puerto de la comunicacion socket
      close(fd);                                          //libero puerto de comunicacion serial
      exit(0);                                              //finalizo programa.

Título: Re: Ruido externo cuelga a software de PC?
Publicado por: Darkman_A en 08 de Enero de 2013, 22:06:59
El Puerto serial siempre esta conectado, uso un cable conversor 232-usb, ya que para probarlo sin sistema adicional, solo conecte este cable conversor, para que el programa piense que esta el dispositivo, ya que no funciona si no esta conectado.

La placa conversora tiene su propia alimentación (fuente aparte), pero la tierra del usb si esta conectadas por medio de una resistencia de 100 ohm.

Pero si no estaria liberando bien, porque me sucede en casos aleatorios?.

Asi libero mi programa:
Código: [Seleccionar]
             
      cvReleaseCapture(&capture);     //Libero puntero de captura de video
      cvReleaseImage(&contourImg); //Libero puntero de imagen
      cvReleaseImage(&frame);
      cvReleaseImage(&grayImg);
      cvDestroyWindow("src");             //Libero puntero de ventana
      close(sockfd);                                  //libero puerto de la comunicacion socket
      close(fd);                                          //libero puerto de comunicacion serial
      exit(0);                                              //finalizo programa.


Hola PCCM.
En este ultimo caso que mencionas, ¿la PC funciono bien ?
Existen unos dispositivos que aislan electricamente la interfase RS232. Poseen internamente optoacopladores para realizar la aislacion. De ultima proba con alguno de estos. En Elektor han salido circuitos de estos. Tambien quizas puedas conseguirlos en Internent ya armados.

Saludos.
Título: Re: Ruido externo cuelga a software de PC?
Publicado por: todopic en 09 de Enero de 2013, 18:39:51
yo me apunto mas a un problema de induccion por el largo de cable.. diferencias de tension entre tierras o algo por el estilo...  esta la pc a masa? (descarga a tierra), quizas el equipo al que estas comunicando, tiene alguna perdida o induccion...

es posible acortar el cable?, o colocar un sistema opto-acoplado?

Título: Re: Ruido externo cuelga a software de PC?
Publicado por: PCCM en 30 de Enero de 2013, 21:18:56
Dejo mi solución: la solución era por el sistema operativo, cuando hice más pruebas al software solo, se seguía colgando. La PC que usaba como dije era Ubuntu pero de 64 bits. Así que lo cambié por Ubuntu de 32 bits y problema solucionado.

Aunque quisiera saber la explicación de tal hecho me basta saber que está OK.

Gracias.