Italian Comportamento incomprensibile (Timer / Sender)

zamb

Active Member
Licensed User
Caro LucaMs lasciati dire che sei eroico! Ancora alla tastiera a quell'ora :)
Per quanto riguarda il tuo codice purtroppo ho bisogno di un po' di tempo per capire la ragione per la quale non vedo assolutamente nulla. Lo schermo resta grigio e non succede nulla.
Vedrò di lavorarci e poi ti dirò. Oggi pomeriggio ci lavoro perchè la mattina mi tocca occuparmi della casa :(
Per il momento devi accontentarti dei ringraziamenti a proposito dei quali, in passato, ho visto far riferimento ai likes che però non riesco a capire come attribuire. Saresti tanto gentile da spiegarmi anche questo? Così lo aggiungiamo alle ragioni dei likes stessi :):)
 

zamb

Active Member
Licensed User
Contrariamente alle previsioni ho scoperto che un problema è che il programma non esce mai dal loop
Dim Indice As Int = Rnd(0, Labels.Length)
Do Until Labels(Indice) <> LabelCorrente
Indice = Rnd(0, Labels.Length)
Loop
disabilitando questo loop le label compaiono ma la label con lo stimolo è sempre l'ultima mentre il conteggio delle selezioni esatte funziona (se clicco sull'ultima il conteggio evolve).
Credo ci sia qualche cosa che non va nell'attribuzione della "LabelCorrente" in quanto anche forzando il suo valore ad es. = 3 invece che ad "indice" la label con stimolo resta comunque l'ultima. Altra cosa che non mi è chiara è la macchinosità di "mIntervallo = 400 + Rnd(1, 12) * 100" invece di un semplice "mIntervallo = Rnd(500, 1500)" ma sarò certamente io "de coccio"....
 

Star-Dust

Expert
Licensed User
Longtime User
L'approccio che hai usato non è corretto ed è eccessivamente complicato. Mi sembra di aver visto anche qualche errore quando assegni l'immagine di background nelle label.

Prova questo.
 

Attachments

  • mosca2.zip
    9.9 KB · Views: 151
Last edited:

zamb

