Hier mal ein kleines Beispiel zur D2XX von FTDI um die Versionsnummer der DLL auszuslesen.
Ähnlich müsste man dann die ganzen anderen DLL-Funktionen nutzen können. Ich hoffe damit kannst
du schon etwas weiter kommen.
Um weitere Befehle testen zu können müsste ich mir das RAMBUS-Modul, welcher ebenfalls einen FTDI-Chip enthält und von USB nach Seriell wandelt von meinem Sohn zurückholen. Dann kann ich weiteres testen.
[Edit] hier habe ich mal versucht alle Funktionen mithilfe des tools von ts-soft Library2PBImport.exe
zusammen gestellt. Zu den Variablen bitte im Handbuch von FTDI vergleichen und evtl. anpassen.
Das Auslesen der Lib-Versionsnummer funktioniert schonmal.
Code: Alles auswählen
Import "ftd2xx.lib"
FT_Close(a.l) As "_FT_Close@4"
FT_ClrDtr(a.l) As "_FT_ClrDtr@4"
FT_ClrRts(a.l) As "_FT_ClrRts@4"
FT_CreateDeviceInfoList(a.l) As "_FT_CreateDeviceInfoList@4"
FT_CyclePort(a.l) As "_FT_CyclePort@4"
FT_EE_Program(a.l,b.l) As "_FT_EE_Program@8"
FT_EE_ProgramEx(a.l,b.l,c.l,d.l,e.l,f.l) As "_FT_EE_ProgramEx@24"
FT_EE_Read(a.l,b.l) As "_FT_EE_Read@8"
FT_EE_ReadConfig(a.l,b.l,c.l) As "_FT_EE_ReadConfig@12"
FT_EE_ReadEcc(a.l,b.l,c.l) As "_FT_EE_ReadEcc@12"
FT_EE_ReadEx(a.l,b.l,c.l,d.l,e.l,f.l) As "_FT_EE_ReadEx@24"
FT_EE_UARead(a.l,b.l,c.l,d.l) As "_FT_EE_UARead@16"
FT_EE_UASize(a.l,b.l) As "_FT_EE_UASize@8"
FT_EE_UAWrite(a.l,b.l,c.l) As "_FT_EE_UAWrite@12"
FT_EE_WriteConfig(a.l,b.l,c.l) As "_FT_EE_WriteConfig@12"
FT_EraseEE(a.l) As "_FT_EraseEE@4"
FT_GetBitMode(a.l,b.l) As "_FT_GetBitMode@8"
FT_GetComPortNumber(a.l,b.l) As "_FT_GetComPortNumber@8"
FT_GetDeviceInfo(a.l,b.l,c.l,d.l,e.l,f.l) As "_FT_GetDeviceInfo@24"
FT_GetDeviceInfoDetail(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l) As "_FT_GetDeviceInfoDetail@32"
FT_GetDeviceInfoList(a.l,b.l) As "_FT_GetDeviceInfoList@8"
FT_GetDriverVersion(a.l,b.l) As "_FT_GetDriverVersion@8"
FT_GetEventStatus(a.l,b.l) As "_FT_GetEventStatus@8"
FT_GetLatencyTimer(a.l,b.l) As "_FT_GetLatencyTimer@8"
FT_GetLibraryVersion(a.l) As "_FT_GetLibraryVersion@4"
FT_GetModemStatus(a.l,b.l) As "_FT_GetModemStatus@8"
FT_GetQueueStatus(a.l,b.l) As "_FT_GetQueueStatus@8"
FT_GetQueueStatusEx(a.l,b.l) As "_FT_GetQueueStatusEx@8"
FT_GetStatus(a.l,b.l,c.l,d.l) As "_FT_GetStatus@16"
FT_IoCtl(a.l,b.l,c.l,d.l,e.l,f.l,g.l,h.l) As "_FT_IoCtl@32"
FT_ListDevices(a.l,b.l,c.l) As "_FT_ListDevices@12"
FT_Open(a.l,b.l) As "_FT_Open@8"
FT_OpenEx(a.l,b.l,c.l) As "_FT_OpenEx@12"
FT_Purge(a.l,b.l) As "_FT_Purge@8"
FT_Read(a.l,b.l,c.l,d.l) As "_FT_Read@16"
FT_ReadEE(a.l,b.l,c.l) As "_FT_ReadEE@12"
FT_Reload(a.l,b.l) As "_FT_Reload@8"
FT_Rescan() As "_FT_Rescan@0"
FT_ResetDevice(a.l) As "_FT_ResetDevice@4"
FT_ResetPort(a.l) As "_FT_ResetPort@4"
FT_RestartInTask(a.l) As "_FT_RestartInTask@4"
FT_SetBaudRate(a.l,b.l) As "_FT_SetBaudRate@8"
FT_SetBitMode(a.l,b.l,c.l) As "_FT_SetBitMode@12"
FT_SetBreakOff(a.l) As "_FT_SetBreakOff@4"
FT_SetBreakOn(a.l) As "_FT_SetBreakOn@4"
FT_SetChars(a.l,b.l,c.l,d.l,e.l) As "_FT_SetChars@20"
FT_SetDataCharacteristics(a.l,b.l,c.l,d.l) As "_FT_SetDataCharacteristics@16"
FT_SetDeadmanTimeout(a.l,b.l) As "_FT_SetDeadmanTimeout@8"
FT_SetDivisor(a.l,b.l) As "_FT_SetDivisor@8"
FT_SetDtr(a.l) As "_FT_SetDtr@4"
FT_SetEventNotification(a.l,b.l,c.l) As "_FT_SetEventNotification@12"
FT_SetFlowControl(a.l,b.l,c.l,d.l) As "_FT_SetFlowControl@16"
FT_SetLatencyTimer(a.l,b.l) As "_FT_SetLatencyTimer@8"
FT_SetResetPipeRetryCount(a.l,b.l) As "_FT_SetResetPipeRetryCount@8"
FT_SetRts(a.l) As "_FT_SetRts@4"
FT_SetTimeouts(a.l,b.l,c.l) As "_FT_SetTimeouts@12"
FT_SetUSBParameters(a.l,b.l,c.l) As "_FT_SetUSBParameters@12"
FT_SetWaitMask(a.l,b.l) As "_FT_SetWaitMask@8"
FT_StopInTask(a.l) As "_FT_StopInTask@4"
FT_W32_CancelIo(a.l) As "_FT_W32_CancelIo@4"
FT_W32_ClearCommBreak(a.l) As "_FT_W32_ClearCommBreak@4"
FT_W32_ClearCommError(a.l,b.l,c.l) As "_FT_W32_ClearCommError@12"
FT_W32_CloseHandle(a.l) As "_FT_W32_CloseHandle@4"
FT_W32_CreateFile(a.l,b.l,c.l,d.l,e.l,f.l,g.l) As "_FT_W32_CreateFile@28"
FT_W32_EscapeCommFunction(a.l,b.l) As "_FT_W32_EscapeCommFunction@8"
FT_W32_GetCommMask(a.l,b.l) As "_FT_W32_GetCommMask@8"
FT_W32_GetCommModemStatus(a.l,b.l) As "_FT_W32_GetCommModemStatus@8"
FT_W32_GetCommState(a.l,b.l) As "_FT_W32_GetCommState@8"
FT_W32_GetCommTimeouts(a.l,b.l) As "_FT_W32_GetCommTimeouts@8"
FT_W32_GetLastError(a.l) As "_FT_W32_GetLastError@4"
FT_W32_GetOverlappedResult(a.l,b.l,c.l,d.l) As "_FT_W32_GetOverlappedResult@16"
FT_W32_PurgeComm(a.l,b.l) As "_FT_W32_PurgeComm@8"
FT_W32_ReadFile(a.l,b.l,c.l,d.l,e.l) As "_FT_W32_ReadFile@20"
FT_W32_SetCommBreak(a.l) As "_FT_W32_SetCommBreak@4"
FT_W32_SetCommMask(a.l,b.l) As "_FT_W32_SetCommMask@8"
FT_W32_SetCommState(a.l,b.l) As "_FT_W32_SetCommState@8"
FT_W32_SetCommTimeouts(a.l,b.l) As "_FT_W32_SetCommTimeouts@8"
FT_W32_SetupComm(a.l,b.l,c.l) As "_FT_W32_SetupComm@12"
FT_W32_WaitCommEvent(a.l,b.l,c.l) As "_FT_W32_WaitCommEvent@12"
FT_W32_WriteFile(a.l,b.l,c.l,d.l,e.l) As "_FT_W32_WriteFile@20"
FT_WaitOnMask(a.l,b.l) As "_FT_WaitOnMask@8"
FT_Write(a.l,b.l,c.l,d.l) As "_FT_Write@16"
FT_WriteEE(a.l,b.l,c.l) As "_FT_WriteEE@12"
EndImport
Define LibraryVer.l
Define Result.i
Result = FT_GetLibraryVersion(@LibraryVer)
Debug Result
Debug Hex(LibraryVer)