zamiana kontrolki na indykator "w locie"?

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
slav
Posty: 35
Rejestracja: 18 gru 2009 16:09
Wersja środowiska: LabVIEW 2009

zamiana kontrolki na indykator "w locie"?

Post autor: slav »

Mam nastepujacy problem. Tworze program do sterowania eksperymentu, w LabView jestem poczatkujaca. Na moim fornt panelu sa rozne kontrolki (w postaci klastra, zdefiniowane jako plik .ctl), np. typu boolean, po ich odpowiednim "wyklikaniu" tworzony jest waveform i za pomoca wygenerowanych w tn sposob sygnalow TTL i analogowych sterujemy roznymi urzadzeniami. Wszystko jest ok i dziala. Ale chcialabym jakies konkretne ustawienia zapisac na dysk i wgrac z dysku. I to tez dziala.
Jednakze chcialabym, aby po zaladowaniu ustawien z dysku "powciskaly" mi sie odpowiednie kontrolki, zeby widac bylo, co zaladowalam. I tu mam problem, gdyz to sa kontrolki a nie indykatory. Myslalam, zeby uzyc Property Node: Indicator, ale on nie dziala podczas pracy programu. I nie wiem jak zrobic, zeby moj fornt panel byl raz kontrolka (gdy tworze sygnal sama), a raz indykatorem (gdy go wgrywam z dysku). Jestem przekonana, ze jest na to jakis standardowe rozwiazanie. Prosze o wskazanie, jak to zrobic lub gdzie znalezc jakies wskazowki.
Awatar użytkownika
coolfon
Posty: 232
Rejestracja: 01 gru 2007 08:59
Wersja środowiska: LabVIEW 2009
Kontakt:

Re: zamiana kontrolki na indykator "w locie"?

Post autor: coolfon »

To czy jest to kontrolka czy indykator nie ma w tym przypadku żadnego znaczenia. Wartości Twoich kontrolek możesz poustawiać korzystając z Property Node -> Value. Klikasz na nim prawym przyciskiem, wybierasz Change To Write i już możesz podpinać odczytane z pliku wartości. Przykład poniżej.
example.png
example.png (6.8 KiB) Przejrzano 9783 razy
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: zamiana kontrolki na indykator "w locie"?

Post autor: Mikrobi »

Pozwole sobie poprawić: do wpisywania wartości raczej Local Variable (zmienna lokalna) - tworzona w ten sam sposób
Taka metoda jest szybsza i działa w oczekiwany sposób, węzły własności (property node) nalezy stosować przy bardziej złozonych operacjach modyfikacji kontrolki.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: zamiana kontrolki na indykator "w locie"?

Post autor: smiga »

Mikrobi pisze:Pozwole sobie poprawić: do wpisywania wartości raczej Local Variable (zmienna lokalna) - tworzona w ten sam sposób
Taka metoda jest szybsza i działa w oczekiwany sposób, węzły własności (property node) nalezy stosować przy bardziej złozonych operacjach modyfikacji kontrolki.
Czy kolega Mikrobi mógłby wyjaśnić szerzej dlaczego ta metoda jest szybsza i działa w oczekiwany sposób?
Myślałem, że operując na property node operujemy poprzez jakiś wskaźnik, referencję na konkretnym fragmencie pamięci utworzonym dla danej np. kontrolki.
Tworząc zmienną lokalną, tworzymy chyba nowy obszar pamięci, z którego następuje przepisanie wartości do fragmentu pamięci odpowiadającemu danym tejże kontrolki ... czy się mylę? ... jeżeli tak jest to ta operacja wydaje mi się wolniejsza ... ale chyba najlepszym sposobem jest to przetestować, co zaraz uczynię.

Faktycznie sprawdziłem i różnica jest ogromna - zmiana wartości kontrolki (w reprezentacji double precision ) w pętli for 10000 iteracji:
-poprzez zmienną lokalną: 1 do 2 milisekund
-poprzez property node: prawie 1700 milisekund

Proszę jednak o wytłumaczenie, jeżeli jest to możliwe.

dziękuję i pozdrawiam
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
slav
Posty: 35
Rejestracja: 18 gru 2009 16:09
Wersja środowiska: LabVIEW 2009

zamiana kontrolki na indykator "w locie"?

Post autor: slav »

Dzieki! Zastosowalam sposob ze zmienna lokalna, wszystko ladnie dziala :)
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

zamiana kontrolki na indykator "w locie"?

Post autor: vugie »

Zapis przez Property Node wymusza odrysowanie kontrolki, gdy poprzez zmienną lokalną zmienia się tylko jej wartość, a odrysowuje się swoim własnym tempem.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

zamiana kontrolki na indykator "w locie"?

Post autor: Mikrobi »

Vougie ma w zasadzie rację.
Ogólniej pisząc: kontrolka jest obiektem o wielu różnych własnościach, zajmującym określony obszar pamięci.
Węzły własności są narzędziami zmieniającymi programowo dostępne własności kontrolki, nie tylko wartość. Dla wykonania takiej operacji w sposób optymalny tworzona jest w pamięci buforowej kopia kontrolki, na kopi wykonywane są operacje zdeklarowane węzłem, od góry do dołu węzła jeśli jest kilka pozycji.
Po zakończeniu wszystkich operacji z bufora kontrolka kopiowana jest na interfejs. To właśnie czas konsumowany przez węzeł własności.
Odwołanie przez zmienną lokalną jak napisał vougie to odwołanie do tego obszaru pamięci kontrolki, który przechowuje jej wartość, bez wykonywania kopi.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