[Jde-dev] Sobre tratamiento de imágenes en "el nuevo introrob"

JoseMaria josemaria.plaza en gmail.com
Mar Dic 13 11:04:29 CET 2011


Hola,

el diseño bueno es que las imágenes las coja el hilo de control y que el
de visualización no use el interfaz ice para nada, simplemente visualice
las últimas que haya recogido el hilo de control. 

De este modo se visualizan exactamente las imágenes procesadas, y cuadra
con el caracter opcional de la visualización. Además, de esta manera el
componente no pide más imágenes de la cuenta al servidor, exclusivamente
las que procesa en iterationControl.

De alguna manera control y visualización tienen que compartir esa
memoria de imágenes. Si ahí puede haber condiciones de carrera,
protéjanse con algún mutex o tolérense. Por ejemplo si la consecuencia
más nociva es que la visualización de vez en cuando pueda enseñar media
imagen de un fotograma y otra media del siguiente, no es grave.

Mis dos centavos,

JoseMaria
On Tue, 2011-12-13 at 01:20 +0100, Mikel Gonzalez Baile wrote:
> Hola Rubén,
> 
> 
> 
> 
> 
> te has explicado perfectamente, jeje. Le he estado echando un ojo y es
> verdad que en una de las pruebas me ha dado el fallo "violación de
> segmento", sin embargo he seguido probándolo (entrando en los estados
> Avanzando y Girando) y no me ha pasado, así que a priori no sé que que
> puede ser. Ahora mismo estoy liado con los exámenes aunque voy a
> intentar solucionarlo cuanto antes.
> 
> 
> De todas formas, te comento un par de cosas por si te pueden venir
> bien. Lo que se me ocurre (puedo estar equivocado) es que como las
> imágenes se actualizan en el hilo GUI (en las variables
> control->image1, control->image2) se estén produciendo condiciones de
> carrera en el hilo iterationControl, ya que usas image1 e image2
> varias veces y quizás entre un uso y otro haya habido otra
> actualización. 
> Como solución momentánea te propongo que te implementes un
> "handleCameras2" que haga lo mismo que el otro pero actualizando dos
> nuevas variables (control->image1b, control->image2b) y esas sean las
> que uses en iterationControl, de tal forma que el "handleCamera" que
> ya hay actualice image1 e image2 (ya que son las que uso para mostrar
> en la interfaz gráfica) y tu "handleCamera2" actualice image1b e
> image2b que son las que uses tu para procesarlas a tu antojo, de esta
> forma eliminas las condiciones de carrera, ya que a una función la
> llamas en la hebra GUI y a otra en la hebra iterationControl y las
> variables que utilizarás son distintas.
> 
> 
> De todas formas yo mismo haré esas modificaciones puesto que si en un
> futuro quién haga uso del componente necesita procesar las imágenes
> por un lado y mostrarlas en la interfaz gráfica por otro, no le ocurra
> lo mismo.
> 
> 
> Espero que me hayas entendido y a ver si te puede servir de ayuda.
> 
> 
> Un saludo.
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
http://gsyc.es/jmplaza 
Universidad Rey Juan Carlos




More information about the Jde-developers mailing list