Namiastka maszyny stanów

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Namiastka maszyny stanów

Post autor: fajfi »

Cześć,
mam następujący problem:
wymyśliłem sobie program, który składa się z kilku podprogramów.
Te podprogramy zajmują się podobnymi rzeczami, ale są w zasadzie niezależne
- można stosować jeden nie używając innych.
Na panelu głównym umieściłem 4 przyciski, po to aby wciśnięcie 1. przycisku
uruchamiało pierwszy podprogram, wciśnięcie 2. - drugi itd.
Idea była taka, żeby po skończeniu działania jednego podprogramu móc uruchomić
inny, lub znowu ten sam; całość wyłączam odpowiednim przyciskiem. Zastosowałem
również "Tab Control", aby w odpowiednim stanie uruchamiała się
odpowiadająca mu zakładka.
Wszystko pięknie, tylko czemu to nie chce działać, tak jakbym chciał?
Tzn. nie przechwytuje zdarzeń i nie chce przełączać zakładek Tab Control.
Nie bardzo wiem jak zsynchronizować przechwytywanie zdarzenia z przełączaniem zakładek
- stąd moja rozpaczliwa próba na diagramie.
Do postu załączam tylko symulację obrazującą ogólną ideę zachowania właściwego programu
(właściwy program potrzebuje na wejście odpowiednich urządzeń i plików).
Podobnie jak w moim programie jedne podprogramy trzeba samemu wyłączyć,
inne wyłączają się po osiągnięciu odpowiedniego warunku.

Patrzyłem do przykładów w pomocy , ale chyba nie do końca zrozumiałem jak
przełączać się między stanami.
Czy mógłby ktoś powiedzieć dlaczego nie chce mi to działać? I jak to prawidłowo rozwiązać?
Pozdrawiam
Fajfi
Załączniki
stany.vi
(40.65 KiB) Pobrany 361 razy
Awatar użytkownika
Festin
Posty: 20
Rejestracja: 21 sty 2009 12:43
Wersja środowiska: LabVIEW 8.6
Kontakt:

Namiastka maszyny stanów

Post autor: Festin »

Zakładki nie przełączają się, bo zanim program zdąży to zrobić to najpierw "grzęźnie" w strukturze EVENT. Możesz to podejrzeć włączając tryb z "żaróweczką". Rozwiązaniem jest np. ustawienie aktywnej zakładki wewnątrz tej struktury.
PS.
Dobrym pomysłem IMHO, byłoby zablokowanie przycisków, kiedy program realizuje jeden z podprogramów.
Załączniki
stany.vi
(36.46 KiB) Pobrany 370 razy
Ostatnio zmieniony 21 paź 2009 13:14 przez Festin, łącznie zmieniany 1 raz.
pozdrawiam
Paweł
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Namiastka maszyny stanów

Post autor: vugie »

Istnieje bardzo dobry darmowy szablon do kolejkowej maszyny stanów z obsługą zdarzeń. Świetnie nadaje się do implementacji interfejsów, a nawet całych algorytmów. Bardzo dobrze udokumentowany i z przykładami.
http://www.jkisoft.com/state-machine

Ja używam tego niemal w każdym VI z interfejsem i oszczędza mi to kupę roboty.
Ostatnio zmieniony 21 paź 2009 12:59 przez vugie, łącznie zmieniany 1 raz.
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Namiastka maszyny stanów

Post autor: fajfi »

Dziękuję za odpowiedzi.
Powiedzcie tylko jak zablokować przycisk?
Pozdrawiam
Fajfi
Awatar użytkownika
Festin
Posty: 20
Rejestracja: 21 sty 2009 12:43
Wersja środowiska: LabVIEW 8.6
Kontakt:

Re: Namiastka maszyny stanów

Post autor: Festin »

Nie tak dawno był wątek na ten temat :-)
Do poczytania:
http://labview.pl/dezaktywacja-przyciskow-t2491.html
pozdrawiam
Paweł
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Namiastka maszyny stanów

Post autor: fajfi »

Wszystko pięknie, tylko że załączniki podane w tym wątku nie istnieją...
Fajfi
ODPOWIEDZ