Buttony

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
MrJack
Posty: 17
Rejestracja: 17 cze 2009 16:26
Lokalizacja: Gdańsk
Kontakt:

Buttony

Post autor: MrJack »

Witam,

mam problem może i prosty, ale jakoś no szukalem rozwiazań i nie mogę tego znaleźć, a taka opcja jest odemnie wymagana. Mam w programie 3-4 przyciski chciałbym zrobić z nich przełącznik jak w starej aparaturze pomiarowej badź kaseciaku ;) znaczy sie po wciśnięciu jednego pozostałe odskakują jeżeli były wciśnięte, próbowałem zrobić to na event structure ale aby uzyskać to musiałem usunąć timeout wtedy niestety program czeka ciagle na wciśnięcie przycisku i wtedy dopiero wykonuje się pętla.

Kolejnym problemem jest to ,że chciałbym wiedzieć jak zrobić coś w stylu sample 'n' hold. Robiłem coś podobnego na shift register ale nie zawsze się to da zastosować. Potrzebowałbym taki mechanizm który po wciśnięciu przycisku podawałby pobrany wynik do momentu aż przycisk nie zostanie wciśnięty ponownie.
Załączniki
test_przyciski_sample.vi
Plik zapisalem dla wersji 8.0
(13.18 KiB) Pobrany 350 razy
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: Buttony

Post autor: skoziate »

Pierwszy problem rozwiązany w załączniku.

Nie do końca rozumiem jak miałby ten sample'n'hold działać. Czy chodzi o to, żeby wcisnąć przycisk i dopóki jest wciśnięty zbierać wyniki do tablicy i wyświetlać ten najświeższy?
Załączniki
test_przyciski_sample.vi
(20.27 KiB) Pobrany 337 razy
Pozdrawiam,
Sebastian
Awatar użytkownika
smiga
Administrator
Posty: 817
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Buttony

Post autor: smiga »

Widzę, że kolega Skoziate już wrzucił ... ale masz jeszcze jeden - z hold'em ... jeżeli tak miał działać.
Z boku i na dole masz rozwinięte zdjęcia case'ów jak mają wyglądać - oczywiście są tylko w pętli głównej programu.
Timeout eventa można wykorzystać jak widzisz do hold'a... choć może nie jest to eleganckie - wystarczy kliknąć prawym na Twój guzik i zmienić Mechanical Action na np. Switch When Pressed
Załączniki
guzzzy.png
Ostatnio zmieniony 21 paź 2010 21:43 przez smiga, łącznie zmieniany 4 razy.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
Awatar użytkownika
smiga
Administrator
Posty: 817
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Buttony

Post autor: smiga »

Zerknąłem Sebastian na Twój kod ... ustawienie Timeout na 0 to chyba nie jest najlepszy pomysł - strasznie wentylator wyje :-)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: Buttony

Post autor: skoziate »

Zgadzam się, ale autor wątku też nie miał sterowania czasem pętli. Nie wiem jak będzie wglądała docelowa akwizycja sygnału - być może tylko programowo, jak się da.
Pozdrawiam,
Sebastian
MrJack
Posty: 17
Rejestracja: 17 cze 2009 16:26
Lokalizacja: Gdańsk
Kontakt:

Re: Buttony

Post autor: MrJack »

Hej, dziękuję za rozwiązanie kwesti przycisków robiłem podobnie ale guziki przyciski w kodzie zostały poza event structure i niestety wyskakiwał błąd.
smiga pisze:Zerknąłem Sebastian na Twój kod ... ustawienie Timeout na 0 to chyba nie jest najlepszy pomysł - strasznie wentylator wyje :-)
Nie wiem jak to się stało chciałem wpisać 10ms ;) ale jedynkę jakoś połknęło
skoziate pisze:Nie do końca rozumiem jak miałby ten sample'n'hold działać. Czy chodzi o to, żeby wcisnąć przycisk i dopóki jest wciśnięty zbierać wyniki do tablicy i wyświetlać ten najświeższy?
Myślę że rysunek będzię najlepiej tłumaczył o co mi chodzi :) Button działa latach when pressed. Po wciśnięciu pobierana jest próbka i na wyjściu rejestru Sample N Hold ciągle widoczna jest wartość która była pobrana, po ponownym wciśnięciu stara dana znika a nowa dana jest widoczna na wyjściu. Można było by to zrobić po prostu na case structure ale wtedy button musialby by wciśnięty czyli za każdym razem trzeba by bylo klikać dwukrotnie z ON na OFF i z OFF na ON ;). Pytanie o ten sample n hold jest takim pytaniem ekstra myslalem ze moze istnieje taka gotowa struktura ;) Jeżeli nie no cóż zostanę z moim shift register ;)
Pozdrawiam serdecznie i dziękuję za pomoc.
Załączniki
sample.jpg
Awatar użytkownika
smiga
Administrator
Posty: 817
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Buttony

Post autor: smiga »

Zerknij na kod w załączniku
Załączniki
test_przyciski_sample.vi
(15.57 KiB) Pobrany 361 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
zbychlew
Posty: 8
Rejestracja: 20 wrz 2010 08:43
Wersja środowiska: LabVIEW 2011

Re: Buttony

Post autor: zbychlew »

Witam,

z treści i rysunku autora wątku wynika, że wartość próbki Sample N Hold nie musi być trzymana w tablicy, więc dotychczasowe rozwiązania wg mnie są trochę przekombinowane i czasochłonne.
Proponuję 2 inne rozwiązania oczywiście bez przechowywania starych próbek w tablicy (dla czytelności kodu nie dodałem opóźnień - Śmiga trzymaj wiatrak ;):
1 z wykorzystaniem rejestru,
2 bez rejestru - do pobranej próbki w innym miejscu programu można się dobrać poprzez property value.

Pozdrawiam
Zbych
Załączniki
Sample n hold.vi
(8.28 KiB) Pobrany 350 razy
MrJack
Posty: 17
Rejestracja: 17 cze 2009 16:26
Lokalizacja: Gdańsk
Kontakt:

Re: Buttony

Post autor: MrJack »

Dziękuje wszystkim za pomoc. Prostota rozwiązania zbychlew'a jest powalajaca właśnie o to chodziło. Zgadza się wartość nie musi być zapisywana. Pozdrawiam wszystkich i ślę pochwały ;)
ODPOWIEDZ