Re: Bugs en RJ(t)



Xavier,
Eso no era, ahora falla en todas las oportunidades.
Te explico el caso nuevamente por las dudas que existe una confusi�Yo las pruebas las estoy haciendo haciendo terminar el tiempo
seleccionado mientras estoy en contacto con la plataforma.
O sea, caigo, espero que se cumpla el tiempo adentro, y luego salto.
Y las pruebas las hago con Chronopic, no simulado.

Saludos
Juanfer

El jue, 14-06-2007 a las 14:57 +0200, Xavi de Blas escribi� Hola Juan Fernando
> 
> Creo que he encontrado el fallo, prueba esto por favor:
> 
> en src/execute/event.cs
> l�as: 228-232
> 
>                 if(needEndEvent) {
>                         eventExecuteWin.EventEnded();
>                         //needEndEvent = false;
>                 } else
>                         updateTimeProgressBar();
> 
> c�ialas por esto
> 
> 
>                  updateTimeProgressBar();
>                 if(needEndEvent) {
>                         eventExecuteWin.EventEnded();
>                         //needEndEvent = false;
>                 } else
>                         //updateTimeProgressBar();
> 
> 
> Parece que cuando se termina el salto depende de c�est�los hilos,
> no se llamaba al updateTimeProgressBar() que es el que se encarga de
> actualizar la barra de progreso que estaba fallando.
> 
> En cuanto alos otros cambios que te ped�puedes mantenerlos, sirven
> para garantizar que se actualice la informaci�> 
> Puede que esto falle tambi�en los carreras en int�alos limitadas por tiempo.
> 
> 
> Lo que escribes est�ien, es l�o, pero piensa que es mucho m�> complejo por el tema de los hilos. Por ejemplo: el needEndEvent es una
> variable que indica que un evento deber�terminar, y esto lo indica
> un hilo de ejecuci�el programa (imag�te que es un procesador que
> est�cupado con algunas tareas del programa) en cambio otro hilo
> (podr�ser otro procesador con otras tareas diferentes), cuando ve
> este needEndEvent (pues comparten la variable) entonces realiza el
> cambio.
> 
> Por qu�on hilos? pues porque GTK no es "thread-safe" entonces para
> que se pueda hacer clic en sitios como el finalizar o cancelar
> mientras se actualiza la gr�ca con datos que vienen del puerto
> serie... hay que hacerlo con hilos.
> 
> En un futuro espero que breve, mono lanzar�n evento por cada cosa
> nueva que le llegue por el puerto serie (o usb-serie, es lo mismo),
> cuando esto est�rogramado, creo que se podr�rescindir de los
> hilos, entonces reprogramar�oda la ejecuci�e eventos -y tengo
> ganas- para que sea algo parecido a lo que indicas, m�claro y
> provoque menos errores.
> 
> Hasta que no llegue ese momento, hay que valorar si los bugs que
> eventualmente aparecen son importantes o no y si es f�l arreglarlos.
> En este caso, el fallo no afectaba al resultado que se guardaba, s�> al que se visualizaba en una parte de la pantalla en un momento
> concreto, y s�en algunas ocasiones de algunos ordenadores (a mi a�no me ha pasado nunca, es lo que tienen los hilos). Si adem�con el
> cambio que te presento hoy se arregla, pues de momento el sistema
> actual sirve.
> 
> Pero te agradezco mucho tus comentarios pues ayudan a mejorar el programa.
> 
> Se arregl� fallo?
> 
> Saludos
> 
> 2007/6/14, Juan Fernando Pardo <juanfer juanfer com ar>:
> > Xavier,
> > Te comento que hice el cambio, pero me apareci�evamente el "error".
> > Te adjunto una imagen para que veas.
> >
> > Como no tengo bien claro como se programa con "hilos", te pregunto lo
> > siguiente. �Es muy dificil que las comprobaciones se hagan de la
> > siguiente forma?
> >
> > //Esperando contacto para empezar
> > llamar contacto //cuando se produce el contacto, se llama a la funcion
> >
> > contacto()
> > {
> > si tiempo_acumulado < tiempo_establecido
> >   saltos=saltos+1
> >   llamar vuelo //cuando se inicia el vuelo, llamo a la funcion
> > sino
> >   estado=contacto
> >   llamar terminar_evento
> > }
> >
> > vuelo()
> > {
> > si tiempo_acumulado < tiempo_establecido
> >   llamar contacto //cuando se inicia el contacto, llamo a la funcion
> > sino
> >   estado=vuelo
> >   llamar terminar_evento
> > }
> >
> > terminar_evento()
> > {
> > si estado=contacto
> >   si permitir_despues_de_tiempo=si entonces saltos=saltos+1
> >   llamar actualizar_graficos_y_barras
> > sino
> >   llamar actualizar_graficos_y_barras
> > }
> >
> >
> >
> > Saludos
> > Juanfer
> >
> >
> > El mi�13-06-2007 a las 16:40 +0200, Xavi de Blas escribi� > > Hola juan Fernando
> > >
> > >
> > > 2007/6/12, Juan Fernando Pardo <juanfer juanfer com ar>:
> > > > Xavier,
> > > > He aplicado el cambio, compilado nuevamente y probado.
> > > > Tuve que intentar muuuchas veces m�para que aparezca el "fallo", pero
> > > > apareci� > > > Adjunto 2 im�nes.
> > > >
> > >
> > >
> > > Bueno, parece que el error se va limpiando, creo que con lo que te
> > > ped�impiamos la barra de progreso de saltos. Para la barra de
> > > progreso de tiempo, por favor, cambia esto:
> > >
> > > ***********************
> > > needUpdateGraph = true;
> > > updateProgressBar = new UpdateProgressBar (
> > >     true,
> > >     jumpsLimited,
> > >     Util.GetNumberOfJumps(tvString, false)
> > >     );
> > > needUpdateEventProgressBar = true;
> > > }
> > > ************************
> > >
> > > por esto (s�es a�r una l�a antes de la llave final, s�hay
> > > que hacerlo una vez, en las mismas l�as que cambiaste la otra vez):
> > >
> > > ***********************
> > > needUpdateGraph = true;
> > > updateProgressBar = new UpdateProgressBar (
> > >     true,
> > >     jumpsLimited,
> > >     Util.GetNumberOfJumps(tvString, false)
> > >     );
> > > needUpdateEventProgressBar = true;
> > > updateTimerCountWithChronopicData(tcString, tvString);
> > > }
> > > ************************
> > >
> > > si no mejora se me ocurre otro cambio, pero antes prueba esto, cuando
> > > me digas algo lo subo al svn para no continuar mandando l�as de
> > > c�o por correo.
> > >
> > >
> > > > En la imagen RJt-3 cumpl�l salto 6 y permanec�n la plataforma (en
> > > > realidad lo hice con el pulsador) hasta que se cumpla el tiempo
> > > > establecido (5 segundos), luego salt� ca�e nuevo. Finaliz�
> > > > evento, no sum� salto 7 (como corresponde), pero s�ued� tiempo
> > > > final, el que deb�indicar cuando finalic�l salto 7. En este caso
> > > > ten�la opci�Permitir RJ terminar despu�del tiempo".
> > > >
> > > > En la imagen RJt-4, sin la opci�Permitir RJ terminar despu�del
> > > > tiempo", termin�l salto 5 dentro del tiempo establecido (5 segundos),
> > > > y al iniciar el 6 se cumple el tiempo, caigo ya excedido el tiempo, y no
> > > > lo cuenta, como corresponde, pero queda mostrando el tiempo de la ca�
> > > > del salto 6.
> > > >
> > > > En ambos casos, en la ventana principal de los resultados est�ien, es
> > > > solo err� la informaci�n la ventana de eventos.
> > > >
> > > >
> > > > Pregunta: �Qu�s la informaci�el rengl�DE"?
> > >
> > > La desviaci�st�ar o t�ca (en ingl�se suele abreviar SD
> > > standard deviation, aunque en muchos �itos se le llama Typical
> > > Dev.), una medida de la similitud de los datos. por ejemplo para ver
> > > la variaci�e ritmo de un individuo es imprescindible. En un rj
> > > largo puede ser interesante que en un futuro se divida en 3 o 5 partes
> > > y se vea la DE de cada parte
> > >
> > > Por ejemplo, para ver si los chicos tienen unos valores de salto m�> > > similares entre ellos que las chicas te puede servir.
> > >
> > > > Comentarios: Si sum�todos los tiempos de contactos, te da 878
> > > > mil�mas, y en los resultados muestra 880. �Es alg�rror" de
> > > > redondeo"?
> > > > En el caso de los tiempos de contacto, la diferencia es de solo 1
> > > > mil�ma. 3,446 que se muestra contra 3,445 que suman los saltos.
> > > >
> > >
> > > Ves a las preferencias y aumenta los decimales que se muestran.
> > >
> > >
> > > El m�do de redondeo es el que se explica aqu� > >  http://www.go-mono.com/docs/index.aspx?link=M%3aSystem.Math.Round(System.Double)
> > >
> > > en el que cuando se encuentra en la mitad siempre redondea hacia el n� par.
> > >
> > > Round(4,5) = 4
> > > Round(4,5) = 4
> > > Round(5,5) = 6
> > >
> > > aunque esto ***s�se usa en la ventana de saltos***, en el resto no
> > > se redondea de momento, s�se "capan" decimales. En una futura
> > > versi�e redondear�ejor.
> > > Cuando se redondee bien en todo el programa, entonces no se observar�> > > problemas de sumas como el que adviertes.
> > > No ser�ada dif�l, al fin y al cabo todos los decimales se "capan"
> > > usando el Util.TrimDecimals() s�hay que poner el redondeo all� ya
> > > est� > > voy  a poner un bug con esto
> > >
> > > saludos y gracias
> > >
> > >
> > > >
> > > > Saludos
> > > > Juanfer
> > > >
> > > >
> > > >
> > > > El mar, 12-06-2007 a las 18:38 +0200, Xavi de Blas escribi� > > > > Hola Juan Fernando
> > > > >
> > > > > Lo he probado unas 15 veces y no he conseguido reproducir el error,
> > > > > por otro lado, me gustar�que probases de a�r unas l�as a ver si
> > > > > resuelve este problema, y me cuentas qu�al. Es nuevamente un
> > > > > problema de threads.
> > > > >
> > > > > prueba de hacer esta modificaci�n el archivo src/execute/jump.cs
> > > > >
> > > > > cambia las l�as 850 y 851
> > > > >
> > > > > ***************
> > > > > needUpdateGraph = true;
> > > > > }
> > > > > ***************
> > > > >
> > > > > por esto:
> > > > >
> > > > > ***************
> > > > > needUpdateGraph = true;
> > > > > updateProgressBar = new UpdateProgressBar (
> > > > >     true,
> > > > >     jumpsLimited,
> > > > >     Util.GetNumberOfJumps(tvString, false)
> > > > >     );
> > > > > needUpdateEventProgressBar = true;
> > > > > }
> > > > > ***************
> > > > >
> > > > > Ya nos contar� gracias
> > > > >
> > > > > 2007/6/12, Juan Fernando Pardo <juanfer juanfer com ar>:
> > > > > > Xavier,
> > > > > > Encontr�o siguiente en el Chronojump del SVN.
> > > > > > En los saltos RJ(t), cuando se cumple el tiempo y estoy sobre la
> > > > > > plataforma, luego de realizar el salto y la ca� para que verifique que
> > > > > > el tiempo termin�n la ventana del evento pasa lo siguiente, (pero
> > > > > > solo en algunas oportunidades)
> > > > > >
> > > > > > 1. Me deja el tiempo de la �a ca�, no el que hab�antes de
> > > > > > realizar el �o salto, pero me muestra bien la cantidad de saltos, ya
> > > > > > que no suma este �o.
> > > > > >
> > > > > > 2. Me suma este �o salto, pero me muestra bien el tiempo, ya que
> > > > > > queda mostrando el �o tiempo v�do antes que realice el salto.
> > > > > >
> > > > > > Pero estas 2 cosas solo est�mal en la ventana del evento, en el
> > > > > > resumen que guarda en la base de datos lo muestra bien.
> > > > > >
> > > > > > Adjunto 2 im�nes para corroborar lo que digo.
> > > > > > En el caso 1, ver como en la ventana de eventos dice un tiempo, y en la
> > > > > > pantalla principal del programa dice otro.
> > > > > > En el caso 2, ver como en la ventana de eventos figura un salto m�
> > > > > >
> > > > > > Y me apareci�evamente el bug que aparece reiteradamente el mensaje
> > > > > > cuando presiono "Cancelar" en la ventana de eventos, pero no lo pude
> > > > > > volver a reproducir, no recuerdo como hice para que aparezca. Voy a
> > > > > > seguir intentando.
> > > > > >
> > > > > >
> > > > > > Saludos
> > > > > > Juanfer
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > Chronojump-list mailing list
> > > > > > Chronojump-list gnome org
> > > > > > http://mail.gnome.org/mailman/listinfo/chronojump-list
> > > > > >
> > > > > >
> > > > > >
> > > > > _______________________________________________
> > > > > Chronojump-list mailing list
> > > > > Chronojump-list gnome org
> > > > > http://mail.gnome.org/mailman/listinfo/chronojump-list
> > > >
> > > > _______________________________________________
> > > > Chronojump-list mailing list
> > > > Chronojump-list gnome org
> > > > http://mail.gnome.org/mailman/listinfo/chronojump-list
> > > >
> > > >
> > > >
> > > _______________________________________________
> > > Chronojump-list mailing list
> > > Chronojump-list gnome org
> > > http://mail.gnome.org/mailman/listinfo/chronojump-list
> >
> > _______________________________________________
> > Chronojump-list mailing list
> > Chronojump-list gnome org
> > http://mail.gnome.org/mailman/listinfo/chronojump-list
> >
> >
> >
> _______________________________________________
> Chronojump-list mailing list
> Chronojump-list gnome org
> http://mail.gnome.org/mailman/listinfo/chronojump-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]