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.
Problem z uruchomieniem komunikacji z FT4232-56Q
Problem z uruchomieniem komunikacji z FT4232-56Q
- Załączniki
-
- error.PNG (19.8 KiB) Przejrzano 11493 razy
-
- ftd2xx.zip
- (146.28 KiB) Pobrany 387 razy
-
- D2XX_Programmer's_Guide(FT_000071).pdf
- (829.04 KiB) Pobrany 395 razy
Re: Problem z uruchomieniem komunikacji z FT4232-56Q
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.
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
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 

-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Problem z uruchomieniem komunikacji z FT4232-56Q
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
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
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
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.
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
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.