wybór Global.vi oraz Event z poziomu subVI'a

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

witam,
mam pytanie: w jaki sposób dynamicznie odwołać się do Global.vi
tzn.:
- w katalogu mam sobie Global_1.vi, Global_2.vi,...,Global_n.vi
- chciałbym (na przykład) w pętli odczytywać i zapisywać wartości Global_i.vi
gdzie i jest iteracja petli.

w jaki sposób wybierać o którego globala mi chodzi poprzez... dajmy na to ścieżkę (nazwę pliku).

dzięki za pomoc.
pozdrawiam
Ostatnio zmieniony 19 sty 2007 07:57 przez progor, łącznie zmieniany 1 raz.
Awatar użytkownika
wino
Posty: 549
Rejestracja: 23 gru 2005 00:00
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Kraków

Re: wybór Global.vi

Post autor: wino »

ja troche nie rozumiem o co ci chodzi, bo z tego co napisałeś wydaje mi się, że wiesz jak wpisać wartość do pojedynczego Global.vi
progor pisze: w jaki sposób wybierać o którego globala mi chodzi poprzez... dajmy na to ścieżkę (nazwę pliku).


tego nie rozumiem. możesz jakoś inaczej zadać pytanie?
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi

Post autor: progor »

już wyjaśniam nieco jaśniej... plus urodził się problem drugi.

problem 1 --> wybór Global nr.vi - chodzi o to, żeby nie musieć wstawiać Globala do którego chcę się odwołać, ale dobrać się do niego poprzez nazwę.

problem 2 --> EventStructure umieszczona w subVI odnosząca się do zdarzenia w mainVI

problem 3 (gratis nie zamieszczony w przykładzie poniżej) --> w mainVI robię Cluster z Boolan'ami i przekazuję referencję do subVI'a, jak i czy da się zmienić właściwości kontorlki typu BoolanText lub kolor kontrolki.

pozdrawiam
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

Zacznę od trzeciego bo lubię gratisy: prob.3:
przed ostatni węzeł wlasności, który zwróci referencja do klastra to Controls[] czyli tablica referencji do wszystkich kontrolek w klastrze. Zatem można dostać się do konkretnego obiektu i pracować na jego własnościach.
prob.2:
Nie. Event powinien mieć otwarty panel na ile mi wiadomo, żeby reagować na zdarzenia. Jest jedno rozwiązanie ale zakrawa na woltyżerkę i sprawdzałem je w LV7.1 a rozmawiamy o 8.2 , prawda?
prob.1:
Jeśli masz stałą liczbę globali typu LV2glb - czyli struktura oparta na While+Case+Enum - możesz stworzyć tablicę referencji statycznych do wszystkich globali, ale: - nie wiem czy mówimy o prawdziwych globalach czy o LV2glb (pamietaj, że prawdziwe globale objete są pewną, uzasadnioną zresztą,
infamią w środowisku LabVIEW) - czy to bedzie statyczna liczba globali czy będziesz je chciał programowo dodawac, zmieniać...
powiedz o nich więcej - jaka to struktura globali, jakie dane przekazujesz...
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

używam LabView 8.0
prob.1 skąd ta niesława Globali? trzeba tylko uważać, żeby jednocześnie w wielu miejscach nie dobierać się do Globala i nie powinno być problemów (szkoda że nie ma semaforów do Globali tylko w razie jeśli co trzeba je tworzyć samemu --> no chyba że 8.20 ma jakieś świetny pomysł na to?).
prob.2 nie ukrywam, że ten problem najbardziej mnie uwiera w tej chwili --> miałbym taki piękny diagram, a tak to będzie mi się śnił po nocach (wiele kontrolek, a ile kontrolek tyle niezależnych pętli). kiedyś w staniu na galopującym koniu byłem lepszy niż gorszy, więc może uchyliłbyś rąbka tajemnicy jaką iść drogą ku celu.
prob.3 właśnie tak już to wczoraj przerabiałem... znajdź różnicę na lewej i prawej stronie obrazka --> mi właśnie potrzeba tej różnicy
:twisted: (interfejs użytkownika to najfajniejsza rzecz).
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

Use LabVIEW Luke....ekhm... progor:
Wyjściową referencję należy dookreślić (To MoreSpecyfic Class): Obrazek
a dookreślisz podając stałą referencję i dobierając konkretną klasę:
Obrazek
to zamyka problem 3ci,
Problem 2gi - trąci mi to poolingiem... ale pewnie się mylę. Opowiedz nico więcej.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

