XY Graph, dlaczego taki wolny?

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

XY Graph, dlaczego taki wolny?

Post autor: oloo »

Zalaczony Vi tworzy 4000 warstw na XY Graph co trwa bardzo szybko nastepnie zmienia kolor kazdej warstwy co trwa cholernie dlugo, dlaczego?
Najlepsze jest to ze jak sie zasloni kontrolke XY Graph innym oknem podczas gdy jest ona uruchomiona to zmiana atrybutow koloru odbywa sie blyskawicznie. BUg w kontrolce xy graph? czy nie ustwailem czegos poprawnie?
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: PMaj »

witam
oloo pisze:Zalaczony Vi tworzy 4000 warstw na XY Graph co trwa bardzo szybko nastepnie zmienia kolor kazdej warstwy co trwa cholernie dlugo, dlaczego?
Najlepsze jest to ze jak sie zasloni kontrolke XY Graph innym oknem podczas gdy jest ona uruchomiona to zmiana atrybutow koloru odbywa sie blyskawicznie. BUg w kontrolce xy graph? czy nie ustwailem czegos poprawnie?
Ogólnie w diagram nie wnikałem bo mi sie nie chciało poprawiac, a jeśli chodzi o wykres to jest tak, że w LabVIEW przerysowywanie kontrolek trwa długo i zabiera znaczny czas procesora.Wykresy zawsze przerysowują całą zawartość jeżeli zmieniana jest jakaś opcja. Jeżeli zakryjesz kontrolke innym oknem, to nie trzeba jej odświerzać (w pętli) tylko ustawić parametry.

Programu nie poprawiłem z powodu lenistwa, ale jest tam pewien pomysl na usprawnienie działania wymyslony na szybko, jak znajde lepszy sposób to napisze // dla leniwych - wystarczy na czas zmieniania kolorów wykresu uczynic go niewidocznym
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

Ukrycie nic nie daje. Ukrycie za innym oknem dowodzi ze da sie to zrobic szybko. Zdebagowalem wykonaie tego vi pod SoftICE i teraz jestem pewien ze to nie tyle BUG to zla koncepcja odswierzania zawartosci wykresu.
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

Aaa ok ukrycie dziala, jest to jakies rozwiazanie... dzieki
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: PMaj »

Hej
oloo pisze:Ukrycie za innym oknem dowodzi ze da sie to zrobic szybko.
To w pewnym sensie oczywiste - programy z reguły nie odswierzają niepotrzebnie interfejsu, tak jest i w tym przypadku, bo po co odswierzac cos czego nie widac ? - opcje te zostają ustawione i po ponownym uruchomieniu okna widać efekt zmian.

oloo pisze:Zdebagowalem wykonaie tego vi pod SoftICE i teraz jestem pewien ze to nie tyle BUG to zla koncepcja odswierzania zawartosci wykresu.
Jeśli możesz to sprecyzuj, proszę, na podstawie jakich wyników jesteś pewien ze to zła koncepcja odświerzania zawartości wykresu?

Warto zauważyć zajętość czasu procesora przy przesuwaniu jakiegokolwiek okna (chwycenie okna za górny pasek i przesówanie go po panelu).

aha - i jeszcze jedno male pytanie - po co ci 4000 warstw na jednym XY graph? - jeżeli połączysz to w jedną to problem automatycznie znika. Zaznacze tutaj, że połączenie tego w jeden wykres w celu wyświetlania nie oznacza, że nie mozesz trzymać oryginalnej struktury w programie !

Pozdrawiam

pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

