Błąd związany ze strukturą event "wieszającą" Front Panel

Tematy związane z zauważonymi błędami w LabVIEW oraz lista życzeń - nowe funkcje, które mogłyby się znaleźć w nowej wersji.
Awatar użytkownika
2czap
Posty: 3
Rejestracja: 23 kwie 2009 09:40
Wersja środowiska: LabVIEW 2010
Lokalizacja: Kraków
Kontakt:

Błąd związany ze strukturą event "wieszającą" Front Panel

Post autor: 2czap » 18 cze 2009 09:09

Witam wszystkich, przy okazji pracy nad jednym z projektem natknąłem się na pewien problem związany ze strukturą event wieszającą front panel VI-ja.
Block diagram: Obrazek
Po zakończeniu pętli z eventem, struktura event nie powinna już reagować na zdarzenia. Niestety, choć nie powinna, to reaguje i przy okazji wiesza front panel VI-ja.
Oczywiście istnieje możliwość innej budowy kodu programu lub odznaczenia w strukturze event opcji "Lock front panel until the event case for this event completes", chociaż taka praktyka jest nieodpowiednia z punktu widzenia wydajności programu.
Zatem nie chodzi mi o uzyskanie podpowiedzi jak ten problem ominać, lecz raczej o zgłoszenie takiego problemu na forum. Proszę o opinie na temat tego błędu.
Plik VI w załączniku posta.

Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2014
Lokalizacja: United Kingdom

Błąd związany ze strukturą event "wieszającą" Front Panel

Post autor: Mikrobi » 18 cze 2009 09:26

Widzę to działanie trochę innaczej: event ma zdeklarowane trzy zdarzenia: 1. stop Value Change 2. LED Button Mouse Enter 3. LED Button Value Change
Wywolanie eventu rejestruje te zdarzenia na styku systemu i środowiska.
Jeśli zdarzenia się pojawiają - zostaja wstawione do kolejki i czekaja na obsługę. Tak dlugo jak VI jest w pamięci mechanizm struktury event obsługujący zdarzenia jest aktywny.
Zatem: Jesli zatrzymasz pętlę z eventem nie znaczy że wyrejestrowałeś te trzy zdarzenia z pamięci. Jednak sterowanie już wyszło z petli while zawierającej event.
Zdarzenie jest i czeka na obsługę, jednak tak długo jak obsługa nie nastepuje panel nie dopuści do kolejnego zdarzenia na interfejsie bo aktywne jest pole w edytorze zdarzeń "Lock front panel until the event case for this event complets". To nie pozwala zareagować na drugi przycisk STOp zatrzymujący drugą pętlę.
Moim zdaniem to jest prawidłowe (jednak) działanie mechanizmu obsługującego zdarzenia - struktury event.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI

Awatar użytkownika
2czap
Posty: 3
Rejestracja: 23 kwie 2009 09:40
Wersja środowiska: LabVIEW 2010
Lokalizacja: Kraków
Kontakt:

Błąd związany ze strukturą event "wieszającą" Front Panel

Post autor: 2czap » 18 cze 2009 22:00

Ok, dziękuje za wytłumaczenie.
Alkohol nie rozwiąże twoich problemów...

A z drugiej strony, mleko w sumie też nie...

kisiel
Posty: 6
Rejestracja: 02 gru 2007 16:46
Wersja środowiska: LabVIEW 8.6
Lokalizacja: Kraków
Kontakt:

Re: Błąd związany ze strukturą event "wieszającą" Fron

Post autor: kisiel » 19 cze 2009 18:26

Witam.

Właściwość 'Lock front panel until the event case for this event completes' ma zasadnicze znaczenie przy korzystaniu z Filter Events. Zapewnia ona wewnętrzną spójność danych do czasu zakończenia obsługi zdarzenia.
Artur

ODPOWIEDZ