Main Page | Namespace List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

ftd2xx.h

00001 /*++
00002 
00003 Copyright (c) 2001-2003  Future Technology Devices International Ltd.
00004 
00005 Module Name:
00006 
00007     ftd2xx.h
00008 
00009 Abstract:
00010 
00011     Native USB interface for FTDI FT8U232/245/2232C
00012     FTD2XX library definitions
00013 
00014 Environment:
00015 
00016     kernel & user mode
00017 
00018 Revision History:
00019 
00020         13/03/01        awm             Created.
00021         13/01/03        awm             Added device information support.
00022         19/03/03        awm             Added FT_W32_CancelIo.
00023         12/06/03        awm             Added FT_StopInTask and FT_RestartInTask.
00024         18/09/03        awm             Added FT_SetResetPipeRetryCount.
00025         10/10/03        awm             Added FT_ResetPort.
00026           /03/04        st              modified for linux users
00027         12/10/04        st              added FT_SetVIDPID
00028 
00029         
00030 --*/
00031 
00032 
00033 #ifndef FTD2XX_H
00034 #define FTD2XX_H
00035 
00036 #ifndef _WINDOWS
00037 #include <pthread.h>
00038 #define WINAPI
00039 #endif
00040 
00041 // The following ifdef block is the standard way of creating macros
00042 // which make exporting from a DLL simpler.  All files within this DLL
00043 // are compiled with the FTD2XX_EXPORTS symbol defined on the command line.
00044 // This symbol should not be defined on any project that uses this DLL.
00045 // This way any other project whose source files include this file see
00046 // FTD2XX_API functions as being imported from a DLL, whereas this DLL
00047 // sees symbols defined with this macro as being exported.
00048 
00049 #ifdef FTD2XX_EXPORTS
00050 #define FTD2XX_API __declspec(dllexport)
00051 #else
00052 #define FTD2XX_API __declspec(dllimport)
00053 #endif
00054 
00055 #ifndef _WINDOWS
00056 #include "WinTypes.h"
00057 
00058 #ifdef FTD2XX_API
00059 #undef FTD2XX_API
00060 #define FTD2XX_API
00061 #endif
00062 #endif
00063 typedef struct _EVENT_HANDLE{
00064         pthread_cond_t eCondVar;
00065         pthread_mutex_t eMutex;
00066         int iVar;
00067 } EVENT_HANDLE;
00068 
00069 typedef DWORD                   *FT_HANDLE;
00070 
00071 typedef ULONG                    FT_STATUS;
00072 
00073 //
00074 // Device status
00075 //
00076 enum {
00077         FT_OK,
00078         FT_INVALID_HANDLE,
00079         FT_DEVICE_NOT_FOUND,
00080         FT_DEVICE_NOT_OPENED,
00081         FT_IO_ERROR,
00082         FT_INSUFFICIENT_RESOURCES,
00083         FT_INVALID_PARAMETER,
00084         FT_INVALID_BAUD_RATE,
00085 
00086         FT_DEVICE_NOT_OPENED_FOR_ERASE,
00087         FT_DEVICE_NOT_OPENED_FOR_WRITE,
00088         FT_FAILED_TO_WRITE_DEVICE,
00089         FT_EEPROM_READ_FAILED,
00090         FT_EEPROM_WRITE_FAILED,
00091         FT_EEPROM_ERASE_FAILED,
00092         FT_EEPROM_NOT_PRESENT,
00093         FT_EEPROM_NOT_PROGRAMMED,
00094         FT_INVALID_ARGS,
00095         FT_NOT_SUPPORTED,
00096         FT_OTHER_ERROR
00097 };
00098 
00099 
00100 #define FT_SUCCESS(status) ((status) == FT_OK)
00101 
00102 //
00103 // FT_OpenEx Flags
00104 //
00105 
00106 #define FT_OPEN_BY_SERIAL_NUMBER    1
00107 #define FT_OPEN_BY_DESCRIPTION      2
00108 
00109 //
00110 // FT_ListDevices Flags (used in conjunction with FT_OpenEx Flags
00111 //
00112 
00113 #define FT_LIST_NUMBER_ONLY                     0x80000000
00114 #define FT_LIST_BY_INDEX                        0x40000000
00115 #define FT_LIST_ALL                             0x20000000
00116 
00117 #define FT_LIST_MASK (FT_LIST_NUMBER_ONLY|FT_LIST_BY_INDEX|FT_LIST_ALL)
00118 
00119 //
00120 // Baud Rates
00121 //
00122 
00123 #define FT_BAUD_300                     300
00124 #define FT_BAUD_600                     600
00125 #define FT_BAUD_1200            1200
00126 #define FT_BAUD_2400            2400
00127 #define FT_BAUD_4800            4800
00128 #define FT_BAUD_9600            9600
00129 #define FT_BAUD_14400           14400
00130 #define FT_BAUD_19200           19200
00131 #define FT_BAUD_38400           38400
00132 #define FT_BAUD_57600           57600
00133 #define FT_BAUD_115200          115200
00134 #define FT_BAUD_230400          230400
00135 #define FT_BAUD_460800          460800
00136 #define FT_BAUD_921600          921600
00137 
00138 //
00139 // Word Lengths
00140 //
00141 
00142 #define FT_BITS_8                       (UCHAR) 8
00143 #define FT_BITS_7                       (UCHAR) 7
00144 #define FT_BITS_6                       (UCHAR) 6
00145 #define FT_BITS_5                       (UCHAR) 5
00146 
00147 //
00148 // Stop Bits
00149 //
00150 
00151 #define FT_STOP_BITS_1          (UCHAR) 0
00152 #define FT_STOP_BITS_1_5        (UCHAR) 1
00153 #define FT_STOP_BITS_2          (UCHAR) 2
00154 
00155 //
00156 // Parity
00157 //
00158 
00159 #define FT_PARITY_NONE          (UCHAR) 0
00160 #define FT_PARITY_ODD           (UCHAR) 1
00161 #define FT_PARITY_EVEN          (UCHAR) 2
00162 #define FT_PARITY_MARK          (UCHAR) 3
00163 #define FT_PARITY_SPACE         (UCHAR) 4
00164 
00165 //
00166 // Flow Control
00167 //
00168 
00169 #define FT_FLOW_NONE        0x0000
00170 #define FT_FLOW_RTS_CTS     0x0100
00171 #define FT_FLOW_DTR_DSR     0x0200
00172 #define FT_FLOW_XON_XOFF    0x0400
00173 
00174 //
00175 // Purge rx and tx buffers
00176 //
00177 #define FT_PURGE_RX         1
00178 #define FT_PURGE_TX         2
00179 
00180 //
00181 // Events
00182 //
00183 
00184 typedef void (*PFT_EVENT_HANDLER)(DWORD,DWORD);
00185 
00186 #define FT_EVENT_RXCHAR             1
00187 #define FT_EVENT_MODEM_STATUS   2
00188 
00189 //
00190 // Timeouts
00191 //
00192 
00193 #define FT_DEFAULT_RX_TIMEOUT   300
00194 #define FT_DEFAULT_TX_TIMEOUT   300
00195 
00196 //
00197 // Device types
00198 //
00199 
00200 typedef ULONG   FT_DEVICE;
00201 
00202 enum {
00203     FT_DEVICE_BM,
00204     FT_DEVICE_AM,
00205     FT_DEVICE_100AX,
00206     FT_DEVICE_UNKNOWN,
00207         FT_DEVICE_2232C
00208  };
00209 
00210 
00211 #ifdef __cplusplus
00212 extern "C" {
00213 #endif
00214         
00215 FTD2XX_API
00216 FT_STATUS WINAPI FT_Open(
00217         int deviceNumber,
00218         FT_HANDLE *pHandle
00219         );
00220 
00221 FTD2XX_API
00222 FT_STATUS WINAPI FT_OpenEx(
00223     PVOID pArg1,
00224     DWORD Flags,
00225     FT_HANDLE *pHandle
00226     );
00227 
00228 FTD2XX_API 
00229 FT_STATUS WINAPI FT_ListDevices(
00230         PVOID pArg1,
00231         PVOID pArg2,
00232         DWORD Flags
00233         );
00234 
00235 FTD2XX_API
00236 FT_STATUS FT_SetVIDPID(
00237         DWORD dwVID, 
00238         DWORD dwPID
00239         );
00240         
00241 FTD2XX_API
00242 FT_STATUS FT_GetVIDPID(
00243         DWORD * pdwVID, 
00244         DWORD * pdwPID
00245         );
00246 
00247 FTD2XX_API
00248 FT_STATUS WINAPI FT_Close(
00249     FT_HANDLE ftHandle
00250     );
00251 
00252 FTD2XX_API
00253 FT_STATUS WINAPI FT_Read(
00254     FT_HANDLE ftHandle,
00255     LPVOID lpBuffer,
00256     DWORD nBufferSize,
00257     LPDWORD lpBytesReturned
00258     );
00259 
00260 FTD2XX_API 
00261 FT_STATUS WINAPI FT_Write(
00262     FT_HANDLE ftHandle,
00263     LPVOID lpBuffer,
00264     DWORD nBufferSize,
00265     LPDWORD lpBytesWritten
00266     );
00267 
00268 FTD2XX_API 
00269 FT_STATUS WINAPI FT_IoCtl(
00270     FT_HANDLE ftHandle,
00271     DWORD dwIoControlCode,
00272     LPVOID lpInBuf,
00273     DWORD nInBufSize,
00274     LPVOID lpOutBuf,
00275     DWORD nOutBufSize,
00276     LPDWORD lpBytesReturned,
00277     LPOVERLAPPED lpOverlapped
00278     );
00279 
00280 FTD2XX_API
00281 FT_STATUS WINAPI FT_SetBaudRate(
00282     FT_HANDLE ftHandle,
00283         ULONG BaudRate
00284         );
00285 
00286 FTD2XX_API
00287 FT_STATUS WINAPI FT_SetDivisor(
00288     FT_HANDLE ftHandle,
00289         USHORT Divisor
00290         );
00291 
00292 FTD2XX_API
00293 FT_STATUS WINAPI FT_SetDataCharacteristics(
00294     FT_HANDLE ftHandle,
00295         UCHAR WordLength,
00296         UCHAR StopBits,
00297         UCHAR Parity
00298         );
00299 
00300 FTD2XX_API
00301 FT_STATUS WINAPI FT_SetFlowControl(
00302     FT_HANDLE ftHandle,
00303     USHORT FlowControl,
00304     UCHAR XonChar,
00305     UCHAR XoffChar
00306         );
00307 
00308 FTD2XX_API
00309 FT_STATUS WINAPI FT_ResetDevice(
00310     FT_HANDLE ftHandle
00311         );
00312 
00313 FTD2XX_API
00314 FT_STATUS WINAPI FT_SetDtr(
00315     FT_HANDLE ftHandle
00316         );
00317 
00318 FTD2XX_API
00319 FT_STATUS WINAPI FT_ClrDtr(
00320     FT_HANDLE ftHandle
00321         );
00322 
00323 FTD2XX_API
00324 FT_STATUS WINAPI FT_SetRts(
00325     FT_HANDLE ftHandle
00326         );
00327 
00328 FTD2XX_API
00329 FT_STATUS WINAPI FT_ClrRts(
00330     FT_HANDLE ftHandle
00331         );
00332 
00333 FTD2XX_API
00334 FT_STATUS WINAPI FT_GetModemStatus(
00335     FT_HANDLE ftHandle,
00336         ULONG *pModemStatus
00337         );
00338 
00339 FTD2XX_API
00340 FT_STATUS WINAPI FT_SetChars(
00341     FT_HANDLE ftHandle,
00342         UCHAR EventChar,
00343         UCHAR EventCharEnabled,
00344         UCHAR ErrorChar,
00345         UCHAR ErrorCharEnabled
00346     );
00347 
00348 FTD2XX_API
00349 FT_STATUS WINAPI FT_Purge(
00350     FT_HANDLE ftHandle,
00351         ULONG Mask
00352         );
00353 
00354 FTD2XX_API
00355 FT_STATUS WINAPI FT_SetTimeouts(
00356     FT_HANDLE ftHandle,
00357         ULONG ReadTimeout,
00358         ULONG WriteTimeout
00359         );
00360 
00361 FTD2XX_API
00362 FT_STATUS WINAPI FT_GetQueueStatus(
00363     FT_HANDLE ftHandle,
00364         DWORD *dwRxBytes
00365         );
00366 
00367 FTD2XX_API
00368 FT_STATUS WINAPI FT_SetEventNotification(
00369     FT_HANDLE ftHandle,
00370         DWORD Mask,
00371         PVOID Param
00372         );
00373 
00374 FTD2XX_API
00375 FT_STATUS WINAPI FT_GetStatus(
00376     FT_HANDLE ftHandle,
00377     DWORD *dwRxBytes,
00378     DWORD *dwTxBytes,
00379     DWORD *dwEventDWord
00380         );
00381 
00382 FTD2XX_API
00383 FT_STATUS WINAPI FT_SetBreakOn(
00384     FT_HANDLE ftHandle
00385     );
00386 
00387 FTD2XX_API
00388 FT_STATUS WINAPI FT_SetBreakOff(
00389     FT_HANDLE ftHandle
00390     );
00391 
00392 FTD2XX_API
00393 FT_STATUS WINAPI FT_SetWaitMask(
00394     FT_HANDLE ftHandle,
00395     DWORD Mask
00396     );
00397 
00398 FTD2XX_API
00399 FT_STATUS WINAPI FT_WaitOnMask(
00400     FT_HANDLE ftHandle,
00401     DWORD *Mask
00402     );
00403 
00404 FTD2XX_API
00405 FT_STATUS WINAPI FT_GetEventStatus(
00406     FT_HANDLE ftHandle,
00407     DWORD *dwEventDWord
00408     );
00409 
00410 FTD2XX_API
00411 FT_STATUS WINAPI FT_ReadEE(
00412     FT_HANDLE ftHandle,
00413         DWORD dwWordOffset,
00414     LPWORD lpwValue
00415         );
00416 
00417 FTD2XX_API
00418 FT_STATUS WINAPI FT_WriteEE(
00419     FT_HANDLE ftHandle,
00420         DWORD dwWordOffset,
00421     WORD wValue
00422         );
00423 
00424 FTD2XX_API
00425 FT_STATUS WINAPI FT_EraseEE(
00426     FT_HANDLE ftHandle
00427         );
00428         
00429 #ifndef OLD
00430 //
00431 // structure to hold program data for FT_Program function
00432 //
00433 typedef struct ft_program_data {
00434 
00435         DWORD Signature1;                       // Header - must be 0x00000000 
00436         DWORD Signature2;                       // Header - must be 0xffffffff
00437         DWORD Version;                          // Header - FT_PROGRAM_DATA version
00438                                                                 //          0 = original
00439                                     //          1 = FT2232C extensions
00440 
00441         WORD VendorId;                          // 0x0403
00442         WORD ProductId;                         // 0x6001
00443         char *Manufacturer;                     // "FTDI"
00444         char *ManufacturerId;           // "FT"
00445         char *Description;                      // "USB HS Serial Converter"
00446         char *SerialNumber;                     // "FT000001" if fixed, or NULL
00447         WORD MaxPower;                          // 0 < MaxPower <= 500
00448         WORD PnP;                                       // 0 = disabled, 1 = enabled
00449         WORD SelfPowered;                       // 0 = bus powered, 1 = self powered
00450         WORD RemoteWakeup;                      // 0 = not capable, 1 = capable
00451         //
00452         // Rev4 extensions
00453         //
00454         UCHAR Rev4;                                     // non-zero if Rev4 chip, zero otherwise
00455         UCHAR IsoIn;                            // non-zero if in endpoint is isochronous
00456         UCHAR IsoOut;                           // non-zero if out endpoint is isochronous
00457         UCHAR PullDownEnable;           // non-zero if pull down enabled
00458         UCHAR SerNumEnable;                     // non-zero if serial number to be used
00459         UCHAR USBVersionEnable;         // non-zero if chip uses USBVersion
00460         WORD USBVersion;                        // BCD (0x0200 => USB2)
00461         //
00462         // FT2232C extensions
00463         //
00464         UCHAR Rev5;                                     // non-zero if Rev5 chip, zero otherwise
00465         UCHAR IsoInA;                           // non-zero if in endpoint is isochronous
00466         UCHAR IsoInB;                           // non-zero if in endpoint is isochronous
00467         UCHAR IsoOutA;                          // non-zero if out endpoint is isochronous
00468         UCHAR IsoOutB;                          // non-zero if out endpoint is isochronous
00469         UCHAR PullDownEnable5;          // non-zero if pull down enabled
00470         UCHAR SerNumEnable5;            // non-zero if serial number to be used
00471         UCHAR USBVersionEnable5;        // non-zero if chip uses USBVersion
00472         WORD USBVersion5;                       // BCD (0x0200 => USB2)
00473         UCHAR AIsHighCurrent;           // non-zero if interface is high current
00474         UCHAR BIsHighCurrent;           // non-zero if interface is high current
00475         UCHAR IFAIsFifo;                        // non-zero if interface is 245 FIFO
00476         UCHAR IFAIsFifoTar;                     // non-zero if interface is 245 FIFO CPU target
00477         UCHAR IFAIsFastSer;                     // non-zero if interface is Fast serial
00478         UCHAR AIsVCP;                           // non-zero if interface is to use VCP drivers
00479         UCHAR IFBIsFifo;                        // non-zero if interface is 245 FIFO
00480         UCHAR IFBIsFifoTar;                     // non-zero if interface is 245 FIFO CPU target
00481         UCHAR IFBIsFastSer;                     // non-zero if interface is Fast serial
00482         UCHAR BIsVCP;                           // non-zero if interface is to use VCP drivers
00483 } FT_PROGRAM_DATA, *PFT_PROGRAM_DATA;
00484 #else
00485 //
00486 // structure to hold program data for FT_Program function
00487 //
00488 typedef struct ft_program_data {
00489         WORD VendorId;                          // 0x0403
00490         WORD ProductId;                         // 0x6001
00491         char *Manufacturer;                     // "FTDI"
00492         char *ManufacturerId;           // "FT"
00493         char *Description;                      // "USB HS Serial Converter"
00494         char *SerialNumber;                     // "FT000001" if fixed, or NULL
00495         WORD MaxPower;                          // 0 < MaxPower <= 500
00496         WORD PnP;                                       // 0 = disabled, 1 = enabled
00497         WORD SelfPowered;                       // 0 = bus powered, 1 = self powered
00498         WORD RemoteWakeup;                      // 0 = not capable, 1 = capable
00499         //
00500         // Rev4 extensions
00501         //
00502         UCHAR Rev4;                                     // non-zero if Rev4 chip, zero otherwise
00503         UCHAR IsoIn;                            // non-zero if in endpoint is isochronous
00504         UCHAR IsoOut;                           // non-zero if out endpoint is isochronous
00505         UCHAR PullDownEnable;           // non-zero if pull down enabled
00506         UCHAR SerNumEnable;                     // non-zero if serial number to be used
00507         UCHAR USBVersionEnable;         // non-zero if chip uses USBVersion
00508         WORD USBVersion;                        // BCD (0x0200 => USB2)
00509 } FT_PROGRAM_DATA, *PFT_PROGRAM_DATA;
00510 #endif
00511 
00512 FTD2XX_API
00513 FT_STATUS WINAPI FT_EE_Program(
00514     FT_HANDLE ftHandle,
00515         PFT_PROGRAM_DATA pData
00516         );
00517 
00518 FTD2XX_API
00519 FT_STATUS WINAPI FT_EE_Read(
00520     FT_HANDLE ftHandle,
00521         PFT_PROGRAM_DATA pData
00522         );
00523 
00524 FTD2XX_API
00525 FT_STATUS WINAPI FT_EE_UASize(
00526     FT_HANDLE ftHandle,
00527         LPDWORD lpdwSize
00528         );
00529 
00530 FTD2XX_API
00531 FT_STATUS WINAPI FT_EE_UAWrite(
00532     FT_HANDLE ftHandle,
00533         PUCHAR pucData,
00534         DWORD dwDataLen
00535         );
00536 
00537 FTD2XX_API
00538 FT_STATUS WINAPI FT_EE_UARead(
00539     FT_HANDLE ftHandle,
00540         PUCHAR pucData,
00541         DWORD dwDataLen,
00542         LPDWORD lpdwBytesRead
00543         );
00544 
00545 FTD2XX_API
00546 FT_STATUS WINAPI FT_SetLatencyTimer(
00547     FT_HANDLE ftHandle,
00548     UCHAR ucLatency
00549     );
00550 
00551 FTD2XX_API
00552 FT_STATUS WINAPI FT_GetLatencyTimer(
00553     FT_HANDLE ftHandle,
00554     PUCHAR pucLatency
00555     );
00556 
00557 FTD2XX_API
00558 FT_STATUS WINAPI FT_SetBitMode(
00559     FT_HANDLE ftHandle,
00560     UCHAR ucMask,
00561         UCHAR ucEnable
00562     );
00563 
00564 FTD2XX_API
00565 FT_STATUS WINAPI FT_GetBitMode(
00566     FT_HANDLE ftHandle,
00567     PUCHAR pucMode
00568     );
00569 
00570 FTD2XX_API
00571 FT_STATUS WINAPI FT_SetUSBParameters(
00572     FT_HANDLE ftHandle,
00573     ULONG ulInTransferSize,
00574     ULONG ulOutTransferSize
00575     );
00576 
00577 FTD2XX_API
00578 FT_STATUS WINAPI FT_GetDeviceInfo(
00579     FT_HANDLE ftHandle,
00580     FT_DEVICE *lpftDevice,
00581         LPDWORD lpdwID,
00582         PCHAR SerialNumber,
00583         PCHAR Description,
00584         LPVOID Dummy
00585     );
00586 
00587 FTD2XX_API
00588 FT_STATUS WINAPI FT_StopInTask(
00589     FT_HANDLE ftHandle
00590     );
00591 
00592 FTD2XX_API
00593 FT_STATUS WINAPI FT_RestartInTask(
00594     FT_HANDLE ftHandle
00595     );
00596 
00597 FTD2XX_API
00598 FT_STATUS WINAPI FT_SetResetPipeRetryCount(
00599     FT_HANDLE ftHandle,
00600         DWORD dwCount
00601     );
00602 
00603 FTD2XX_API
00604 FT_STATUS WINAPI FT_ResetPort(
00605     FT_HANDLE ftHandle
00606     );
00607 
00608 
00609 //
00610 // Win32-type functions
00611 //
00612 
00613 FTD2XX_API
00614 FT_HANDLE WINAPI FT_W32_CreateFile(
00615         LPCSTR                                  lpszName,
00616         DWORD                                   dwAccess,
00617         DWORD                                   dwShareMode,
00618         LPSECURITY_ATTRIBUTES   lpSecurityAttributes,
00619         DWORD                                   dwCreate,
00620         DWORD                                   dwAttrsAndFlags,
00621         HANDLE                                  hTemplate
00622         );
00623 
00624 FTD2XX_API
00625 BOOL WINAPI FT_W32_CloseHandle(
00626     FT_HANDLE ftHandle
00627         );
00628 
00629 FTD2XX_API
00630 BOOL WINAPI FT_W32_ReadFile(
00631     FT_HANDLE ftHandle,
00632     LPVOID lpBuffer,
00633     DWORD nBufferSize,
00634     LPDWORD lpBytesReturned,
00635         LPOVERLAPPED lpOverlapped
00636     );
00637 
00638 FTD2XX_API
00639 BOOL WINAPI FT_W32_WriteFile(
00640     FT_HANDLE ftHandle,
00641     LPVOID lpBuffer,
00642     DWORD nBufferSize,
00643     LPDWORD lpBytesWritten,
00644         LPOVERLAPPED lpOverlapped
00645     );
00646 
00647 FTD2XX_API
00648 DWORD WINAPI FT_W32_GetLastError(
00649     FT_HANDLE ftHandle
00650     );
00651 
00652 FTD2XX_API
00653 BOOL WINAPI FT_W32_GetOverlappedResult(
00654     FT_HANDLE ftHandle,
00655         LPOVERLAPPED lpOverlapped,
00656     LPDWORD lpdwBytesTransferred,
00657         BOOL bWait
00658     );
00659 
00660 FTD2XX_API
00661 BOOL WINAPI FT_W32_CancelIo(
00662     FT_HANDLE ftHandle
00663     );
00664 
00665 
00666 //
00667 // Win32 COMM API type functions
00668 //
00669 typedef struct _FTCOMSTAT {
00670     DWORD fCtsHold : 1;
00671     DWORD fDsrHold : 1;
00672     DWORD fRlsdHold : 1;
00673     DWORD fXoffHold : 1;
00674     DWORD fXoffSent : 1;
00675     DWORD fEof : 1;
00676     DWORD fTxim : 1;
00677     DWORD fReserved : 25;
00678     DWORD cbInQue;
00679     DWORD cbOutQue;
00680 } FTCOMSTAT, *LPFTCOMSTAT;
00681 
00682 typedef struct _FTDCB {
00683     DWORD DCBlength;      /* sizeof(FTDCB)                   */
00684     DWORD BaudRate;       /* Baudrate at which running       */
00685     DWORD fBinary: 1;     /* Binary Mode (skip EOF check)    */
00686     DWORD fParity: 1;     /* Enable parity checking          */
00687     DWORD fOutxCtsFlow:1; /* CTS handshaking on output       */
00688     DWORD fOutxDsrFlow:1; /* DSR handshaking on output       */
00689     DWORD fDtrControl:2;  /* DTR Flow control                */
00690     DWORD fDsrSensitivity:1; /* DSR Sensitivity              */
00691     DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */
00692     DWORD fOutX: 1;       /* Enable output X-ON/X-OFF        */
00693     DWORD fInX: 1;        /* Enable input X-ON/X-OFF         */
00694     DWORD fErrorChar: 1;  /* Enable Err Replacement          */
00695     DWORD fNull: 1;       /* Enable Null stripping           */
00696     DWORD fRtsControl:2;  /* Rts Flow control                */
00697     DWORD fAbortOnError:1; /* Abort all reads and writes on Error */
00698     DWORD fDummy2:17;     /* Reserved                        */
00699     WORD wReserved;       /* Not currently used              */
00700     WORD XonLim;          /* Transmit X-ON threshold         */
00701     WORD XoffLim;         /* Transmit X-OFF threshold        */
00702     BYTE ByteSize;        /* Number of bits/byte, 4-8        */
00703     BYTE Parity;          /* 0-4=None,Odd,Even,Mark,Space    */
00704     BYTE StopBits;        /* 0,1,2 = 1, 1.5, 2               */
00705     char XonChar;         /* Tx and Rx X-ON character        */
00706     char XoffChar;        /* Tx and Rx X-OFF character       */
00707     char ErrorChar;       /* Error replacement char          */
00708     char EofChar;         /* End of Input character          */
00709     char EvtChar;         /* Received Event character        */
00710     WORD wReserved1;      /* Fill for now.                   */
00711 } FTDCB, *LPFTDCB;
00712 
00713 typedef struct _FTTIMEOUTS {
00714     DWORD ReadIntervalTimeout;          /* Maximum time between read chars. */
00715     DWORD ReadTotalTimeoutMultiplier;   /* Multiplier of characters.        */
00716     DWORD ReadTotalTimeoutConstant;     /* Constant in milliseconds.        */
00717     DWORD WriteTotalTimeoutMultiplier;  /* Multiplier of characters.        */
00718     DWORD WriteTotalTimeoutConstant;    /* Constant in milliseconds.        */
00719 } FTTIMEOUTS,*LPFTTIMEOUTS;
00720 
00721 
00722 FTD2XX_API
00723 BOOL WINAPI FT_W32_ClearCommBreak(
00724     FT_HANDLE ftHandle
00725         );
00726 
00727 FTD2XX_API
00728 BOOL WINAPI FT_W32_ClearCommError(
00729     FT_HANDLE ftHandle,
00730         LPDWORD lpdwErrors,
00731     LPFTCOMSTAT lpftComstat
00732         );
00733 
00734 FTD2XX_API
00735 BOOL WINAPI FT_W32_EscapeCommFunction(
00736     FT_HANDLE ftHandle,
00737         DWORD dwFunc
00738         );
00739 
00740 FTD2XX_API
00741 BOOL WINAPI FT_W32_GetCommModemStatus(
00742     FT_HANDLE ftHandle,
00743         LPDWORD lpdwModemStatus
00744         );
00745 
00746 FTD2XX_API
00747 BOOL WINAPI FT_W32_GetCommState(
00748     FT_HANDLE ftHandle,
00749     LPFTDCB lpftDcb
00750         );
00751 
00752 FTD2XX_API
00753 BOOL WINAPI FT_W32_GetCommTimeouts(
00754     FT_HANDLE ftHandle,
00755     FTTIMEOUTS *pTimeouts
00756         );
00757 
00758 FTD2XX_API
00759 BOOL WINAPI FT_W32_PurgeComm(
00760     FT_HANDLE ftHandle,
00761         DWORD dwMask
00762         );
00763 
00764 FTD2XX_API
00765 BOOL WINAPI FT_W32_SetCommBreak(
00766     FT_HANDLE ftHandle
00767         );
00768 
00769 FTD2XX_API
00770 BOOL WINAPI FT_W32_SetCommMask(
00771     FT_HANDLE ftHandle,
00772     ULONG ulEventMask
00773     );
00774 
00775 FTD2XX_API
00776 BOOL WINAPI FT_W32_SetCommState(
00777     FT_HANDLE ftHandle,
00778     LPFTDCB lpftDcb
00779         );
00780 
00781 FTD2XX_API
00782 BOOL WINAPI FT_W32_SetCommTimeouts(
00783     FT_HANDLE ftHandle,
00784     FTTIMEOUTS *pTimeouts
00785         );
00786 
00787 FTD2XX_API
00788 BOOL WINAPI FT_W32_SetupComm(
00789     FT_HANDLE ftHandle,
00790         DWORD dwReadBufferSize,
00791         DWORD dwWriteBufferSize
00792         );
00793 
00794 FTD2XX_API
00795 BOOL WINAPI FT_W32_WaitCommEvent(
00796     FT_HANDLE ftHandle,
00797     PULONG pulEvent,
00798         LPOVERLAPPED lpOverlapped
00799     );
00800 
00801 
00802 
00803 
00804 #ifdef __cplusplus
00805 }
00806 #endif
00807 
00808 
00809 #endif  /* FTD2XX_H */
00810 
00811 
00812 
00813 
00814 
00815 

Project hosted on SourceForge.net
Documentation generated on Mon Apr 2 14:52:55 2007 for libXA by doxygen 1.4.4