Witajcie!
W jednym vi stworzyłem klaster do którego wpisuje ustawienia. Chciałbym skorzystać z tego klastra wywołując ten vi w innym tak jak na załączonych screenach.
Nie bardzo rozumiem problem. Jeśli budowanie tego klastra jest w subVI to wystarczy umieścić ten klaster jako indykator na panelu i ustawić go jako wyjście z subVI. Następnie dodać subVI na diagram tego innego VI i podłączyć wyjście do czego tam chcesz...
Chciałbym, żeby po odznaczeniu ptaszka przy np "Temp1" automatycznie znikała możliwość wpisywania wartości. To co zrobiłem działa tylko w ten sposób: 1. Uruchamiam vi 2. Odznaczam ptaszka - nic się nie dzieje 3. Zatrzymuję program 4. Uruchamiam i już jest wyłączone.
Czyli ostatecznie: jak to robić w "czasie rzeczywistym"
Widzę, że wszystko masz w zdarzeniu "OK Value Change". Aby uzyskać żądane działanie, musisz obsłużyć przypadek "Temp1 Value Change" i w nim wstawić funkcjonalność, która w zależności od stanu przycisku Temp1 będzie włączać/wyłączać możliwość edycji kontrolki "Temperatura1".
I drobna porada: staraj się dodawać obrazy za pomocą narzędzia tego forum (dodaj załącznik przy tworzeniu postów). Osobiście nie jestem fanem ImageShack i podobnych z dwóch powodów:
1. Trzeba kliknąć co najmniej dwa razy żeby zobaczyć co tam masz
2. W pracy nie mam dostępu do tych serwerów więc nie mam jak pomóc
Jak zorganizować tablicę w której znajdują się:
* argument x jest datą
* wartości y0..y7
W zależności od parametru i:0..7 wpisywana jest wartość (z bufora COM) do odpowiedniego y wraz z godziną wpisania.
Mam parametr "i" którym wybieram co chce mierzyć. Jest on przesyłany do uC a ten odpowiada daną. I teraz chce żeby to się wpisywało w odpowiedni rząd tablicy. Tak abym mógł wyświetlić to później na wykresie - kilka przebiegów.
No to mając ten parametr i możesz za pomocą bloczka Replace Array Subset podmieniać odpowiednią pozycję w tablicy. Najlepiej zainicjuj sobie wcześniej tablicę odpowiednią ilością elementów a następnie podczas pracy programu będziesz podmieniał konkretne indeksy tablicy wartościami odczytanymi z uC.
To teraz pytanie: czy Ty na początku wiesz jaki będzie rozmiar tablicy, czy w trakcie programu ta tablica będzie zmieniać swój rozmiar?
Jeśli ma się zmieniać to musisz zaimplementować funkcjonalność, która będzie sprawdzać rozmiar tablicy oraz wartość parametru "i". Jeśli indeks będzie większy od rozmiaru tablicy to nowy element będzie dodany na koniec tablicy.
Tablica już się rozszerza.
uC odbiera zapytanie i odsyła po kolei żądaną daną w raz z poprzedzającym ją indeksem. Indeks ten mówi mi w którą kolumnę do tablicy mam wpisać wartość. Przedstawiłem to na zdjęciu.
Chcę teraz zrobić wykres na podstawie tej tablicy. Mam przekonwertować całą tablicę na dane liczbowe? Jest jakiś inteligenty sposób który popierze mi dane z tablicy i je narysuje na wykresie czy trzeba to robić komórka po komórce?
Aby wyświetlić te dane musisz je mieć w postaci liczbowej. Skorzystaj z bloczka Decimal String to Number albo Fract/Exp. String to Number z palety Strings -> Conversion a następnie podłącz tablicę wyjściową do wykresu (np. Waveform Graph)