Sterowanie kontrolką przez event structure

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
Meduza
Posty: 24
Rejestracja: 01 lut 2007 00:00
Lokalizacja: Ĺ

Sterowanie kontrolką przez event structure

Post autor: Meduza »

Panowie i panie sprawa poważna :P Otóż idea jest taka: otwieram program przez open Vi reference i z niego chcę wyciągnąc wartość controlki boolean czyli tutaj Accept2. Ta kontrolka dziła na latch when released. Chce mieć tą zmianę do eventa który daje na inną kontrolkę OK to że jest enabled z disabled and greyed. Niestety jak na razie ten pomysł nie działa. Raz że nie zauważam zmiany wartości wyciąginętej przez Call reference node a dwa ze póżniej even czeka na tą zmianę i dalej jak to się mówi po ptokach :( Jśli ktoś mnie rozumie to proszę o pomoc. Dziękuję. Wstawaim obrazek żeby nie było hehe :P
Awatar użytkownika
Meduza
Posty: 24
Rejestracja: 01 lut 2007 00:00
Lokalizacja: Ĺ

Re: Sterowanie kontrolką przez event structure

Post autor: Meduza »

Sorrki za taki duży zrzut ekranu ale przynajmniej widać hehe :P
Awatar użytkownika
Meduza
Posty: 24
Rejestracja: 01 lut 2007 00:00
Lokalizacja: Ĺ

Re: Sterowanie kontrolką przez event structure

Post autor: Meduza »

Ok problem sprowadza się do takiego zadania: w pętli while jest kontrolka np OK ustawiona na latched when released. Pytanie jest następujące: Jak zarejestrować zmianę stanu i przekazać tą informację do innego vi ??? Np rejestruję informację że pojawiło się TRUE kiedy domyślnie ejest FALSE ???
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Sterowanie kontrolką przez event structure

Post autor: Mikrobi »

Struktura tego typu:
while ->
-> zagnieżdżona sekwencja stosowa
-> w której osadzono strukturę case
-> w której rownolegle wykonuje się dunamiczne wywołanie VIja
-> a jednocześnie oczekuje się na zdarzenie

jest hmmm... delikatnie sprawę ujmując ...niezorganizowana (a wygląda nawet na chaotyczną).

Jakiej realizacji algorytmu oczekujesz? albo prościej - co według ciebie ma realizować przedstawiony kod (diagram)?

Dobrze zakładając to co piszesz (i pomijając wersję LabVIEW, której nie określiłeś):
Meduza pisze:problem sprowadza się do takiego zadania: w pętli while jest kontrolka np OK ustawiona na latched when released. Pytanie jest następujące: Jak zarejestrować zmianę stanu i przekazać tą informację do innego vi ??? Np rejestruję informację że pojawiło się TRUE kiedy domyślnie jest FALSE ???
Metoda pierwsza:
przez węzeł własności (Property Node) - Value(Signaling) oczywiście przez referencję do kontrolki obsługiwanej przez określony event.
W tym przypadku kanoniczna obsługa struktury event (while+event).

Metoda druga (zakładając LabVIEW8.2 + projekt)
zmienne współdzielone (Shared Variables) i tutaj należało by włozyć nieco więcej pracy.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
Meduza
Posty: 24
Rejestracja: 01 lut 2007 00:00
Lokalizacja: Ĺ

Re: Sterowanie kontrolką przez event structure

Post autor: Meduza »

Dzieki za uwagi Mikrobi :) Pokornie chylę głowę :) Otóz pracuję w 7.1 ale mam dostęp do 8.2 tylko że na uczelni gdzie nie chce mi się za bardzo jeżdzić lol . Oczywiście pomysł z property node był ale value zmienia się zanim zamkniesz program. Chodzi o to żeby program wykrył że chociaż raz zostały zapisane dane konfiguracyjne DAQmx do globala z którego są póżniej zczytywane. Problem rozwiązałem inaczej zapisując value do one dimensional array. Może niezbyt eleganckie ale działa. Otóż stacked esquence używam do uporządkowania sobie kroków, może nie jest to najlepsze zastosowanie. Case structure jest konieczny ponieważ po wciśnięciu przucisku Settings użytkownik ma dostęp do prgramu gdzie może podać nowe, zapisać lub załadować z pliku tekstowego parametry do DAQmx. Natomista Event w sumie służy później do uruchomienia akwizycj danych przez klawisz Enter. Tak się to przedstawia.
ODPOWIEDZ