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.
zamiana kontrolki na indykator "w locie"?
Re: zamiana kontrolki na indykator "w locie"?
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.
Re: zamiana kontrolki na indykator "w locie"?
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.
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.
- smiga
- Administrator
- Posty: 817
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: zamiana kontrolki na indykator "w locie"?
Czy kolega Mikrobi mógłby wyjaśnić szerzej dlaczego ta metoda jest szybsza i działa w oczekiwany sposób?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.
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
zamiana kontrolki na indykator "w locie"?
Dzieki! Zastosowalam sposob ze zmienna lokalna, wszystko ladnie dziala
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
zamiana kontrolki na indykator "w locie"?
Zapis przez Property Node wymusza odrysowanie kontrolki, gdy poprzez zmienną lokalną zmienia się tylko jej wartość, a odrysowuje się swoim własnym tempem.
zamiana kontrolki na indykator "w locie"?
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.
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.