generate user event?

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

generate user event?

Post autor: Gość »

Witam.
Zdaję sobie sprawę, że temat event structure poruszany już był milion razy, ale nie udało mi się znaleźć nic co mogłoby mi pomóc. Kiedy wykorzysuję event structure do zdarzeń generowanych przez urzytkownika wszytsko jest jasne. Ale co gdy zdarzenie to zmiana stanu (np na RS232)? Zgaduję, że wypadałoby się posłużyć create/generate user event... tylko, że niewiem jak :(
bardzo prosiłbym o podesłanie jakiegoś wyjaśniającego linka lub króciutkiej aplikacji cobym mógł ruszyć z problemem.
generalnie chodzi o ty, aby program cały czas sobie działał, ale sprawdzał czy po drodze ktoś czegoś nie poodpinał - gdy włoże to w jakąś pętle niepotrzebnie będę sobie obciążał procek. a tak, do końca aplikacji będzie czekać na zdarzenie awarii, jeśli wcześniej pojawi się zdarzenie końca aplikacji to aplikacja skończy się bezawaryjnie (mam nadzieje, że nie zagmatwałem).
pozdrawiam (LabVIEW 7.1)
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: generate user event?

Post autor: progor »

...generalnie chodzi o to aby taki plik zadziałał.
Czyli aby co kilka sekund pokazywał aktualny czas na skutek zmiany event'ów...
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: generate user event?

Post autor: Mikrobi »

Gość pisze: generalnie chodzi o ty, aby program cały czas sobie działał, ale sprawdzał czy po drodze ktoś czegoś nie poodpinał - gdy włoże to w jakąś pętle niepotrzebnie będę sobie obciążał procek. a tak, do końca aplikacji będzie czekać na zdarzenie awarii, jeśli wcześniej pojawi się zdarzenie końca aplikacji to aplikacja skończy się bezawaryjnie (mam nadzieje, że nie zagmatwałem). )
Trochę zagmatwałeś :wink:. Jeśli program ma pracować cały czas to będzie to praca w pętli. Odnosi się to również do układu while-event
W jaki sposób realizować "czuwanie"? Pierwsze rozwiązanie - twoje - jest dobre
Równolegla petla while, czuwająca, budząca się co określony czas i w określonej sytuacji generująca zdarzenie (zatem obsluga przez CASE ?)
Drugie rozwiązanie jakie sie nasuwa to wykorzystanie wejścia Event Timeout (niebieska klepsydra w lewym górnym rogu st.event) i określenie akcji dla zdarzenia Timeout. Realizacja będzie w zasadzie podobna.
Co do twojej realizacji kodu brakuje rejestracji zdarzenia i informacji o zdarzeniu wprowadzonej do struktury event przez Dynamic Event Terminal Pozowolilem sobie na pewne zmiany w kodzie:
Obrazek
Obsługujesz tym razem User Event, który jest w oznaczony jako Dynamic w edytorze zdarzeń (My User Event: User Event).
Warto dodać również obsługę przycisku
Obrazek
i przekazać jego wartość przez zmienną lokalną do pętli w której generowane są zdarzenia.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Re: generate user event?

Post autor: Gość »

wielkie dzięki. rejestracja zdarzenia dała rade. o to mniej więcej chodziło - dalej sobie tak popracuje nad tym aby mi przypasowało w projekt :D
pozdrawiam
ODPOWIEDZ