libroboint
|
00001 00002 /******************************************************************************* 00003 * (c) by Knobloch GmbH 00004 * Weedgasse 14 00005 * D-55234 Erbes-Büdesheim 00006 * 00007 * Header: FtLib.h Headerfile for fischertechnik USB-Library 00008 * 00009 * Version: 0.60 00010 * Date: 10. May 2006 00011 * 00012 * Revision: 00013 * 0.60: 10. May 2006 00014 * New Name: GetAnzFtUsbDevice() --> GetNumFtUsbDevice() 00015 * ClearFtMessagePuffer() --> ClearFtMessageBuffer() 00016 ********************************************************************************/ 00017 00018 00019 #ifndef _FT_LIBRARY_H_ 00020 #define _FT_LIBRARY_H_ 00021 00022 #ifdef __cplusplus 00023 extern "C" { 00024 #endif 00025 00027 #define DWORD long int 00028 #define BYTE unsigned char 00029 #define USHORT unsigned short int 00030 #define UINT unsigned int 00031 #define UCHAR unsigned char 00032 00033 #define HANDLE int 00034 #define HWND int 00035 #define __stdcall 00036 #define LPCSTR char * 00037 #define LPVOID void * 00038 00040 00041 typedef struct _FT_TRANSFER_AREA 00042 { 00045 unsigned char E_Main; 00046 00049 unsigned char E_Sub1; 00052 unsigned char E_Sub2; 00055 unsigned char E_Sub3; 00056 00059 unsigned char rsvd1[8]; 00060 00063 unsigned char Distance; 00064 00066 unsigned char rsvd2; 00067 00091 unsigned char IRKeys; 00092 00094 unsigned char res_1; 00095 00100 unsigned short AX; 00105 unsigned short AY; 00110 unsigned short A1; 00115 unsigned short A2; 00120 unsigned short AZ; 00125 unsigned short AV; 00130 unsigned short D1; 00135 unsigned short D2; 00136 00140 unsigned short AXS1; 00144 unsigned short AXS2; 00148 unsigned short AXS3; 00149 00153 unsigned short DS1; 00157 unsigned short DS2; 00158 00161 unsigned short ZE; 00162 00165 unsigned char rsvd3[4]; 00166 00170 unsigned short Timer1ms; 00174 unsigned short Timer10ms; 00178 unsigned short Timer100ms; 00182 unsigned short Timer1s; 00186 unsigned short Timer10s; 00190 unsigned short Timer1min; 00191 00194 unsigned short res_bF; 00197 unsigned char res_bT; 00198 00201 unsigned char rsvd4[1]; 00202 00206 unsigned char M_Main; 00210 unsigned char M_Sub1; 00214 unsigned char M_Sub2; 00218 unsigned char M_Sub3; 00219 00222 unsigned char rsvd5[4]; 00223 00228 unsigned char MES_Main; 00232 unsigned char MES_Sub1; 00236 unsigned char MES_Sub2; 00240 unsigned char MES_Sub3; 00241 00244 unsigned char rsvd6[1]; 00245 00248 unsigned char reserved_l1; 00251 unsigned char reserved_l2; 00254 unsigned char reserved_l3; 00255 00266 unsigned char MPWM_Main[8]; 00267 00278 unsigned char MPWM_Sub1[8]; 00279 00290 unsigned char MPWM_Sub2[8]; 00291 00302 unsigned char MPWM_Sub3[8]; 00303 00306 unsigned char rsvd7[32]; 00307 00308 00312 unsigned short A1S1; 00316 unsigned short A1S2; 00320 unsigned short A1S3; 00321 00325 unsigned short AVS1; 00329 unsigned short AVS2; 00333 unsigned short AVS3; 00334 00337 unsigned char rsvd8[4]; 00338 00341 unsigned short AX_R; 00342 00344 unsigned short AY_R; 00345 00347 unsigned short AXS1_R; 00348 00350 unsigned short AXS2_R; 00351 00353 unsigned short AXS3_R; 00354 00357 unsigned char rsvd10[54]; 00358 00361 unsigned char Mode; 00362 00365 unsigned char MPWM_Update; 00366 00371 unsigned char TransferAktiv; 00372 00375 unsigned char rsvd11[3]; 00376 00381 unsigned char BusModules; 00382 00385 unsigned char SlotModule1; 00386 00389 unsigned char SlotModule2; 00390 00393 unsigned char rsvd12[7]; 00394 00395 00401 unsigned char ChangeEg; 00402 00408 unsigned char ChangeAn; 00409 00414 unsigned char ChangeIr; 00415 00416 00419 unsigned char rsvd13[13]; 00420 00421 00432 unsigned short E16_Main[8]; 00443 unsigned short E16_Sub1[8]; 00454 unsigned short E16_Sub2[8]; 00465 unsigned short E16_Sub3[8]; 00470 unsigned short Distance16[2]; 00471 00474 unsigned char rsvd14[12]; 00475 00489 unsigned short IRKeys16[11]; 00492 unsigned char rsvd15[10]; 00493 00507 unsigned short IRKeys16Code1[11]; 00508 00512 unsigned char rsvd16[10]; 00513 00527 unsigned short IRKeys16Code2[11]; 00528 00532 unsigned char rsvd17[10]; 00533 00537 unsigned short RfStatus; 00538 00542 unsigned short RfPower; 00543 00547 unsigned short RfError; 00548 00552 unsigned short MsgNumInBuffer; 00553 00557 unsigned short RfModulNr; 00558 00561 unsigned char rsvd19[2]; 00562 00565 DWORD dwTC; 00566 00569 unsigned char rsvd20[64]; 00570 00571 } FT_TRANSFER_AREA; 00576 #include <usb.h> 00577 #include <pthread.h> 00578 #include <semaphore.h> 00579 #include <termios.h> 00580 00582 typedef struct ft_handle_devices { 00584 FT_TRANSFER_AREA transfer_area; 00586 struct usb_device *dev; 00588 usb_dev_handle *device; 00590 long int sdev; 00592 long int type; 00594 pthread_t t; 00596 sem_t lock; 00598 struct termios saveioset; 00600 struct termios newioset; 00602 int analogcycle; 00604 unsigned int query_time; 00606 unsigned char interface_connected; 00607 } *FT_HANDLE; 00614 FT_HANDLE OpenFtCommDevice(char *sDevice, long int dwTyp, long int dwZyklus); 00615 int GetFtStatus(FT_HANDLE hFt, int *num); 00616 long int GetFtDeviceTypeString(FT_HANDLE hft, char *dest, int len); 00617 char *GetLibVersionStrg(); 00618 long int SetRFMode(FT_HANDLE hFt, long int frequency, long int callSign); 00619 long int GetRFMode(FT_HANDLE hFt, long int *frequency, long int *callSign); 00620 long int SetRealSerial(FT_HANDLE hFt, unsigned char bOn); 00621 char IsFtInterfaceConnected(FT_HANDLE hFt); 00622 00623 // Numbers from GetFtDeviceTyp() 00624 #define NO_FT_DEVICE 0 // No ft Device connected 00625 #define FT_AUTO_TYPE 1 // Search for Device 00626 #define FT_INTELLIGENT_IF 10 // FT-Intelligent Interface connect (serial) 00627 #define FT_INTELLIGENT_IF_SLAVE 20 // FT-Intelligent Interface with Extension connect (serial) 00628 #define FT_ROBO_IF_IIM 50 // FT-Robo Interface with Intelligent-Interface-Modus connect (serial) 00629 #define FT_ROBO_IF_USB 60 // FT-Robo Interface connect with USB-Port 00630 #define FT_ROBO_IF_COM 70 // FT-Robo Interface connect with COM- (serial-) Port 00631 #define FT_ROBO_IF_OVER_RF 80 // FT-Robo Interface connect over RF-Data-Link 00632 #define FT_ROBO_IO_EXTENSION 90 // FT-Robo I/O-Extension 00633 #define FT_ROBO_RF_DATA_LINK 110 // FT-Robo RF Data Link 00634 #define FT_MAX_TYP_NUMBER 999 // Max Typ Number 00635 00636 00637 #define FT_ANALOG_CYCLE 5 // Standard: 5*Read Digital Inputs, then EX, EY 00638 // Only for old Intelligent Interface { for OpenFtCommDevice() } 00639 00640 00641 #define PORT_NONE 0 00642 #define PORT_COM 1 // Standard: COM1 00643 #define PORT_COM1 1 00644 #define PORT_COM2 2 00645 #define PORT_COM3 3 00646 #define PORT_COM4 4 00647 #define PORT_USB 50 00648 00649 // Moduletypes for Robo Interface 00650 #define MODULE_NOT_INSTALLED 0 // Not installed 00651 #define MODULE_RF1 1 // RF Data Link Module is installed 00652 00653 00654 #define LEN_STRG1 30 // Length of SN / FW Strings 00655 #define LEN_STRG2 255 // Length of Name-Strigs 00656 #define ANZ_DISTANCE_TYPES 2 // Number of supported Distance-Modes 00657 #define LEN_DIST_TYPE_NAMES 30 // Lenght of Mode-Names 00658 #define LEN_DIST_VAR_NAMES 20 // Lenght of Variable-Names 00659 #define NAME_LEN 85 // Lenght of Prog-Names 00660 00661 00662 #define MEM_FLASH1 0 // Use Memory FLASH-1 Block 00663 #define MEM_FLASH2 1 // Use Memory FLASH-2 Block 00664 #define MEM_RAM 2 // Use Memory RAM Block 00665 #define MEM_NO_ACCESS -1 // No Memory Select (for SetFtProgramActiv() ) 00666 #define DOWNLOAD_PROG_NAMELEN 80 // Max. 80 characters/bytes for the programname 00667 00668 // Values for "dwParameter" from DownloadFtProgram() 00669 #define PROG_TYP_NORMAL 1 // Program can bei Start with Software and Switch 00670 #define PROG_TYP_AUTOSTART 2 // Program is startable at Power-On 00671 00672 00673 // COM-Modes for SetFtDeviceCommMode() 00674 #define IF_COM_ONLINE 1 // Online Mode 00675 #define IF_COM_MESSAGE 3 // Messagemode 00676 #define IF_COM_DATA 4 // Datatransfer 00677 #define IF_COM_PARAMETER 5 // Get Mode 00678 00679 00680 // Message-System 00681 #define MSG_HWID_SELF 0 // Message for himself 00682 #define MSG_HWID_SER 1 // Message for the Robo-Interface serial port 00683 #define MSG_HWID_RF 2 // Message for other Interfaces (over RF) 00684 #define MSG_HWID_RF_SELF 3 // Message for other Interfaces (over RF) and for himself (back over RF) 00685 00686 #define MSG_BUFF_SER 1 // SER-Messagebuffer (for ClearRfMessage() ) 00687 #define MSG_BUFF_RF 2 // RF-Messagebuffer (for ClearRfMessage() ) 00688 #define MSG_BUFF_SELF 4 // SELF-Messagebuffer (for ClearRfMessage() ) 00689 00690 #define MSG_SEND_NORMAL 0 // Message send "normal" 00691 #define MSG_SEND_OTHER_THAN_LAST 1 // Message send "if not the same as the last message" 00692 #define MSG_SEND_IF_NOT_PRESENT 2 // Message send "if not present in the send buffer" 00693 00694 00695 00696 // Interface Distancesensor-Inputs Type 00697 #define IF_DS_INPUT_VOLTAGE 0 // Voltage 00698 #define IF_DS_INPUT_DISTANCE 1 // Distance 00699 #define IF_DS_INPUT_TOL_STD 20 // Toleranz (Standard) 00700 #define IF_DS_INPUT_REP_STD 3 // Repeat (Standard) 00701 00702 00703 00704 #pragma pack( push, 1 ) 00705 typedef union 00706 { 00707 BYTE aucMsg[6]; 00708 00709 struct 00710 { 00711 BYTE ucHwId; 00712 BYTE ucSubId; 00713 BYTE ucB0; 00714 BYTE ucB1; 00715 BYTE ucB2; 00716 BYTE ucB3; 00717 } B; 00718 00719 struct 00720 { 00721 BYTE ucHwId; 00722 BYTE ucSubId; 00723 USHORT uiMsgId; 00724 USHORT uiMsg; 00725 } W; 00726 00727 struct 00728 { 00729 BYTE ucHwId; 00730 BYTE ucSubId; 00731 DWORD dw; 00732 } L; 00733 } SMESSAGE; 00734 #pragma pack( pop ) 00735 00736 00737 //typedef void * FT_HANDLE; 00738 typedef void (*DATA_UPDATE_CALLBACK)(void* Context); 00739 typedef void (*MSG_UPDATE_CALLBACK)(SMESSAGE *); 00740 00741 00742 00743 // Important: 00744 // Initialise all unused Variables in this Structure with "NULL" 00745 // 00746 // Every Time the driver reads new information from the Device 00747 // the Library checks this structure 00748 typedef struct _NOTIFICATION_EVENTS 00749 { 00750 // Callback-Procedure 00751 DATA_UPDATE_CALLBACK NotificationCallback; // Pointer to the Callback-Procedure 00752 void* Context; // Pointer to the Context for the Callback-Procedure 00753 00754 // for SetEvent() 00755 HANDLE hEvent; 00756 00757 // for posting a Message (PostMessage() with wParam & lParam = 0) 00758 HWND WindowsHandle; // handle to the destination window 00759 DWORD Message; // message ID 00760 00761 00762 // Callback-Procedure for Messaging 00763 MSG_UPDATE_CALLBACK CallbackMessage; // Pointer to the Callback-Procedure for Receiving Messages 00764 00765 } 00766 NOTIFICATION_EVENTS; 00767 00768 00769 00770 00771 typedef struct _FT_SERIAL_NUMBER 00772 { 00773 DWORD dwSn; // actually Serial Number at Power On 00774 DWORD dwSn1; // Serial Number-1 00775 DWORD dwSn2; // Serial Number-2 00776 DWORD dwSnAktiv; // Serial Number Activ (1/2) for next Power On 00777 } FT_SERIAL_NUMBER; 00778 00779 00780 00781 typedef struct _FT_DISTANCE // Robo Interface Distance Sensor 00782 { 00783 unsigned char aDistModeNames[LEN_DIST_TYPE_NAMES]; // RO Names for the Modes 00784 00785 DWORD dwEnableDisVal1; // RO 1=Ask for Distance Value 1 00786 unsigned char aDisVal1Name[LEN_DIST_VAR_NAMES]; // RO Value 1 Name 00787 DWORD dwDisVal1; // RW Value 1 00788 00789 DWORD dwEnableDisVal2; // RO 1=Ask for Distance Value 2 00790 unsigned char aDisVal2Name[LEN_DIST_VAR_NAMES]; // RO Value 2 Name 00791 DWORD dwDisVal2; // RW Value 2 00792 00793 DWORD dwEnableDisVal3; // RO 1=Ask for Distance Value 3 00794 unsigned char aDisVal3Name[LEN_DIST_VAR_NAMES]; // RO Value 3 Name 00795 DWORD dwDisVal3; // RW Value 3 00796 00797 DWORD dwEnableDisVal4; // RO 1=Ask for Distance Value 4 00798 unsigned char aDisVal4Name[LEN_DIST_VAR_NAMES]; // RO Value 4 Name 00799 DWORD dwDisVal4; // RW Value 4 00800 00801 DWORD dwEnableDisVal5; // RO 1=Ask for Distance Value 5 00802 unsigned char aDisVal5Name[LEN_DIST_VAR_NAMES]; // RO Value 5 Name 00803 DWORD dwDisVal5; // RW Value 5 00804 00805 DWORD dwEnableDisVal6; // RO 1=Ask for Distance Value 6 00806 unsigned char aDisVal6Name[LEN_DIST_VAR_NAMES]; // RO Value 6 Name 00807 DWORD dwDisVal6; // RW Value 6 00808 00809 DWORD dwEnableDisVal7; // RO 1=Ask for Distance Value 7 00810 unsigned char aDisVal7Name[LEN_DIST_VAR_NAMES]; // RO Value 7 Name 00811 DWORD dwDisVal7; // RW Value 7 00812 00813 DWORD dwEnableDisVal8; // RO 1=Ask for Distance Value 8 00814 unsigned char aDisVal8Name[LEN_DIST_VAR_NAMES]; // RO Value 8 Name 00815 DWORD dwDisVal8; // RW Value 8 00816 } FT_DISTANCE; 00817 00818 00819 00820 typedef union _FT_SETTING 00821 { 00822 struct // RO = Read Only, RW = Read / Write 00823 { 00824 DWORD dwIfTyp; // RO Type of connected Device 00825 // possible Values: 00826 // NO_FT_DEVICE no answer from the Device - is it gone ? 00827 // FT_INTELLIGENT_IF FT-Intelligent Interface connect (serial) 00828 // FT_ROBO_IF_IIM FT-Robo Interface with Intelligent-Interface-Modus connect (serial) 00829 // FT_ROBO_IF_USB FT-Robo Interface connect with USB-Port 00830 // FT_ROBO_IF_COM FT-Robo Interface connect with COM- (serial-) Port 00831 // FT_ROBO_IO_EXTENSION FT-Robo I/O-Extension 00832 // FT_ROBO_RF_DATA_LINK FT-Robo RF Data Link 00833 // FT_ROBO_IF_OVER_RF FT-Robo Interface connect over RF-Data-Link 00834 00835 // Serial numbers section 00836 DWORD dwSn; // RO actually Serial Number at Power On 00837 DWORD dwSn1; // RW Serial Number-1 (only FT-Robo Products) 00838 DWORD dwSn2; // RO Serial Number-2 (only FT-Robo Products) 00839 DWORD dwSnAktiv; // RW Set Serial Number Activ (1/2) for next Power On 00840 00841 DWORD dwFw; // RO Is Firmware Version for this product (only FT-Robo Products) 00842 00843 unsigned char aSnStrg[LEN_STRG1]; // RO String with Serialnumber (only FT-Robo Products) 00844 unsigned char aSn1Strg[LEN_STRG1]; // RO String with Serialnumber1 (only FT-Robo Products) 00845 unsigned char aSn2Strg[LEN_STRG1]; // RO String with Serialnumber2 (only FT-Robo Products) 00846 unsigned char aFwStrg[LEN_STRG1]; // RO String with Firmware (only FT-Robo Products) 00847 unsigned char aSNaStrg[LEN_STRG2]; // RO String with Short-Name (only FT-Robo Products) 00848 unsigned char aLNaStrg[LEN_STRG2]; // RO String with Long-Name (only FT-Robo Products) 00849 00850 DWORD dwFwRoboIfVerAtLibIsMade; // RO Robo-If Firmware Version as this Lib is made 00851 DWORD dwFwIoExtVerAtLibIsMade; // RO IO-Extension Firmware Version as this Lib is made 00852 DWORD dwFwRfDataVerAtLibIsMade; // RO RF-DataLink Firmware Version as this Lib is made 00853 unsigned char aFwRoboIfVerAtLibIsMadeStrg[LEN_STRG1]; // RO String with Robo-If Firmware Version as this Lib is made 00854 unsigned char aFwIoExtVerAtLibIsMadeStrg[LEN_STRG1]; // RO String with IO-Extension Firmware Version as this Lib is made 00855 unsigned char aFwRfDataVerAtLibIsMadeStrg[LEN_STRG1]; // RO String with Rf-Data-Link Firmware Version as this Lib is made 00856 00857 DWORD dwReserved; // Reserved for later use 00858 00859 00860 // Output Section 00861 DWORD dwOutputAutoOff[4]; // RW M1=[0]...M4=[3] Energy saver: 00862 // "1" = "Power Off" motor driver when both outputs logical "0" (reduces Energy) 00863 // "0" = do not automatically disable the motor driver 00864 DWORD dwOutputPwmType; // RW PWM-Type (Today only "0" supported) 00865 00866 00867 // Robo Interface Distance Sensor 00868 DWORD dwAnzDistanceModes; // RO Number of supported Distance Modes (Array Entries) 00869 DWORD dwDistanceMode; // RW Type and Mode for Distance-Sensor (Index-Number in the range 0...ANZ_DISTANCE_TYPES) 00870 FT_DISTANCE sDistance[ANZ_DISTANCE_TYPES]; // RW Values for setting 00871 00872 00873 // Robo Interface Memory Section 00874 DWORD dwProg[3]; // RO 1=Program is saved in the Memory block; [0]=Flash-1 [1]=Flash-2 [2]=Ram 00875 unsigned char aProgNames[3][NAME_LEN]; // RO [0]=Flash-1 Prog Name; [1]=Flash-2 Prog Name; [2]=Ram Prog-Name 00876 DWORD dwF1AutoStart; // RO 1=Autostart Flash-1 programm, 0=no autostart 00877 00878 00879 // Robo Interface Module Section 00880 DWORD dwMod1Typ; // RO Type of left Module (only Robo-If) 00881 DWORD dwMod2Typ; // RO Type of right Module (only Robo-If) 00882 // possible Values: 00883 // MODULE_NOT_INSTALLED No Module is installed 00884 // MODULE_RF1 RF Data Link is installed 00885 00886 unsigned char aMod1Strg[LEN_STRG1]; // RO String with Module-1 Name (only FT-Robo Products) 00887 unsigned char aMod2Strg[LEN_STRG1]; // RO String with Module-2 Name (only FT-Robo Products) 00888 00889 00890 // Robo Interface & RF Data Link Section 00891 DWORD dwRfOn; // RW 0=disable RF 1=Enable RF 00892 DWORD dwRfChannel; // RW Channel-Number (2..80) for RF-Communication 00893 DWORD dwRfSubChannel; // RW Sub-Channel of Device for the specified Channel (1..3) 00894 DWORD dwRfMessage; // RW 0=Disable Message-Router Function 1=Enable Message-Rounter Function 00895 DWORD dwRfWrite; // W 0=write values permanent (FLASH); 1=write values temporary (RAM) 00896 DWORD dwRfFw; // RO Firmwareversion of RF-Module 00897 unsigned char aRfFwStrg[LEN_STRG1]; // RO String with Firmware of RF-Module 00898 00899 // Information for the PC-RF Module 00900 DWORD dwRfStopTransferOnError; // RW 1=Stop the RF-Transfer Thread on bad RF Connection 00901 00902 // Information for the Interface RF-Module 00903 DWORD dwRfMotorOffOnError; // RW 1=Motor Off on bad RF Connection 00904 } sIf; 00905 } FT_SETTING; 00906 00907 00908 // ****** Function Prototypes ****** 00909 DWORD __stdcall GetLibVersion(void); 00910 DWORD __stdcall InitFtLib(void); 00911 DWORD __stdcall CloseFtLib(void); 00912 DWORD __stdcall IsFtLibInit(void); 00913 DWORD __stdcall InitFtUsbDeviceList(void); 00914 UINT __stdcall GetNumFtUsbDevice(void); 00915 FT_HANDLE __stdcall GetFtUsbDeviceHandle(UCHAR ucDevNr); 00916 FT_HANDLE __stdcall GetFtUsbDeviceHandleSerialNr(DWORD dwSN, DWORD dwTyp); 00917 DWORD __stdcall OpenFtUsbDevice(FT_HANDLE hFt); 00918 //FT_HANDLE __stdcall OpenFtCommDevice(DWORD dwPort, DWORD dwTyp, DWORD dwZyklus, DWORD *pdwError); 00919 DWORD __stdcall SetFtDeviceCommMode (FT_HANDLE hFt, DWORD dwMode, DWORD dwParameter, USHORT *puiValue); 00920 DWORD __stdcall CloseAllFtDevices(void); 00921 DWORD __stdcall CloseFtDevice(FT_HANDLE hFt); 00922 DWORD __stdcall GetFtDeviceTyp(FT_HANDLE hFt); 00923 LPCSTR __stdcall GetFtSerialNrStrg(FT_HANDLE hFt); 00924 DWORD __stdcall GetFtSerialNr(FT_HANDLE hFt); 00925 LPCSTR __stdcall GetFtFirmwareStrg(FT_HANDLE hFt); 00926 DWORD __stdcall GetFtFirmware(FT_HANDLE hFt); 00927 LPCSTR __stdcall GetFtManufacturerStrg(FT_HANDLE hFt); 00928 LPCSTR __stdcall GetFtShortNameStrg(FT_HANDLE hFt); 00929 LPCSTR __stdcall GetFtLongNameStrg(FT_HANDLE hFt); 00930 LPCSTR __stdcall GetFtLibErrorString(DWORD dwErrorCode, DWORD dwTyp); 00931 DWORD __stdcall GetFtDeviceSetting(FT_HANDLE hFt, FT_SETTING *pSet); 00932 DWORD __stdcall SetFtDeviceSetting(FT_HANDLE hFt, FT_SETTING *pSet); 00933 DWORD __stdcall SetFtDistanceSensorMode(FT_HANDLE hFt, DWORD dwMode, DWORD dwTol1, DWORD dwTol2, 00934 DWORD dwSchwell1, DWORD dwSchwell2, DWORD dwRepeat1, DWORD dwRepeat2); 00935 00936 00937 DWORD __stdcall StartFtTransferArea(FT_HANDLE hFt, NOTIFICATION_EVENTS* sNEvent ); 00938 DWORD __stdcall StartFtTransferAreaWithCommunication(FT_HANDLE hFt, NOTIFICATION_EVENTS* sNEvent ); 00939 DWORD __stdcall StopFtTransferArea(FT_HANDLE hFt); 00940 FT_TRANSFER_AREA* __stdcall GetFtTransferAreaAddress(FT_HANDLE hFt); 00941 DWORD __stdcall IsFtTransferActiv(FT_HANDLE hFt); 00942 DWORD __stdcall ResetFtTransfer (FT_HANDLE hFt); 00943 00944 00945 DWORD __stdcall GetFtMemoryLayout(FT_HANDLE hFt, BYTE * pbArray, DWORD dwSize); 00946 DWORD __stdcall DownloadFtProgram(FT_HANDLE hFt, DWORD dwMemBlock, BYTE* pbArray, DWORD dwSize, DWORD dwParameter, BYTE *pbName, DWORD dwNameLen); 00947 DWORD __stdcall StartFtProgram(FT_HANDLE hFt, DWORD dwMemBlock); 00948 DWORD __stdcall StopFtProgram(FT_HANDLE hFt); 00949 DWORD __stdcall DeleteFtProgram(FT_HANDLE hFt, DWORD dwMemBlock); 00950 DWORD __stdcall SetFtProgramActiv(FT_HANDLE hFt, DWORD dwMemBlock); 00951 DWORD __stdcall GetFtProgramName(FT_HANDLE hFt, DWORD dwMemBlock, DWORD dwSize, LPVOID pName); 00952 DWORD __stdcall WriteFtMemoryData(FT_HANDLE hFt, DWORD dwData, DWORD dwAddress); 00953 DWORD __stdcall GetFtMemoryData(FT_HANDLE hFt, BYTE * pbArray, DWORD dwSize, DWORD dwAddress); 00954 00955 00956 DWORD __stdcall SendFtMessage(FT_HANDLE hFt, BYTE bHwId, BYTE bSubId, DWORD dwMessage, DWORD dwWaitTime, DWORD dwOption); 00957 DWORD __stdcall ClearFtMessageBuffer(FT_HANDLE hFt); 00958 00959 00960 00961 00962 // 00963 // FTLIB Error Codes 00964 // 00965 #define FTLIB_ERR_SUCCESS 0x00000000L 00966 #define FTLIB_ERR_CRC 0xE0000001L 00967 #define FTLIB_ERR_BTSTUFF 0xE0000002L 00968 #define FTLIB_ERR_DATA_TOGGLE_MISMATCH 0xE0000003L 00969 #define FTLIB_ERR_STALL_PID 0xE0000004L 00970 #define FTLIB_ERR_DEV_NOT_RESPONDING 0xE0000005L 00971 #define FTLIB_ERR_PID_CHECK_FAILURE 0xE0000006L 00972 #define FTLIB_ERR_UNEXPECTED_PID 0xE0000007L 00973 #define FTLIB_ERR_DATA_OVERRUN 0xE0000008L 00974 #define FTLIB_ERR_DATA_UNDERRUN 0xE0000009L 00975 #define FTLIB_ERR_RESERVED1 0xE000000AL 00976 #define FTLIB_ERR_RESERVED2 0xE000000BL 00977 #define FTLIB_ERR_BUFFER_OVERRUN 0xE000000CL 00978 #define FTLIB_ERR_BUFFER_UNDERRUN 0xE000000DL 00979 #define FTLIB_ERR_NOT_ACCESSED 0xE000000FL 00980 #define FTLIB_ERR_FIFO 0xE0000010L 00981 #define FTLIB_ERR_XACT_ERROR 0xE0000011L 00982 #define FTLIB_ERR_BABBLE_DETECTED 0xE0000012L 00983 #define FTLIB_ERR_DATA_BUFFER_ERROR 0xE0000013L 00984 00985 #define FTLIB_ERR_ENDPOINT_HALTED 0xE0000030L 00986 #define FTLIB_ERR_NO_MEMORY 0xE0000100L 00987 #define FTLIB_ERR_INVALID_URB_FUNCTION 0xE0000200L 00988 #define FTLIB_ERR_INVALID_PARAMETER 0xE0000300L 00989 #define FTLIB_ERR_ERROR_BUSY 0xE0000400L 00990 #define FTLIB_ERR_INVALID_PIPE_HANDLE 0xE0000600L 00991 #define FTLIB_ERR_NO_BANDWIDTH 0xE0000700L 00992 #define FTLIB_ERR_INTERNAL_HC_ERROR 0xE0000800L 00993 #define FTLIB_ERR_ERROR_SHORT_TRANSFER 0xE0000900L 00994 #define FTLIB_ERR_BAD_START_FRAME 0xE0000A00L 00995 #define FTLIB_ERR_ISOCH_REQUEST_FAILED 0xE0000B00L 00996 #define FTLIB_ERR_FRAME_CONTROL_OWNED 0xE0000C00L 00997 #define FTLIB_ERR_FRAME_CONTROL_NOT_OWNED 0xE0000D00L 00998 #define FTLIB_ERR_NOT_SUPPORTED 0xE0000E00L 00999 #define FTLIB_ERR_INVALID_CONFIGURATION_DESCRIPTOR 0xE0000F00L 01000 01001 #define FTLIB_ERR_INSUFFICIENT_RESOURCES 0xE8001000L 01002 #define FTLIB_ERR_SET_CONFIG_FAILED 0xE0002000L 01003 #define FTLIB_ERR_USBD_BUFFER_TOO_SMALL 0xE0003000L 01004 #define FTLIB_ERR_USBD_INTERFACE_NOT_FOUND 0xE0004000L 01005 #define FTLIB_ERR_INVALID_PIPE_FLAGS 0xE0005000L 01006 #define FTLIB_ERR_USBD_TIMEOUT 0xE0006000L 01007 #define FTLIB_ERR_DEVICE_GONE 0xE0007000L 01008 #define FTLIB_ERR_STATUS_NOT_MAPPED 0xE0008000L 01009 01010 #define FTLIB_ERR_CANCELED 0xE0010000L 01011 #define FTLIB_ERR_ISO_NOT_ACCESSED_BY_HW 0xE0020000L 01012 #define FTLIB_ERR_ISO_TD_ERROR 0xE0030000L 01013 #define FTLIB_ERR_ISO_NA_LATE_USBPORT 0xE0040000L 01014 #define FTLIB_ERR_ISO_NOT_ACCESSED_LATE 0xE0050000L 01015 01016 #define FTLIB_ERR_FAILED 0xE0001000L 01017 #define FTLIB_ERR_INVALID_INBUFFER 0xE0001001L 01018 #define FTLIB_ERR_INVALID_OUTBUFFER 0xE0001002L 01019 #define FTLIB_ERR_OUT_OF_MEMORY 0xE0001003L 01020 #define FTLIB_ERR_PENDING_REQUESTS 0xE0001004L 01021 #define FTLIB_ERR_ALREADY_CONFIGURED 0xE0001005L 01022 #define FTLIB_ERR_NOT_CONFIGURED 0xE0001006L 01023 #define FTLIB_ERR_OPEN_PIPES 0xE0001007L 01024 #define FTLIB_ERR_ALREADY_BOUND 0xE0001008L 01025 #define FTLIB_ERR_NOT_BOUND 0xE0001009L 01026 #define FTLIB_ERR_DEVICE_NOT_PRESENT 0xE000100AL 01027 #define FTLIB_ERR_CONTROL_NOT_SUPPORTED 0xE000100BL 01028 #define FTLIB_ERR_TIMEOUT 0xE000100CL 01029 #define FTLIB_ERR_INVALID_RECIPIENT 0xE000100DL 01030 #define FTLIB_ERR_INVALID_TYPE 0xE000100EL 01031 #define FTLIB_ERR_INVALID_IOCTL 0xE000100FL 01032 #define FTLIB_ERR_INVALID_DIRECTION 0xE0001010L 01033 #define FTLIB_ERR_TOO_MUCH_ISO_PACKETS 0xE0001011L 01034 #define FTLIB_ERR_POOL_EMPTY 0xE0001012L 01035 #define FTLIB_ERR_PIPE_NOT_FOUND 0xE0001013L 01036 #define FTLIB_ERR_INVALID_ISO_PACKET 0xE0001014L 01037 #define FTLIB_ERR_OUT_OF_ADDRESS_SPACE 0xE0001015L 01038 #define FTLIB_ERR_INTERFACE_NOT_FOUND 0xE0001016L 01039 #define FTLIB_ERR_INVALID_DEVICE_STATE 0xE0001017L 01040 #define FTLIB_ERR_INVALID_PARAM 0xE0001018L 01041 #define FTLIB_ERR_INVALID_POWER_STATE 0xE000101AL 01042 #define FTLIB_ERR_POWER_DOWN 0xE000101BL 01043 #define FTLIB_ERR_VERSION_MISMATCH 0xE000101CL 01044 #define FTLIB_ERR_SET_CONFIGURATION_FAILED 0xE000101DL 01045 01046 #define FTLIB_ERR_VID_RESTRICTION 0xE0001080L 01047 #define FTLIB_ERR_ISO_RESTRICTION 0xE0001081L 01048 #define FTLIB_ERR_BULK_RESTRICTION 0xE0001082L 01049 #define FTLIB_ERR_EP0_RESTRICTION 0xE0001083L 01050 #define FTLIB_ERR_PIPE_RESTRICTION 0xE0001084L 01051 #define FTLIB_ERR_PIPE_SIZE_RESTRICTION 0xE0001085L 01052 #define FTLIB_ERR_CONTROL_RESTRICTION 0xE0001086L 01053 #define FTLIB_ERR_INTERRUPT_RESTRICTION 0xE0001087L 01054 01055 #define FTLIB_ERR_DEVICE_NOT_FOUND 0xE0001100L 01056 #define FTLIB_ERR_SOME_DEVICES_ARE_OPEN 0xE0001101L 01057 #define FTLIB_ERR_DEVICE_IS_OPEN 0xE0001102L 01058 #define FTLIB_ERR_DEVICE_NOT_OPEN 0xE0001103L 01059 #define FTLIB_ERR_NO_SUCH_DEVICE_INSTANCE 0xE0001104L 01060 #define FTLIB_ERR_INVALID_FUNCTION_PARAM 0xE0001105L 01061 #define FTLIB_ERR_DESTROY_DEVICE_LIST 0xE0001106L 01062 #define FTLIB_ERR_USB_NOT_SUPPORTET_FROM_OS 0xE0001107L 01063 #define FTLIB_ERR_CLOSE_DEVICE 0xE0001108L 01064 01065 #define FTLIB_ERR_DEVICE_NOT_SUPPORTET 0xE0001281L 01066 #define FTLIB_ERR_WRONG_DEVICE_NUMBER 0xE0001282L 01067 #define FTLIB_ERR_UNKNOWN_DEVICE_HANDLE 0xE0001283L 01068 #define FTLIB_ERR_WRONG_USB_HANDLE 0xE0001284L 01069 #define FTLIB_ERR_WRONG_PATHNAME 0xE0001285L 01070 #define FTLIB_ERR_LIB_IS_INITIALIZED 0xE0001286L 01071 #define FTLIB_ERR_LIB_IS_NOT_INITIALIZED 0xE0001287L 01072 #define FTLIB_ERR_SERIAL_NR_UNKNOWN 0xE0001288L 01073 #define FTLIB_ERR_POWER_TOO_LOW 0xE0001289L 01074 #define FTLIB_ERR_WRONG_RETURN_VALUE 0xE000128AL 01075 #define FTLIB_ERR_USB_SUPPORT_IS_NOT_INITIALIZED 0xE000128BL 01076 01077 #define FTLIB_ERR_USB_MUT0 0xE0001290L 01078 #define FTLIB_ERR_USB_MUT1 0xE0001291L 01079 #define FTLIB_ERR_USB_MUT2 0xE0001292L 01080 #define FTLIB_ERR_USB_MUT3 0xE0001293L 01081 #define FTLIB_ERR_USB_DEVICE_IS_IN_USE 0xE0001295L 01082 01083 #define FTLIB_ERR_THREAD_NOT_STARTABLE 0xE00012A0L 01084 #define FTLIB_ERR_THREAD_NOT_STARTABLE_X1 0xE00012A1L 01085 #define FTLIB_ERR_THREAD_NOT_STARTABLE_X2 0xE00012A2L 01086 #define FTLIB_ERR_THREAD_NOT_STARTABLE_X3 0xE00012A3L 01087 #define FTLIB_ERR_OTHER_THREAD_FOR_SAME_DEVICE_IS_RUN 0xE00012A4L 01088 #define FTLIB_ERR_THREAD_IS_RUNNING 0xE00012A5L 01089 #define FTLIB_ERR_THREAD_NOT_RUNNING 0xE00012A6L 01090 #define FTLIB_ERR_THREAD_X1 0xE00012A7L 01091 #define FTLIB_ERR_THREAD_X2 0xE00012A8L 01092 #define FTLIB_ERR_THREAD_WRITE_USB 0xE00012A9L 01093 #define FTLIB_ERR_THREAD_READ_USB 0xE00012AAL 01094 #define FTLIB_ERR_THREAD_IS_NORMAL_STOPPED 0xE00012ABL 01095 #define FTLIB_ERR_THREAD_WAIT_TIMEOUT 0xE00012ACL 01096 #define FTLIB_ERR_THREAD_WRITE_COM 0xE00012ADL 01097 #define FTLIB_ERR_THREAD_READ_COM 0xE00012AEL 01098 01099 #define FTLIB_ERR_DOWNLOAD 0xE00012C0L 01100 #define FTLIB_ERR_DOWNLOAD_WRONG_PARAMETER 0xE00012C1L 01101 #define FTLIB_ERR_DOWNLOAD_WRONG_MEM_BLOCK 0xE00012C2L 01102 #define FTLIB_ERR_DOWNLOAD_DATA_SIZE_IS_NULL 0xE00012C3L 01103 #define FTLIB_ERR_DOWNLOAD_DATA_SIZE_TOO_BIG 0xE00012C4L 01104 #define FTLIB_ERR_DOWNLOAD_DATA_SIZE 0xE00012C5L 01105 #define FTLIB_ERR_DOWNLOAD_ERASE 0xE00012C6L 01106 #define FTLIB_ERR_DOWNLOAD_F5 0xE00012C7L 01107 #define FTLIB_ERR_DOWNLOAD_PROG_SNF1 0xE00012C8L 01108 #define FTLIB_ERR_DOWNLOAD_PROG_SNF2 0xE00012C9L 01109 #define FTLIB_ERR_DOWNLOAD_BLOCK 0xE00012CAL 01110 #define FTLIB_ERR_DOWNLOAD_BLOCK_NR 0xE00012CBL 01111 #define FTLIB_ERR_DOWNLOAD_CRC 0xE00012CDL 01112 01113 #define FTLIB_ERR_IF_NO_PROGRAM 0xE00012E0L 01114 #define FTLIB_ERR_IF_PROGRAM_IS_RUNNING 0xE00012E1L 01115 #define FTLIB_ERR_IF_NO_PROGRAM_IS_RUNNING 0xE00012E2L 01116 #define FTLIB_ERR_IF_WRONG_PROG_NUMBER 0xE00012E3L 01117 #define FTLIB_ERR_IF_BUFFER_TOO_SMALL 0xE00012E4L 01118 #define FTLIB_ERR_IF_MEM_ADDRESS 0xE00012E5L 01119 #define FTLIB_ERR_IF_MEM_VERIFY 0xE00012E6L 01120 #define FTLIB_ERR_IF_NOT_SUPPORTET_MODUS 0xE00012E7L 01121 #define FTLIB_ERR_IF_FUNCTION_NOT_SUPPORT 0xE00012E8L 01122 #define FTLIB_ERR_FUNCTION_OVER_RF_NOT_ALLOWED 0xE00012E9L 01123 01124 01125 #define FTLIB_INFO_PROGRAM_0_IS_RUNNING 0xE0001600L 01126 #define FTLIB_INFO_PROGRAM_1_IS_RUNNING 0xE0001601L 01127 #define FTLIB_INFO_PROGRAM_2_IS_RUNNING 0xE0001602L 01128 #define FTLIB_INFO_ONLINE_MODUS 0xE0001620L 01129 01130 #define FTLIB_FIRMWARE_UPDATE_FILE_WRONG_0 0xE0001800L 01131 #define FTLIB_FIRMWARE_UPDATE_CRC 0xE0001801L 01132 #define FTLIB_FIRMWARE_UPDATE_FILE_OLD 0xE0001802L 01133 #define FTLIB_FIRMWARE_UPDATE_FILE_WRONG_1 0xE0001803L 01134 01135 01136 #define FTLIB_ERR_PORT_NUMBER 0xE0001900L 01137 #define FTLIB_ERR_WRONG_PORT 0xE0001901L 01138 #define FTLIB_ERR_PORT_NUMBER_IS_NULL 0xE0001902L 01139 #define FTLIB_ERR_TYP 0xE0001903L 01140 #define FTLIB_ERR_PORT_NOT_FOUND 0xE0001904L 01141 #define FTLIB_ERR_ACCESS_DENIED 0xE0001905L 01142 #define FTLIB_ERR_OPEN_COM 0xE0001906L 01143 #define FTLIB_ERR_CLOSE_COM 0xE0001907L 01144 #define FTLIB_ERR_INIT_COM 0xE0001908L 01145 #define FTLIB_ERR_INIT_COM_TIMEOUT 0xE0001909L 01146 #define FTLIB_ERR_WRITE_COM 0xE000190AL 01147 #define FTLIB_ERR_READ_COM 0xE000190BL 01148 #define FTLIB_ERR_READ_COM_NUMBER 0xE000190CL 01149 #define FTLIB_ERR_READ_COM_NOTHING 0xE000190DL 01150 01151 #define FTLIB_ERR_RF_NOT_INSTALLED 0xE0001A00L 01152 #define FTLIB_ERR_RF_WRONG_CHANNEL 0xE0001A01L 01153 #define FTLIB_ERR_RF_WRONG_SUB_CHANNEL 0xE0001A02L 01154 #define FTLIB_ERR_RF_NO_CONNECTION 0xE0001A03L 01155 #define FTLIB_ERR_RF_NO_CONNECTION_A 0xE0001A04L 01156 #define FTLIB_ERR_RF_NO_CONNECTION_B 0xE0001A05L 01157 #define FTLIB_ERR_RF_NO_CONNECTION_C 0xE0001A06L 01158 #define FTLIB_ERR_RF_TIMEOUT_1 0xE0001A08L 01159 #define FTLIB_ERR_RF_TIMEOUT_2 0xE0001A09L 01160 #define FTLIB_ERR_RF_FW_OLD1 0xE0001A0AL 01161 #define FTLIB_ERR_RF_INTERNAL_1 0xE0001A0DL 01162 #define FTLIB_ERR_RF_NO_INTERFACE_MODULE_FOUND 0xE0001A0EL 01163 01164 #define FTLIB_ERR_DLL_NOT_LOADABLE 0xE0001B00L 01165 #define FTLIB_ERR_DLL_FUNCTION_ERROR 0xE0001B01L 01166 01167 #define FTLIB_ERR_MSG_HWID_WRONG 0xE0001C00L 01168 #define FTLIB_ERR_MSG_BUFFER_FULL_TIMEOUT 0xE0001C01L 01169 01170 #define FTLIB_ERR_UNKNOWN_OPTION_VALUE 0xE0001D00L 01171 01172 #define FTLIB_ERR_INTERFACE_00 0xE0001F00L 01173 #define FTLIB_ERR_INTERFACE_01 0xE0001F01L 01174 #define FTLIB_ERR_INTERFACE_02 0xE0001F02L 01175 #define FTLIB_ERR_INTERFACE_03 0xE0001F03L 01176 #define FTLIB_ERR_INTERFACE_04 0xE0001F04L 01177 #define FTLIB_ERR_INTERFACE_05 0xE0001F05L 01178 #define FTLIB_ERR_INTERFACE_06 0xE0001F06L 01179 #define FTLIB_ERR_INTERFACE_07 0xE0001F07L 01180 #define FTLIB_ERR_INTERFACE_08 0xE0001F08L 01181 #define FTLIB_ERR_INTERFACE_09 0xE0001F09L 01182 #define FTLIB_ERR_INTERFACE_0A 0xE0001F0AL 01183 #define FTLIB_ERR_INTERFACE_0B 0xE0001F0BL 01184 #define FTLIB_ERR_INTERFACE_0C 0xE0001F0CL 01185 #define FTLIB_ERR_INTERFACE_0D 0xE0001F0DL 01186 #define FTLIB_ERR_INTERFACE_0E 0xE0001F0EL 01187 #define FTLIB_ERR_INTERFACE_0F 0xE0001F0FL 01188 01189 #define FTLIB_ERR_INTERFACE_D0 0xE0001FD0L 01190 #define FTLIB_ERR_INTERFACE_D1 0xE0001FD1L 01191 #define FTLIB_ERR_INTERFACE_D2 0xE0001FD2L 01192 #define FTLIB_ERR_INTERFACE_D3 0xE0001FD3L 01193 #define FTLIB_ERR_INTERFACE_D4 0xE0001FD4L 01194 #define FTLIB_ERR_INTERFACE_D5 0xE0001FD5L 01195 #define FTLIB_ERR_INTERFACE_D6 0xE0001FD6L 01196 #define FTLIB_ERR_INTERFACE_D7 0xE0001FD7L 01197 #define FTLIB_ERR_INTERFACE_D8 0xE0001FD8L 01198 #define FTLIB_ERR_INTERFACE_D9 0xE0001FD9L 01199 #define FTLIB_ERR_INTERFACE_DA 0xE0001FDAL 01200 #define FTLIB_ERR_INTERFACE_DB 0xE0001FDBL 01201 #define FTLIB_ERR_INTERFACE_DC 0xE0001FDCL 01202 #define FTLIB_ERR_INTERFACE_DD 0xE0001FDDL 01203 #define FTLIB_ERR_INTERFACE_DE 0xE0001FDEL 01204 #define FTLIB_ERR_INTERFACE_DF 0xE0001FDFL 01205 01206 #define FTLIB_ERR_INTERFACE_E0 0xE0001FE0L 01207 #define FTLIB_ERR_INTERFACE_E1 0xE0001FE1L 01208 #define FTLIB_ERR_INTERFACE_E2 0xE0001FE2L 01209 #define FTLIB_ERR_INTERFACE_E3 0xE0001FE3L 01210 #define FTLIB_ERR_INTERFACE_E4 0xE0001FE4L 01211 #define FTLIB_ERR_INTERFACE_E5 0xE0001FE5L 01212 #define FTLIB_ERR_INTERFACE_E6 0xE0001FE6L 01213 #define FTLIB_ERR_INTERFACE_E7 0xE0001FE7L 01214 #define FTLIB_ERR_INTERFACE_E8 0xE0001FE8L 01215 #define FTLIB_ERR_INTERFACE_E9 0xE0001FE9L 01216 #define FTLIB_ERR_INTERFACE_EA 0xE0001FEAL 01217 #define FTLIB_ERR_INTERFACE_EB 0xE0001FEBL 01218 #define FTLIB_ERR_INTERFACE_EC 0xE0001FECL 01219 #define FTLIB_ERR_INTERFACE_ED 0xE0001FEDL 01220 #define FTLIB_ERR_INTERFACE_EE 0xE0001FEEL 01221 #define FTLIB_ERR_INTERFACE_EF 0xE0001FEFL 01222 01223 #define FTLIB_ERR_INTERFACE_F0 0xE0001FF0L 01224 #define FTLIB_ERR_INTERFACE_F1 0xE0001FF1L 01225 #define FTLIB_ERR_INTERFACE_F2 0xE0001FF2L 01226 #define FTLIB_ERR_INTERFACE_F3 0xE0001FF3L 01227 #define FTLIB_ERR_INTERFACE_F4 0xE0001FF4L 01228 #define FTLIB_ERR_INTERFACE_F5 0xE0001FF5L 01229 #define FTLIB_ERR_INTERFACE_F6 0xE0001FF6L 01230 #define FTLIB_ERR_INTERFACE_F7 0xE0001FF7L 01231 #define FTLIB_ERR_INTERFACE_F8 0xE0001FF8L 01232 #define FTLIB_ERR_INTERFACE_F9 0xE0001FF9L 01233 #define FTLIB_ERR_INTERFACE_FA 0xE0001FFAL 01234 #define FTLIB_ERR_INTERFACE_FB 0xE0001FFBL 01235 #define FTLIB_ERR_INTERFACE_FC 0xE0001FFCL 01236 #define FTLIB_ERR_INTERFACE_FD 0xE0001FFDL 01237 #define FTLIB_ERR_INTERFACE_FE 0xE0001FFEL 01238 #define FTLIB_ERR_INTERFACE_FF 0xE0001FFFL 01239 01242 #ifdef __cplusplus 01243 } 01244 #endif 01245 01246 #endif 01247 01248 01249