Witam,
zgodnie z wątkiem pokażę jak wykonałem interfejs w jednej z moich aplikacji. Przecież to jest dla użytkownika najważniejsze, więc musi też jakoś ciekawie wyglądać. Może kogoś zainspiruje, a może ktoś pokaże jeszcze ciekawsze rozwiązanie lub coś zasugeruje.
Aplikacja współpracuje z kartą NI USB 6009.
Obsługuje 4 kanały analogowe i 1 cyfrowy jako wyzwalanie pomiaru.
Poza tym można za jej pomocą narysować wykres XY z danych zapisanych w pliku (z filtrem Butterwortha lub bez).
Jest mocno wyspecjalizowana pod moje zastosowania.
GUI1
GUI2
GUI2a
GUI4
GUI4a
GUI5
GUI6
GUI jednej z moich aplikacji
- Pitol
- Moderator
- Posty: 986
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: GUI jednej z moich aplikacji
Bardzo ładnie. Gratuluję!
Podejrzewam, że kodem się podzielić nie możesz, z różnych względów, ale chociaż może streścisz nam jak się za to zabrałeś?
Może coś na przyszłość podpowiemy, a może sami coś się nauczymy ;)
A mogę być nieznośny i powiedzieć Ci, że masz literówkę (GUI2 - umoliwiająca)?

Podejrzewam, że kodem się podzielić nie możesz, z różnych względów, ale chociaż może streścisz nam jak się za to zabrałeś?
Może coś na przyszłość podpowiemy, a może sami coś się nauczymy ;)
A mogę być nieznośny i powiedzieć Ci, że masz literówkę (GUI2 - umoliwiająca)?



-
- Posty: 188
- Rejestracja: 03 lut 2012 15:09
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Warszawa
- Kontakt:
Re: GUI jednej z moich aplikacji
Aplikacja nie powstała od razu w tym kształcie, tylko stopniowo ją rozwijałem w wolnym czasie od 2 lat w miarę tego, czego potrzebowałem lub jak rozwijała się moja znajomość LabVIEW. I ta postać też nie jest końcowa, ale raczej będę dorzucał bajery niż coś konkretnego do pomiarów. Pod kątem liczby kanałów i rejestracji, to każda moja aplikacja jest skrojona na miarę, a jedynie rozbudowuję przetwarzanie wyników. Widziałem raz aplikację typu kombajn zrobioną przez kogoś, ale bardzo często jej praca zaczynała się zawieszenia i potrzeby restartu. A też była dla DAQmx USB.
Kod głównego VI jest dość rozbudowany i nie mieści się na jednym ekranie, bo nie wszystko potrafię zamknąć w SubVIs. Jednak złożoność kodu LV oceniło na 3,1 (z tego, co wiem możliwe jest nawet 10 i więcej). Składa się z 3 pętli, gdzie jedna odpowiada za odbieranie danych z karty, druga za przetwarzanie, a trzecia za wczytanie pliku i drobiazgi. Komunikacja między pętlami przez FIFO. Oczywiście wcześniej robią się wszystkie ustawienia kanałów.
Tab Control (zakładki) służy jedynie do ułożenia GUI. GUI zrobiłem na podstawie UI Control Suite: Metalic Theme, a to czego nie było robiłem sam. Czyli brakowało wykresu XY, Tab Control i kontrolki do wybrania lokalizacji pliku. Grafikę panelu czołowego zrobiłem w Power Point a potem wkleiłem. Czyli VI jest cięższy o BMP.
Do tej pory robiłem wyzwalanie i zatrzymywanie pomiaru ręcznie, ale tu jest określony czas pomiaru. Trochę musiałem się z tym pobawić, bo mimo określonego czasu trwania nie zawsze była ta sama liczba próbek w pliku. Dlatego dodałem już automatyczne skracanie pliku wyników do liczby wierszy zależnej od czasu i próbkowania.
Ważne dla mnie było dopracowanie maszyny stanów odpowiadającej za tworzenie i zapis pliku. Zawiera ona wszystkie opisy dotyczące pomiaru, wybór lokalizacji, czyszczenie wykresu tuż przed zapisem, sam zapis, wspomniane skracanie pliku i reset kontrolki zapisu. Całość zapisana do TXT. Mam też wersję do TDMS, ale nie każdy umie używać Diadema lub nie każdy go ma. A jeśli nie to i tak potem wszystko trzeba konwertować. Dlatego przeważnie używam TXT.
Kodem podzielę się w takiej postaci jak poniżej. Struktura ogólna jest jak w przykładach w Find Example, tylko rozwinięte o FIFO. A wnętrze Error Case zawiera jedynie to, czego potrzebowałem. PS
Właśnie na takie uwagi liczyłem, więc dzięki za wyłapanie błędu
Kod głównego VI jest dość rozbudowany i nie mieści się na jednym ekranie, bo nie wszystko potrafię zamknąć w SubVIs. Jednak złożoność kodu LV oceniło na 3,1 (z tego, co wiem możliwe jest nawet 10 i więcej). Składa się z 3 pętli, gdzie jedna odpowiada za odbieranie danych z karty, druga za przetwarzanie, a trzecia za wczytanie pliku i drobiazgi. Komunikacja między pętlami przez FIFO. Oczywiście wcześniej robią się wszystkie ustawienia kanałów.
Tab Control (zakładki) służy jedynie do ułożenia GUI. GUI zrobiłem na podstawie UI Control Suite: Metalic Theme, a to czego nie było robiłem sam. Czyli brakowało wykresu XY, Tab Control i kontrolki do wybrania lokalizacji pliku. Grafikę panelu czołowego zrobiłem w Power Point a potem wkleiłem. Czyli VI jest cięższy o BMP.
Do tej pory robiłem wyzwalanie i zatrzymywanie pomiaru ręcznie, ale tu jest określony czas pomiaru. Trochę musiałem się z tym pobawić, bo mimo określonego czasu trwania nie zawsze była ta sama liczba próbek w pliku. Dlatego dodałem już automatyczne skracanie pliku wyników do liczby wierszy zależnej od czasu i próbkowania.
Ważne dla mnie było dopracowanie maszyny stanów odpowiadającej za tworzenie i zapis pliku. Zawiera ona wszystkie opisy dotyczące pomiaru, wybór lokalizacji, czyszczenie wykresu tuż przed zapisem, sam zapis, wspomniane skracanie pliku i reset kontrolki zapisu. Całość zapisana do TXT. Mam też wersję do TDMS, ale nie każdy umie używać Diadema lub nie każdy go ma. A jeśli nie to i tak potem wszystko trzeba konwertować. Dlatego przeważnie używam TXT.
Kodem podzielę się w takiej postaci jak poniżej. Struktura ogólna jest jak w przykładach w Find Example, tylko rozwinięte o FIFO. A wnętrze Error Case zawiera jedynie to, czego potrzebowałem. PS
Właśnie na takie uwagi liczyłem, więc dzięki za wyłapanie błędu

- Pitol
- Moderator
- Posty: 986
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: GUI jednej z moich aplikacji
No to jak już czepiać się mogę (a za to mi płacą
) to w GUI5, ścieżka do zapisu chowa się pod obrazkiem (prawy, górny róg).

-
- Posty: 188
- Rejestracja: 03 lut 2012 15:09
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Warszawa
- Kontakt:
Re: GUI jednej z moich aplikacji
Chyba chodziło o GUI6, ale już poprawione. 
