Problem z uruchomieniem komunikacji z FT4232-56Q

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
radq
Posty: 5
Rejestracja: 05 mar 2018 17:27
Wersja środowiska: LabVIEW NXG 1.0

Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: radq » 05 wrz 2018 09:20

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.
Załączniki
error.PNG
error.PNG (19.8 KiB) Przejrzano 2498 razy
ftd2xx.zip
(146.28 KiB) Pobrany 26 razy
D2XX_Programmer's_Guide(FT_000071).pdf
(829.04 KiB) Pobrany 26 razy

Awatar użytkownika
micard
Posty: 180
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 6 times
Kontakt:

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: micard » 05 wrz 2018 15:05

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.

radq
Posty: 5
Rejestracja: 05 mar 2018 17:27
Wersja środowiska: LabVIEW NXG 1.0

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: radq » 11 wrz 2018 10:11

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 :)

PiDi
Posty: 627
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice
Has thanked: 3 times
Been thanked: 3 times

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: PiDi » 11 wrz 2018 19:39

Wskaźnik w 64 bitowym systemie ma 64 bity, więc nie widzę nic dziwnego w tym 64 bitowym int :)
ObrazekObrazekObrazekObrazek

radq
Posty: 5
Rejestracja: 05 mar 2018 17:27
Wersja środowiska: LabVIEW NXG 1.0

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: radq » 12 wrz 2018 07:15

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

radq
Posty: 5
Rejestracja: 05 mar 2018 17:27
Wersja środowiska: LabVIEW NXG 1.0

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: radq » 20 wrz 2018 10:14

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.
Załączniki
Open.JPG

Awatar użytkownika
micard
Posty: 180
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 6 times
Kontakt:

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: micard » 21 wrz 2018 09:22

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.

radq
Posty: 5
Rejestracja: 05 mar 2018 17:27
Wersja środowiska: LabVIEW NXG 1.0

Re: Problem z uruchomieniem komunikacji z FT4232-56Q

Post autor: radq » 21 wrz 2018 15:24

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.

ODPOWIEDZ