uogólnienie rozwiązania
uogólnienie rozwiązania
Witam.
Proszę o pomoc w sprawie uogólnienia rozwiązania jeżeli da się w ten sposób.
Generalnie zależy mi, żeby zrobić to na typedef.
1. klaster z referencjami zamieniany jest na wektor,
2. wszystkie zadania są uruchamiane,
3. chcę złożyć wszystkie referencje z powrotem do klastra.
Problem jest z punktem 3.
- Wersja z index array i bundle nie jest skalowalna,
- wersja z array to cluster "gubi" strukturę klastra i w dalszej części unbundle by name nie będzie miało sensu...
W jednym miejscu potrzebuję 3 lub 4 zadania uruchomić a w innym 2 zadania.
W wersji nieskalowalnej potrzebowałbym 2 praktycznie identyczne vi.
Pozdrawiam
Zuk
Proszę o pomoc w sprawie uogólnienia rozwiązania jeżeli da się w ten sposób.
Generalnie zależy mi, żeby zrobić to na typedef.
1. klaster z referencjami zamieniany jest na wektor,
2. wszystkie zadania są uruchamiane,
3. chcę złożyć wszystkie referencje z powrotem do klastra.
Problem jest z punktem 3.
- Wersja z index array i bundle nie jest skalowalna,
- wersja z array to cluster "gubi" strukturę klastra i w dalszej części unbundle by name nie będzie miało sensu...
W jednym miejscu potrzebuję 3 lub 4 zadania uruchomić a w innym 2 zadania.
W wersji nieskalowalnej potrzebowałbym 2 praktycznie identyczne vi.
Pozdrawiam
Zuk
- Załączniki
-
- run tasks.png (29.98 KiB) Przejrzano 11179 razy
- semper fidelis
- Posty: 74
- Rejestracja: 28 paź 2014 20:45
- Wersja środowiska: LabVIEW 2013
uogólnienie rozwiązania
A czy skoro pusczasz to wszystko na petle for z indeksowaniem to i tak kazda z tych referencji nie zostanie zmieniona? Nie 4 lub 2 tylko tyle ile jest w Twoim type def?
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
Re: uogólnienie rozwiązania
W openG masz dużo gotowców do zabawy z typami danych.
Jeżeli chcesz dynamicznie wyciągnąc wszystkie el klastra coś na nich zrobić i spakować spowrotem to można np tj w zalaczniku
Tylko na logike jak to jest referencja to nie ma potrzeby jej spowrotem wpinac do tego klastra.
Jeżeli chcesz dynamicznie wyciągnąc wszystkie el klastra coś na nich zrobić i spakować spowrotem to można np tj w zalaczniku
Tylko na logike jak to jest referencja to nie ma potrzeby jej spowrotem wpinac do tego klastra.
- Załączniki
-
- temp.png (22.96 KiB) Przejrzano 11162 razy
CLS - Certified LabVIEW Student
Re: uogólnienie rozwiązania
Jeśli nie masz OpenG,

to polecam zainstalować 
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: uogólnienie rozwiązania
Pytanie: to dlaczego to musi być typedef klastra, a nie tablica tasków?MK_Zuk pisze:Witam.
W jednym miejscu potrzebuję 3 lub 4 zadania uruchomić a w innym 2 zadania.
W wersji nieskalowalnej potrzebowałbym 2 praktycznie identyczne vi.
Re: uogólnienie rozwiązania
Bo w klastrze nie będę musiał pamiętać, który task dotyczy którego zadaniaPiDi pisze: Pytanie: to dlaczego to musi być typedef klastra, a nie tablica tasków?
odpowiednie zadania będę wyciągał unbundle by name
a przy tablicy będę musiał pamiętać kolejność - z klastrem bardziej czytelne i trudniej pomylić się.
Dziękuję wszystkim za odpowiedzi.
najprostsze rozwiązanie - rzutowanie typów - nie pomyślałem o tym.
Niestety dla tasków nie działa...
Pozdrawiam
Zuk
Ostatnio zmieniony 18 cze 2015 09:44 przez MK_Zuk, łącznie zmieniany 1 raz.
Re: uogólnienie rozwiązania
Również operowałbym na tablicy elementów. W elastyczny sposób pozwoli to na zarządzanie zadaniami. Jako element sugerowałbym w najprostszej wersji klaster składający się z referenji i nazwy (Np. EncoderX, EncoderY, PowerSwitch etc). Jeśli działasz na wszystkich to wtedy używasz iteracji po każdym elemencie w tablicy (run all, stop all). Jeśli działasz na konkretnych, to zwracasz się do nich po nazwie (patrz załącznik).
W wersji dla bystrzaków proponuje OOP. Wtedy elementy tablicy będą mogły mieć różne typy danych co dodatkowo uelestyczni rozwiązanie. Klasa bazowa/abstrakcyjna ustalająca interfejs i klasy dziedziczone w zależności od typu taska.
W wersji dla bystrzaków proponuje OOP. Wtedy elementy tablicy będą mogły mieć różne typy danych co dodatkowo uelestyczni rozwiązanie. Klasa bazowa/abstrakcyjna ustalająca interfejs i klasy dziedziczone w zależności od typu taska.
- Załączniki
-
- Run All Tasks
- Run All Tasks.png (36.74 KiB) Przejrzano 11136 razy
Re: uogólnienie rozwiązania
Wersja "dla bystrzaków" na razie nie dla mnie w tym projekcie.
Nie bawiłem się jeszcze w OOP,
a w niektórych projektach lepiej nie eksperymentować z nowymi rozwiązaniami...
Dzięki za pomoc
Pozdrawiam
Zuk
Nie bawiłem się jeszcze w OOP,
a w niektórych projektach lepiej nie eksperymentować z nowymi rozwiązaniami...
Dzięki za pomoc
Pozdrawiam
Zuk
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: uogólnienie rozwiązania
To w jaki sposób decydujesz o tym, które zadania uruchamiać? Czyli jak robisz to, o czym pisałeś w pierwszym poście:MK_Zuk pisze:Bo w klastrze nie będę musiał pamiętać, który task dotyczy którego zadaniaPiDi pisze: Pytanie: to dlaczego to musi być typedef klastra, a nie tablica tasków?
odpowiednie zadania będę wyciągał unbundle by name
a przy tablicy będę musiał pamiętać kolejność - z klastrem bardziej czytelne i trudniej pomylić się.
W jednym miejscu potrzebuję 3 lub 4 zadania uruchomić a w innym 2 zadania.
Re: uogólnienie rozwiązania
Rozwiązanie Zygi jednak nie działa dla Task Refnum.
Dla innych typów danych w klastrze jest OK.
W jednej są 4 zadania a w drugiej 2 zadania.
Chciałem to trochę uogólnić, żeby nie robić dwóch identycznych subVI.
Ale chyba tak jednak nie da się.
Trochę mało czasu na dalsze eksperymentowanie...
Dziękuję wszystkim za pomoc.
Pozdrawiam
Zuk
Dla innych typów danych w klastrze jest OK.
Generalnie są dwie niezależne pętle.PiDi pisze:To w jaki sposób decydujesz o tym, które zadania uruchamiać?
W jednej są 4 zadania a w drugiej 2 zadania.
Chciałem to trochę uogólnić, żeby nie robić dwóch identycznych subVI.
Ale chyba tak jednak nie da się.
Trochę mało czasu na dalsze eksperymentowanie...
Dziękuję wszystkim za pomoc.
Pozdrawiam
Zuk