Event Structure vs monostabilny przycisk
- Bluesheep
- Posty: 14
- Rejestracja: 16 sty 2013 21:08
- Wersja środowiska: LabVIEW 2013
- Lokalizacja: Kraków
Event Structure vs monostabilny przycisk
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
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
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Event Structure vs monostabilny przycisk
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).
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
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
Pozdrawiam
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Event Structure vs monostabilny przycisk
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?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
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
Ostatnio zmieniony 19 sty 2013 15:16 przez PiDi, łącznie zmieniany 1 raz.
Re: Event Structure vs monostabilny przycisk
Faktycznie, zbyt pochopnie napisałem mojego posta. Dzieje się tak tylko w przypadku użycia mechanical action: until released..PiDi pisze: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?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
...
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Event Structure vs monostabilny przycisk
Tak, i w przy tym ustawieniu (latch until released) też nie: "jest ryzyko", tylko zawsze są wyłapywane oba zdarzenia (on-off) ;)Zyga pisze:Faktycznie, zbyt pochopnie napisałem mojego posta. Dzieje się tak tylko w przypadku użycia mechanical action: until released..PiDi pisze: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?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
...
- Bluesheep
- Posty: 14
- Rejestracja: 16 sty 2013 21:08
- Wersja środowiska: LabVIEW 2013
- Lokalizacja: Kraków
Re: Event Structure vs monostabilny przycisk
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
Może pomóc zmiana Mechanical Action przycisku na Switch until released lub Latch when pressed
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Event Structure vs monostabilny przycisk
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...
PS. "zabawa" w jakieś sequence structure to tylko efekt niezrozumienia działania zdarzeń oraz trybów pracy kontrolek boolean...
- Bluesheep
- Posty: 14
- Rejestracja: 16 sty 2013 21:08
- Wersja środowiska: LabVIEW 2013
- Lokalizacja: Kraków
Re: Event Structure vs monostabilny przycisk
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ź!
Dziękuję wszystkim za odpowiedź!