Strona 1 z 1

Problem z uruchomieniem komunikacji z FT4232-56Q

: 05 wrz 2018 09:20
autor: radq
Witam.
Mam moduł FT4232-56Q i próbuję na początek uruchomić na nim UART. Korzystam ze sterowników D2XX i funkcji z ftd2xx.dll. Problem polega na tym, że kiedy próbuję uzyskać "Description" urządzenia za pomocą FT_GetDeviceInfoList(), FT_GetDeviceInfoDetail() albo FT_ListDevices(), LabVIEW po prostu mi się wyłącza. Raz na jakiś czas dostałem po wyłączeniu komunikat o błędzie. Oczywiście przed próbą uzyskania informacji z w/w funkcji wywołuję FT_CreateDeviceInfoList ().

W załączniku umieściłem pliki .sli, .dll, gtype i gvi z programem i manuala z opisem funkcji.

EDIT. Uruchamiając funkcję FT_GetDeviceInfoDetail() dostałem następujący komunikat o błędzie oprócz wyłączenia LabVIEW.

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 05 wrz 2018 15:05
autor: micard
Nie próbowałem się jeszcze bawić w wywoływanie funkcji z dll w NXG, ale w klasycznym LabVIEW tego typu kwiatki pojawiały się, jesli pojawiała się jakas niezgodność typów pomiędzy wywoływaną funkcją a LV.

Sprawdź dokładnie prototypy funkcji.

Dodatkowo warto pamiętać, że LabVIEW ma odwrotne starszeństwo bajtów niż wiekszość systemów.

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 11 wrz 2018 10:11
autor: radq
Miałeś rację, problem leżał w typach argumentów funkcji. Tylko, że rozwiązanie jest nieco dziwne, bo funkcja oczekuje wskaźnika do 4 bajtowego chara, a działa dopiero jak podam argument typu 64 bitowy int. Niemniej jednak działa, dzięki za pomoc :)

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 11 wrz 2018 19:39
autor: PiDi
Wskaźnik w 64 bitowym systemie ma 64 bity, więc nie widzę nic dziwnego w tym 64 bitowym int :)

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 12 wrz 2018 07:15
autor: radq
W sumie faktycznie. Nie wiem czemu znowu mi się uroiło, że wskaźnik ma taką samą wielkość jak typ danej na jaki pokazuje :)

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 20 wrz 2018 10:14
autor: radq
Mam kolejny problem z programem, natura podobna(tak myślę), więc nie ma sensu zakładać nowego tematu. Przechodząc do rzeczy, chodzi o to, że próbując otworzyć urządzenie za pomocą "Description"(chociaż to akurat nie ma znaczenia) podaje do funkcji FT_OpenEx parametry: description, 2(czyli open_by_description) i wskaźnik do obiektu ftHandle. Na wyjściu zamiast adresu statusu, że wszystko wykonało się poprawnie(albo i nie) i adresu do ftHandle, otrzymuje 0 jako status(oznacza, że nie ma żadnych błędów, co jest dziwne) i zerowy adres, a LabVIEW sygnalizuje mi błąd "LabVIEW: (Hex 0x19) External code not present." Zakładam, że problem znowu jest z biblioteką dll, ale pewny nie jestem.

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 21 wrz 2018 09:22
autor: micard
Kiedyś miałem podobny problem i okazało się, że źródłem były zależności dll'a którego chciałem wywołać.
Tcn biblioteka dll potrzebowała kolejnej biblioteki dll w tej samej ścieżce.
Sprawa robi się jeszcze ciekawsza, jesli nie są to "zwykłe" biblioteki c, tylko .NET ;] wtedy zależności są nie tylko w podanej ścieżce, ale również w GAC.

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

: 21 wrz 2018 15:24
autor: radq
Miałem cień nadziei, że to coś pomoże, ale po umieszczeniu reszty dll'ek w katalogu nic się nie zmieniło, ciągle otrzymuję ten sam błąd.