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.

- Kod aplikacji na forum2.png (96.65 KiB) Przejrzano 10941 razy
PS
Właśnie na takie uwagi liczyłem, więc dzięki za wyłapanie błędu
