Strona 1 z 1
Przetwarzanie 1D-Array, w zewnętrznym skrypcie np. C++
: 26 paź 2004 11:33
autor: Gość
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.
: 26 paź 2004 15:03
autor: tomekw
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
: 26 paź 2004 15:54
autor: Gość
O kórde, a miałem nadzieję że będzie prosto:).
: 26 paź 2004 16:01
autor: tomekw
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.
: 26 paź 2004 16:20
autor: Gość
No niby tak, ale zajmę siętym jutro i zobaczę, jak będzie szło, narzie dzięki za podpowiedź
Re: Przetwarzanie 1D-Array, w zewnętrznym skrypcie np. C++
: 27 paź 2004 15:28
autor: Mikrobi
[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?
: 27 paź 2004 21:49
autor: Gość
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.
: 27 paź 2004 23:09
autor: Mikrobi
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.
W podobny sposób zrobisz to w LabVIEW.
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]
...to tylko przykład, ale spróbuj podejśc w ten sposób. Kto z kolegów ma inne propozycje?
: 29 paź 2004 02:54
autor: PMaj
Witam
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
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. Pozdrawiam