I jeszcze problem pierwszy:
LV2glb
w trybie subroutine.
Ctrl+I, Category>> Execution >> Priority >> subroutine Możesz w dowolnym momencie zainicjalizować, ustawić, odczytwać, jednocześnie mając gwarancję że daną operację wykonuje na raz tylko jeden
VI.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
sliski
Posty: 69
Rejestracja: 15 mar 2005 00:00
Lokalizacja: Rzeszów

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: sliski »

Witam,

W problemie nr 3 property z lewej strony nie wie z jaka klasa kontrolek ma do czynienia. Potrzeba bloczka "To More Specific Class":
Wejscie "reference" - referencja do kontrolki.
Wejscie "target class" - bloczek "Class Specifier Constant" (ustawiony na Boolean)
Wyjscie "specific class reference" - do bloczka "Property Node"

Pozdrawiam
sliski
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

wielkie dzięki za rozwiązanie problemu no.3.
odnośnie problemu drugiego... jest kilka pakietów do testowania jednocześnie; test danego pakietu uruchamiany jest w momencie wyboru przez użytkownika kontrolki odpowiadającej danemu pakietowi (nie zaburza to stanu pracy testu pozostałych pakietów - dlatego niezależne pętle while a w środku event);
po uruchomieniu programu, niech sobie siedzi w tych subVI'ach aż do końca testu i niech reaguje na Eventy z mainVI'a. czemu tak chcę zrobić? otóż ze względu na: 1. czytelność diagramu; 2. zmiany kodu będą wymagały dużo mniej pracy przy przerabianiu całego kodu.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

Petla while i event w środku to struktura do obsługi interfejsu. Odradzam inne zastosowania.
Jaka jest struktura programowa procedury testującej: maszyna stanów czy pojednyncza sekwencja kolejnych pomiarów z okreslonymi parametrami?

Czy parametry proc. testującej wprowadzone są przez wejścia o tym samym typie danych i zawsze tak samo podane na wyprowadzeniach (konektorach) subVIja?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

:cry:
zasmuciłeś mnie tym pierwszym zdaniem - no ale spodziewałem się tego.
strukturę programową procedury testującej raczej nazwałbym maszyną stanów (relatywnie prosty pomiar powtarzający co pewien czas w zależności od parametrów wejściowych procedury i parametrów wyjściowych poprzedniego testu).
Czy parametry proc. testującej wprowadzone są przez wejścia o tym samym typie danych i zawsze tak samo podane na wyprowadzeniach (konektorach) subVIja? --> TAK. W brzydkie.jpg w miejscu komentarza "procedura tekstowa" znajduje się subVI z procedurą testową.
załączam trochę kodu. oczywiście jest to sporo oczyszczone - w rzeczywistości wygląda bardziej kolorowo (trzeba jeszcze dodać wszelakie parametry do subVI'i do budowy raportów). procedura testu wykonuje się w EventStructure Timeout ale dopiero po przejściu przez Event odpowiadający kliknięciu na kontrolkę danego pakietu.
nic to... pewnie będę musiał zostać przy tym co mam teraz, mam nadzieję że nie przyjdzie mi kiedys aktualizować kodu
:roll: aha... jeszcze powiem dlaczego to będzie takie uciążliwe --> po skopiowaniu kodu dla jednego pakietu będę musiał "ręcznie" zamieniać referencje, linki i inne odnośniki dla pozostałych pakietów, a to będzie straszni dużo klikania.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

Zrobił bym to troche innaczej, pytaniea:
1. czy jedynym zdarzeniem na jakie czeka tester to wywołanie go przez "Main'a" ?
2. czy wywołujesz jeden test czy kilka na raz?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

1. to jest bardzo dobre pytanie, które otwiera drzwi do wielu rozwiązań...
tak, i wiem do czego pijesz. faktyczne zobaczę czy nie da się tego rozdzielić na małego eventa w mainVi a reszty przekazać dalej.
2. mogę wywołać wiele naraz, tzn. po kolei uruchamiając testy dla poszczególnych pakietów mogę doprowadzić do sytuacji że jednocześnie wiele procedur testowych będzie uruchomionych (stąd semafor)
Ostatnio zmieniony 19 sty 2007 12:00 przez progor, łącznie zmieniany 1 raz.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: Mikrobi »

Da się owszem. Jesli reagujesz na zdarzenie "ValueChange" od kilku kontrolek otrzymasz referencję konkretnej - czyli naciśnietego przycisku.
Jeśli określisz który to w określonym porządku to....
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: wybór Global.vi oraz Event z poziomu subVI'a

Post autor: progor »

czyli wracamy do tablicy referencji statycznych - pasuje mi to. mogę je ustawić w określonym porządku.
podaj proszę namacalny przykład takiego rozwiązania.
ODPOWIEDZ