Witam, to mój pierwszy post na tym forum więc z góry przepraszam jeśli to nie jest odpowiedni dział.
Jestem świeżym członkiem środowiska lab view i mam kilka pytań w związku z programem który starałem się napisać. (działa chyba dobrze choć bardzo "łopatologicznie")
Pytania, które mam:
1. Jak zrobić tak żeby program czekam aż osoba obsługująca program wprowadzi pierwszą wartość w tablicy i ją zatwierdzi? (Teraz po wpisaniu danej trzeba nacisnąć przycisk i trafić akurat w to 100ms kiedy program bd zczytywał wartość )
2. Jak inaczej mogę wyindeksować kolejne wartości z tablicy, żeby szły po kolei, bo już próbowałem na parę sposobów i nie wychodziło mi.
3. Dlaczego "tablica z wynikiem" jest 2 wymiarowa choć w rzeczywistości tylko jeden wymiar jest obsługiwany?
4. Jakieś porady co do bardziej oszczędnego i skondensowanego zapisu? (bo wiem że ten program jest dość nie poprawnie zapisany)
Za wszystkie uwagi z góry dziękuję.
@Edit: Zapomniałem napisać - program generuje tablice o zadanej liczbie, ma czekać na wprowadzenie danych przez użytkownika a następnie wymnożyć kolejne ze sobą (0 z 1, 2 z 3 itd...) a następnie wynik wygenerować w tabeli.
Tablice.
Tablice.
Ja niestety mam LV 2013, więc musiałbyś to zapisać jedną wersję do tyłu. Ale już na podstawie postawionych pytań mogę co nieco poradzić.
Po pierwsze, jeżeli masz zamiar w przyszłości coś więcej pracować w LabVIEW, polecam posty na tym forum poświęcone początkującym użytkownikom.
1. Do reagowania na działania użytkownika na panelu czołowym stosuje się tzw. event structure. One wymagają niestety trochę wprawy, bo nie wszystkie możliwości tych struktur są dobrze opisane w helpie.
2. Indeksowanie tablic najłatwiej zrealizować w pętli for. Jeżeli jest to tablica dwuwymiarowa, trzeba zagnieździć jedną pętlę w drugiej i na obu ustawić autoindeksowanie. Pętla wykonuje się tyle razy, ile elementów (w danym wymiarze) liczy najmniejsza wprowadzona tablica. Ma to największy sens wtedy, kiedy wykonujesz podobne operacje na każdym elemencie tablicy.
3. Żeby zrobić jednowymiarową tablicę wyników, musisz zrobić wyjście z autoindeksowaniem na tej zewnętrznej pętli for.
4. Nie wiem, jak wygląda kod, z powodu napisanego wyżej, ale generalnie program powinien się składać z głównej pętli while, w której będzie struktura event czekająca na akcję użytkowniku (array: value change), a wewnątrz struktury event lub po wyjściu z niej te 2 pętelki for, w których będzie realizowana właściwa funkcjonalność programu.
Polecam powalczyć samemu, a nie czekać na dobrego wujka, który wrzuci gotowy kod. Ale, jak zapiszesz to w wersji 2013, może będę mógł poradzić bardziej szczegółowo. Pozdrawiam i powodzenia!
Po pierwsze, jeżeli masz zamiar w przyszłości coś więcej pracować w LabVIEW, polecam posty na tym forum poświęcone początkującym użytkownikom.
1. Do reagowania na działania użytkownika na panelu czołowym stosuje się tzw. event structure. One wymagają niestety trochę wprawy, bo nie wszystkie możliwości tych struktur są dobrze opisane w helpie.
2. Indeksowanie tablic najłatwiej zrealizować w pętli for. Jeżeli jest to tablica dwuwymiarowa, trzeba zagnieździć jedną pętlę w drugiej i na obu ustawić autoindeksowanie. Pętla wykonuje się tyle razy, ile elementów (w danym wymiarze) liczy najmniejsza wprowadzona tablica. Ma to największy sens wtedy, kiedy wykonujesz podobne operacje na każdym elemencie tablicy.
3. Żeby zrobić jednowymiarową tablicę wyników, musisz zrobić wyjście z autoindeksowaniem na tej zewnętrznej pętli for.
4. Nie wiem, jak wygląda kod, z powodu napisanego wyżej, ale generalnie program powinien się składać z głównej pętli while, w której będzie struktura event czekająca na akcję użytkowniku (array: value change), a wewnątrz struktury event lub po wyjściu z niej te 2 pętelki for, w których będzie realizowana właściwa funkcjonalność programu.
Polecam powalczyć samemu, a nie czekać na dobrego wujka, który wrzuci gotowy kod. Ale, jak zapiszesz to w wersji 2013, może będę mógł poradzić bardziej szczegółowo. Pozdrawiam i powodzenia!
Re: Tablice.
Tutaj podrzucam kod w 2013 jak coś.
Dzięki za odpowiedź i tak, coś poszperam jeszcze.
@Edit:
2. Jeśli spojrzysz na kod to chodzi mi o indeksowanie w drugiej części kodu (pętla for) kolejnych wartości, żeby były ze sobą mnożone bo u mnie to jest zrobione na zasadzie 2*5=2+2+2+2+2...
3. Nie za bardzo czuje o co Ci tutaj chodzi. Bo nie mogę chyba wyjść z indeksowaniem po za pętle, bo nie będzie mi mnożyć kolejnych elementów.
Dzięki za odpowiedź i tak, coś poszperam jeszcze.
@Edit:
2. Jeśli spojrzysz na kod to chodzi mi o indeksowanie w drugiej części kodu (pętla for) kolejnych wartości, żeby były ze sobą mnożone bo u mnie to jest zrobione na zasadzie 2*5=2+2+2+2+2...
3. Nie za bardzo czuje o co Ci tutaj chodzi. Bo nie mogę chyba wyjść z indeksowaniem po za pętle, bo nie będzie mi mnożyć kolejnych elementów.
- Załączniki
-
- zad.vi
- (8.53 KiB) Pobrany 334 razy
Re: Tablice.
Nie wiem czy o coś takiego chodziło ale zobacz w załączniku.
- Załączniki
-
- Untitled 2.vi
- (11.6 KiB) Pobrany 349 razy
CLS - Certified LabVIEW Student
Re: Tablice.
Jak już sprawy zaszły tak daleko, to ja też jakiś programik skleciłem. Też jest nieco łopatologiczny i nie wiem, czy działa do końca tak, jak powinien. VIa zaproponowanego przez pawhan11 nie widziałem ze względu na wersję.
- Załączniki
-
- zad_ver2.vi
- (24.16 KiB) Pobrany 329 razy
Re: Tablice.
Hehe, dzięki. Nie chodziło mi o dokładne rozwiązanie, tylko o odp na pytania
Ale dzięki za kody - posiedzę nad nimi i przeanalizuje jak to działa, żeby się czegoś nowego nauczyć.
Dzięki wielkie. Problem solved.

Dzięki wielkie. Problem solved.