Strona 1 z 1
Event Structure vs monostabilny przycisk
: 19 sty 2013 13:43
autor: Bluesheep
Witam,
zwracam się z prośbą o wytłumaczenie dziwnego jak dla mnie zachowania przycisku Next.
Program to maszyna stanów, gdzie w Idle znajduje się Event reagujący na kliknięcie w Next. Problem w tym, że pomimo iż przycisk jest monostabilny, to po po kliknięciu nie powraca on do swojego pierwotnego stanu. Powraca natomiast gdy śledzę program w Highilght Execution.
Przycisk jest ustawiony na Latch When Released. Czy dobrze kombinuję, że po zwolnieniu przycisku myszki rozpoczyna się "wyścig", który wygrywa Event (nowa wartość Next nie zdąża dotrzeć do pamięci przed wykonaniem Eventu?), przez co wartość nie zostaje sczytana -> przycisk nie powraca do stanu False? Czy może jest to spowodowane czym innym?
Mogę rozwiązać ten problem inaczej niż przez użycie Change Value zamiast Mouse Up?
Pozdrawiam
Event Structure vs monostabilny przycisk
: 19 sty 2013 14:19
autor: Pitol
Ciekawe zachowanie przycisku. Szczerze nie jestem w stanie powiedzieć dlaczego tak się dzieje.
Skorzystanie z Value Change eliminuje problem (osobiście odradzam stosowania Mouse Up/Down - dużo lepsze rozwiązanie to właśnie Value Change).
Event Structure vs monostabilny przycisk
: 19 sty 2013 14:48
autor: Zyga
Value Change stwarza ryzyko dwukrotnego wykonania eventu. off->on i on->off. Możesz spróbować dać sequence structure i pokombinować - najpierw odczyt przycisku, później kolejne akcje w evencie lub na odwrót.
Pozdrawiam
Re: Event Structure vs monostabilny przycisk
: 19 sty 2013 14:54
autor: PiDi
Zyga pisze:Value Change stwarza ryzyko dwukrotnego wykonania eventu. off->on i on->off. Możesz spróbować dać sequence structure i pokombinować - najpierw odczyt przycisku, później kolejne akcje w evencie lub na odwrót.
Pozdrawiam
Zanim skomentuję, a przede wszystkim zanim
koleżanka* Bluesheep spróbuje takich kombinacji - możesz rozwinąć myśl? Co to znaczy, że stwarza ryzyko dwukrotnego wykonania eventu?
Co do istoty problemu - ten Mouse Up wyłapie zdarzenie "odkliknięcia" myszy tylko
kiedy kursor znajduje się nad przyciskiem. Jeśli klikniesz przycisk i wyjedziesz choćby o piksel poza jego obszar przed zwolnieniem przycisku myszy, to event nie zostanie wywołany. Ale to nadal jest tylko podejrzenie, jakbyś zamieścił cały kod (przynajmniej ten kawałek z eventami, resztę maszyny stanów możesz wyciąć), to będzie łatwiej.
*Przepraszam, napisałem "kolega", mea culpa
Re: Event Structure vs monostabilny przycisk
: 19 sty 2013 15:05
autor: Zyga
PiDi pisze:Zyga pisze:Value Change stwarza ryzyko dwukrotnego wykonania eventu. off->on i on->off. Możesz spróbować dać sequence structure i pokombinować - najpierw odczyt przycisku, później kolejne akcje w evencie lub na odwrót.
Pozdrawiam
Zanim skomentuję, a przede wszystkim zanim kolega Bluesheep spróbuje takich kombinacji - możesz rozwinąć myśl? Co to znaczy, że stwarza ryzyko dwukrotnego wykonania eventu?
...
Faktycznie, zbyt pochopnie napisałem mojego posta. Dzieje się tak tylko w przypadku użycia mechanical action: until released..
Re: Event Structure vs monostabilny przycisk
: 19 sty 2013 15:20
autor: PiDi
Zyga pisze:PiDi pisze:Zyga pisze:Value Change stwarza ryzyko dwukrotnego wykonania eventu. off->on i on->off. Możesz spróbować dać sequence structure i pokombinować - najpierw odczyt przycisku, później kolejne akcje w evencie lub na odwrót.
Pozdrawiam
Zanim skomentuję, a przede wszystkim zanim kolega Bluesheep spróbuje takich kombinacji - możesz rozwinąć myśl? Co to znaczy, że stwarza ryzyko dwukrotnego wykonania eventu?
...
Faktycznie, zbyt pochopnie napisałem mojego posta. Dzieje się tak tylko w przypadku użycia mechanical action: until released..
Tak, i w przy tym ustawieniu (latch until released) też nie: "jest ryzyko", tylko zawsze są wyłapywane oba zdarzenia (on-off) ;)
Re: Event Structure vs monostabilny przycisk
: 19 sty 2013 15:26
autor: Bluesheep
PiDi - tak wiem, zostaję z kursorem nad przyciskiem, ale niestety to nie to. Załączam snippet całości. Sequence Structure też nie pomaga.
Event Structure vs monostabilny przycisk
: 19 sty 2013 16:04
autor: Góras
Może pomóc zmiana Mechanical Action przycisku na Switch until released lub Latch when pressed
Event Structure vs monostabilny przycisk
: 19 sty 2013 16:07
autor: Pitol
Dobra, więc w czym problem? Dlaczego nie skorzystasz z Value Change? Przy obecnym ustawieniu przycisku (Latch When Released) zdarzenie zostanie odpalone raz, a przycisk wróci do swojej pozycji. I po problemie...
PS. "zabawa" w jakieś sequence structure to tylko efekt niezrozumienia działania zdarzeń oraz trybów pracy kontrolek boolean...
Re: Event Structure vs monostabilny przycisk
: 19 sty 2013 16:34
autor: Bluesheep
Ok, już mam jasność. ;) Mechanical Action z "When" w nazwie reagują zawsze tylko raz, a z "Until" dwukrotnie, tak? Szukałam alternatywny, bo do tej pory źle rozumiałam różnicę między tymi dwoma.
Dziękuję wszystkim za odpowiedź!