[][src]Crate libftd2xx_ffi

Rust FFI bindings to the FTDI D2XX drivers.

This crate is just the C bindings. There is a separate crate, libftd2xx, which provides safe wrappers around the unsafe C bindings.

Usage

Simply add this crate as a dependency in your Cargo.toml. The static library is distributed in this crate with permission from FTDI.

[dependencies]
libftd2xx-ffi = "0.1"

The default feature set will use pre-generated bindings. This is only available for Windows x86_64 and Linux x86_64 platforms.

The bindings can also be generated during compilation using the bindgen feature flag.

[dependencies]
libftd2xx-ffi = { version = "0.1", features = ["bindgen"] }

Bindgen has additional dependencies that must be installed in order to compile successfully, see the bindgen requirements page for more details.

License

FTDI provides the D2XX driver as a compiled library and a header file. These files can be found within the libftd2xx_src directory.

The code within the libftd2xx_src directory is licensed by FTDI. Please see the Driver License Terms page for their license.

All code outside of the libftd2xx_src directory is MIT licensed.

Maintainers Notes

README Generation

The README file is generated with cargo-readme.

cargo install cargo-readme
cargo readme > README.md

Pre-generated Bindings

The pre-generated bindings are generated by compiling this crate, then copying the bindings.rs file from the build output.

The Windows bindings were run through dos2unix to normalize line endings and make it easier to diff the generated bindings.

Structs

_FTCOMSTAT
_FTDCB
_FTTIMEOUTS
_OVERLAPPED
_OVERLAPPED__bindgen_ty_1__bindgen_ty_1
_SECURITY_ATTRIBUTES
__BindgenBitfieldUnit
_ft_device_list_info_node
ft_eeprom_232b
ft_eeprom_232r
ft_eeprom_232h
ft_eeprom_2232
ft_eeprom_2232h
ft_eeprom_4232h
ft_eeprom_header
ft_eeprom_x_series
ft_program_data

Constants

FT_232R_CBUS_TXDEN
FT_232R_CBUS_PWRON
FT_232R_CBUS_RXLED
FT_232R_CBUS_TXLED
FT_232R_CBUS_TXRXLED
FT_232R_CBUS_SLEEP
FT_232R_CBUS_IOMODE
FT_232R_CBUS_BITBANG_WR
FT_232R_CBUS_BITBANG_RD
FT_232H_CBUS_TRISTATE
FT_232H_CBUS_TXLED
FT_232H_CBUS_RXLED
FT_232H_CBUS_TXRXLED
FT_232H_CBUS_PWREN
FT_232H_CBUS_SLEEP
FT_232H_CBUS_IOMODE
FT_232H_CBUS_TXDEN
FT_232H_CBUS_CLK15
FT_232H_CBUS_CLK30
FT_232H_CBUS_CLK7_5
FT_232H_CBUS_DRIVE_0
FT_232H_CBUS_DRIVE_1
FT_232R_CBUS_CLK6
FT_232R_CBUS_CLK12
FT_232R_CBUS_CLK24
FT_232R_CBUS_CLK48
FT_BAUD_300
FT_BAUD_600
FT_BAUD_1200
FT_BAUD_2400
FT_BAUD_4800
FT_BAUD_9600
FT_BAUD_14400
FT_BAUD_19200
FT_BAUD_38400
FT_BAUD_57600
FT_BAUD_115200
FT_BAUD_230400
FT_BAUD_460800
FT_BAUD_921600
FT_BITMODE_ASYNC_BITBANG
FT_BITMODE_CBUS_BITBANG
FT_BITMODE_FAST_SERIAL
FT_BITMODE_MCU_HOST
FT_BITMODE_MPSSE
FT_BITMODE_RESET
FT_BITMODE_SYNC_BITBANG
FT_BITMODE_SYNC_FIFO
FT_DEFAULT_RX_TIMEOUT
FT_DEFAULT_TX_TIMEOUT
FT_DEVICE_100AX
FT_DEVICE_232R
FT_DEVICE_232H
FT_DEVICE_2232C
FT_DEVICE_2232H
FT_DEVICE_4222_PROG
FT_DEVICE_4232H
FT_DEVICE_4222H_0
FT_DEVICE_4222H_3
FT_DEVICE_4222H_1_2
FT_DEVICE_AM
FT_DEVICE_BM
FT_DEVICE_LIST_NOT_READY
FT_DEVICE_NOT_FOUND
FT_DEVICE_NOT_OPENED
FT_DEVICE_NOT_OPENED_FOR_ERASE
FT_DEVICE_NOT_OPENED_FOR_WRITE
FT_DEVICE_UNKNOWN
FT_DEVICE_X_SERIES
FT_DRIVER_TYPE_D2XX
FT_DRIVER_TYPE_VCP
FT_EEPROM_ERASE_FAILED
FT_EEPROM_NOT_PRESENT
FT_EEPROM_NOT_PROGRAMMED
FT_EEPROM_READ_FAILED
FT_EEPROM_WRITE_FAILED
FT_EVENT_LINE_STATUS
FT_EVENT_MODEM_STATUS
FT_EVENT_RXCHAR
FT_FAILED_TO_WRITE_DEVICE
FT_FLAGS_HISPEED
FT_FLAGS_OPENED
FT_FLOW_DTR_DSR
FT_FLOW_NONE
FT_FLOW_RTS_CTS
FT_FLOW_XON_XOFF
FT_INSUFFICIENT_RESOURCES
FT_INVALID_ARGS
FT_INVALID_BAUD_RATE
FT_INVALID_HANDLE
FT_INVALID_PARAMETER
FT_IO_ERROR
FT_LIST_ALL
FT_LIST_BY_INDEX
FT_LIST_MASK
FT_LIST_NUMBER_ONLY
FT_NOT_SUPPORTED
FT_OK
FT_OPEN_BY_DESCRIPTION
FT_OPEN_BY_LOCATION
FT_OPEN_BY_SERIAL_NUMBER
FT_OPEN_MASK
FT_OTHER_ERROR
FT_PURGE_RX
FT_PURGE_TX
FT_X_SERIES_CBUS_BCD_CHARGER
FT_X_SERIES_CBUS_BCD_CHARGER_N
FT_X_SERIES_CBUS_BITBANG_RD
FT_X_SERIES_CBUS_BITBANG_WR
FT_X_SERIES_CBUS_CLK6
FT_X_SERIES_CBUS_CLK12
FT_X_SERIES_CBUS_CLK24
FT_X_SERIES_CBUS_DRIVE_0
FT_X_SERIES_CBUS_DRIVE_1
FT_X_SERIES_CBUS_I2C_TXE
FT_X_SERIES_CBUS_I2C_RXF
FT_X_SERIES_CBUS_IOMODE
FT_X_SERIES_CBUS_KEEP_AWAKE
FT_X_SERIES_CBUS_PWREN
FT_X_SERIES_CBUS_RXLED
FT_X_SERIES_CBUS_SLEEP
FT_X_SERIES_CBUS_TIMESTAMP
FT_X_SERIES_CBUS_TRISTATE
FT_X_SERIES_CBUS_TXDEN
FT_X_SERIES_CBUS_TXLED
FT_X_SERIES_CBUS_TXRXLED
FT_X_SERIES_CBUS_VBUS_SENSE