Active Member
Licensed User
Caro Star-Dust ti ringrazio molto. Il tuo codice funziona decisamente meglio ma ha sempre un problema che avevo osservato io e cioè che se clicco verso la coda del tempo di validità dello stimolo il conteggio non avviene. Questo significa che al di sotto di una certa durata dello stimolo (nel tuo caso "Sleep(duratatimer -50)" il conteggio non avviene. Direi che questo problema si manifesta a aprtire dai 200-300 msec in giù mentre per durate di stimolo maggiori si nota che cliccando verso la coda si perdono conteggi. Ho fatto una prova rendendo fissa la label in modo da poterla cliccare facilmente.
Se io imposto un delta non di 50 ma di 600 o 500 x avere un tempo di validità dello stimolo di 200-300msec con la tua duratatimer fissata a 800 (ma si vede meglio con duratatimer = 800 o tempi maggiori e delta non di 50 ma di 0 per allungare il tempo di validità e poter cliccare verso la fine) il conteggio raramente avviene anche se sono certo di aver cliccato in tempo. Questo mi rende sempre più convinto della lentezza del sender a notificare quale label è stata cliccata. :mad:. Se così e clicco verso la coda, l'info del sender arriverebbe troppo tardi per essere considerata. Certo che sarebbero tempi non trascurabili.
Magari dico cazzate ma....
 

LucaMs

Expert
Licensed User
Longtime User
Per quanto riguarda il tuo codice purtroppo ho bisogno di un po' di tempo per capire la ragione per la quale non vedo assolutamente nulla. Lo schermo resta grigio e non succede nulla.
Ma... hai modificato qualcosa? Perché a me funziona benissimo, sia in modalità debug che release.
1.gif
 

LucaMs

Expert
Licensed User
Longtime User
Altra cosa che non mi è chiara è la macchinosità di "mIntervallo = 400 + Rnd(1, 12) * 100" invece di un semplice "mIntervallo = Rnd(500, 1500)"
Il primo modo farà sì che i valori andranno da 500 a 1500 ma incrementati di 100, mentre il secondo potrebbe darti 500, 501, 502... fino a 1500.
(e prima era RND(5000, 10000), tempi troppo lunghi, non si poteva sbagliare, giocando).
 

zamb

Active Member
Licensed User
Per il timer random ora ho capito :) mentre per l'app ti allego lo screenshot di quello che ottengo sul mio smartphone senza aver minimamente apportato modifiche.
La casella bianca in tempi random ottiene lo sfondo dello stimolo (la croce rossa).
Ero poi intervenuto sul layout per far si che le label fossero tutte visibili ma la label interessata dalla stimolo era sempre la stessa (l'ultima) e riscontro i problemi che ti descrivevo (impossibile uscita dal loop, etc). Una cosa in più che non capisco :(
 

Attachments

  • Screenshot.png
    Screenshot.png
    10.7 KB · Views: 145

Star-Dust

Expert
Licensed User
Longtime User
Caro Star-Dust ti ringrazio molto. Il tuo codice funziona decisamente meglio ma ha sempre un problema che avevo osservato io e cioè che se clicco verso la coda del tempo di validità dello stimolo il conteggio non avviene. Questo significa che al di sotto di una certa durata dello stimolo (nel tuo caso "Sleep(duratatimer -50)" il conteggio non avviene. Direi che questo problema si manifesta a aprtire dai 200-300 msec in giù mentre per durate di stimolo maggiori si nota che cliccando verso la coda si perdono conteggi. Ho fatto una prova rendendo fissa la label in modo da poterla cliccare facilmente.
Se io imposto un delta non di 50 ma di 600 o 500 x avere un tempo di validità dello stimolo di 200-300msec con la tua duratatimer fissata a 800 (ma si vede meglio con duratatimer = 800 o tempi maggiori e delta non di 50 ma di 0 per allungare il tempo di validità e poter cliccare verso la fine) il conteggio raramente avviene anche se sono certo di aver cliccato in tempo. Questo mi rende sempre più convinto della lentezza del sender a notificare quale label è stata cliccata. :mad:. Se così e clicco verso la coda, l'info del sender arriverebbe troppo tardi per essere considerata. Certo che sarebbero tempi non trascurabili.
Magari dico cazzate ma....
Non è il render che è lento, ma l'interfaccia ritarda nel cambiare colore in Bianco.
Tu lo vedi ancora colorato ma il tempo è già scaduto.

Poi considera il tempo di reazione del dito che mentre clicchi già l'evento è consumato.

Comunque buon proseguimento.
 

LucaMs

Expert
Licensed User
Longtime User
(impossibile uscita dal loop, etc)
Il loop serve solo a far sì che non venga "stimolata" la stessa Label del "giro" precedente (ovvero se fosse stata randomizzata la 7, il loop fa in modo che non venga accettato che nuovamente venga scelta la Label 7).

Per il resto, non so che dirti; se a me funziona, dovrebbe funzionare anche a te (senza modifiche).
 

zamb

Active Member
Licensed User
Per Star_Dust. Questo è plausibile. Anche il passaggio inverso dovrebbe essere avere lo stesso ritardo e quindi il tempo di validità dovrebbe essere lo stesso solo shiftato in ritardo. Bella seccatura. Specie per tempi brevi quel che si vede non è quel che sta succedendo :mad:
 

zamb

Active Member
Licensed User
Per LucaMs. Una ipotesi che lo zip non sia quello che hai testato? Diversamente un mio vecchio insegnate di elettronica soleva dire: "misteri dell'elettronica" (in questo caso dell'informatica) o "la colpa è dei campi vaccanti" :):)
 

LucaMs

Expert
Licensed User
Longtime User
Per Star_Dust. Questo è plausibile. Anche il passaggio inverso dovrebbe essere avere lo stesso ritardo e quindi il tempo di validità dovrebbe essere lo stesso solo shiftato in ritardo. Bella seccatura. Specie per tempi brevi quel che si vede non è quel che sta succedendo :mad:
Non ho scaricato l'esempio di @Star-Dust né ho seguito il problema, quindi la butto là, praticamente senza alcuna logica: usare Sleep (con valore molto basso, da 0 a 30 al massimo) potrebbe aiutare.

Se poi @Star-Dust volesse provare il mio progetto e dirmi se anche a lui dà problemi...!
 

LucaMs

Expert
Licensed User
Longtime User
Per LucaMs. Una ipotesi che lo zip non sia quello che hai testato? Diversamente un mio vecchio insegnate di elettronica soleva dire: "misteri dell'elettronica" (in questo caso dell'informatica) o "la colpa è dei campi vaccanti" :):)
Eh, o magari potresti aver fatto tu questo errore, hehehe.

Cmq, lo allego di nuovo qui.
 

Attachments

  • prova.zip
    9.9 KB · Views: 150

zamb

Active Member
Licensed User
Si, il progetto di Star_Dust funziona meglio con sleep molto bassi (meglio con 0) ma lui ha dato una spiega del perchè osservo il problema relativo al click verso la coda del tempo di validità dello stimolo (tempo di aggiornamento dell'interfaccia) ma questo mi butta nello sconforto. Parrebbe non superabile.
Ora proverò in modalità release..
 

Star-Dust

Expert
Licensed User
Longtime User
Per Star_Dust. Questo è plausibile. Anche il passaggio inverso dovrebbe essere avere lo stesso ritardo e quindi il tempo di validità dovrebbe essere lo stesso solo shiftato in ritardo. Bella seccatura. Specie per tempi brevi quel che si vede non è quel che sta succedendo :mad:
Puoi impostare le.cose per rendere sensibile il click 100ms in più e hai risolto
 

Star-Dust

Expert
Licensed User
Longtime User
Non ho scaricato l'esempio di @Star-Dust né ho seguito il problema, quindi la butto là, praticamente senza alcuna logica: usare Sleep (con valore molto basso, da 0 a 30 al massimo) potrebbe aiutare.

Se poi @Star-Dust volesse provare il mio progetto e dirmi se anche a lui dà problemi...!
appena possono guardo
 

zamb

Active Member
Licensed User
Anche in modalità release stesso risultato anche per il codice di Star-Dust. Ma forse pretendo troppo. Che una carciofola si comporti come un razzo? :mad:
 
Top