Przetwarzanie 1D-Array, w zewnętrznym skrypcie np. C++
Przetwarzanie 1D-Array, w zewnętrznym skrypcie np. C++
Ok. może zamotałem coś w temaci, więc rozwinę swoje pytanie.
Muszę zrobić coś takiego:
Mam w LabView dane w postaci 1D-Array, no i potrzebuje te dane odpowiednio obrobić, niestety w LabView nie zabardzo jest to możliwe bo bo było by bardzo dużo połączeń do zrobienia, więc pomyśliłem sobie żeby tą tablicę wypuścić na zewnątrz to jakiegoś programiku napisanego np. w C++ i potem wyniki spowrotem do LabView.
No i teraz jak to zrobić.
Czy program napisany w C++ musi myć w formacie DLL, czy jakimś innym bo z C++ też mam małe doświadczenie.
Jeśli można to prosiłbym o jakiś mały przykładzik wykonania, ewentualnie o printscren-y.
PS. czy jest na tym forum jakiś admin,bo założyłem sobie konto i czekam na aktywację już drugi dzień, mój nick MasterCheat.
Muszę zrobić coś takiego:
Mam w LabView dane w postaci 1D-Array, no i potrzebuje te dane odpowiednio obrobić, niestety w LabView nie zabardzo jest to możliwe bo bo było by bardzo dużo połączeń do zrobienia, więc pomyśliłem sobie żeby tą tablicę wypuścić na zewnątrz to jakiegoś programiku napisanego np. w C++ i potem wyniki spowrotem do LabView.
No i teraz jak to zrobić.
Czy program napisany w C++ musi myć w formacie DLL, czy jakimś innym bo z C++ też mam małe doświadczenie.
Jeśli można to prosiłbym o jakiś mały przykładzik wykonania, ewentualnie o printscren-y.
PS. czy jest na tym forum jakiś admin,bo założyłem sobie konto i czekam na aktywację już drugi dzień, mój nick MasterCheat.
Najlepiej by było użyć odwołania do biblioteki przez Call Library Function Node lub Code Interface Node ale droga do skompilowania biblioteki nie jest rzeczywiście krótka.
Możesz napisać program wykonywalny i użyć System Exec.vi masz tam coś takiego jak standard output czyli to co twój program w c++ by miał zwracać do środowiska. Jak znasz c++ to wiesz o co chodzi
Możesz napisać program wykonywalny i użyć System Exec.vi masz tam coś takiego jak standard output czyli to co twój program w c++ by miał zwracać do środowiska. Jak znasz c++ to wiesz o co chodzi
Niech się kolega nie załamuje, wbrew pozorom to jest bardzo proste:
- główna funkcja main otrzymuje np. int main(int *arr), czyli tablicę
- po obliczeniach zwraca wynik, nie "return 0" jak to zwykle bywa tylko wynik rzeczywisty
- system exec.vi wywołuje twój program z parametrem odpowiednim (tablica, można dokonać konwersji na string ew.) i zwraca do labview wynik.
Proste.
- główna funkcja main otrzymuje np. int main(int *arr), czyli tablicę
- po obliczeniach zwraca wynik, nie "return 0" jak to zwykle bywa tylko wynik rzeczywisty
- system exec.vi wywołuje twój program z parametrem odpowiednim (tablica, można dokonać konwersji na string ew.) i zwraca do labview wynik.
Proste.
Re: Przetwarzanie 1D-Array, w zewnętrznym skrypcie np. C++
[quote="MasterCheat1"] Mam w LabView dane w postaci 1D-Array, no i potrzebuje te dane odpowiednio obrobić, niestety w LabView nie zabardzo jest to możliwe bo bo było by bardzo dużo połączeń do zrobienia, więc pomyśliłem sobie żeby tą tablicę wypuścić na zewnątrz to jakiegoś programiku napisanego np. w C++ i potem wyniki spowrotem do LabView.
[/quote]
Może jednak w LabVIEW? Jest tu wielu ludzi - może razem uda się to zrobic w G? Jakiego rodzaju są to operacje? Jakiś wzór, algorytm?
[/quote]
Może jednak w LabVIEW? Jest tu wielu ludzi - może razem uda się to zrobic w G? Jakiego rodzaju są to operacje? Jakiś wzór, algorytm?
No dobra, spróbuję dokładniej napisać o co chodzi. Więc, mam dane w postaci 1d-array są to współrzędne linii łamanej, pierwsze dwie to punkty najbardziej wysunięte po przekątnej całego rysunku (nie są mi potrzebne), a dalej to już x,y początku pierwszej lini, x,y końca pierwszej lini i tak dalej dla każdej linii. Potrzebuję obliczyć równanie prostej dla każdej z linii, ze względu na x,y innego obiektu, tj. np. jest sobie linia a obok linii na wysokości y jakiś punkt no i na podstawie tego y wyliczam x linii no i w miarę jak y przechodzi na drugą linię to wyliczam x na tej drugiej linii itd. Do tego jeszcze ten punkt ma kąt obrotowy fi i zależności od tego fi obliczamy albo y linii na podstawie x punkty, albo x linii na podstawie y punktu. Całość musi działać nawet jak tych linii będzie dość dużo np. 100. Może troszkę zamotałem, ale w każdym razie mam już zrobione w Labwiev dla 2 linii no a połączeń już jest tyle, że można się pogubić, a tak w C++ wstawił bym kilka pętli i było by po sprawie.
W podobny sposób zrobisz to w LabVIEW.MasterCheat1 pisze:.... w każdym razie mam już zrobione w Labwiev dla 2 linii no a połączeń już jest tyle, że można się pogubić, a tak w C++ wstawił bym kilka pętli i było by po sprawie.
Spróbuj stworzyć algorytm działań jakie sa wykonywane kolejno na tablicy danych.
[np.] 1. Usuniecie pierwszych dwóch wartości (piszesz że nie są potrzebne) 2. grupowanie danych np. do tablicy klastrów w postaci
Kod: Zaznacz cały
[klaster] x_pocz y_pocz x_konc y_konc [/klaster]
Witam
Co do tego zamotania to przyznam, że się pogubiłem - a co do drutowania - powiem tyle - z doświadczenia wiem, że raczej da się zrobić w LabVIEW wszystko co w C++ i da się to zrobić równie dobrze, niewiele przy tym drutując - owszem - należy spędzić nad aplikacjami dużo czasu i dużo się pouczyć i poczytać ale z czasem zacznie się to opłacać. Zachęcam więc do robienia tego typu problemów w LabVIEW. PozdrawiamMoże troszkę zamotałem, ale w każdym razie mam już zrobione w Labwiev dla 2 linii no a połączeń już jest tyle, że można się pogubić, a tak w C++ wstawił bym kilka pętli i było by po sprawie