Dzialanie przycisku STOP w Maszynie stanu

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
diordna
Posty: 15
Rejestracja: 11 lip 2012 10:46
Wersja środowiska: LabVIEW 2011

Dzialanie przycisku STOP w Maszynie stanu

Post autor: diordna »

Czesc,

mam taki problem. Moj program jest oparty na maszynie stanu, w momencie, gdy jestem, w np. petli while, w ktoryms ze stanow, i wciskam przycisk STOP (ktory jest podpiety do stopu glownej petli while) zmienna lokalna tego przycisku STOP jest podpieta do stopu wyzej wymienionej petli while, program zawiesz sie. Slyszalam, ze jest to wlasnie problem w Maszynie stanu. Program jest dosc rozbudowany, dzieje sie tak nie w jednym miejscu. Dokladnie chodzi mi o to, czy jest jakis sposob w maszynie stanu, zeby glowny przycisk STOP konczyl prace calej aplikacji, niezaleznie od tego, w ktorym momencie dzialania programu zostanie wcisniety wlasnie ten przycisk STOP. Ja oparlam sie na zmiennej lokalnej tego przycisku. Czy masz jakis inny, lepszy pomysl?
Awatar użytkownika
Koss
Posty: 23
Rejestracja: 19 paź 2012 20:40
Wersja środowiska: LabVIEW 2012

Re: Dzialanie przycisku STOP w Maszynie stanu

Post autor: Koss »

Podłącz przycisk STOP bezpośrednio.

Chyba że problem jest bardziej złożony, ale wtedy musielibyśmy kod zobaczyć.

Pozdrawiam!
Obrazek
Extensa - certyfikowani programiści NI LabVIEW
Awatar użytkownika
Nowszy
Posty: 504
Rejestracja: 30 maja 2008 08:33
Wersja środowiska: LabVIEW 2011
Lokalizacja: Katowice
Kontakt:

Dzialanie przycisku STOP w Maszynie stanu

Post autor: Nowszy »

Cześć

Faktycznie, musielibyśmy zobaczyć twój kod. Jeżeli jest to jednak VI z pojedynczą maszyną stanów, to najlepiej byłoby zrobić jeden stan, w którym będzie sprawdzane, czy użytkownik nie nacisnął stop - i w takim wypadku zatrzymujesz całość. Wtedy nie potrzeba żadnych zmiennych lokalnych. Jeśli w niektórych stanach masz pętle, które wykonują się dłuższą ilość czasu to najlepiej wyrzucić te pętle do osobnych wątków (pętli) - równoległych do twojej maszyny stanów.
Pozdrawiam, Maciek Antonik
Edu4Industry
ODPOWIEDZ