Witam,
mam pewien problem, z którym nie jestem sobie w stanie poradzić.
Jest zaimplementowana maszyna stanów , 3xbuttony i 2xEvent Structure ustawiona na Button->MouseDown dla wszystkich. Aplikacja zmienia texty na przyciskach w zależności od tego w jakim stanie jest maszyna oraz wykonuje różne akcje. Akcje są wykonywane w Event Structure'ach. Znajdują się one w różnych stanach maszyny aby naciśnięcie przycisku tego samego przycisku wykonywało inne zadania.
Problem polega na tym iż jak przechwytywana jest akcja z jednego Event Strucure'a po naciśnięciu przycisku, następnie w wyniku niezależnego czynnika zmienia się stan maszyny i automatycznie wyzwalany jest drugi Event, mimo iż nie został naciśnięty przycisk, nad którym "czuwa" drugi Event...
Dzięki za pomoc. Mam nadzieję, że napisałem w miarę konkretnie.
Pozdrawiam
Maszyna stanu - Event Structure
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanu - Event Structure
Wyglada to na "mechaniczne akcje buttona" switch/latch, sprobuj wstawic jakies opuznienie. Bez kodu ciezko ocenic...
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Maszyna stanu - Event Structure
Nigdy nie należy tak robić - jeden event structure musi wystarczyć (i wystarcza, trzeba tylko dobrze zaprojektować maszynę stanów). A to dlatego, że event structure działają tak, że czekają na zdarzenia niezależnie od tego, co się w kodzie dzieje - czyli obie twoje struktury czekają na to samo zdarzenie. Jeśli ono nastąpi, to obie struktury czekają na możliwość jego zrealizowania - czyli dojście do nich dataflow.
Akurat wczoraj prawie identyczny problem był na forum NI, tylko w drugą stronę: http://forums.ni.com/t5/LabVIEW/subvi-s ... -p/1990569 - tam z kolei druga struktura event powodowała zawieszenie front panelu.
Akurat wczoraj prawie identyczny problem był na forum NI, tylko w drugą stronę: http://forums.ni.com/t5/LabVIEW/subvi-s ... -p/1990569 - tam z kolei druga struktura event powodowała zawieszenie front panelu.
Maszyna stanu - Event Structure
Mechaniczna akcja raczej tego nie powoduje, bo już sprawdzałem. Skłaniam się do zdania PiDi'ego i tak mi się wydawało:) ale to było bardzo późno w nocy:) Dzieki!
Pozdrawiam
Pozdrawiam
