Obsługa klawiatury

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Pavels
Posty: 5
Rejestracja: 09 sie 2013 00:19
Wersja środowiska: LabVIEW 2012

Obsługa klawiatury

Post autor: Pavels » 09 sie 2013 00:23

Witam,

Muszę zrobić aplikację która obsługuje silniki krokowe, jedną z jej części ma być obszar w którym będzie można za pomocą strzałek z klawiatury: Up, Down, Left, Right sterować ich ruchem. Mógłbym mi ktoś doradzić jak mam zrealizować obsługę tych klawiszy?

Awatar użytkownika
smiga
Posty: 693
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk
Has thanked: 4 times
Been thanked: 1 time
Kontakt:

Re: Obsługa klawiatury

Post autor: smiga » 09 sie 2013 02:14

Po prostu obsłuż Event Key Down - załączony prosty przykład:
Załączniki
up.vi
(9.36 KiB) Pobrany 282 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek

Pavels
Posty: 5
Rejestracja: 09 sie 2013 00:19
Wersja środowiska: LabVIEW 2012

Obsługa klawiatury

Post autor: Pavels » 09 sie 2013 10:07

W jakim celu zostało dodane pole VKey?

Pavels
Posty: 5
Rejestracja: 09 sie 2013 00:19
Wersja środowiska: LabVIEW 2012

Obsługa klawiatury

Post autor: Pavels » 09 sie 2013 11:35

VKey przechowuje stan klawiszy, czyli jeśli wcisnę klawisz Up będzie to dla niego widoczne. Dobrze to rozumiem? Mam jeszcze pytanie: w którym miejscu mogę nadać np. klawiszowi Up (chodzi mi o strzałkę w górę) czynność która będzie realizowana po jego naciśnięciu? Konkretnie chodzi o to aby po naciśnięciu strzałki na klawiaturze silnik jechał w górę po osi Y.

Awatar użytkownika
smiga
Posty: 693
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk
Has thanked: 4 times
Been thanked: 1 time
Kontakt:

Re: Obsługa klawiatury

Post autor: smiga » 09 sie 2013 11:56

Zerknij na poniższy kod - może będzie łatwiej:
Załączniki
up.vi
(11.81 KiB) Pobrany 246 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek

Pavels
Posty: 5
Rejestracja: 09 sie 2013 00:19
Wersja środowiska: LabVIEW 2012

Re: Obsługa klawiatury

Post autor: Pavels » 09 sie 2013 12:34

Zrealizowałem to w ten sposób. Jednak chodzi mi w którym miejscu mógłbym nadac każdym z tych 4 klawiszy operacje jakie mają byc wykonane po ich naciśnięciu?
Załączniki
sterowanie.jpg
sterowanie.jpg (34.33 KiB) Przejrzano 7184 razy

Awatar użytkownika
smiga
Posty: 693
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk
Has thanked: 4 times
Been thanked: 1 time
Kontakt:

Re: Obsługa klawiatury

Post autor: smiga » 09 sie 2013 13:45

Możesz to zrobić po wyjściu ze struktury Event w pętli While, jeżeli operacje nie są czasochłonne, a program jest prosty.
Jeżeli chcesz to zrobić bardziej elegancko, to polecam architekturę producent/konsument z Event'em - pętla producenta z Event'em generuje dane dla konsumenta, czyli po naciśnięciu klawisza "Up" wysyłasz do konsumenta polecenie (Ty decydujesz jak wygląda ... może to być nawet string "Up", który po stronie konsumenta wywoła odpowiedni Case -"Up"), które konsument odpowiednio wykorzysta - np. uruchomi silnik.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek

cmarcin19
Posty: 3
Rejestracja: 20 sty 2015 01:59
Wersja środowiska: LabVIEW 2014

Obsługa klawiatury

Post autor: cmarcin19 » 20 sty 2015 02:16

Witam,
również mam problem z obsługą klawiatury, dlatego pozwolę sobie podpiąć się pod tym tematem.
W załączonym pliku robię zamek szyfrowy, dodałem obsługę klawiatury, żeby można było wpisać kod za jej pomocą.
Klawisze są interpretowane poprawnie, lecz wartości nie są wpisywane do kolejnego bloczku jakim jest index array.
Kolejnym problemem jest to, że program nie chce się poprawnie wyłączyć, jakby któraś pętla go blokowała....
Ma ktoś może pomysł jak rozwiązać te problemy?
Z góry dziękuję
Marcin
Załączniki
Zamek_szyfrowy2.vi
(26.61 KiB) Pobrany 134 razy

SNT
Posty: 55
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Obsługa klawiatury

Post autor: SNT » 20 sty 2015 07:17

cmarcin19 mógłbyś to wrzucić w wersji 2013?

cmarcin19
Posty: 3
Rejestracja: 20 sty 2015 01:59
Wersja środowiska: LabVIEW 2014

Obsługa klawiatury

Post autor: cmarcin19 » 20 sty 2015 10:45

Oczywiście, już wrzucam dla wersji 13.0
Załączniki
Zamek_szyfrowy2.vi
(18.14 KiB) Pobrany 118 razy

SNT
Posty: 55
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Obsługa klawiatury

Post autor: SNT » 20 sty 2015 11:36

Masz potrójnie zagnieżdżone pętle while i do tego równolegle działający event w pętli while bez stopu. Powidz co chesz mniej więcej osiągnąć?

Awatar użytkownika
koofaya
Posty: 38
Rejestracja: 23 sty 2014 14:51
Wersja środowiska: LabVIEW 2014

Re: Obsługa klawiatury

Post autor: koofaya » 20 sty 2015 11:44

Problemem jest sama architektura, która wykazuje kardynalne błędy.
Wymienię tylko 2, ale najważniejsze:
- dwie pętle z dwoma osobnymi przyciskami stop
- zastosowanie zmiennych, czego przeważnie da się całkowicie uniknąć.

Ja myślę, że da się to zrobić w jednej pętli z jedną strukturą event w środku. Tak byłoby najprościej. Może ona reagować zarówno na klawisze klawiatury, jak i na zmiany wartości clustra z front panelu. Przycisk stop też jest wtedy jednym z eventów.
Alternatywa to architektura master/slave lub producer/consumer, do której template jest w menu startowym LabVIEW.
Jest jeszcze opcja z 2 pętlami, w której jedna czeka na event, a druga jest przez ten event wyzwalana. Działa to praktycznie tak, jak notifier, ale nie można przekazywać w ten sposób danych. Ja nigdy z tego podejścia nie korzystałem.

cmarcin19
Posty: 3
Rejestracja: 20 sty 2015 01:59
Wersja środowiska: LabVIEW 2014

Obsługa klawiatury

Post autor: cmarcin19 » 20 sty 2015 22:06

Dziękuję koofaya. Problem z pętlami i wyłączeniem już udało mi się rozwiązać, lecz pozostaje klawiatura. SNT chciałbym, żeby wciskanie cyfry na klawiaturze powodowało wpisanie kodu do zamka szyfrowego, bo jak narazie dzieję się to tylko przy użyciu myszki i przycisków w clastrze.

SNT
Posty: 55
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Re: Obsługa klawiatury

Post autor: SNT » 21 sty 2015 08:02

Tak na szybko, resztę musisz zrobić sam.
Zauważyłem, że w klastrze był jeszcze jeden przycisk bool więc go usunąłem.
Załączniki
Zamek_szyfrowy2v2.vi
(24.03 KiB) Pobrany 147 razy

ODPOWIEDZ