Event Structure vs monostabilny przycisk

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Awatar użytkownika
Bluesheep
Posty: 14
Rejestracja: 16 sty 2013 21:08
Wersja środowiska: LabVIEW 2013
Lokalizacja: Kraków

Event Structure vs monostabilny przycisk

Post 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
Załączniki
Event_vs_Monostabilny_Przycisk.png
Awatar użytkownika
Pitol
Moderator
Posty: 983
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Event Structure vs monostabilny przycisk

Post 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).
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Event Structure vs monostabilny przycisk

Post 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
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Event Structure vs monostabilny przycisk

Post 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 :-ss
Ostatnio zmieniony 19 sty 2013 15:16 przez PiDi, łącznie zmieniany 1 raz.
ObrazekObrazekObrazekObrazek
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: Event Structure vs monostabilny przycisk

Post 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..
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Event Structure vs monostabilny przycisk

Post 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) ;)
ObrazekObrazekObrazekObrazek
Awatar użytkownika
Bluesheep
Posty: 14
Rejestracja: 16 sty 2013 21:08
Wersja środowiska: LabVIEW 2013
Lokalizacja: Kraków

Re: Event Structure vs monostabilny przycisk

Post 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. :-?
Załączniki
snippet.png
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Event Structure vs monostabilny przycisk

Post autor: Góras »

Może pomóc zmiana Mechanical Action przycisku na Switch until released lub Latch when pressed :)
Awatar użytkownika
Pitol
Moderator
Posty: 983
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Event Structure vs monostabilny przycisk

Post 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...
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Awatar użytkownika
Bluesheep
Posty: 14
Rejestracja: 16 sty 2013 21:08
Wersja środowiska: LabVIEW 2013
Lokalizacja: Kraków

Re: Event Structure vs monostabilny przycisk

Post 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ź!
ODPOWIEDZ