Jeśli możesz to sprecyzuj, proszę, na podstawie jakich wyników jesteś pewien ze to zła koncepcja odświerzania zawartości wykresu?
Nawet jak wygenerujesz exeka to i tak uruchaminay jest runtime engine, wszytkie procedury wyswietlania sa wlasnie wnim, widac wyraznie petle w ktorej po zmianie kazdego pikselka odswierzany jest caly wykres razem z obszarem na ktorym nie bylo zadnch zmian. Moze to rozwiazanie ma znaczenie w procesacxh RealTime ale powinni moim zdaniem dodac taka opce wyswietlania ze napierw dokonywane sa wszyskie zmiany(np kolory pikseli) a potem odswierzenie.
Pytasz po co mi 4000 warstw,
Tak naprawde potzrebe mi ok 10000, pisze soft na wycinarke plazmowa na bazie karty Motion, elementy do wyciecia rysuje przed wycieciem na XY Graph, jeden elemnet moze skladac sie z kilku ruchow ( lini i lukow) kazdy taki ruch przedstawiam na osobnej warstwie po to aby latw identyfikowac miejce ciecia jak uzytkownik najedzie kursorem (stick to piont) na elemnet. Mogeoczywiscie kazdy element w calosci dac na jednej warstwie, co mocno zmniejszy ilosc warstw. Jednak nie moge wszytkiego dac na jedna warswe poniewaz XYGraph dorysuje linie miedzy elemntami a tych lini nie chce miec na wykresie.
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: PMaj »

Cześć

To tak - rzeczywiście odświerzanie jest tak jak piszesz - to akurat źle i zgodze sie z Tobą iż powinna byc opcja szybszego odświerzania. W tym przypadku proponowałbym jednak wyświetlać coś innego niz jest wewnątrz programu - owszem można miec 10 000 a wyświetlać dużo mniej, bo i tak okiem nie da sie rozróżnić - osobiście rozwiązałem podobny problem (chociaż w zupełnie innej potrzebie) poprzez dodanie do tablicy wymiaru z indexem, czyli numerem wykresu (warstwy) - mogę wiec je identyfikować, przy czym jezeli jakies wartości pokrywały mi się, nie mialo to wiekszego znaczenia ...

Powodzenia w aplikacji :!:

pozdrawiam

pmaj
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

Cala koncepcje rozbil mi powolny XY Graph, Moze poprawii to w LV8..Masz moze LV8 lub znasz kogos kto moze to sprawdzic na 8-ce?

Pozdrawiam
Dzieki
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: PMaj »

póki co kończe aplikacje na LV7.1 - potem zainstaluje 8.0. przyłączam sie do prośby - niech ktoś sprawdzi na 8.0 , moze byc evaluation, ponoc wiele osób ma :)

pzdrv
Nie jestem leniwy
Mam zawyżone wymagania motywacyjne
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

niestety na 8 jest tak samo :cry:
oloo
Posty: 8
Rejestracja: 24 paź 2005 00:00

Re: XY Graph, dlaczego taki wolny?

Post autor: oloo »

Witam
Przyznaje ze troche mnie to spielo ze xy graph tak dlugo odswierza parametry warstw
zwlaszcza jak warstw jest duzo. 4000 warstw na P4 HT odswierza sie ok 10min. Dlatego zasiadlem przy Si i zaczalem grzebac w lvrt.dll, po 24h moge powiedzec ze: 1. dlugi czas odswierzania to nie bug to skutek zalozen jakie programisci NI poczynili
przy projektowaniu obiektu. 2. Obiekt po jakiejkolwiek zmiane wywoluje funkcje WNeedDraw sprawdzajac czy trzeba sie odswierzyc. jesli byla zmiana to przerysuj ekran. Polowe biedy by bylo gdyby odswierzal tylko ta warstwe
na ktorej byla zmiana np koloru. Programisci Ni wymyslili ze beda odswierzac wszytko czy trzeba czy nie. 3. Moim skromnym zdaniem powinni dodac funkcje refresh ktora projektant VI moglby wywolywac po kazdej zmianie atrybutu xygraph i to wtedy kiedy potrzebuje a nie wtedy kiedy xygraph chce.
Dokonalem kilku zmian w lvrt.dll i teraz chodzi ok. Czas z 10min skrocil sie do <1s. W zalaczniku patch ktory to zalatwia. Testowalem na win XP sp2 na dwoch roznych maszynach. wersja lv 7.1, wersja rte 7.1.0.400. Patch trzeba skopiowac do
Nationa InstrumentsSharedLabVIEW Run-Time7.1 i tam uruchomic.
Przetestujcie u siebie.
Uwaga: poniewaz patch jest do lvrt.dll to dziala tylko na plikach exe. czyli trzeba wygenerowac z vi exe i dopiero efekt bedzie widac. Uruchomcie bez patcha a potem z patchem.
pozdrawiam
oloo
ODPOWIEDZ