Functions

FT_Close
FT_ClrDtr
FT_ClrRts
FT_ComPortCancelIdle
FT_ComPortIdle
FT_CreateDeviceInfoList
FT_CyclePort
FT_EEPROM_Program
FT_EEPROM_Read
FT_EE_Program
FT_EE_ProgramEx
FT_EE_Read
FT_EE_ReadConfig
FT_EE_ReadECC
FT_EE_ReadEx
FT_EE_UARead
FT_EE_UASize
FT_EE_UAWrite
FT_EE_WriteConfig
FT_EraseEE
FT_GetBitMode
FT_GetComPortNumber
FT_GetDeviceInfo
FT_GetDeviceInfoDetail
FT_GetDeviceInfoList
FT_GetDeviceLocId
FT_GetDriverVersion
FT_GetEventStatus
FT_GetLatencyTimer
FT_GetLibraryVersion
FT_GetModemStatus
FT_GetQueueStatus
FT_GetQueueStatusEx
FT_GetStatus
FT_GetVIDPID
FT_IoCtl
FT_ListDevices
FT_Open
FT_OpenEx
FT_Purge
FT_Read
FT_ReadEE
FT_Reload
FT_Rescan
FT_ResetDevice
FT_ResetPort
FT_RestartInTask
FT_SetBaudRate
FT_SetBitMode
FT_SetBreakOff
FT_SetBreakOn
FT_SetChars
FT_SetDataCharacteristics
FT_SetDeadmanTimeout
FT_SetDivisor
FT_SetDtr
FT_SetEventNotification
FT_SetFlowControl
FT_SetLatencyTimer
FT_SetResetPipeRetryCount
FT_SetRts
FT_SetTimeouts
FT_SetUSBParameters
FT_SetVIDPID
FT_SetWaitMask
FT_StopInTask
FT_VendorCmdGet
FT_VendorCmdGetEx
FT_VendorCmdSet
FT_VendorCmdSetEx
FT_W32_CreateFile
FT_W32_CloseHandle
FT_W32_ReadFile
FT_W32_WriteFile
FT_W32_GetLastError
FT_W32_GetOverlappedResult
FT_W32_CancelIo
FT_W32_ClearCommBreak
FT_W32_ClearCommError
FT_W32_EscapeCommFunction
FT_W32_GetCommModemStatus
FT_W32_GetCommState
FT_W32_GetCommTimeouts
FT_W32_PurgeComm
FT_W32_SetCommBreak
FT_W32_SetCommMask
FT_W32_GetCommMask
FT_W32_SetCommState
FT_W32_SetCommTimeouts
FT_W32_SetupComm
FT_W32_WaitCommEvent
FT_WaitOnMask
FT_Write
FT_WriteEE

Type Definitions

BOOL
BYTE
DWORD
FTTIMEOUTS
FT_DEVICE
FT_DEVICE_LIST_INFO_NODE
FT_EEPROM_232B
FT_EEPROM_232R
FT_EEPROM_232H
FT_EEPROM_2232
FT_EEPROM_2232H
FT_EEPROM_4232H
FT_EEPROM_HEADER
FT_EEPROM_X_SERIES
FT_HANDLE
FT_PROGRAM_DATA
FT_STATUS
HANDLE
LONG
LPCTSTR
LPDWORD
LPFTCOMSTAT
LPFTDCB
LPLONG
LPOVERLAPPED
LPSECURITY_ATTRIBUTES
LPVOID
LPWORD
PCHAR
PFT_PROGRAM_DATA
PUCHAR
PULONG
PVOID
UCHAR
ULONG
USHORT
WORD
_bindgen_ty_11
_bindgen_ty_12
_bindgen_ty_13

Unions

_OVERLAPPED__bindgen_ty_1