Strona 1 z 1

Nieaktywny przycisk stop

: 19 kwie 2018 11:23
autor: piotrek21n
Cześć, dlaczego nie mogę zatrzymać pętli while przyciskiem Exit? Dodam, że jest całkowicie nieaktywny, nie reaguje w czasie trwania programu..
labview3.JPG

Re: Nieaktywny przycisk stop

: 19 kwie 2018 12:34
autor: apb
Kolejne iteracji pętli while są uruchamiane po wywołaniu eventu. Użyj "żarówki" i zobacz jak wygląda u Ciebie przepływ danych. Wartość "exit" jest wczytywana na początku danej iteracji, późniejsze wciśnięcie przycisku nie powoduje już żadnej akcji. Nawet gdybyś "trwale"zmienił wartość "exit", wyjście nastąpiłoby dopiero w kolejnej iteracji.

Zobacz np. jak tutaj:
https://www.youtube.com/watch?v=RuIN31rSO2k
zorganizowana jest event state machine.

Re: Nieaktywny przycisk stop

: 19 kwie 2018 12:52
autor: piotrek21n
Ahaa.. już rozumiem, dzięki! :)

Re: Nieaktywny przycisk stop

: 19 kwie 2018 13:34
autor: piotrek21n
A jednak problem nie ustał po usunięciu pętli event. Teraz przycisk jest sprawdzany co iterację, mimo wszystko pozostaje nieaktywny :/
labview4.JPG

Re: Nieaktywny przycisk stop

: 19 kwie 2018 13:44
autor: piotrek21n
Ok, już działa, wystarczyło przycisk zamienić na tradycyjny 'stop'.

Re: Nieaktywny przycisk stop

: 19 kwie 2018 15:14
autor: Paw Saw
Problemem nie było to, że stop nie był "tradycyjny", tylko to, że zmienna lokalna wykorzystywana do zamknięcia pętli przepisywała wartość z przycisku Exit. Stan tego przycisku (jak i całej reszty znajdującej się poza pętlą while) aktualizuje się tylko 1 raz, w związku z tym nie było możliwości zamknięcia pętli korzystając z tego przycisku, chyba że ustawiłbyś mu stan True przed włączeniem programu, ale wtedy wykonałaby się tylko jedna iteracja.