Obsługa klawiatury
Obsługa klawiatury
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?
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?
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Obsługa klawiatury
Po prostu obsłuż Event Key Down - załączony prosty przykład:
- Załączniki
-
- up.vi
- (9.36 KiB) Pobrany 651 razy
Obsługa klawiatury
W jakim celu zostało dodane pole VKey?
Obsługa klawiatury
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.
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Obsługa klawiatury
Zerknij na poniższy kod - może będzie łatwiej:
- Załączniki
-
- up.vi
- (11.81 KiB) Pobrany 588 razy
Re: Obsługa klawiatury
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 (34.33 KiB) Przejrzano 17180 razy
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Obsługa klawiatury
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.
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.
Obsługa klawiatury
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
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 466 razy
Obsługa klawiatury
cmarcin19 mógłbyś to wrzucić w wersji 2013?
Obsługa klawiatury
Oczywiście, już wrzucam dla wersji 13.0
- Załączniki
-
- Zamek_szyfrowy2.vi
- (18.14 KiB) Pobrany 472 razy
Obsługa klawiatury
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ąć?
Re: Obsługa klawiatury
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.
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.
Obsługa klawiatury
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.
Re: Obsługa klawiatury
Tak na szybko, resztę musisz zrobić sam.
Zauważyłem, że w klastrze był jeszcze jeden przycisk bool więc go usunąłem.
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 444 razy