FTD2XX_NET.FTDI.FTDI C# (CSharp) Method

FTDI() public method

Constructor for the FTDI class.
public FTDI ( ) : System
return System
        public FTDI()
        {
            // If FTD2XX.DLL is NOT loaded already, load it
            if (hFTD2XXDLL == IntPtr.Zero)
            {
                // Load our FTD2XX.DLL library
                hFTD2XXDLL = LoadLibrary(@"FTD2XX.DLL");
                if (hFTD2XXDLL == IntPtr.Zero)
                {
                    // Failed to load our FTD2XX.DLL library from System32 or the application directory
                    // Try the same directory that this FTD2XX_NET DLL is in
                    LogB.Debug("FTD2XX: Attempting to load FTD2XX.DLL from:\n" + Path.GetDirectoryName(GetType().Assembly.Location));
                    hFTD2XXDLL = LoadLibrary(@Path.GetDirectoryName(GetType().Assembly.Location) + "\\FTD2XX.DLL");
                }
            }

            // If we have succesfully loaded the library, get the function pointers set up
            if (hFTD2XXDLL != IntPtr.Zero)
            {
                // Set up our function pointers for use through our exported methods
                pFT_CreateDeviceInfoList = GetProcAddress(hFTD2XXDLL, "FT_CreateDeviceInfoList");
                pFT_GetDeviceInfoDetail = GetProcAddress(hFTD2XXDLL, "FT_GetDeviceInfoDetail");
                pFT_Open = GetProcAddress(hFTD2XXDLL, "FT_Open");
                pFT_OpenEx = GetProcAddress(hFTD2XXDLL, "FT_OpenEx");
                pFT_Close = GetProcAddress(hFTD2XXDLL, "FT_Close");
                pFT_Read = GetProcAddress(hFTD2XXDLL, "FT_Read");
                pFT_Write = GetProcAddress(hFTD2XXDLL, "FT_Write");
                pFT_GetQueueStatus = GetProcAddress(hFTD2XXDLL, "FT_GetQueueStatus");
                pFT_GetModemStatus = GetProcAddress(hFTD2XXDLL, "FT_GetModemStatus");
                pFT_GetStatus = GetProcAddress(hFTD2XXDLL, "FT_GetStatus");
                pFT_SetBaudRate = GetProcAddress(hFTD2XXDLL, "FT_SetBaudRate");
                pFT_SetDataCharacteristics = GetProcAddress(hFTD2XXDLL, "FT_SetDataCharacteristics");
                pFT_SetFlowControl = GetProcAddress(hFTD2XXDLL, "FT_SetFlowControl");
                pFT_SetDtr = GetProcAddress(hFTD2XXDLL, "FT_SetDtr");
                pFT_ClrDtr = GetProcAddress(hFTD2XXDLL, "FT_ClrDtr");
                pFT_SetRts = GetProcAddress(hFTD2XXDLL, "FT_SetRts");
                pFT_ClrRts = GetProcAddress(hFTD2XXDLL, "FT_ClrRts");
                pFT_ResetDevice = GetProcAddress(hFTD2XXDLL, "FT_ResetDevice");
                pFT_ResetPort = GetProcAddress(hFTD2XXDLL, "FT_ResetPort");
                pFT_CyclePort = GetProcAddress(hFTD2XXDLL, "FT_CyclePort");
                pFT_Rescan = GetProcAddress(hFTD2XXDLL, "FT_Rescan");
                pFT_Reload = GetProcAddress(hFTD2XXDLL, "FT_Reload");
                pFT_Purge = GetProcAddress(hFTD2XXDLL, "FT_Purge");
                pFT_SetTimeouts = GetProcAddress(hFTD2XXDLL, "FT_SetTimeouts");
                pFT_SetBreakOn = GetProcAddress(hFTD2XXDLL, "FT_SetBreakOn");
                pFT_SetBreakOff = GetProcAddress(hFTD2XXDLL, "FT_SetBreakOff");
                pFT_GetDeviceInfo = GetProcAddress(hFTD2XXDLL, "FT_GetDeviceInfo");
                pFT_SetResetPipeRetryCount = GetProcAddress(hFTD2XXDLL, "FT_SetResetPipeRetryCount");
                pFT_StopInTask = GetProcAddress(hFTD2XXDLL, "FT_StopInTask");
                pFT_RestartInTask = GetProcAddress(hFTD2XXDLL, "FT_RestartInTask");
                pFT_GetDriverVersion = GetProcAddress(hFTD2XXDLL, "FT_GetDriverVersion");
                pFT_GetLibraryVersion = GetProcAddress(hFTD2XXDLL, "FT_GetLibraryVersion");
                pFT_SetDeadmanTimeout = GetProcAddress(hFTD2XXDLL, "FT_SetDeadmanTimeout");
                pFT_SetChars = GetProcAddress(hFTD2XXDLL, "FT_SetChars");
                pFT_SetEventNotification = GetProcAddress(hFTD2XXDLL, "FT_SetEventNotification");
                pFT_GetComPortNumber = GetProcAddress(hFTD2XXDLL, "FT_GetComPortNumber");
                pFT_SetLatencyTimer = GetProcAddress(hFTD2XXDLL, "FT_SetLatencyTimer");
                pFT_GetLatencyTimer = GetProcAddress(hFTD2XXDLL, "FT_GetLatencyTimer");
                pFT_SetBitMode = GetProcAddress(hFTD2XXDLL, "FT_SetBitMode");
                pFT_GetBitMode = GetProcAddress(hFTD2XXDLL, "FT_GetBitMode");
                pFT_SetUSBParameters = GetProcAddress(hFTD2XXDLL, "FT_SetUSBParameters");
                pFT_ReadEE = GetProcAddress(hFTD2XXDLL, "FT_ReadEE");
                pFT_WriteEE = GetProcAddress(hFTD2XXDLL, "FT_WriteEE");
                pFT_EraseEE = GetProcAddress(hFTD2XXDLL, "FT_EraseEE");
                pFT_EE_UASize = GetProcAddress(hFTD2XXDLL, "FT_EE_UASize");
                pFT_EE_UARead = GetProcAddress(hFTD2XXDLL, "FT_EE_UARead");
                pFT_EE_UAWrite = GetProcAddress(hFTD2XXDLL, "FT_EE_UAWrite");
                pFT_EE_Read = GetProcAddress(hFTD2XXDLL, "FT_EE_Read");
                pFT_EE_Program = GetProcAddress(hFTD2XXDLL, "FT_EE_Program");
                pFT_EEPROM_Read = GetProcAddress(hFTD2XXDLL, "FT_EEPROM_Read");
                pFT_EEPROM_Program = GetProcAddress(hFTD2XXDLL, "FT_EEPROM_Program");
            }
            else
            {
                // Failed to load our DLL - alert the user
                LogB.Debug("FTD2XX: Failed to load FTD2XX.DLL.  Are the FTDI drivers installed?");
            }
        }