'**************************************************************************************************************************** ' Function declarations '**************************************************************************************************************************** Public Declare Function FT_ListDevices Lib "FTD2XX.DLL" (ByVal arg1 As Long, ByVal arg2 As String, ByVal dwFlags As Long) As Long Public Declare Function FT_Open Lib "FTD2XX.DLL" (ByVal intDeviceNumber As Integer, ByRef lngHandle As Long) As Long Public Declare Function FT_OpenEx Lib "FTD2XX.DLL" (ByVal arg1 As String, ByVal arg2 As Long, ByRef lngHandle As Long) As Long Public Declare Function FT_Close Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_Read Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lpszBuffer As String, ByVal lngBufferSize As Long, ByRef lngBytesReturned As Long) As Long Public Declare Function FT_Write Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lpszBuffer As String, ByVal lngBufferSize As Long, ByRef lngBytesWritten As Long) As Long Public Declare Function FT_SetBaudRate Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lngBaudRate As Long) As Long Public Declare Function FT_SetDataCharacteristics Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal byWordLength As Byte, ByVal byStopBits As Byte, ByVal byParity As Byte) As Long Public Declare Function FT_SetFlowControl Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal intFlowControl As Integer, ByVal byXonChar As Byte, ByVal byXoffChar As Byte) As Long Public Declare Function FT_SetDtr Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_ClrDtr Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_SetRts Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_ClrRts Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_GetModemStatus Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lngModemStatus As Long) As Long Public Declare Function FT_SetChars Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal byEventChar As Byte, ByVal byEventCharEnabled As Byte, ByVal byErrorChar As Byte, ByVal byErrorCharEnabled As Byte) As Long Public Declare Function FT_Purge Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lngMask As Long) As Long Public Declare Function FT_SetTimeouts Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lngReadTimeout As Long, ByVal lngWriteTimeout As Long) As Long Public Declare Function FT_GetQueueStatus Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lngRXBytes As Long) As Long Public Declare Function FT_SetBreakOn Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_SetBreakOff Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_GetStatus Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lngRXBytes As Long, ByRef lngTXBytes As Long, ByRef lngEventsDWord As Long) As Long Public Declare Function FT_ResetDevice Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long ' New Functions Public Declare Function FT_GetEventStatus Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lngEventsDWord As Long) As Long Public Declare Function FT_SetEventNotification Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal dwEventMask As Long, ByVal Arg As Long) As Long Public Declare Function FT_SetDivisor Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal Divisor As Single) As Long Public Declare Function FT_ResetPort Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_RestartInTask Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_StopInTask Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long Public Declare Function FT_SetResetPipeRetryCount Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal lngCount As Long) As Long '**************************************************************************************************************************** ' EEPROM programming function declarations '**************************************************************************************************************************** Public Declare Function FT_EE_Program Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lpData As PROGRAM_DATA) As Long Public Declare Function FT_EE_Read Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lpData As PROGRAM_DATA) As Long Public Declare Function FT_EE_UARead Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal pucData As String, ByVal dwDataLen As Long, ByRef lpdwBytesRead As Long) As Long Public Declare Function FT_EE_UAWrite Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByVal pucData As String, ByVal dwDataLen As Long) As Long Public Declare Function FT_EE_UASize Lib "FTD2XX.DLL" (ByVal lngHandle As Long, ByRef lpdwSize As Long) As Long Public Declare Function FT_EraseEE Lib "FTD2XX.DLL" (ByVal lngHandle As Long) As Long '**************************************************************************************************************************** ' Supporting functions for conversion from C to Visual Basic '**************************************************************************************************************************** ' Used instead of FT_ListDevices to get the number of devices on the bus Public Declare Function FT_GetNumDevices Lib "FTD2XX.DLL" Alias "FT_ListDevices" (ByRef arg1 As Long, ByVal arg2 As String, ByVal dwFlags As Long) As Long '**************************************************************************************************************************** ' Constant Declarations '**************************************************************************************************************************** ' Return codes Public Const OK = 0 Public Const INVALID_HANDLE = 1 Public Const DEVICE_NOT_FOUND = 2 Public Const DEVICE_NOT_OPENED = 3 Public Const IO_ERROR = 4 Public Const INSUFFICIENT_RESOURCES = 5 Public Const INVALID_PARAMETER = 6 Public Const INVALID_BAUD_RATE = 7 Public Const DEVICE_NOT_OPENED_FOR_ERASE = 8 Public Const DEVICE_NOT_OPENED_FOR_WRITE = 9 Public Const FAILED_TO_WRITE_DEVICE = 10 Public Const EEPROM_READ_FAILED = 11 Public Const EEPROM_WRITE_FAILED = 12 Public Const EEPROM_ERASE_FAILED = 13 Public Const EEPROM_NOT_PRESENT = 14 Public Const EEPROM_NOT_PROGRAMMED = 15 Public Const INVALID_ARGS = 16 Public Const OTHER_ERROR = 17 ' Flow Control Public Const FLOW_NONE = &H0 Public Const FLOW_RTS_CTS = &H100 Public Const FLOW_DTR_DSR = &H200 Public Const FLOW_XON_XOFF = &H400 ' Purge rx and tx buffers Public Const PURGE_RX = 1 Public Const PURGE_TX = 2 ' Flags for FT_OpenEx Public Const OPEN_BY_SERIAL_NUMBER = 1 Public Const OPEN_BY_DESCRIPTION = 2 ' Flags for FT_ListDevices Public Const LIST_BY_NUMBER_ONLY = &H80000000 Public Const LIST_BY_INDEX = &H40000000 Public Const LIST_ALL = &H20000000 ' Modem Status Public Const MODEM_STATUS_CTS = &H10 Public Const MODEM_STATUS_DSR = &H20 Public Const MODEM_STATUS_RI = &H40 Public Const MODEM_STATUS_DCD = &H80 ' Event masks Public Const EVENT_RXCHAR = 1 Public Const EVENT_MODEM_STATUS = 2 ' Baud Rates Public Const BAUD_300 = 300 Public Const BAUD_600 = 600 Public Const BAUD_1200 = 1200 Public Const BAUD_2400 = 2400 Public Const BAUD_4800 = 4800 Public Const BAUD_9600 = 9600 Public Const BAUD_14400 = 14400 Public Const BAUD_19200 = 19200 Public Const BAUD_38400 = 38400 Public Const BAUD_57600 = 57600 Public Const BAUD_115200 = 115200 Public Const BAUD_230400 = 230400 Public Const BAUD_460800 = 460800 Public Const BAUD_921600 = 921600 ' Word Lengths Public Const BITS_8 = 8 Public Const BITS_7 = 7 Public Const BITS_6 = 6 Public Const BITS_5 = 5 ' Stop Bits Public Const STOP_BITS_1 = 0 Public Const STOP_BITS_1_5 = 1 Public Const STOP_BITS_2 = 2 ' Parity Public Const PARITY_NONE = 0 Public Const PARITY_ODD = 1 Public Const PARITY_EVEN = 2 Public Const PARITY_MARK = 3 Public Const PARITY_SPACE = 4 ' Type declaration for EEPROM programming Public Type PROGRAM_DATA VendorId As Integer '0x0403 ProductId As Integer '0x6001 Manufacturer As Long '32 "FTDI" ManufacturerId As Long '16 "FT" Description As Long '64 "USB HS Serial Converter" SerialNumber As Long '16 "FT000001" if fixed, or NULL MaxPower As Integer ' // 0 < MaxPower <= 500 PNP As Integer ' // 0 = disabled, 1 = enabled SelfPowered As Integer ' // 0 = bus powered, 1 = self powered RemoteWakeup As Integer ' // 0 = not capable, 1 = capable ' Rev4 extensions: Rev4 As Byte ' // true if Rev4 chip, false otherwise IsoIn As Byte ' // true if in endpoint is isochronous IsoOut As Byte ' // true if out endpoint is isochronous PullDownEnable As Byte ' // true if pull down enabled SerNumEnable As Byte ' // true if serial number to be used USBVersionEnable As Byte ' // true if chip uses USBVersion USBVersion As Integer ' // BCD (0x0200 => USB2) End Type