[Jde-dev] redimiento temporal en 5.0

Sara Marugan s.marugan en alumnos.urjc.es
Jue Feb 18 18:08:42 CET 2010


Ok. S� tiene toda la pinta de que la respuesta sea �sa. En realidad 
utilizo un �nico m�todo para pasarle las im�genes al modelo (un �nico 
setimages()), opero con ellas y despu�s hago un �nico notifyObservers(), 
que repinta todo el GUI seg�n me comentas.

La otra opci�n indica expl�citamente que quiere cambiar los buffers de 
las im�genes con Viewer::display() y despu�s liquida los eventos del GUI 
pendientes as�:

  while (gtkmain.events_pending())
      gtkmain.iteration();

Si el c�digo de notifyObservers() es equivalente al bucle while anterior 
no deber�a haber problema no? Este es el c�digo que he encontrado en 
src/ de jderobot-5.0:

observer.cpp

  void Subject::notifyObservers(){
    notifyObservers(ObserverArgPtr());
  }

El c�digo de notifyObservers() viene dado por ICE?quiz� se pueda 
reimplementar.



David Lobato wrote:
> Hola Sara,
>
>
> Lo primero comentar que no lo que aparece en el "motiondetection" no 
> es el patr�n MVC (Model-View-Controller) puro, si no que una 
> aproximaci�n que adapt� al caso concreto.
>
> Independientemente, lo que andaba buscando es una manera de desacoplar 
> al m�ximo el c�digo de la visualizaci�n. Actualmente, en los esquemas 
> de la 4.3, todo se entremezcla, resultando complicado distinguir entre 
> c�digo de la aplicaci�n y c�digo de la visualizaci�n. As� que se me 
> ocurri� que podr�a aplicar alg�n patr�n de los que se usan en 
> aplicaciones con visualizaci�n. MVC y sus variantes son patrones de 
> este tipo.
>
> En este patr�n se separan los datos (modelo) de la interfaz gr�fica 
> (vista), utilizando un intermediario (controlador). El controlador se 
> encarga de actualizar el modelo con los cambios que provengan de la 
> vista (pulsar un boton, caja de texto,...) o del exterior (en nuestro 
> cosa de la red). A su vez, el modelo env�a una notificaci�n de que sus 
> datos han cambiado, que es recibida por todas las vistas suscritas al 
> modelo (usamos patr�n Observer para esto) y que se encargan de releer 
> el modelo y actualizarse (repintar el gui).
>
> En principio suena bien. Pero pensando en el caso concreto que Sara 
> est� implementando, creo que sucede lo siguiente:
>
> Supongo que el modelo de Sara no es mas que un almacen de 4 imagenes 
> (cada una de las recibidas de cada c�mar�) que el el controlador 
> actualiza de 1 en 1 usando un m�todo tipo setImage1, setImage2,...
> Dichos m�todos, a su vez, env�an una notificaci�n de cambio a las 
> vistas. Las vistas, que no son capaces de ver que ha cambiado 
> concretamente repintan todo. Es decir, que estamos actualizando la gui 
> por cada imagen recibida y de ah� que el rendimiento haya caido tan 
> notablemente.
>
> Se me ocurre que podemos a�adir mas informaci�n a la notificaci�n que 
> genera el modelo, para indicar que es lo que ha cambiado, de modo que 
> la vista s�lo pinte aquello que ha cambiado.
>
> �Mas ideas? �Otros patrones que podamos aplicar a nuestros componentes 
> con gui?
>
> David.
>
>
>
>
>
> 2010/2/18 Juan Antonio Bre�a Moral <bren en juanantonio.info 
> <mailto:bren en juanantonio.info>>
>
>     Hola Sara,
>     No me he puesto a trabajar con el MVC de JDRobot 5.0 pero tiene
>     pinta de que en muchas iteraciones de los componentes, los datos
>     pasan por el controller y otras areas en teoria, te lo digo con
>     desconocimiento de como lo haces.
>
>     Yo hasta donde llego MVC es un patron de dise�o que se emplea en
>     aplicaciones de gestion, vease Structs2 [1] no tenia constancia
>     que en Robotica tambien era valido separar la capa de datos del
>     control. Quizas debido a eso si la vista es el GUI y el Model es
>     el Sensor, cada iteracion del Sensor pasa siempre por el
>     controller y este hace una serie de tareas y quizas por eso
>     repercuta en el rendimiento.
>
>     �La forma tradicional no es valida?
>     �Si un componente gestiona un sensor o grupo y se comunica con ICE
>     con otra area?
>
>     Un abrazo
>
>     [1] http://struts.apache.org/
>
>     Sara Marugan escribi�:
>>     Claro, al utilizar el MVC tiene que introducir algo de latencia, pero 
>>     tanta me parece excesiva.
>>
>>
>>     Juan Antonio Bre�a Moral wrote:
>>       
>>>     Puede que sea la propia arquitectura MVC.
>>>     �Es posible?
>>>
>>>     Sara Marugan escribi�:
>>>         
>>>>     Hola,
>>>>
>>>>     quer�a comentaros una cosa y es que he hecho dos componentes 
>>>>     diferentes que reciben im�genes de 4 c�maras a la vez y las muestran. 
>>>>     El primero est� basado en varcolorviewgtkmm, que no utiliza el modelo 
>>>>     MCV, y el segundo en motiondetection, que s� lo utiliza.
>>>>
>>>>     Mi sorpresa es que mientras que el primero ejecuta a 30 ips, el 
>>>>     segundo a 5 ips. �A qu� puede deberse esto? en el segundo intervienen 
>>>>     m�s clases pero me extra�a que introduzcan tanta latencia. �Es 
>>>>     ajustable el ritmo de ejecuci�n?
>>>>
>>>>     gracias de antemano,
>>>>
>>>>     Sara
>>>>     _______________________________________________
>>>>     Jde-developers mailing list
>>>>     Jde-developers en gsyc.es <mailto:Jde-developers en gsyc.es>
>>>>     http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>>
>>>>       
>>>>           
>>>         
>>     _______________________________________________
>>     Jde-developers mailing list
>>     Jde-developers en gsyc.es <mailto:Jde-developers en gsyc.es>
>>     http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>>       
>
>
>     -- 
>
>     Juan Antonio Bre�a Moral
>     www.juanantonio.info <http://www.juanantonio.info>
>     www.roboticaenlaescuela.es <http://www.roboticaenlaescuela.es>
>     www.robotica-urjc.es <http://www.robotica-urjc.es>
>
>     Este mensaje (incluyendo los archivos adjuntos) es confidencial y reservado. Si Vd. lo ha recibido por error, por favor notif�quelo al emisor del mismo v�a e-mail y borre el mensaje de su sistema. Cualquier uso no autorizado o divulgaci�n de su contenido, ya sea en todo o en parte, est� totalmente prohibido. Tenga en cuenta que los e-mails son susceptibles de ser modificados.El remitente no se har� responsable de la incorrecta o incompleta transmisi�n de la informaci�n contenida en esta comunicaci�n, ni por ning�n retraso en la recepci�n o da�o a sus sistemas. el remitente no garantiza que esta comunicaci�n se ha realizado en su integridad ni que la misma no contiene virus, intercepciones o interferencias. Este e-mail ha sido escaneado mediante la utilizaci�n de Antivirus.
>
>     El tratamiento de los datos de car�cter personal, as� como el env�o de boletines o comunicaciones realizadas por medios electr�nicos, son conforme a la Ley Org�nica 15/1999, de 13 de diciembre, de Protecci�n de Datos de Car�cter Personal (B.O.E. de 14 de diciembre de 1999) y a la Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de Informaci�n y de Comercio Electr�nico (B.O.E. de 12 de julio de 2002). El tratamiento desautorizado de datos de caracter personal puede suponer una infracci�n de la Ley Org�nica 15/1999, de 13 de diciembre, de Protecci�n de Datos de car�cter personal. Si usted no es el destinatario que figura arriba, o la persona responsable de su entrega al mismo, deber� de abstenerse de examinar o utilizar su contenido, realizar copias o entregarlo a persona distinta. Para obtener informaci�n sobre la pol�tica de privacidad o para el ejercicio de
>      derechos de acceso, rectificaci�n, cancelaci�n y oposici�n, puede dirigirse a este correo electr�nico, indicando en el asunto "Protecci�n de Datos".
>
>     This message (including any attachments) is confidential and may be privileged. If you have received it by mistake, please notify the sender by return e-mail and delete this message from your system. Any unauthorized use or dissemination of this message in whole or in part is strictly prohibited. Please note that e-mails are susceptible to change. The sender shall not be liable for the improper or incomplete transmission of the information contained in this communication, nor for any delay in its receipt or damage to your system. The sender does not guarantee that the integrity of this communication has been maintained or that this communication is free from viruses, interceptions, or interference. This email has been scanned using Antivirus
>
>
>         
>
>
>     _______________________________________________
>     Jde-developers mailing list
>     Jde-developers en gsyc.es <mailto:Jde-developers en gsyc.es>
>     http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>



More information about the Jde-developers mailing list