Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 153 → Rev 152

/cvi/instr/FTD2xx/ftd2xx.lib
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: instr/FTD2xx/FTD2xx.prj
===================================================================
--- instr/FTD2xx/FTD2xx.prj (revision 153)
+++ instr/FTD2xx/FTD2xx.prj (nonexistent)
@@ -1,432 +0,0 @@
-[Project Header]
-Version = 1302
-Pathname = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/FTD2xx.prj"
-CVI Dir = "/c/program files (x86)/national instruments/cvi2013"
-CVI Shared Dir = "/C/Program Files (x86)/National Instruments/Shared/CVI"
-CVI Pub Local Dir = "/C/ProgramData/National Instruments/CVI2013"
-CVI Pub Global Dir = "/C/ProgramData/National Instruments/CVI"
-IVI Standard Root Dir = "/C/Program Files (x86)/IVI Foundation/IVI"
-VXIplug&play Framework Dir = "/C/Program Files (x86)/IVI Foundation/VISA/winnt"
-IVI Standard Root 64-bit Dir = "/C/Program Files/IVI Foundation/IVI"
-VXIplug&play Framework 64-bit Dir = "/C/Program Files/IVI Foundation/VISA/win64"
-Number of Files = 3
-Target Type = "Executable"
-Flags = 2064
-Copied From Locked InstrDrv Directory = False
-Copied from VXIPNP Directory = False
-Locked InstrDrv Name = ""
-Don't Display Deploy InstrDrv Dialog = False
-
-[Folders]
-User Interface Files Folder Not Added Yet = True
-Instrument Files Folder Not Added Yet = True
-Folder 0 = "Include Files"
-FolderEx 0 = "Include Files"
-Folder 1 = "Source Files"
-FolderEx 1 = "Source Files"
-Folder 2 = "Library Files"
-FolderEx 2 = "Library Files"
-
-[File 0001]
-File Type = "Include"
-Res Id = 1
-Path Is Rel = True
-Path Rel To = "Project"
-Path Rel Path = "ftd2xx.h"
-Path = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/ftd2xx.h"
-Exclude = False
-Project Flags = 0
-Folder = "Include Files"
-Folder Id = 0
-
-[File 0002]
-File Type = "CSource"
-Res Id = 2
-Path Is Rel = True
-Path Rel To = "Project"
-Path Rel Path = "ftd2xxd.c"
-Path = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/ftd2xxd.c"
-Exclude = False
-Compile Into Object File = False
-Project Flags = 0
-Folder = "Source Files"
-Folder Id = 1
-
-[File 0003]
-File Type = "Library"
-Res Id = 3
-Path Is Rel = True
-Path Rel To = "Project"
-Path Rel Path = "ftd2xx.lib"
-Path = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/ftd2xx.lib"
-Exclude = False
-Project Flags = 0
-Folder = "Library Files"
-Folder Id = 2
-
-[Custom Build Configs]
-Num Custom Build Configs = 0
-
-[Default Build Config Debug]
-Config Name = "Debug"
-Is 64-Bit = False
-Is Release = False
-Default Calling Convention = "cdecl"
-Optimization Level = "Optimize for speed (level 2)"
-Require Prototypes = True
-Show Warning IDs in Build Output = False
-Selected Warning Level = "Common"
-Warning List None = ""
-Warning List Common = ""
-Warning List Extended = ""
-Warning List All = ""
-Warning Mode = 0
-Enable Unreferenced Identifiers Warning = True
-Enable Pointer Mismatch Warning = True
-Enable Unreachable Code Warning = True
-Enable Assignment In Conditional Warning = True
-Uninitialized Locals Compile Warning = "Aggressive"
-Require Return Values = True
-Enable C99 Extensions = True
-Enable OpenMP Extensions = False
-Stack Size = 250000
-Stack Reserve = 1048576
-Stack Commit = 4096
-Image Base Address = 4194304
-Image Base Address x64 = 4194304
-Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
-Sign = False
-Sign Store = ""
-Sign Certificate = ""
-Sign Timestamp URL = ""
-Sign URL = ""
-Manifest Embed = False
-Icon File Is Rel = False
-Icon File = ""
-Application Title = ""
-Use IVI Subdirectories for Import Libraries = False
-Use VXIPNP Subdirectories for Import Libraries = False
-Use Dflt Import Lib Base Name = True
-Where to Copy DLL = "Do not copy"
-Custom Directory to Copy DLL Is Rel = False
-Custom Directory to Copy DLL = ""
-Generate Source Documentation = "None"
-Runtime Support = "Full Runtime Support"
-Runtime Binding = "Shared"
-Embed Project .UIRs = False
-Generate Map File = False
-Embed Timestamp = True
-Create Console Application = False
-Using LoadExternalModule = False
-DLL Exports = "Include File Symbols"
-Register ActiveX Server = False
-Numeric File Version = "1,0,0,0"
-Numeric Prod Version = "1,0,0,0"
-Comments = ""
-Comments Ex = ""
-Company Name = ""
-Company Name Ex = "%company"
-File Description = "FTD2xx (Debug x86)"
-File Description Ex = "%application (%rel_dbg %arch)"
-File Version = "1.0"
-File Version Ex = "%f1.%f2"
-Internal Name = "FTD2xx"
-Internal Name Ex = "%basename"
-Legal Copyright = "Copyright © 2016"
-Legal Copyright Ex = "Copyright © %company %Y"
-Legal Trademarks = ""
-Legal Trademarks Ex = ""
-Original Filename = "FTD2xx.exe"
-Original Filename Ex = "%filename"
-Private Build = ""
-Private Build Ex = ""
-Product Name = " FTD2xx"
-Product Name Ex = "%company %application"
-Product Version = "1.0"
-Product Version Ex = "%p1.%p2"
-Special Build = ""
-Special Build Ex = ""
-Add Type Lib To DLL = False
-Include Type Lib Help Links = False
-TLB Help Style = "HLP"
-Type Lib FP File Is Rel = False
-Type Lib FP File = ""
-
-[Default Build Config Release]
-Config Name = "Release"
-Is 64-Bit = False
-Is Release = True
-Default Calling Convention = "cdecl"
-Optimization Level = "Optimize for speed (level 2)"
-Require Prototypes = True
-Show Warning IDs in Build Output = False
-Selected Warning Level = "Common"
-Warning List None = ""
-Warning List Common = ""
-Warning List Extended = ""
-Warning List All = ""
-Warning Mode = 0
-Enable Unreferenced Identifiers Warning = True
-Enable Pointer Mismatch Warning = True
-Enable Unreachable Code Warning = True
-Enable Assignment In Conditional Warning = True
-Uninitialized Locals Compile Warning = "Aggressive"
-Require Return Values = True
-Enable C99 Extensions = True
-Enable OpenMP Extensions = False
-Stack Size = 250000
-Stack Reserve = 1048576
-Stack Commit = 4096
-Image Base Address = 4194304
-Image Base Address x64 = 4194304
-Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
-Sign = False
-Sign Store = ""
-Sign Certificate = ""
-Sign Timestamp URL = ""
-Sign URL = ""
-Manifest Embed = False
-Icon File Is Rel = False
-Icon File = ""
-Application Title = ""
-Use IVI Subdirectories for Import Libraries = False
-Use VXIPNP Subdirectories for Import Libraries = False
-Use Dflt Import Lib Base Name = True
-Where to Copy DLL = "Do not copy"
-Custom Directory to Copy DLL Is Rel = False
-Custom Directory to Copy DLL = ""
-Generate Source Documentation = "None"
-Runtime Support = "Full Runtime Support"
-Runtime Binding = "Shared"
-Embed Project .UIRs = False
-Generate Map File = False
-Embed Timestamp = True
-Create Console Application = False
-Using LoadExternalModule = False
-DLL Exports = "Include File Symbols"
-Register ActiveX Server = False
-Add Type Lib To DLL = False
-Include Type Lib Help Links = False
-TLB Help Style = "HLP"
-Type Lib FP File Is Rel = False
-Type Lib FP File = ""
-
-[Default Build Config Debug64]
-Config Name = "Debug64"
-Is 64-Bit = True
-Is Release = False
-Default Calling Convention = "cdecl"
-Optimization Level = "Optimize for speed (level 2)"
-Require Prototypes = True
-Show Warning IDs in Build Output = False
-Selected Warning Level = "Common"
-Warning List None = ""
-Warning List Common = ""
-Warning List Extended = ""
-Warning List All = ""
-Warning Mode = 0
-Enable Unreferenced Identifiers Warning = True
-Enable Pointer Mismatch Warning = True
-Enable Unreachable Code Warning = True
-Enable Assignment In Conditional Warning = True
-Uninitialized Locals Compile Warning = "Aggressive"
-Require Return Values = True
-Enable C99 Extensions = True
-Enable OpenMP Extensions = False
-Stack Size = 250000
-Stack Reserve = 1048576
-Stack Commit = 4096
-Image Base Address = 4194304
-Image Base Address x64 = 4194304
-Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
-Sign = False
-Sign Store = ""
-Sign Certificate = ""
-Sign Timestamp URL = ""
-Sign URL = ""
-Manifest Embed = False
-Icon File Is Rel = False
-Icon File = ""
-Application Title = ""
-Use IVI Subdirectories for Import Libraries = False
-Use VXIPNP Subdirectories for Import Libraries = False
-Use Dflt Import Lib Base Name = True
-Where to Copy DLL = "Do not copy"
-Custom Directory to Copy DLL Is Rel = False
-Custom Directory to Copy DLL = ""
-Generate Source Documentation = "None"
-Runtime Support = "Full Runtime Support"
-Runtime Binding = "Shared"
-Embed Project .UIRs = False
-Generate Map File = False
-Embed Timestamp = True
-Create Console Application = False
-Using LoadExternalModule = False
-DLL Exports = "Include File Symbols"
-Register ActiveX Server = False
-Add Type Lib To DLL = False
-Include Type Lib Help Links = False
-TLB Help Style = "HLP"
-Type Lib FP File Is Rel = False
-Type Lib FP File = ""
-
-[Default Build Config Release64]
-Config Name = "Release64"
-Is 64-Bit = True
-Is Release = True
-Default Calling Convention = "cdecl"
-Optimization Level = "Optimize for speed (level 2)"
-Require Prototypes = True
-Show Warning IDs in Build Output = False
-Selected Warning Level = "Common"
-Warning List None = ""
-Warning List Common = ""
-Warning List Extended = ""
-Warning List All = ""
-Warning Mode = 0
-Enable Unreferenced Identifiers Warning = True
-Enable Pointer Mismatch Warning = True
-Enable Unreachable Code Warning = True
-Enable Assignment In Conditional Warning = True
-Uninitialized Locals Compile Warning = "Aggressive"
-Require Return Values = True
-Enable C99 Extensions = True
-Enable OpenMP Extensions = False
-Stack Size = 250000
-Stack Reserve = 1048576
-Stack Commit = 4096
-Image Base Address = 4194304
-Image Base Address x64 = 4194304
-Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
-Sign = False
-Sign Store = ""
-Sign Certificate = ""
-Sign Timestamp URL = ""
-Sign URL = ""
-Manifest Embed = False
-Icon File Is Rel = False
-Icon File = ""
-Application Title = ""
-Use IVI Subdirectories for Import Libraries = False
-Use VXIPNP Subdirectories for Import Libraries = False
-Use Dflt Import Lib Base Name = True
-Where to Copy DLL = "Do not copy"
-Custom Directory to Copy DLL Is Rel = False
-Custom Directory to Copy DLL = ""
-Generate Source Documentation = "None"
-Runtime Support = "Full Runtime Support"
-Runtime Binding = "Shared"
-Embed Project .UIRs = False
-Generate Map File = False
-Embed Timestamp = True
-Create Console Application = False
-Using LoadExternalModule = False
-DLL Exports = "Include File Symbols"
-Register ActiveX Server = False
-Add Type Lib To DLL = False
-Include Type Lib Help Links = False
-TLB Help Style = "HLP"
-Type Lib FP File Is Rel = False
-Type Lib FP File = ""
-
-[Compiler Options]
-Default Calling Convention = "cdecl"
-Require Prototypes = True
-Require Return Values = False
-Enable Pointer Mismatch Warning = False
-Enable Unreachable Code Warning = False
-Enable Unreferenced Identifiers Warning = False
-Enable Assignment In Conditional Warning = False
-O Option Compatible With 5.0 = False
-Enable C99 Extensions = True
-Uninitialized Locals Compile Warning = "Disabled"
-Precompile Prefix Header = False
-Prefix Header File = ""
-
-[Run Options]
-Stack Size = 250000
-Stack Commit = 4096
-Image Base Address = 4194304
-Image Base Address x64 = 4194304
-
-[Compiler Defines]
-Compiler Defines = "/DWIN32_LEAN_AND_MEAN"
-
-[Create Executable]
-Executable File_Debug Is Rel = True
-Executable File_Debug Rel To = "Project"
-Executable File_Debug Rel Path = "FTD2xx.exe"
-Executable File_Debug = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/FTD2xx.exe"
-Executable File_Release Is Rel = True
-Executable File_Release Rel To = "Project"
-Executable File_Release Rel Path = "FTD2xx.exe"
-Executable File_Release = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/FTD2xx.exe"
-Executable File_Debug64 Is Rel = True
-Executable File_Debug64 Rel To = "Project"
-Executable File_Debug64 Rel Path = "FTD2xx.exe"
-Executable File_Debug64 = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/FTD2xx.exe"
-Executable File_Release64 Is Rel = True
-Executable File_Release64 Rel To = "Project"
-Executable File_Release64 Rel Path = "FTD2xx.exe"
-Executable File_Release64 = "/c/SAMO/Programi/NI/cvi/instr/FTD2xx/FTD2xx.exe"
-Icon File Is Rel = False
-Icon File = ""
-Application Title = ""
-DLL Exports = "Include File Symbols"
-Use IVI Subdirectories for Import Libraries = False
-Use VXIPNP Subdirectories for Import Libraries = False
-Use Dflt Import Lib Base Name = True
-Where to Copy DLL = "Do not copy"
-Custom Directory to Copy DLL Is Rel = False
-Custom Directory to Copy DLL = ""
-Generate Source Documentation = "None"
-Add Type Lib To DLL = False
-Include Type Lib Help Links = False
-TLB Help Style = "HLP"
-Type Lib FP File Is Rel = False
-Type Lib FP File = ""
-Type Lib Guid = ""
-Runtime Support = "Full Runtime Support"
-Instrument Driver Support Only = False
-Embed Project .UIRs = False
-Generate Map File = False
-
-[External Compiler Support]
-UIR Callbacks File Option = 0
-Using LoadExternalModule = False
-Create Project Symbols File = True
-UIR Callbacks Obj File Is Rel = False
-UIR Callbacks Obj File = ""
-Project Symbols H File Is Rel = False
-Project Symbols H File = ""
-Project Symbols Obj File Is Rel = False
-Project Symbols Obj File = ""
-
-[ActiveX Server Options]
-Specification File Is Rel = False
-Specification File = ""
-Source File Is Rel = False
-Source File = ""
-Include File Is Rel = False
-Include File = ""
-IDL File Is Rel = False
-IDL File = ""
-Register ActiveX Server = False
-
-[Signing Info]
-Sign = False
-Sign Debug Build = False
-Store = ""
-Certificate = ""
-Timestamp URL = ""
-URL = ""
-
-[Manifest Info]
-Embed = False
-
-[tpcSection]
-tpcEnabled = 0
-tpcOverrideEnvironment = 0
-tpcEnabled x64 = 0
-tpcOverrideEnvironment x64 = 0
-
Index: instr/FTD2xx/ftd2xxd.c
===================================================================
--- instr/FTD2xx/ftd2xxd.c (revision 153)
+++ instr/FTD2xx/ftd2xxd.c (nonexistent)
@@ -1,159 +0,0 @@
-#include <ansi_c.h>
-#include <cvirte.h>
-#include "ftd2xx.h"
-#include <utility.h>
-
-int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
- LPSTR lpszCmdLine, int nCmdShow) {
-
- BYTE bufOut[1024],bufIn[1024];
- DWORD bToSend, bSent, bToReceive, bReceived;
- DWORD dwClockDivisor=29;//Value of clock divisor, SCL Frequency = 60/((1+29)*2) (MHz) = 1Mhz
- DWORD numDevs;
- DWORD Flags;
- DWORD ID;
- DWORD Type;
- DWORD LocId;
- char SerialNumber[16];
- char Description[64];
- FT_STATUS ftStatus;
- FT_HANDLE ftHandle,ftHandleTemp;
- FT_DEVICE_LIST_INFO_NODE *devInfo;
-
- if (InitCVIRTE (hInstance, 0, 0) == 0)
- return -1; /* out of memory */
-// create the device information list
- ftStatus = FT_CreateDeviceInfoList(&numDevs);
- if (ftStatus == FT_OK) {
- printf("Number of devices is %d\n",numDevs);
- }
- if (numDevs > 0) {
-// allocate storage for list based on numDevs
- devInfo = (FT_DEVICE_LIST_INFO_NODE*)malloc(sizeof(FT_DEVICE_LIST_INFO_NODE)*numDevs);
-// get the device information list
- ftStatus = FT_GetDeviceInfoList(devInfo,&numDevs);
- if (ftStatus == FT_OK) {
- for (int i = 0; i < numDevs; i++) {
- printf("Dev %d:\n",i);
- printf(" Flags=0x%x\n",devInfo[i].Flags);
- printf(" Type=0x%x\n",devInfo[i].Type);
- printf(" ID=0x%x\n",devInfo[i].ID);
- printf(" LocId=0x%x\n",devInfo[i].LocId);
- printf(" SerialNumber=%s\n",devInfo[i].SerialNumber);
- printf(" Description=%s\n",devInfo[i].Description);
- printf(" ftHandle=0x%x\n",devInfo[i].ftHandle);
- }
- }
-// get information for device 0
-/*
- ftStatus = FT_GetDeviceInfoDetail(0, &Flags, &Type, &ID, &LocId, SerialNumber, Description, &ftHandleTemp);
- if (ftStatus == FT_OK) {
- printf("Dev 0:\n");
- printf(" Flags=0x%x\n",Flags);
- printf(" Type=0x%x\n",Type);
- printf(" ID=0x%x\n",ID);
- printf(" LocId=0x%x\n",LocId);
- printf(" SerialNumber=%s\n",SerialNumber);
- printf(" Description=%s\n",Description);
- printf(" ftHandle=0x%x\n",ftHandleTemp);
- }
-*/
- }
- ftStatus = FT_Open(0,&ftHandle);
- if (ftStatus != FT_OK) {
- printf("Can't open FT232H device! \n");
- return 1;
- } else // Port opened successfully
- printf("Successfully open FT2232H device! \n");
-
-// reset device
- ftStatus = FT_ResetDevice(ftHandle);
-//Purge USB receive buffer first by reading out all old data from FT232H receive buffer
- ftStatus |= FT_GetQueueStatus(ftHandle, &bToReceive); // Get the number of bytes in the FT232H receive buffer
- if ((ftStatus == FT_OK) && (bToReceive > 0))
- ftStatus |= FT_Read(ftHandle, bufIn, bToReceive, &bReceived); //Read out the data from FT232H receive buffer
- ftStatus |= FT_SetUSBParameters(ftHandle, 65535, 65535); //Set USB request transfer size
- ftStatus |= FT_SetChars(ftHandle, FALSE, 0, FALSE, 0); //Disable event and error characters
- ftStatus |= FT_SetTimeouts(ftHandle, 3000, 3000); //Sets the read and write timeouts in 3 sec for the FT232H
- ftStatus |= FT_SetLatencyTimer(ftHandle, 1); //Set the latency timer
- ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x00); //Reset controller
- ftStatus |= FT_SetBitMode(ftHandle, 0x0, 0x02); //Enable MPSSE mode
- if (ftStatus != FT_OK) {
- printf("fail on initialize FT2232H device ! \n");
- return FALSE;
- }
- Sleep(50); // Wait 50ms for all the USB stuff to complete and work
-
-// test communication by sending bad command 0xAA
- bToSend=0;
- bufOut[bToSend++]=0xAA;
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent);
- do{
- ftStatus = FT_GetQueueStatus(ftHandle, &bToReceive); // Get the number of bytes in the device input buffer
- }while ((bToReceive == 0) && (ftStatus == FT_OK)); //or Timeout
- ftStatus = FT_Read(ftHandle, bufIn, bToReceive, &bReceived); //Read out the data from input buffer
- printf("Received byts: %d",bReceived);
- if (bReceived > 1) printf(": 0x%02X, 0x%02X",bufIn[bReceived-2],bufIn[bReceived-1]);
- printf("\n");
-
- bToSend=0;
- bufOut[bToSend++]=0xAB;
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent);
- do{
- ftStatus = FT_GetQueueStatus(ftHandle, &bToReceive); // Get the number of bytes in the device input buffer
- }while ((bToReceive == 0) && (ftStatus == FT_OK)); //or Timeout
- ftStatus = FT_Read(ftHandle, bufIn, bToReceive, &bReceived); //Read out the data from input buffer
- printf("Received bytes: %d",bReceived);
- if (bReceived > 1) printf(": 0x%02X, 0x%02X",bufIn[bReceived-2],bufIn[bReceived-1]);
- printf("\n");
-
- bToSend=0;
- bufOut[bToSend++]=0x8A;//Ensure disable clock divide by 5 for 60Mhz master clock
- bufOut[bToSend++]=0x97;//Ensure turn off adaptive clocking
- bufOut[bToSend++]=0x8D;//disable 3 phase data clock
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent);
-
- bToSend = 0;
- bufOut[bToSend++]=0x80; //Command to set directions of lower 8 pins and force value on bits set as output
- bufOut[bToSend++]=0x00; //Set SDA, SCL high, WP disabled by SK, DO at bit &*, GPIOL0 at bit &*
- bufOut[bToSend++]=0x0B; //Set SK,DO,GPIOL0 pins as output with bit **, other pins as input with bit &*
-// The SK clock frequency can be worked out by below algorithm with divide by 5 set as off
-// SK frequency = 60MHz /((1 + [(1 +0xValueH*256) OR 0xValueL])*2)
- bufOut[bToSend++]=0x86; //Command to set clock divisor
- bufOut[bToSend++]=dwClockDivisor & 0xFF; //Set 0xValueL of clock divisor
- bufOut[bToSend++]=dwClockDivisor >> 8; //Set 0xValueH of clock divisor
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent); // Send out the commands
- Sleep(20); //Delay for a while
-//Turn off loop back in case
- bToSend = 0;
- bufOut[bToSend++]=0x85; //Command to turn off loop back of TDI/TDO connection
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent); // Send out the commands
- Sleep(30); //Delay for a while
- printf("SPI initialized successfuly\n");
-
- bToSend=0;
- bufOut[bToSend++]=0x82;// set ACBUS 0-7
- bufOut[bToSend++]=0x00;// value
- bufOut[bToSend++]=0x00;// direction 0-input
- bufOut[bToSend++]=0x80;// set ADBUS 0-7
- bufOut[bToSend++]=0xF0;
- bufOut[bToSend++]=0xFF;
- bufOut[bToSend++]=0x81;// read ADBUS
- bufOut[bToSend++]=0x83;// read ACBUS
- bufOut[bToSend++]=0x80;
- bufOut[bToSend++]=0x00;
- bufOut[bToSend++]=0xFF;
- bufOut[bToSend++]=0x81;
- bufOut[bToSend++]=0x83;
- ftStatus = FT_Write(ftHandle, bufOut, bToSend, &bSent);
- do{
- ftStatus = FT_GetQueueStatus(ftHandle, &bToReceive); // Get the number of bytes in the device input buffer
- }while ((bToReceive == 0) && (ftStatus == FT_OK)); //or Timeout
- ftStatus = FT_Read(ftHandle, bufIn, bToReceive, &bReceived); //Read out the data from input buffer
- printf("Received bytes: 0x%02X, 0x%02X, 0x%02X, 0x%02X\n",bufIn[0],bufIn[1],bufIn[2],bufIn[3]);
-
- getchar();
-// Delay(10);
- FT_Close(ftHandle);
- return 0;
-}
Index: instr/FTD2xx/ftd2xx.h
===================================================================
--- instr/FTD2xx/ftd2xx.h (revision 153)
+++ instr/FTD2xx/ftd2xx.h (nonexistent)
@@ -1,1444 +0,0 @@
-/*++
-
-Copyright © 2001-2011 Future Technology Devices International Limited
-
-THIS SOFTWARE IS PROVIDED BY FUTURE TECHNOLOGY DEVICES INTERNATIONAL LIMITED "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-FUTURE TECHNOLOGY DEVICES INTERNATIONAL LIMITED BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
-OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR PROFITS OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-FTDI DRIVERS MAY BE USED ONLY IN CONJUNCTION WITH PRODUCTS BASED ON FTDI PARTS.
-
-FTDI DRIVERS MAY BE DISTRIBUTED IN ANY FORM AS LONG AS LICENSE INFORMATION IS NOT MODIFIED.
-
-IF A CUSTOM VENDOR ID AND/OR PRODUCT ID OR DESCRIPTION STRING ARE USED, IT IS THE
-RESPONSIBILITY OF THE PRODUCT MANUFACTURER TO MAINTAIN ANY CHANGES AND SUBSEQUENT WHQL
-RE-CERTIFICATION AS A RESULT OF MAKING THESE CHANGES.
-
-
-Module Name:
-
-ftd2xx.h
-
-Abstract:
-
-Native USB device driver for FTDI FT232x, FT245x, FT2232x and FT4232x devices
-FTD2XX library definitions
-
-Environment:
-
-kernel & user mode
-
-
---*/
-
-
-#ifndef FTD2XX_H
-#define FTD2XX_H
-
-#ifdef _WIN32
-// Compiling on Windows
-#include <windows.h>
-
-// The following ifdef block is the standard way of creating macros
-// which make exporting from a DLL simpler. All files within this DLL
-// are compiled with the FTD2XX_EXPORTS symbol defined on the command line.
-// This symbol should not be defined on any project that uses this DLL.
-// This way any other project whose source files include this file see
-// FTD2XX_API functions as being imported from a DLL, whereas this DLL
-// sees symbols defined with this macro as being exported.
-
-#ifdef FTD2XX_EXPORTS
-#define FTD2XX_API __declspec(dllexport)
-#elif defined(FTD2XX_STATIC)
-// Avoid decorations when linking statically to D2XX.
-#define FTD2XX_API
-// Static D2XX depends on these Windows libs:
-#pragma comment(lib, "setupapi.lib")
-#pragma comment(lib, "advapi32.lib")
-#pragma comment(lib, "user32.lib")
-#else
-#define FTD2XX_API __declspec(dllimport)
-#endif
-
-#else // _WIN32
-// Compiling on non-Windows platform.
-#include "WinTypes.h"
-// No decorations needed.
-#define FTD2XX_API
-
-#endif // _WIN32
-
-typedef PVOID FT_HANDLE;
-typedef ULONG FT_STATUS;
-
-//
-// Device status
-//
-enum {
- FT_OK,
- FT_INVALID_HANDLE,
- FT_DEVICE_NOT_FOUND,
- FT_DEVICE_NOT_OPENED,
- FT_IO_ERROR,
- FT_INSUFFICIENT_RESOURCES,
- FT_INVALID_PARAMETER,
- FT_INVALID_BAUD_RATE,
-
- FT_DEVICE_NOT_OPENED_FOR_ERASE,
- FT_DEVICE_NOT_OPENED_FOR_WRITE,
- FT_FAILED_TO_WRITE_DEVICE,
- FT_EEPROM_READ_FAILED,
- FT_EEPROM_WRITE_FAILED,
- FT_EEPROM_ERASE_FAILED,
- FT_EEPROM_NOT_PRESENT,
- FT_EEPROM_NOT_PROGRAMMED,
- FT_INVALID_ARGS,
- FT_NOT_SUPPORTED,
- FT_OTHER_ERROR,
- FT_DEVICE_LIST_NOT_READY,
-};
-
-
-#define FT_SUCCESS(status) ((status) == FT_OK)
-
-//
-// FT_OpenEx Flags
-//
-
-#define FT_OPEN_BY_SERIAL_NUMBER 1
-#define FT_OPEN_BY_DESCRIPTION 2
-#define FT_OPEN_BY_LOCATION 4
-
-#define FT_OPEN_MASK (FT_OPEN_BY_SERIAL_NUMBER | \
- FT_OPEN_BY_DESCRIPTION | \
- FT_OPEN_BY_LOCATION)
-
-//
-// FT_ListDevices Flags (used in conjunction with FT_OpenEx Flags
-//
-
-#define FT_LIST_NUMBER_ONLY 0x80000000
-#define FT_LIST_BY_INDEX 0x40000000
-#define FT_LIST_ALL 0x20000000
-
-#define FT_LIST_MASK (FT_LIST_NUMBER_ONLY|FT_LIST_BY_INDEX|FT_LIST_ALL)
-
-//
-// Baud Rates
-//
-
-#define FT_BAUD_300 300
-#define FT_BAUD_600 600
-#define FT_BAUD_1200 1200
-#define FT_BAUD_2400 2400
-#define FT_BAUD_4800 4800
-#define FT_BAUD_9600 9600
-#define FT_BAUD_14400 14400
-#define FT_BAUD_19200 19200
-#define FT_BAUD_38400 38400
-#define FT_BAUD_57600 57600
-#define FT_BAUD_115200 115200
-#define FT_BAUD_230400 230400
-#define FT_BAUD_460800 460800
-#define FT_BAUD_921600 921600
-
-//
-// Word Lengths
-//
-
-#define FT_BITS_8 (UCHAR) 8
-#define FT_BITS_7 (UCHAR) 7
-
-//
-// Stop Bits
-//
-
-#define FT_STOP_BITS_1 (UCHAR) 0
-#define FT_STOP_BITS_2 (UCHAR) 2
-
-//
-// Parity
-//
-
-#define FT_PARITY_NONE (UCHAR) 0
-#define FT_PARITY_ODD (UCHAR) 1
-#define FT_PARITY_EVEN (UCHAR) 2
-#define FT_PARITY_MARK (UCHAR) 3
-#define FT_PARITY_SPACE (UCHAR) 4
-
-//
-// Flow Control
-//
-
-#define FT_FLOW_NONE 0x0000
-#define FT_FLOW_RTS_CTS 0x0100
-#define FT_FLOW_DTR_DSR 0x0200
-#define FT_FLOW_XON_XOFF 0x0400
-
-//
-// Purge rx and tx buffers
-//
-#define FT_PURGE_RX 1
-#define FT_PURGE_TX 2
-
-//
-// Events
-//
-
-typedef void (*PFT_EVENT_HANDLER)(DWORD,DWORD);
-
-#define FT_EVENT_RXCHAR 1
-#define FT_EVENT_MODEM_STATUS 2
-#define FT_EVENT_LINE_STATUS 4
-
-//
-// Timeouts
-//
-
-#define FT_DEFAULT_RX_TIMEOUT 300
-#define FT_DEFAULT_TX_TIMEOUT 300
-
-//
-// Device types
-//
-
-typedef ULONG FT_DEVICE;
-
-enum {
- FT_DEVICE_BM,
- FT_DEVICE_AM,
- FT_DEVICE_100AX,
- FT_DEVICE_UNKNOWN,
- FT_DEVICE_2232C,
- FT_DEVICE_232R,
- FT_DEVICE_2232H,
- FT_DEVICE_4232H,
- FT_DEVICE_232H,
- FT_DEVICE_X_SERIES,
- FT_DEVICE_4222H_0,
- FT_DEVICE_4222H_1_2,
- FT_DEVICE_4222H_3,
- FT_DEVICE_4222_PROG,
- FT_DEVICE_900,
-};
-
-//
-// Bit Modes
-//
-
-#define FT_BITMODE_RESET 0x00
-#define FT_BITMODE_ASYNC_BITBANG 0x01
-#define FT_BITMODE_MPSSE 0x02
-#define FT_BITMODE_SYNC_BITBANG 0x04
-#define FT_BITMODE_MCU_HOST 0x08
-#define FT_BITMODE_FAST_SERIAL 0x10
-#define FT_BITMODE_CBUS_BITBANG 0x20
-#define FT_BITMODE_SYNC_FIFO 0x40
-
-//
-// FT232R CBUS Options EEPROM values
-//
-
-#define FT_232R_CBUS_TXDEN 0x00 // Tx Data Enable
-#define FT_232R_CBUS_PWRON 0x01 // Power On
-#define FT_232R_CBUS_RXLED 0x02 // Rx LED
-#define FT_232R_CBUS_TXLED 0x03 // Tx LED
-#define FT_232R_CBUS_TXRXLED 0x04 // Tx and Rx LED
-#define FT_232R_CBUS_SLEEP 0x05 // Sleep
-#define FT_232R_CBUS_CLK48 0x06 // 48MHz clock
-#define FT_232R_CBUS_CLK24 0x07 // 24MHz clock
-#define FT_232R_CBUS_CLK12 0x08 // 12MHz clock
-#define FT_232R_CBUS_CLK6 0x09 // 6MHz clock
-#define FT_232R_CBUS_IOMODE 0x0A // IO Mode for CBUS bit-bang
-#define FT_232R_CBUS_BITBANG_WR 0x0B // Bit-bang write strobe
-#define FT_232R_CBUS_BITBANG_RD 0x0C // Bit-bang read strobe
-
-//
-// FT232H CBUS Options EEPROM values
-//
-
-#define FT_232H_CBUS_TRISTATE 0x00 // Tristate
-#define FT_232H_CBUS_TXLED 0x01 // Tx LED
-#define FT_232H_CBUS_RXLED 0x02 // Rx LED
-#define FT_232H_CBUS_TXRXLED 0x03 // Tx and Rx LED
-#define FT_232H_CBUS_PWREN 0x04 // Power Enable
-#define FT_232H_CBUS_SLEEP 0x05 // Sleep
-#define FT_232H_CBUS_DRIVE_0 0x06 // Drive pin to logic 0
-#define FT_232H_CBUS_DRIVE_1 0x07 // Drive pin to logic 1
-#define FT_232H_CBUS_IOMODE 0x08 // IO Mode for CBUS bit-bang
-#define FT_232H_CBUS_TXDEN 0x09 // Tx Data Enable
-#define FT_232H_CBUS_CLK30 0x0A // 30MHz clock
-#define FT_232H_CBUS_CLK15 0x0B // 15MHz clock
-#define FT_232H_CBUS_CLK7_5 0x0C // 7.5MHz clock
-
-//
-// FT X Series CBUS Options EEPROM values
-//
-
-#define FT_X_SERIES_CBUS_TRISTATE 0x00 // Tristate
-#define FT_X_SERIES_CBUS_TXLED 0x01 // Tx LED
-#define FT_X_SERIES_CBUS_RXLED 0x02 // Rx LED
-#define FT_X_SERIES_CBUS_TXRXLED 0x03 // Tx and Rx LED
-#define FT_X_SERIES_CBUS_PWREN 0x04 // Power Enable
-#define FT_X_SERIES_CBUS_SLEEP 0x05 // Sleep
-#define FT_X_SERIES_CBUS_DRIVE_0 0x06 // Drive pin to logic 0
-#define FT_X_SERIES_CBUS_DRIVE_1 0x07 // Drive pin to logic 1
-#define FT_X_SERIES_CBUS_IOMODE 0x08 // IO Mode for CBUS bit-bang
-#define FT_X_SERIES_CBUS_TXDEN 0x09 // Tx Data Enable
-#define FT_X_SERIES_CBUS_CLK24 0x0A // 24MHz clock
-#define FT_X_SERIES_CBUS_CLK12 0x0B // 12MHz clock
-#define FT_X_SERIES_CBUS_CLK6 0x0C // 6MHz clock
-#define FT_X_SERIES_CBUS_BCD_CHARGER 0x0D // Battery charger detected
-#define FT_X_SERIES_CBUS_BCD_CHARGER_N 0x0E // Battery charger detected inverted
-#define FT_X_SERIES_CBUS_I2C_TXE 0x0F // I2C Tx empty
-#define FT_X_SERIES_CBUS_I2C_RXF 0x10 // I2C Rx full
-#define FT_X_SERIES_CBUS_VBUS_SENSE 0x11 // Detect VBUS
-#define FT_X_SERIES_CBUS_BITBANG_WR 0x12 // Bit-bang write strobe
-#define FT_X_SERIES_CBUS_BITBANG_RD 0x13 // Bit-bang read strobe
-#define FT_X_SERIES_CBUS_TIMESTAMP 0x14 // Toggle output when a USB SOF token is received
-#define FT_X_SERIES_CBUS_KEEP_AWAKE 0x15 //
-
-
-// Driver types
-#define FT_DRIVER_TYPE_D2XX 0
-#define FT_DRIVER_TYPE_VCP 1
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#ifdef FTD2XX_STATIC
- FTD2XX_API
- FT_STATUS WINAPI FT_Initialise(
- void
- );
-
- FTD2XX_API
- void WINAPI FT_Finalise(
- void
- );
-#endif // FTD2XX_STATIC
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Open(
- int deviceNumber,
- FT_HANDLE *pHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_OpenEx(
- PVOID pArg1,
- DWORD Flags,
- FT_HANDLE *pHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ListDevices(
- PVOID pArg1,
- PVOID pArg2,
- DWORD Flags
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Close(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Read(
- FT_HANDLE ftHandle,
- LPVOID lpBuffer,
- DWORD dwBytesToRead,
- LPDWORD lpBytesReturned
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Write(
- FT_HANDLE ftHandle,
- LPVOID lpBuffer,
- DWORD dwBytesToWrite,
- LPDWORD lpBytesWritten
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_IoCtl(
- FT_HANDLE ftHandle,
- DWORD dwIoControlCode,
- LPVOID lpInBuf,
- DWORD nInBufSize,
- LPVOID lpOutBuf,
- DWORD nOutBufSize,
- LPDWORD lpBytesReturned,
- LPOVERLAPPED lpOverlapped
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetBaudRate(
- FT_HANDLE ftHandle,
- ULONG BaudRate
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetDivisor(
- FT_HANDLE ftHandle,
- USHORT Divisor
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetDataCharacteristics(
- FT_HANDLE ftHandle,
- UCHAR WordLength,
- UCHAR StopBits,
- UCHAR Parity
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetFlowControl(
- FT_HANDLE ftHandle,
- USHORT FlowControl,
- UCHAR XonChar,
- UCHAR XoffChar
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ResetDevice(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetDtr(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ClrDtr(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetRts(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ClrRts(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetModemStatus(
- FT_HANDLE ftHandle,
- ULONG *pModemStatus
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetChars(
- FT_HANDLE ftHandle,
- UCHAR EventChar,
- UCHAR EventCharEnabled,
- UCHAR ErrorChar,
- UCHAR ErrorCharEnabled
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Purge(
- FT_HANDLE ftHandle,
- ULONG Mask
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetTimeouts(
- FT_HANDLE ftHandle,
- ULONG ReadTimeout,
- ULONG WriteTimeout
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetQueueStatus(
- FT_HANDLE ftHandle,
- DWORD *dwRxBytes
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetEventNotification(
- FT_HANDLE ftHandle,
- DWORD Mask,
- PVOID Param
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetStatus(
- FT_HANDLE ftHandle,
- DWORD *dwRxBytes,
- DWORD *dwTxBytes,
- DWORD *dwEventDWord
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetBreakOn(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetBreakOff(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetWaitMask(
- FT_HANDLE ftHandle,
- DWORD Mask
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_WaitOnMask(
- FT_HANDLE ftHandle,
- DWORD *Mask
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetEventStatus(
- FT_HANDLE ftHandle,
- DWORD *dwEventDWord
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ReadEE(
- FT_HANDLE ftHandle,
- DWORD dwWordOffset,
- LPWORD lpwValue
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_WriteEE(
- FT_HANDLE ftHandle,
- DWORD dwWordOffset,
- WORD wValue
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EraseEE(
- FT_HANDLE ftHandle
- );
-
- //
- // structure to hold program data for FT_EE_Program, FT_EE_ProgramEx, FT_EE_Read
- // and FT_EE_ReadEx functions
- //
- typedef struct ft_program_data {
-
- DWORD Signature1; // Header - must be 0x00000000
- DWORD Signature2; // Header - must be 0xffffffff
- DWORD Version; // Header - FT_PROGRAM_DATA version
- // 0 = original
- // 1 = FT2232 extensions
- // 2 = FT232R extensions
- // 3 = FT2232H extensions
- // 4 = FT4232H extensions
- // 5 = FT232H extensions
-
- WORD VendorId; // 0x0403
- WORD ProductId; // 0x6001
- char *Manufacturer; // "FTDI"
- char *ManufacturerId; // "FT"
- char *Description; // "USB HS Serial Converter"
- char *SerialNumber; // "FT000001" if fixed, or NULL
- WORD MaxPower; // 0 < MaxPower <= 500
- WORD PnP; // 0 = disabled, 1 = enabled
- WORD SelfPowered; // 0 = bus powered, 1 = self powered
- WORD RemoteWakeup; // 0 = not capable, 1 = capable
- //
- // Rev4 (FT232B) extensions
- //
- UCHAR Rev4; // non-zero if Rev4 chip, zero otherwise
- UCHAR IsoIn; // non-zero if in endpoint is isochronous
- UCHAR IsoOut; // non-zero if out endpoint is isochronous
- UCHAR PullDownEnable; // non-zero if pull down enabled
- UCHAR SerNumEnable; // non-zero if serial number to be used
- UCHAR USBVersionEnable; // non-zero if chip uses USBVersion
- WORD USBVersion; // BCD (0x0200 => USB2)
- //
- // Rev 5 (FT2232) extensions
- //
- UCHAR Rev5; // non-zero if Rev5 chip, zero otherwise
- UCHAR IsoInA; // non-zero if in endpoint is isochronous
- UCHAR IsoInB; // non-zero if in endpoint is isochronous
- UCHAR IsoOutA; // non-zero if out endpoint is isochronous
- UCHAR IsoOutB; // non-zero if out endpoint is isochronous
- UCHAR PullDownEnable5; // non-zero if pull down enabled
- UCHAR SerNumEnable5; // non-zero if serial number to be used
- UCHAR USBVersionEnable5; // non-zero if chip uses USBVersion
- WORD USBVersion5; // BCD (0x0200 => USB2)
- UCHAR AIsHighCurrent; // non-zero if interface is high current
- UCHAR BIsHighCurrent; // non-zero if interface is high current
- UCHAR IFAIsFifo; // non-zero if interface is 245 FIFO
- UCHAR IFAIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR IFAIsFastSer; // non-zero if interface is Fast serial
- UCHAR AIsVCP; // non-zero if interface is to use VCP drivers
- UCHAR IFBIsFifo; // non-zero if interface is 245 FIFO
- UCHAR IFBIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR IFBIsFastSer; // non-zero if interface is Fast serial
- UCHAR BIsVCP; // non-zero if interface is to use VCP drivers
- //
- // Rev 6 (FT232R) extensions
- //
- UCHAR UseExtOsc; // Use External Oscillator
- UCHAR HighDriveIOs; // High Drive I/Os
- UCHAR EndpointSize; // Endpoint size
- UCHAR PullDownEnableR; // non-zero if pull down enabled
- UCHAR SerNumEnableR; // non-zero if serial number to be used
- UCHAR InvertTXD; // non-zero if invert TXD
- UCHAR InvertRXD; // non-zero if invert RXD
- UCHAR InvertRTS; // non-zero if invert RTS
- UCHAR InvertCTS; // non-zero if invert CTS
- UCHAR InvertDTR; // non-zero if invert DTR
- UCHAR InvertDSR; // non-zero if invert DSR
- UCHAR InvertDCD; // non-zero if invert DCD
- UCHAR InvertRI; // non-zero if invert RI
- UCHAR Cbus0; // Cbus Mux control
- UCHAR Cbus1; // Cbus Mux control
- UCHAR Cbus2; // Cbus Mux control
- UCHAR Cbus3; // Cbus Mux control
- UCHAR Cbus4; // Cbus Mux control
- UCHAR RIsD2XX; // non-zero if using D2XX driver
- //
- // Rev 7 (FT2232H) Extensions
- //
- UCHAR PullDownEnable7; // non-zero if pull down enabled
- UCHAR SerNumEnable7; // non-zero if serial number to be used
- UCHAR ALSlowSlew; // non-zero if AL pins have slow slew
- UCHAR ALSchmittInput; // non-zero if AL pins are Schmitt input
- UCHAR ALDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR AHSlowSlew; // non-zero if AH pins have slow slew
- UCHAR AHSchmittInput; // non-zero if AH pins are Schmitt input
- UCHAR AHDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BLSlowSlew; // non-zero if BL pins have slow slew
- UCHAR BLSchmittInput; // non-zero if BL pins are Schmitt input
- UCHAR BLDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BHSlowSlew; // non-zero if BH pins have slow slew
- UCHAR BHSchmittInput; // non-zero if BH pins are Schmitt input
- UCHAR BHDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR IFAIsFifo7; // non-zero if interface is 245 FIFO
- UCHAR IFAIsFifoTar7; // non-zero if interface is 245 FIFO CPU target
- UCHAR IFAIsFastSer7; // non-zero if interface is Fast serial
- UCHAR AIsVCP7; // non-zero if interface is to use VCP drivers
- UCHAR IFBIsFifo7; // non-zero if interface is 245 FIFO
- UCHAR IFBIsFifoTar7; // non-zero if interface is 245 FIFO CPU target
- UCHAR IFBIsFastSer7; // non-zero if interface is Fast serial
- UCHAR BIsVCP7; // non-zero if interface is to use VCP drivers
- UCHAR PowerSaveEnable; // non-zero if using BCBUS7 to save power for self-powered designs
- //
- // Rev 8 (FT4232H) Extensions
- //
- UCHAR PullDownEnable8; // non-zero if pull down enabled
- UCHAR SerNumEnable8; // non-zero if serial number to be used
- UCHAR ASlowSlew; // non-zero if A pins have slow slew
- UCHAR ASchmittInput; // non-zero if A pins are Schmitt input
- UCHAR ADriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BSlowSlew; // non-zero if B pins have slow slew
- UCHAR BSchmittInput; // non-zero if B pins are Schmitt input
- UCHAR BDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR CSlowSlew; // non-zero if C pins have slow slew
- UCHAR CSchmittInput; // non-zero if C pins are Schmitt input
- UCHAR CDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR DSlowSlew; // non-zero if D pins have slow slew
- UCHAR DSchmittInput; // non-zero if D pins are Schmitt input
- UCHAR DDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR ARIIsTXDEN; // non-zero if port A uses RI as RS485 TXDEN
- UCHAR BRIIsTXDEN; // non-zero if port B uses RI as RS485 TXDEN
- UCHAR CRIIsTXDEN; // non-zero if port C uses RI as RS485 TXDEN
- UCHAR DRIIsTXDEN; // non-zero if port D uses RI as RS485 TXDEN
- UCHAR AIsVCP8; // non-zero if interface is to use VCP drivers
- UCHAR BIsVCP8; // non-zero if interface is to use VCP drivers
- UCHAR CIsVCP8; // non-zero if interface is to use VCP drivers
- UCHAR DIsVCP8; // non-zero if interface is to use VCP drivers
- //
- // Rev 9 (FT232H) Extensions
- //
- UCHAR PullDownEnableH; // non-zero if pull down enabled
- UCHAR SerNumEnableH; // non-zero if serial number to be used
- UCHAR ACSlowSlewH; // non-zero if AC pins have slow slew
- UCHAR ACSchmittInputH; // non-zero if AC pins are Schmitt input
- UCHAR ACDriveCurrentH; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR ADSlowSlewH; // non-zero if AD pins have slow slew
- UCHAR ADSchmittInputH; // non-zero if AD pins are Schmitt input
- UCHAR ADDriveCurrentH; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR Cbus0H; // Cbus Mux control
- UCHAR Cbus1H; // Cbus Mux control
- UCHAR Cbus2H; // Cbus Mux control
- UCHAR Cbus3H; // Cbus Mux control
- UCHAR Cbus4H; // Cbus Mux control
- UCHAR Cbus5H; // Cbus Mux control
- UCHAR Cbus6H; // Cbus Mux control
- UCHAR Cbus7H; // Cbus Mux control
- UCHAR Cbus8H; // Cbus Mux control
- UCHAR Cbus9H; // Cbus Mux control
- UCHAR IsFifoH; // non-zero if interface is 245 FIFO
- UCHAR IsFifoTarH; // non-zero if interface is 245 FIFO CPU target
- UCHAR IsFastSerH; // non-zero if interface is Fast serial
- UCHAR IsFT1248H; // non-zero if interface is FT1248
- UCHAR FT1248CpolH; // FT1248 clock polarity - clock idle high (1) or clock idle low (0)
- UCHAR FT1248LsbH; // FT1248 data is LSB (1) or MSB (0)
- UCHAR FT1248FlowControlH; // FT1248 flow control enable
- UCHAR IsVCPH; // non-zero if interface is to use VCP drivers
- UCHAR PowerSaveEnableH; // non-zero if using ACBUS7 to save power for self-powered designs
-
- } FT_PROGRAM_DATA, *PFT_PROGRAM_DATA;
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_Program(
- FT_HANDLE ftHandle,
- PFT_PROGRAM_DATA pData
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_ProgramEx(
- FT_HANDLE ftHandle,
- PFT_PROGRAM_DATA pData,
- char *Manufacturer,
- char *ManufacturerId,
- char *Description,
- char *SerialNumber
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_Read(
- FT_HANDLE ftHandle,
- PFT_PROGRAM_DATA pData
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_ReadEx(
- FT_HANDLE ftHandle,
- PFT_PROGRAM_DATA pData,
- char *Manufacturer,
- char *ManufacturerId,
- char *Description,
- char *SerialNumber
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_UASize(
- FT_HANDLE ftHandle,
- LPDWORD lpdwSize
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_UAWrite(
- FT_HANDLE ftHandle,
- PUCHAR pucData,
- DWORD dwDataLen
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_UARead(
- FT_HANDLE ftHandle,
- PUCHAR pucData,
- DWORD dwDataLen,
- LPDWORD lpdwBytesRead
- );
-
-
- typedef struct ft_eeprom_header {
- FT_DEVICE deviceType; // FTxxxx device type to be programmed
- // Device descriptor options
- WORD VendorId; // 0x0403
- WORD ProductId; // 0x6001
- UCHAR SerNumEnable; // non-zero if serial number to be used
- // Config descriptor options
- WORD MaxPower; // 0 < MaxPower <= 500
- UCHAR SelfPowered; // 0 = bus powered, 1 = self powered
- UCHAR RemoteWakeup; // 0 = not capable, 1 = capable
- // Hardware options
- UCHAR PullDownEnable; // non-zero if pull down in suspend enabled
- } FT_EEPROM_HEADER, *PFT_EEPROM_HEADER;
-
-
- // FT232B EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_232b {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- } FT_EEPROM_232B, *PFT_EEPROM_232B;
-
-
- // FT2232 EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_2232 {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR AIsHighCurrent; // non-zero if interface is high current
- UCHAR BIsHighCurrent; // non-zero if interface is high current
- // Hardware options
- UCHAR AIsFifo; // non-zero if interface is 245 FIFO
- UCHAR AIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR AIsFastSer; // non-zero if interface is Fast serial
- UCHAR BIsFifo; // non-zero if interface is 245 FIFO
- UCHAR BIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR BIsFastSer; // non-zero if interface is Fast serial
- // Driver option
- UCHAR ADriverType; //
- UCHAR BDriverType; //
- } FT_EEPROM_2232, *PFT_EEPROM_2232;
-
-
- // FT232R EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_232r {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR IsHighCurrent; // non-zero if interface is high current
- // Hardware options
- UCHAR UseExtOsc; // Use External Oscillator
- UCHAR InvertTXD; // non-zero if invert TXD
- UCHAR InvertRXD; // non-zero if invert RXD
- UCHAR InvertRTS; // non-zero if invert RTS
- UCHAR InvertCTS; // non-zero if invert CTS
- UCHAR InvertDTR; // non-zero if invert DTR
- UCHAR InvertDSR; // non-zero if invert DSR
- UCHAR InvertDCD; // non-zero if invert DCD
- UCHAR InvertRI; // non-zero if invert RI
- UCHAR Cbus0; // Cbus Mux control
- UCHAR Cbus1; // Cbus Mux control
- UCHAR Cbus2; // Cbus Mux control
- UCHAR Cbus3; // Cbus Mux control
- UCHAR Cbus4; // Cbus Mux control
- // Driver option
- UCHAR DriverType; //
- } FT_EEPROM_232R, *PFT_EEPROM_232R;
-
-
- // FT2232H EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_2232h {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR ALSlowSlew; // non-zero if AL pins have slow slew
- UCHAR ALSchmittInput; // non-zero if AL pins are Schmitt input
- UCHAR ALDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR AHSlowSlew; // non-zero if AH pins have slow slew
- UCHAR AHSchmittInput; // non-zero if AH pins are Schmitt input
- UCHAR AHDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BLSlowSlew; // non-zero if BL pins have slow slew
- UCHAR BLSchmittInput; // non-zero if BL pins are Schmitt input
- UCHAR BLDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BHSlowSlew; // non-zero if BH pins have slow slew
- UCHAR BHSchmittInput; // non-zero if BH pins are Schmitt input
- UCHAR BHDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- // Hardware options
- UCHAR AIsFifo; // non-zero if interface is 245 FIFO
- UCHAR AIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR AIsFastSer; // non-zero if interface is Fast serial
- UCHAR BIsFifo; // non-zero if interface is 245 FIFO
- UCHAR BIsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR BIsFastSer; // non-zero if interface is Fast serial
- UCHAR PowerSaveEnable; // non-zero if using BCBUS7 to save power for self-powered designs
- // Driver option
- UCHAR ADriverType; //
- UCHAR BDriverType; //
- } FT_EEPROM_2232H, *PFT_EEPROM_2232H;
-
-
- // FT4232H EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_4232h {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR ASlowSlew; // non-zero if A pins have slow slew
- UCHAR ASchmittInput; // non-zero if A pins are Schmitt input
- UCHAR ADriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR BSlowSlew; // non-zero if B pins have slow slew
- UCHAR BSchmittInput; // non-zero if B pins are Schmitt input
- UCHAR BDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR CSlowSlew; // non-zero if C pins have slow slew
- UCHAR CSchmittInput; // non-zero if C pins are Schmitt input
- UCHAR CDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR DSlowSlew; // non-zero if D pins have slow slew
- UCHAR DSchmittInput; // non-zero if D pins are Schmitt input
- UCHAR DDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- // Hardware options
- UCHAR ARIIsTXDEN; // non-zero if port A uses RI as RS485 TXDEN
- UCHAR BRIIsTXDEN; // non-zero if port B uses RI as RS485 TXDEN
- UCHAR CRIIsTXDEN; // non-zero if port C uses RI as RS485 TXDEN
- UCHAR DRIIsTXDEN; // non-zero if port D uses RI as RS485 TXDEN
- // Driver option
- UCHAR ADriverType; //
- UCHAR BDriverType; //
- UCHAR CDriverType; //
- UCHAR DDriverType; //
- } FT_EEPROM_4232H, *PFT_EEPROM_4232H;
-
-
- // FT232H EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_232h {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR ACSlowSlew; // non-zero if AC bus pins have slow slew
- UCHAR ACSchmittInput; // non-zero if AC bus pins are Schmitt input
- UCHAR ACDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR ADSlowSlew; // non-zero if AD bus pins have slow slew
- UCHAR ADSchmittInput; // non-zero if AD bus pins are Schmitt input
- UCHAR ADDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- // CBUS options
- UCHAR Cbus0; // Cbus Mux control
- UCHAR Cbus1; // Cbus Mux control
- UCHAR Cbus2; // Cbus Mux control
- UCHAR Cbus3; // Cbus Mux control
- UCHAR Cbus4; // Cbus Mux control
- UCHAR Cbus5; // Cbus Mux control
- UCHAR Cbus6; // Cbus Mux control
- UCHAR Cbus7; // Cbus Mux control
- UCHAR Cbus8; // Cbus Mux control
- UCHAR Cbus9; // Cbus Mux control
- // FT1248 options
- UCHAR FT1248Cpol; // FT1248 clock polarity - clock idle high (1) or clock idle low (0)
- UCHAR FT1248Lsb; // FT1248 data is LSB (1) or MSB (0)
- UCHAR FT1248FlowControl; // FT1248 flow control enable
- // Hardware options
- UCHAR IsFifo; // non-zero if interface is 245 FIFO
- UCHAR IsFifoTar; // non-zero if interface is 245 FIFO CPU target
- UCHAR IsFastSer; // non-zero if interface is Fast serial
- UCHAR IsFT1248 ; // non-zero if interface is FT1248
- UCHAR PowerSaveEnable; //
- // Driver option
- UCHAR DriverType; //
- } FT_EEPROM_232H, *PFT_EEPROM_232H;
-
-
- // FT X Series EEPROM structure for use with FT_EEPROM_Read and FT_EEPROM_Program
- typedef struct ft_eeprom_x_series {
- // Common header
- FT_EEPROM_HEADER common; // common elements for all device EEPROMs
- // Drive options
- UCHAR ACSlowSlew; // non-zero if AC bus pins have slow slew
- UCHAR ACSchmittInput; // non-zero if AC bus pins are Schmitt input
- UCHAR ACDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- UCHAR ADSlowSlew; // non-zero if AD bus pins have slow slew
- UCHAR ADSchmittInput; // non-zero if AD bus pins are Schmitt input
- UCHAR ADDriveCurrent; // valid values are 4mA, 8mA, 12mA, 16mA
- // CBUS options
- UCHAR Cbus0; // Cbus Mux control
- UCHAR Cbus1; // Cbus Mux control
- UCHAR Cbus2; // Cbus Mux control
- UCHAR Cbus3; // Cbus Mux control
- UCHAR Cbus4; // Cbus Mux control
- UCHAR Cbus5; // Cbus Mux control
- UCHAR Cbus6; // Cbus Mux control
- // UART signal options
- UCHAR InvertTXD; // non-zero if invert TXD
- UCHAR InvertRXD; // non-zero if invert RXD
- UCHAR InvertRTS; // non-zero if invert RTS
- UCHAR InvertCTS; // non-zero if invert CTS
- UCHAR InvertDTR; // non-zero if invert DTR
- UCHAR InvertDSR; // non-zero if invert DSR
- UCHAR InvertDCD; // non-zero if invert DCD
- UCHAR InvertRI; // non-zero if invert RI
- // Battery Charge Detect options
- UCHAR BCDEnable; // Enable Battery Charger Detection
- UCHAR BCDForceCbusPWREN; // asserts the power enable signal on CBUS when charging port detected
- UCHAR BCDDisableSleep; // forces the device never to go into sleep mode
- // I2C options
- WORD I2CSlaveAddress; // I2C slave device address
- DWORD I2CDeviceId; // I2C device ID
- UCHAR I2CDisableSchmitt; // Disable I2C Schmitt trigger
- // FT1248 options
- UCHAR FT1248Cpol; // FT1248 clock polarity - clock idle high (1) or clock idle low (0)
- UCHAR FT1248Lsb; // FT1248 data is LSB (1) or MSB (0)
- UCHAR FT1248FlowControl; // FT1248 flow control enable
- // Hardware options
- UCHAR RS485EchoSuppress; //
- UCHAR PowerSaveEnable; //
- // Driver option
- UCHAR DriverType; //
- } FT_EEPROM_X_SERIES, *PFT_EEPROM_X_SERIES;
-
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EEPROM_Read(
- FT_HANDLE ftHandle,
- void *eepromData,
- DWORD eepromDataSize,
- char *Manufacturer,
- char *ManufacturerId,
- char *Description,
- char *SerialNumber
- );
-
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EEPROM_Program(
- FT_HANDLE ftHandle,
- void *eepromData,
- DWORD eepromDataSize,
- char *Manufacturer,
- char *ManufacturerId,
- char *Description,
- char *SerialNumber
- );
-
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetLatencyTimer(
- FT_HANDLE ftHandle,
- UCHAR ucLatency
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetLatencyTimer(
- FT_HANDLE ftHandle,
- PUCHAR pucLatency
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetBitMode(
- FT_HANDLE ftHandle,
- UCHAR ucMask,
- UCHAR ucEnable
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetBitMode(
- FT_HANDLE ftHandle,
- PUCHAR pucMode
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetUSBParameters(
- FT_HANDLE ftHandle,
- ULONG ulInTransferSize,
- ULONG ulOutTransferSize
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetDeadmanTimeout(
- FT_HANDLE ftHandle,
- ULONG ulDeadmanTimeout
- );
-
-#ifndef _WIN32
- // Extra functions for non-Windows platforms to compensate
- // for lack of .INF file to specify Vendor and Product IDs.
-
- FTD2XX_API
- FT_STATUS FT_SetVIDPID(
- DWORD dwVID,
- DWORD dwPID
- );
-
- FTD2XX_API
- FT_STATUS FT_GetVIDPID(
- DWORD * pdwVID,
- DWORD * pdwPID
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetDeviceLocId(
- FT_HANDLE ftHandle,
- LPDWORD lpdwLocId
- );
-#endif // _WIN32
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetDeviceInfo(
- FT_HANDLE ftHandle,
- FT_DEVICE *lpftDevice,
- LPDWORD lpdwID,
- PCHAR SerialNumber,
- PCHAR Description,
- LPVOID Dummy
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_StopInTask(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_RestartInTask(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_SetResetPipeRetryCount(
- FT_HANDLE ftHandle,
- DWORD dwCount
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ResetPort(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_CyclePort(
- FT_HANDLE ftHandle
- );
-
-
- //
- // Win32-type functions
- //
-
- FTD2XX_API
- FT_HANDLE WINAPI FT_W32_CreateFile(
- LPCTSTR lpszName,
- DWORD dwAccess,
- DWORD dwShareMode,
- LPSECURITY_ATTRIBUTES lpSecurityAttributes,
- DWORD dwCreate,
- DWORD dwAttrsAndFlags,
- HANDLE hTemplate
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_CloseHandle(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_ReadFile(
- FT_HANDLE ftHandle,
- LPVOID lpBuffer,
- DWORD nBufferSize,
- LPDWORD lpBytesReturned,
- LPOVERLAPPED lpOverlapped
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_WriteFile(
- FT_HANDLE ftHandle,
- LPVOID lpBuffer,
- DWORD nBufferSize,
- LPDWORD lpBytesWritten,
- LPOVERLAPPED lpOverlapped
- );
-
- FTD2XX_API
- DWORD WINAPI FT_W32_GetLastError(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_GetOverlappedResult(
- FT_HANDLE ftHandle,
- LPOVERLAPPED lpOverlapped,
- LPDWORD lpdwBytesTransferred,
- BOOL bWait
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_CancelIo(
- FT_HANDLE ftHandle
- );
-
-
- //
- // Win32 COMM API type functions
- //
- typedef struct _FTCOMSTAT {
- DWORD fCtsHold : 1;
- DWORD fDsrHold : 1;
- DWORD fRlsdHold : 1;
- DWORD fXoffHold : 1;
- DWORD fXoffSent : 1;
- DWORD fEof : 1;
- DWORD fTxim : 1;
- DWORD fReserved : 25;
- DWORD cbInQue;
- DWORD cbOutQue;
- } FTCOMSTAT, *LPFTCOMSTAT;
-
- typedef struct _FTDCB {
- DWORD DCBlength; /* sizeof(FTDCB) */
- DWORD BaudRate; /* Baudrate at which running */
- DWORD fBinary: 1; /* Binary Mode (skip EOF check) */
- DWORD fParity: 1; /* Enable parity checking */
- DWORD fOutxCtsFlow:1; /* CTS handshaking on output */
- DWORD fOutxDsrFlow:1; /* DSR handshaking on output */
- DWORD fDtrControl:2; /* DTR Flow control */
- DWORD fDsrSensitivity:1; /* DSR Sensitivity */
- DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
- DWORD fOutX: 1; /* Enable output X-ON/X-OFF */
- DWORD fInX: 1; /* Enable input X-ON/X-OFF */
- DWORD fErrorChar: 1; /* Enable Err Replacement */
- DWORD fNull: 1; /* Enable Null stripping */
- DWORD fRtsControl:2; /* Rts Flow control */
- DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
- DWORD fDummy2:17; /* Reserved */
- WORD wReserved; /* Not currently used */
- WORD XonLim; /* Transmit X-ON threshold */
- WORD XoffLim; /* Transmit X-OFF threshold */
- BYTE ByteSize; /* Number of bits/byte, 4-8 */
- BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */
- BYTE StopBits; /* FT_STOP_BITS_1 or FT_STOP_BITS_2 */
- char XonChar; /* Tx and Rx X-ON character */
- char XoffChar; /* Tx and Rx X-OFF character */
- char ErrorChar; /* Error replacement char */
- char EofChar; /* End of Input character */
- char EvtChar; /* Received Event character */
- WORD wReserved1; /* Fill for now. */
- } FTDCB, *LPFTDCB;
-
- typedef struct _FTTIMEOUTS {
- DWORD ReadIntervalTimeout; /* Maximum time between read chars. */
- DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */
- DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */
- DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */
- DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */
- } FTTIMEOUTS,*LPFTTIMEOUTS;
-
-
- FTD2XX_API
- BOOL WINAPI FT_W32_ClearCommBreak(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_ClearCommError(
- FT_HANDLE ftHandle,
- LPDWORD lpdwErrors,
- LPFTCOMSTAT lpftComstat
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_EscapeCommFunction(
- FT_HANDLE ftHandle,
- DWORD dwFunc
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_GetCommModemStatus(
- FT_HANDLE ftHandle,
- LPDWORD lpdwModemStatus
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_GetCommState(
- FT_HANDLE ftHandle,
- LPFTDCB lpftDcb
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_GetCommTimeouts(
- FT_HANDLE ftHandle,
- FTTIMEOUTS *pTimeouts
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_PurgeComm(
- FT_HANDLE ftHandle,
- DWORD dwMask
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_SetCommBreak(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_SetCommMask(
- FT_HANDLE ftHandle,
- ULONG ulEventMask
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_GetCommMask(
- FT_HANDLE ftHandle,
- LPDWORD lpdwEventMask
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_SetCommState(
- FT_HANDLE ftHandle,
- LPFTDCB lpftDcb
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_SetCommTimeouts(
- FT_HANDLE ftHandle,
- FTTIMEOUTS *pTimeouts
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_SetupComm(
- FT_HANDLE ftHandle,
- DWORD dwReadBufferSize,
- DWORD dwWriteBufferSize
- );
-
- FTD2XX_API
- BOOL WINAPI FT_W32_WaitCommEvent(
- FT_HANDLE ftHandle,
- PULONG pulEvent,
- LPOVERLAPPED lpOverlapped
- );
-
-
- //
- // Device information
- //
-
- typedef struct _ft_device_list_info_node {
- ULONG Flags;
- ULONG Type;
- ULONG ID;
- DWORD LocId;
- char SerialNumber[16];
- char Description[64];
- FT_HANDLE ftHandle;
- } FT_DEVICE_LIST_INFO_NODE;
-
- // Device information flags
- enum {
- FT_FLAGS_OPENED = 1,
- FT_FLAGS_HISPEED = 2
- };
-
-
- FTD2XX_API
- FT_STATUS WINAPI FT_CreateDeviceInfoList(
- LPDWORD lpdwNumDevs
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetDeviceInfoList(
- FT_DEVICE_LIST_INFO_NODE *pDest,
- LPDWORD lpdwNumDevs
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetDeviceInfoDetail(
- DWORD dwIndex,
- LPDWORD lpdwFlags,
- LPDWORD lpdwType,
- LPDWORD lpdwID,
- LPDWORD lpdwLocId,
- LPVOID lpSerialNumber,
- LPVOID lpDescription,
- FT_HANDLE *pftHandle
- );
-
-
- //
- // Version information
- //
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetDriverVersion(
- FT_HANDLE ftHandle,
- LPDWORD lpdwVersion
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetLibraryVersion(
- LPDWORD lpdwVersion
- );
-
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Rescan(
- void
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_Reload(
- WORD wVid,
- WORD wPid
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetComPortNumber(
- FT_HANDLE ftHandle,
- LPLONG lpdwComPortNumber
- );
-
-
- //
- // FT232H additional EEPROM functions
- //
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_ReadConfig(
- FT_HANDLE ftHandle,
- UCHAR ucAddress,
- PUCHAR pucValue
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_WriteConfig(
- FT_HANDLE ftHandle,
- UCHAR ucAddress,
- UCHAR ucValue
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_EE_ReadECC(
- FT_HANDLE ftHandle,
- UCHAR ucOption,
- LPWORD lpwValue
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_GetQueueStatusEx(
- FT_HANDLE ftHandle,
- DWORD *dwRxBytes
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ComPortIdle(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_ComPortCancelIdle(
- FT_HANDLE ftHandle
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_VendorCmdGet(
- FT_HANDLE ftHandle,
- UCHAR Request,
- UCHAR *Buf,
- USHORT Len
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_VendorCmdSet(
- FT_HANDLE ftHandle,
- UCHAR Request,
- UCHAR *Buf,
- USHORT Len
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_VendorCmdGetEx(
- FT_HANDLE ftHandle,
- USHORT wValue,
- UCHAR *Buf,
- USHORT Len
- );
-
- FTD2XX_API
- FT_STATUS WINAPI FT_VendorCmdSetEx(
- FT_HANDLE ftHandle,
- USHORT wValue,
- UCHAR *Buf,
- USHORT Len
- );
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* FTD2XX_H */
-