Strona 1 z 1
reakcja na zmienna globalna w event structure
: 25 cze 2007 07:28
autor: fenix
Witam wszystkich

Dawno juz nie zadawalem zadnych pytan wiec sprobuje to nadrobic
Moze to i proste pytanie ale jak zrobic aby event reagowal na zmienna globalna? To znaczy zrobilem tak ze w Timeout sprawdza jej stan i w razie zmiany reaguje na zdarzenie drugiej kontrolki dolaczonej do niej (przez property node Value signaling). A jak zrobic tak zeby rekacja na zdarzenie nastepowala bezposrednio ze zmiennej globalnej i bez wlaczania w to Timeouta? Da sie tak zrobic?
Mam labview 8.2
dziekuje za odpowiedz i pozdrawiam
Re: reakcja na zmienna globalna w event structure
: 25 cze 2007 14:16
autor: Koza
Witaj,
A czy podpięcie zmiennej globalnej do value signaling "ukrytej" kontrolki i dodanie eventa dla tej kontrolki nie załatwi sprawy?
Pozdrawiam,
Koza
Re: reakcja na zmienna globalna w event structure
: 25 cze 2007 19:01
autor: fenix
Zalatwi, tak zrobilem ale trzeba na biezaco sprawdzac stan tej ukrytej kontrolki w drugiej petli albo w Timeoutcie a ja jestem ciekaw czy nie moze zdarzenie w evencie powstac bezposrednio przez zmianie tej zmiennej globalnej. Chyba mozna to zrobic jakos przez rejestrowanie zdarzen dynamicznych przy pomocy user event tylko za bardzo nie wiem jak. Chyba ze sie myle, moze ktos juz w taki sposob to robil?
Re: reakcja na zmienna globalna w event structure
: 25 cze 2007 20:56
autor: PMaj
Witam
Moim (i pewnie nie tylko) zdaniem nie powinieneś używać zmiennej globalnej.
Zawsze można i, moim zdaniem, powinno się rozwiązać problem inaczej.
pozdrawiam
pmaj
Re: reakcja na zmienna globalna w event structure
: 26 cze 2007 06:32
autor: fenix
Witam,
A dlaczego nie powinienem uzywac zmiennych globalnych? Wlasnie zauwazylem ze niektorzy odradzaja ich stosowania. Zawsze uzywalem tych zmiennych do przesylania informacji z innych podprogramow. Jaki jest jeszcze inny sposob? za bardzo nie rozumiem...
pozdrawiam
Re: reakcja na zmienna globalna w event structure
: 26 cze 2007 06:53
autor: PMaj
Witam
Do przesyłania danych pomiędzy programami można użyć innej struktury - np. kolejka, notifier, user event. Wymaga to oczywiście odpowiedniej struktury programu.
Nie mówię, że zmienna globalna nie zadziała bo po to jest zaimplementowana w środowisku, żeby działała. Nie jest jednak, moim zdaniem dobrym rozwiązaniem do przesyłania danych z jednego miejsca programu do drugiego, mimo że działa i jest szybka w implementacji.
z resztą sam masz dowód - szukasz jak obsłużyć event

- oczywiście wpisanie do property node >> value signaling zadziała
pozdrawiam
pmaj
Re: reakcja na zmienna globalna w event structure
: 26 cze 2007 07:01
autor: fenix
A mam taka prosbe:) pokazalbys mi w jaki sposob mozna jeszcze takie przesylanie zrobic na przykladzie prostego zalacznika ktory dolaczylem? Bo ja w taki sposob to robie ale to troche nieladnie wyglada.
Re: reakcja na zmienna globalna w event structure
: 26 cze 2007 07:21
autor: Koza
Witaj,
Zmienne globalne nie są zalecane z uwagi (głównie) na możliwość wystąpienia hazardów. Początkujący, nieświadomy użytkownik może narobić wiele szkód nie znając konsekwencji wykorzystania jednego obszaru pamięci w wielu wątkach/procesach.
Pytałeś o możliwość zastąpienia zmiennych globalnych - mogę polecić Ci z kolejki - są eleganckie i poprawne z puntu widzenia synchronizacji.
Załączam dwa pliki - global_signal.jpg jest tym samym co Ty zrobiłeś, tylko że sygnalizacja ma miejsce w pętli while a nie w zdarzeniu timeout.
Kolejki.jpg przedstawia chyba najprostszą metodę wykorzytania kolejek.
Pozdrawiam,
Koza
Re: reakcja na zmienna globalna w event structure
: 26 cze 2007 08:23
autor: fenix
Dzieki Koza
W taki sposob jeszcze nie probowalem ale w ten sposob za pomoca takiej kolejki tylko raz mozna przeslac informacje, pozniej petla w odbiorcy caly czas jest uruchomiona i nie reaguje na dalsza zmiane odbiorcy, chyba ze cos zle robie...
A w drugim przykladzie umieszczajac zmienna globalna w petli while powoduje ze zmienna globalna za pomoca Value signaling jest caly czas zczyctywana a wiec i petla chodzi bez przerwy a nie tylko wtedy kiedy zajdzie zdarzenie a wlasnie chcialem tego uniknac.
Re: reakcja na zmienna globalna w event structure
: 27 cze 2007 07:54
autor: fenix
Musze zwocic honor juz wiem co w kolejkach zle robilem, zamiast Dequeue Element wstawilem Preview Queue Element (podobnie wygladajace bloczki na jpg a inne dzialanie

) Wiec jest wszystko ok, petla odbiorcy dziala tylko przy zmianie nadawcy a wiec o to mi chodzilo:)
Jeszcze raz dzieki!
Pozdrawiam
Re: reakcja na zmienna globalna w event structure
: 27 cze 2007 11:19
autor: kapitan7
Witam.
Co prawda nie znam się na kolejkach, ale (a może właśnie dlatego) z zaciekawieniem prześledzilem temat i... nie rozumiem jednego - jeśli oczywiście dobrze zrozumiałem rysunki to po co w 'odbiorcy' jest pętla ????
Re: reakcja na zmienna globalna w event structure
: 27 cze 2007 11:26
autor: Koza
Jeżeli nie byłoby pętli, to program zatrzymałby się na Dequeue Element, czekał na moment dostarczenia elementu, odebrał i byłby to koniec programu. A tak można potestować dłużej:-)
Pozdrawiam,
Koza
PS. Fenix - dzięki za sugestie, na przyszłość będę opisywał bloczki w plikach jpg albo wrzucał bezpośrednio vi, albo to i to...
Re: reakcja na zmienna globalna w event structure
: 28 cze 2007 08:49
autor: kapitan7
Jasne

Masz rację - coś mi się pomieszało
Dzięki