Ad van der Weiden / Mbed 2 deprecated tcpft

Dependencies:   mbed ConfigFile

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ftlib.h Source File

ftlib.h

Go to the documentation of this file.
00001 /** @file */
00002 /*******************************************************************************  
00003  *  (c) by Knobloch GmbH
00004  *         Weedgasse 14
00005  *         D-55234 Erbes-B�im                                    
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 /** \cond doxygen ignore start */
00023 #define DWORD long int
00024 #define BYTE unsigned char
00025 #define USHORT unsigned short int
00026 #define UINT unsigned int
00027 #define UCHAR unsigned char
00028 
00029 #define HANDLE int
00030 #define HWND int
00031 #define __stdcall 
00032 #define LPCSTR char *
00033 #define LPVOID void *
00034 /** \endcond doxygen ignore end */
00035 
00036 /// \brief Communication Area for ft-Device
00037 typedef struct _FT_TRANSFER_AREA
00038 {
00039     /// \brief Digital Inputs Main Module
00040     /// Base+0x00: | E8 | E7 | E6 | E5 | E4 | E3 | E2 | E1 |
00041     unsigned char E_Main;
00042 
00043     /// \brief Digital Inputs Extension Modules 1
00044     /// Base+0x01: | E16| E15| E14| E13| E12| E11| E10| E9 |
00045     unsigned char E_Sub1;
00046     /// \brief Digital Inputs Extension Modules 2
00047     /// Base+0x02: | E24| E23| E22| E21| E20| E19| E18| E17|
00048     unsigned char E_Sub2;
00049     /// \brief Digital Inputs Extension Modules 3
00050     /// Base+0x03: | E32| E31| E30| E29| E28| E27| E26| E25|
00051     unsigned char E_Sub3;
00052 
00053     /// \brief Reserved
00054     /// Base+0x04..0x0B
00055     unsigned char rsvd1[8];
00056 
00057     /// \brief Abstandsensoren (1=detektiert)
00058     /// Base+0x0C: |  0 |  0 |  0 |  0 |  0 |  0 | D2 | D1 |
00059     unsigned char Distance;
00060 
00061     /// \brief Base+0x0D: reserved
00062     unsigned char rsvd2;
00063 
00064     /// \brief IR-Receiver input code 
00065     ///
00066     /// Base+0x0E: | 0 | 0 | 0 | C | T | T | T | T
00067     /// C = Code: 0 = Code 1 active, 1 = Code 2 active
00068     /// TTTT = Keycode 0..11
00069     /// Arangement of keys on Transmitter
00070     ///   1        8
00071     ///   2     7
00072     ///   3          10
00073     ///   4      9
00074     ///   5        11
00075     ///   6
00076     /// Taste 1 = M3 right
00077     /// Taste 2 = M3 left
00078     /// Taste 3 = Speed. M1
00079     /// Taste 4 = Speed. M2
00080     /// Taste 5 = Speed. M3
00081     /// Taste 6 = Code 2
00082     /// Taste 7 = M1 backward
00083     /// Taste 8 = M1 forward
00084     /// Taste 9 = M2 left
00085     /// Taste 10 = M2 right
00086     /// Taste 11 = Code 1
00087     unsigned char IRKeys;
00088 
00089     /// \brief Base+0x0F: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
00090     unsigned char res_1;
00091 
00092     /// \brief Analoginput of main module
00093     ///
00094     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00095     /// Base+0x10..0x11: AX (Master Modul)
00096     unsigned short AX;
00097     /// \brief Analoginput of main module
00098     ///
00099     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00100     /// Base+0x12..0x13: AY (Master Modul)
00101     unsigned short AY;
00102     /// \brief Analoginput of main module
00103     ///
00104     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00105     /// Base+0x14..0x15: A1 (Master Modul)
00106     unsigned short A1;
00107     /// \brief Analoginput of main module
00108     ///
00109     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00110     /// Base+0x16..0x17: A2 (Master Modul)
00111     unsigned short A2;
00112     /// \brief Analoginput of main module
00113     ///
00114     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00115     /// Base+0x18..0x19: AZ (Master Modul, vom SLAVE-Modul-BUS)
00116     unsigned short AZ;
00117     /// \brief Analoginput of main module
00118     ///
00119     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00120     /// Base+0x1A..0x1B: AV (Versorgungsspannung Master Modul)
00121     unsigned short AV;
00122     /// \brief Analoginput of main module
00123     ///
00124     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00125     /// Base+0x1C..0x1D: D1 (Abstandssensor 1)
00126     unsigned short D1;
00127     /// \brief Analoginput of main module
00128     ///
00129     /// 8x 16 Bit, Range 0..1023, L:H Format (intel) )
00130     /// Base+0x1E..0x1F: D2 (Abstandssensor 2)
00131     unsigned short D2;
00132 
00133     /// \brief Analoginput of slave module 1
00134     ///
00135     /// Base+0x20..0x21: AX (Slave 1 Modul)
00136     unsigned short AXS1;
00137     /// \brief Analoginput of slave module 1
00138     ///
00139     /// Base+0x22..0x23: AX (Slave 2 Modul)
00140     unsigned short AXS2;
00141     /// \brief Analoginput of slave module 1
00142     ///
00143     /// Base+0x24..0x25: AX (Slave 3 Modul)
00144     unsigned short AXS3;
00145 
00146     /// \brief Detection limit for distance sensor 1 ( to generate digital from analog input )
00147     ///
00148     /// Base+0x26..0x27: DS1
00149     unsigned short DS1;
00150     /// \brief Detection limit for distance sensor 2 ( to generate digital from analog input )
00151     ///
00152     /// Base+0x28..0x29: DS2
00153     unsigned short DS2;
00154 
00155     /// \brief Reserved
00156     /// Base+0x2A..0x2B
00157     unsigned short ZE;
00158 
00159     /// \brief Reserved
00160     /// Base+0x2C..0x2F
00161     unsigned char rsvd3[4];
00162 
00163     /// \brief 16-Bit Timer
00164     ///
00165     /// Base+0x30..0x31: Timer 1ms Inkrement
00166     unsigned short Timer1ms;
00167     /// \brief 16-Bit Timer
00168     ///
00169     /// Base+0x32..0x33: Timer 10ms Inkrement
00170     unsigned short Timer10ms;
00171     /// \brief 16-Bit Timer
00172     ///
00173     /// Base+0x34..0x35: Timer 100ms Inkrement
00174     unsigned short Timer100ms;
00175     /// \brief 16-Bit Timer
00176     ///
00177     /// Base+0x36..0x37: Timer 1s Inkrement
00178     unsigned short Timer1s;
00179     /// \brief 16-Bit Timer
00180     ///
00181     /// Base+0x38..0x39: Timer 10s Inkrement
00182     unsigned short Timer10s;
00183     /// \brief 16-Bit Timer
00184     ///
00185     /// Base+0x3A..0x3B: Timer 1min Inkrement
00186     unsigned short Timer1min;
00187 
00188     /// \brief Reserved
00189     /// Base+0x3C..0x3D
00190     unsigned short res_bF;
00191     /// \brief Reserved
00192     /// Base+0x3E
00193     unsigned char res_bT;
00194 
00195     /// \brief Reserved
00196     /// Base+0x3F
00197     unsigned char rsvd4[1];
00198 
00199     /// \brief Outputs of the main module ( polarity )
00200     ///
00201     /// Base+0x40: |M4B |M4A |M3B |M3A |M2B |M2A |M1B |M1A |
00202     unsigned char M_Main;
00203     /// \brief Outputs of extension module 1
00204     ///
00205     /// Base+0x41: |M8B |M8A |M7B |M7A |M6B |M6A |M5B |M5A |
00206     unsigned char M_Sub1;
00207     /// \brief Outputs of extension module 2
00208     ///
00209     /// Base+0x42: |M12B|M12A|M11B|M11A|M10B|M10A|M9B |M9A |
00210     unsigned char M_Sub2;
00211     /// \brief Outputs of extension module 3
00212     ///
00213     /// Base+0x43: |M16B|M16A|M15B|M15A|M14B|M14A|M13B|M13A|
00214     unsigned char M_Sub3;
00215 
00216     /// \brief Reserved
00217     /// Base+0x44..0x47
00218     unsigned char rsvd5[4];
00219 
00220     ///\brief Outputs of the main module ( energy saver mode )
00221     ///
00222     /// 1 = energy saver mode, 0 = operational, PowerUp = 1
00223     /// Base+0x48: | 0  | 0  | 0  | 0  | M4 | M3 | M2 | M1 |
00224     unsigned char MES_Main;
00225     /// \brief Outputs of extension module 1 ( energy saver mode )
00226     ///
00227     /// Base+0x49: | 0  | 0  | 0  | 0  | M8 | M7 | M6 | M5 |
00228     unsigned char MES_Sub1;
00229     /// \brief Outputs of extension module 2 ( energy saver mode )
00230     ///
00231     /// Base+0x4A: | 0  | 0  | 0  | 0  | M12| M11| M10| M9 |
00232     unsigned char MES_Sub2;
00233     /// \brief Outputs of extension module 3 ( energy saver mode )
00234     ///
00235     /// Base+0x4B: | 0  | 0  | 0  | 0  | M16| M15| M14| M13|
00236     unsigned char MES_Sub3;
00237 
00238     /// \brief Reserved
00239     /// Base+0x4C
00240     unsigned char rsvd6[1];
00241 
00242     /// \brief Reserved
00243     /// Base+0x4D:
00244     unsigned char reserved_l1;
00245     /// \brief Reserved
00246     /// Base+0x4E: 
00247     unsigned char reserved_l2;
00248     /// \brief Reserved
00249     /// Base+0x4F: 
00250     unsigned char reserved_l3;
00251 
00252     /// \brief Outputs of the main module (PWM values, range =0..7)
00253     ///
00254     /// Base+0x50: M1A
00255     /// Base+0x51: M1B
00256     /// Base+0x52: M2A
00257     /// Base+0x53: M2B
00258     /// Base+0x54: M3A
00259     /// Base+0x55: M3B
00260     /// Base+0x56: M4A
00261     /// Base+0x57: M4B
00262     unsigned char MPWM_Main[8];
00263 
00264     /// \brief Outputs of slave module 1 (PWM values, range =0..7)
00265     ///
00266     /// Base+0x58: M5A
00267     /// Base+0x59: M5B
00268     /// Base+0x5A: M6A
00269     /// Base+0x5B: M6B
00270     /// Base+0x5C: M7A
00271     /// Base+0x5D: M7B
00272     /// Base+0x5E: M8A
00273     /// Base+0x5F: M8B
00274     unsigned char MPWM_Sub1[8];
00275 
00276     /// \brief Outputs of slave module 2 (PWM values, range =0..7)
00277     ///
00278     /// Base+0x60: M9A
00279     /// Base+0x61: M9B
00280     /// Base+0x62: M10A
00281     /// Base+0x63: M10B
00282     /// Base+0x64: M11A
00283     /// Base+0x65: M11B
00284     /// Base+0x66: M12A
00285     /// Base+0x67: M12B
00286     unsigned char MPWM_Sub2[8];
00287 
00288     /// \brief Outputs of slave module 3 (PWM values, range =0..7)
00289     ///
00290     /// Base+0x68: M13A
00291     /// Base+0x69: M13B
00292     /// Base+0x6A: M14A
00293     /// Base+0x6B: M14B
00294     /// Base+0x6C: M15A
00295     /// Base+0x6D: M15B
00296     /// Base+0x6E: M16A
00297     /// Base+0x6F: M16B
00298     unsigned char MPWM_Sub3[8];
00299 
00300     /// \brief Reserved
00301     /// Base+0x70..0x8F
00302     unsigned char rsvd7[32];
00303 
00304 
00305     /// \brief Analoginput of slave module 1 (Update-Time: 20ms)
00306     ///
00307     /// Base+0x90..0x91: A1 (Slave 1 Modul)
00308     unsigned short A1S1;
00309     /// \brief Analoginput of slave module 2 (Update-Time: 20ms)
00310     ///
00311     /// Base+0x92..0x93: A1 (Slave 2 Modul)
00312     unsigned short A1S2;
00313     /// \brief Analoginput of slave module 3 (Update-Time: 20ms)
00314     ///
00315     /// Base+0x94..0x95: A1 (Slave 3 Modul)
00316     unsigned short A1S3;
00317 
00318     /// \brief Analoginput of slave modules 1 (Update-Time: 20ms)
00319     ///
00320     /// Base+0x96..0x97: AV (Slave 1 Modul)
00321     unsigned short AVS1;
00322     /// \brief Analoginput of slave modules 2 (Update-Time: 20ms)
00323     ///
00324     /// Base+0x98..0x99: AV (Slave 2 Modul)
00325     unsigned short AVS2;
00326     /// \brief Analoginput of slave modules 3 (Update-Time: 20ms)
00327     ///
00328     /// Base+0x9A..0x9B: AV (Slave 3 Modul)
00329     unsigned short AVS3;
00330 
00331     /// \brief Reserved
00332     /// Base+0x9C..0x9F
00333     unsigned char rsvd8[4];
00334 
00335     /// \brief Reserved
00336     /// Base+0xA0..0xA1: AX (Interface) Resistor-Value (0..5662 Ohm)
00337     unsigned short AX_R;
00338 
00339     /// \brief Base+0xA2..0xA3: AY (Interface) Resistor-Value (0..5662 Ohm)
00340     unsigned short AY_R;
00341 
00342     /// \brief Base+0xA4..0xA5: AX (Slave 1 Modul) Resistor-Value (0..5662 Ohm)
00343     unsigned short AXS1_R;
00344 
00345     /// \brief Base+0xA6..0xA7: AX (Slave 2 Modul) Resistor-Value (0..5662 Ohm)
00346     unsigned short AXS2_R;
00347 
00348     /// \brief Base+0xA8..0xA9: AX (Slave 3 Modul) Resistor-Value (0..5662 Ohm)
00349     unsigned short AXS3_R;
00350 
00351     /// \brief Reserved
00352     /// Base+0xAA..0xDF
00353     unsigned char rsvd10[54];
00354 
00355     /// \brief Operation mode 
00356     /// Base+0xE0: 0x00=online, 0x01=binary download
00357     unsigned char Mode;
00358 
00359     /// \brief Output PWM update (0x01=always, 0x02=once)
00360     /// Base+0xE1: | 0  | 0  | 0  | 0  | 0  | 0  |ONCE|ALWA|
00361     unsigned char MPWM_Update;
00362 
00363     /// \brief Base+0xE2
00364     ///
00365     /// 0 = Transfer Area closed
00366     /// 1 = Transfer Area is working (Library Thread is running)
00367     unsigned char TransferAktiv;
00368 
00369     /// \brief Reserved
00370     /// Base+0xE3..0xE5
00371     unsigned char rsvd11[3];
00372 
00373     /// \brief I/O Extension modules connected
00374     ///
00375     /// Base+0xE6: | 0  | 0  | 0  | 0  | 0  | S2 | S1 | S0 |
00376     /// S2..S0 = Number of connected I/O Extension Modules
00377     unsigned char BusModules;
00378 
00379     /// \brief Slot 1 connected extension module type
00380     /// Base+0xE7: ?
00381     unsigned char SlotModule1;
00382 
00383     /// \brief Slot 2 connected extension module type
00384     /// Base+0xE8: ?
00385     unsigned char SlotModule2;
00386 
00387     /// \brief Reserved
00388     /// Base+0xE9..0xEF
00389     unsigned char rsvd12[7];
00390 
00391 
00392     /// \brief Change Bytes
00393     ///
00394     /// 1 = EG (Master or Slave 1..3) have changed
00395     /// The Application must read and change this byte to "0"
00396     /// Base+0xF0: 
00397     unsigned char ChangeEg;
00398 
00399     /// \brief 1 = Analog Inputs (Master AX, AY, A1, A2, AV, AZ or Extension 1..3 AX,AY,AV) 
00400     ///
00401     /// or RfPower, RfError have changed
00402     /// The Application must read and change this byte to "0"
00403     /// Base+0xF1: 
00404     unsigned char ChangeAn;
00405 
00406     /// \brief 1 = Infrared Input (Robo-IF) or RfStatus have changed
00407     ///
00408     /// The Application must read and change this byte to "0"
00409     /// Base+0xF2: 
00410     unsigned char ChangeIr;
00411 
00412 
00413     /// \brief Reserved
00414     /// Base+0xF3..0xFF
00415     unsigned char rsvd13[13];
00416 
00417 
00418     /// \brief Digital inputs as 16 bit values
00419     ///
00420     /// Base+0x100..0x101  Input 1 (Master-Modul)
00421     /// Base+0x102..0x103  Input 2 (Master-Modul)
00422     /// Base+0x104..0x105  Input 3 (Master-Modul)
00423     /// Base+0x106..0x107  Input 4 (Master-Modul)
00424     /// Base+0x108..0x109  Input 5 (Master-Modul)
00425     /// Base+0x10A..0x10B  Input 6 (Master-Modul)
00426     /// Base+0x10C..0x10D  Input 7 (Master-Modul)
00427     /// Base+0x10E..0x10F  Input 8 (Master-Modul)
00428     unsigned short E16_Main[8];
00429     /// \brief Digital inputs as 16 bit values
00430     ///
00431     /// Base+0x110..0x111  Input 9 (Slave1-Modul)
00432     /// Base+0x112..0x113  Input 10 (Slave1-Modul)
00433     /// Base+0x114..0x115  Input 11 (Slave1-Modul)
00434     /// Base+0x116..0x117  Input 12 (Slave1-Modul)
00435     /// Base+0x118..0x119  Input 13 (Slave1-Modul)
00436     /// Base+0x11A..0x11B  Input 14 (Slave1-Modul)
00437     /// Base+0x11C..0x11D  Input 15 (Slave1-Modul)
00438     /// Base+0x11E..0x11F  Input 16 (Slave1-Modul)
00439     unsigned short E16_Sub1[8];
00440     /// \brief Digital inputs as 16 bit values
00441     ///
00442     /// Base+0x120..0x121  Input 17 (Slave2-Modul)
00443     /// Base+0x122..0x123  Input 18 (Slave2-Modul)
00444     /// Base+0x124..0x125  Input 19 (Slave2-Modul)
00445     /// Base+0x126..0x127  Input 20 (Slave2-Modul)
00446     /// Base+0x128..0x129  Input 21 (Slave2-Modul)
00447     /// Base+0x12A..0x12B  Input 22 (Slave2-Modul)
00448     /// Base+0x12C..0x12D  Input 23 (Slave2-Modul)
00449     /// Base+0x12E..0x12F  Input 24 (Slave2-Modul)
00450     unsigned short E16_Sub2[8];
00451     /// \brief Digital inputs as 16 bit values
00452     ///
00453     /// Base+0x130..0x131  Input 25 (Slave3-Modul)
00454     /// Base+0x132..0x133  Input 26 (Slave3-Modul)
00455     /// Base+0x134..0x135  Input 27 (Slave3-Modul)
00456     /// Base+0x136..0x137  Input 28 (Slave3-Modul)
00457     /// Base+0x138..0x139  Input 29 (Slave3-Modul)
00458     /// Base+0x13A..0x13B  Input 30 (Slave3-Modul)
00459     /// Base+0x13C..0x13D  Input 31 (Slave3-Modul)
00460     /// Base+0x13E..0x13F  Input 32 (Slave3-Modul)
00461     unsigned short E16_Sub3[8];
00462     /// \brief Distance sensors D1 & D2 (Master Modul)
00463     ///
00464     /// Base+0x140..0x141  Distance sensor D1 (Master-Modul)
00465     /// Base+0x142..0x143  Distance sensor D2 (Master-Modul)
00466     unsigned short Distance16[2];
00467 
00468     /// \brief Reserved
00469     /// Base+0x144..0x14F
00470     unsigned char rsvd14[12];
00471  
00472     /// \brief IR-Keys as 16 bit values (independent of code)
00473     ///
00474     /// Base+0x150..0x151  IR Taste  1 (M3R)
00475     /// Base+0x152..0x153  IR Taste  2 (M3L)
00476     /// Base+0x154..0x155  IR Taste  3 (M1)
00477     /// Base+0x156..0x157  IR Taste  4 (M2)
00478     /// Base+0x158..0x159  IR Taste  5 (M3)
00479     /// Base+0x15A..0x15B  IR Taste  6 (Code2)
00480     /// Base+0x15C..0x15D  IR Taste  7 (M1BW)
00481     /// Base+0x15E..0x15F  IR Taste  8 (M1FW)
00482     /// Base+0x160..0x161  IR Taste  9 (M2L)
00483     /// Base+0x162..0x163  IR Taste 10 (M2R)
00484     /// Base+0x164..0x165  IR Taste 11 (Code1)
00485     unsigned short IRKeys16[11];
00486     /// \brief Reserved
00487     /// Base+0x166..0x16F
00488     unsigned char rsvd15[10];
00489 
00490     /// \brief IR-Keys as 16 bit values (code 1)
00491     ///
00492     /// Base+0x170..0x171  IR Taste  1 (M3R)    Code1
00493     /// Base+0x172..0x173  IR Taste  2 (M3L)    Code1
00494     /// Base+0x174..0x175  IR Taste  3 (M1)     Code1
00495     /// Base+0x176..0x177  IR Taste  4 (M2)     Code1
00496     /// Base+0x178..0x179  IR Taste  5 (M3)     Code1
00497     /// Base+0x17A..0x17B  always 0
00498     /// Base+0x17C..0x17D  IR Taste  7 (M1BW)   Code1
00499     /// Base+0x17E..0x17F  IR Taste  8 (M1FW)   Code1
00500     /// Base+0x180..0x181  IR Taste  9 (M2L)    Code1
00501     /// Base+0x182..0x183  IR Taste 10 (M2R)    Code1
00502     /// Base+0x184..0x185  IR Taste 11 (Code1)  Code1 
00503     unsigned short IRKeys16Code1[11];
00504 
00505     /// \brief Reserved
00506     ///
00507     /// Base+0x186..0x18F
00508     unsigned char rsvd16[10];
00509  
00510     /// \brief IR-Keys as 16 bit values (code 1)
00511     ///
00512     /// Base+0x190..0x191  IR Taste  1 (M3R)    Code2
00513     /// Base+0x192..0x193  IR Taste  2 (M3L)    Code2
00514     /// Base+0x194..0x195  IR Taste  3 (M1)     Code2
00515     /// Base+0x196..0x197  IR Taste  4 (M2)     Code2
00516     /// Base+0x198..0x199  IR Taste  5 (M3)     Code2
00517     /// Base+0x19A..0x19B  IR Taste  6 (Code2)  Code2 
00518     /// Base+0x19C..0x19D  IR Taste  7 (M1BW)   Code2
00519     /// Base+0x19E..0x19F  IR Taste  8 (M1FW)   Code2
00520     /// Base+0x1A0..0x1A1  IR Taste  9 (M2LE)   Code2
00521     /// Base+0x1A2..0x1A3  IR Taste 10 (M2RI)   Code2
00522     /// Base+0x1A4..0x1A5  always 0
00523     unsigned short IRKeys16Code2[11];
00524 
00525     /// \brief Reserved
00526     ///
00527     /// Base+0x1A6..0x1AF
00528     unsigned char rsvd17[10];
00529     
00530     /// \brief 1 = RfError (0x1B4..0x1B5) is > 25. We think, Rf connection (only Onlinemodus) is lost 
00531     ///
00532     /// Base+0x1B0..0x1B1
00533     unsigned short RfStatus;
00534 
00535     /// \brief Signal Power of the RF Signal entering the RF input (only Onlinemodus, 7 bit, 0..127)  
00536     ///
00537     /// Base+0x1B2..0x1B3
00538     unsigned short RfPower;
00539 
00540     /// \brief Rf-Error Count (0..250)  
00541     ///
00542     /// Base+0x1B4..0x1B5
00543     unsigned short RfError;
00544 
00545     /// \brief Number of Messages inside the Buffer
00546     ///
00547     /// Base+0x1B6..0x1B7
00548     unsigned short MsgNumInBuffer;
00549 
00550     /// \brief Number of Interface-RF-Modul if installed or "-1" if not installed
00551     ///
00552     /// Base+0x1B8..0x1B9
00553     unsigned short RfModulNr;
00554 
00555     /// \brief Reserved
00556     /// Base+0x1BA..0x1BB
00557     unsigned char rsvd19[2];
00558 
00559     /// \brief Reserved for Internal Use
00560     /// Base+0x1BC..0x1BF
00561     DWORD dwTC;
00562 
00563     /// \brief Reserved
00564     /// Base+0x1C0..0x1FF
00565     unsigned char rsvd20[64];
00566 
00567 } FT_TRANSFER_AREA;
00568 /** \fn typedef FT_TRANSFER_AREA
00569  *  Type definition for the transfer area.
00570  */
00571 
00572 struct ft_handle_devices;//forward declaration
00573 typedef struct ft_handle_devices *FT_HANDLE;
00574 
00575 /** \cond doxygen ignore start */
00576 
00577 bool test_and_set(int& s);
00578 void increment(int& s);
00579 
00580 FT_HANDLE OpenFtCommDevice(char *sDevice, long int dwTyp, long int dwZyklus);
00581 int GetFtStatus(FT_HANDLE hFt, int *num);
00582 long int GetFtDeviceTypeString(FT_HANDLE hft, char *dest, int len);
00583 char *GetLibVersionStrg();
00584 long int SetRFMode(FT_HANDLE hFt, long int frequency, long int callSign);
00585 long int GetRFMode(FT_HANDLE hFt, long int *frequency, long int *callSign);
00586 long int SetRealSerial(FT_HANDLE hFt, unsigned char bOn);
00587 char IsFtInterfaceConnected(FT_HANDLE hFt);
00588 
00589                                                 // Numbers from GetFtDeviceTyp()
00590 #define     NO_FT_DEVICE                0       // No ft Device connected
00591 #define     FT_AUTO_TYPE                1       // Search for Device
00592 #define     FT_INTELLIGENT_IF           10      // FT-Intelligent Interface connect (serial)
00593 #define     FT_INTELLIGENT_IF_SLAVE     20      // FT-Intelligent Interface with Extension connect (serial)
00594 #define     FT_ROBO_IF_IIM              50      // FT-Robo Interface with Intelligent-Interface-Modus connect (serial)
00595 #define     FT_ROBO_IF_USB              60      // FT-Robo Interface connect with USB-Port
00596 #define     FT_ROBO_IF_COM              70      // FT-Robo Interface connect with COM- (serial-) Port
00597 #define     FT_ROBO_IF_OVER_RF          80      // FT-Robo Interface connect over RF-Data-Link
00598 #define     FT_ROBO_IO_EXTENSION        90      // FT-Robo I/O-Extension
00599 #define     FT_ROBO_RF_DATA_LINK        110     // FT-Robo RF Data Link
00600 #define     FT_MAX_TYP_NUMBER           999     // Max Typ Number
00601 
00602 
00603 #define     FT_ANALOG_CYCLE             5       // Standard: 5*Read Digital Inputs, then EX, EY
00604                                                 // Only for old Intelligent Interface { for OpenFtCommDevice() }
00605 
00606 
00607 #define     PORT_NONE                   0
00608 #define     PORT_COM                    1       // Standard: COM1
00609 #define     PORT_COM1                   1
00610 #define     PORT_COM2                   2
00611 #define     PORT_COM3                   3
00612 #define     PORT_COM4                   4
00613 #define     PORT_USB                    50
00614 
00615                                                 // Moduletypes for Robo Interface
00616 #define     MODULE_NOT_INSTALLED        0       // Not installed
00617 #define     MODULE_RF1                  1       // RF Data Link Module is installed
00618 
00619 
00620 #define     LEN_STRG1                   30      // Length of SN / FW Strings
00621 #define     LEN_STRG2                   255     // Length of Name-Strigs
00622 #define     ANZ_DISTANCE_TYPES          2       // Number of supported Distance-Modes
00623 #define     LEN_DIST_TYPE_NAMES         30      // Lenght of Mode-Names
00624 #define     LEN_DIST_VAR_NAMES          20      // Lenght of Variable-Names
00625 #define     NAME_LEN                    85      // Lenght of Prog-Names
00626 
00627 
00628 #define     MEM_FLASH1                  0       // Use Memory FLASH-1 Block
00629 #define     MEM_FLASH2                  1       // Use Memory FLASH-2 Block
00630 #define     MEM_RAM                     2       // Use Memory RAM Block
00631 #define     MEM_NO_ACCESS               -1      // No Memory Select (for SetFtProgramActiv() )
00632 #define     DOWNLOAD_PROG_NAMELEN       80      // Max. 80 characters/bytes for the programname
00633 
00634                                                 // Values for "dwParameter" from DownloadFtProgram() 
00635 #define     PROG_TYP_NORMAL             1       // Program can bei Start with Software and Switch
00636 #define     PROG_TYP_AUTOSTART          2       // Program is startable at Power-On
00637 
00638 
00639                                                 // COM-Modes for SetFtDeviceCommMode()
00640 #define     IF_COM_ONLINE               1       // Online Mode
00641 #define     IF_COM_MESSAGE              3       // Messagemode
00642 #define     IF_COM_DATA                 4       // Datatransfer
00643 #define     IF_COM_PARAMETER            5       // Get Mode
00644 
00645 
00646                                                 // Message-System
00647 #define     MSG_HWID_SELF               0       // Message for himself
00648 #define     MSG_HWID_SER                1       // Message for the Robo-Interface serial port
00649 #define     MSG_HWID_RF                 2       // Message for other Interfaces (over RF)
00650 #define     MSG_HWID_RF_SELF            3       // Message for other Interfaces (over RF) and for himself (back over RF)
00651 
00652 #define     MSG_BUFF_SER                1       // SER-Messagebuffer (for ClearRfMessage() )
00653 #define     MSG_BUFF_RF                 2       // RF-Messagebuffer (for ClearRfMessage() )
00654 #define     MSG_BUFF_SELF               4       // SELF-Messagebuffer (for ClearRfMessage() )
00655 
00656 #define     MSG_SEND_NORMAL             0       // Message send "normal"
00657 #define     MSG_SEND_OTHER_THAN_LAST    1       // Message send "if not the same as the last message"
00658 #define     MSG_SEND_IF_NOT_PRESENT     2       // Message send "if not present in the send buffer"
00659 
00660 
00661 
00662                                                 // Interface Distancesensor-Inputs Type
00663 #define     IF_DS_INPUT_VOLTAGE         0       // Voltage
00664 #define     IF_DS_INPUT_DISTANCE        1       // Distance
00665 #define     IF_DS_INPUT_TOL_STD         20      // Toleranz (Standard)
00666 #define     IF_DS_INPUT_REP_STD         3       // Repeat (Standard)
00667 
00668 
00669 #ifndef FT_H
00670     #pragma pack( push, 1 )
00671     typedef union
00672     {
00673         BYTE    aucMsg[6];
00674 
00675         struct 
00676         {
00677             BYTE    ucHwId;       
00678             BYTE    ucSubId;       
00679             BYTE    ucB0;
00680             BYTE    ucB1;
00681             BYTE    ucB2;
00682             BYTE    ucB3;
00683         } B;
00684 
00685         struct 
00686         {
00687             BYTE    ucHwId;       
00688             BYTE    ucSubId;       
00689             USHORT  uiMsgId;        
00690             USHORT  uiMsg;
00691         } W;
00692 
00693         struct 
00694         {
00695             BYTE    ucHwId;       
00696             BYTE    ucSubId;       
00697             DWORD   dw;
00698         } L;
00699     } SMESSAGE;
00700     #pragma pack( pop )
00701 #endif
00702 
00703     //typedef void * FT_HANDLE;
00704     typedef void (*DATA_UPDATE_CALLBACK)(void* Context);
00705     typedef void (*MSG_UPDATE_CALLBACK)(SMESSAGE *);
00706 
00707 
00708 
00709     // Important: 
00710     // Initialise all unused Variables in this Structure with "NULL"
00711     //
00712     // Every Time the driver reads new information from the Device
00713     // the Library checks this structure 
00714     typedef struct _NOTIFICATION_EVENTS 
00715     {
00716         // Callback-Procedure
00717         DATA_UPDATE_CALLBACK NotificationCallback;  // Pointer to the Callback-Procedure
00718         void* Context;                              // Pointer to the Context for the Callback-Procedure
00719 
00720         // for SetEvent()
00721         HANDLE hEvent;
00722 
00723         // for posting a Message (PostMessage() with wParam & lParam = 0)
00724         HWND    WindowsHandle;                      // handle to the destination window
00725         DWORD   Message;                            // message ID
00726 
00727 
00728         // Callback-Procedure for Messaging
00729         MSG_UPDATE_CALLBACK     CallbackMessage;    // Pointer to the Callback-Procedure for Receiving Messages
00730 
00731     } 
00732     NOTIFICATION_EVENTS;
00733 
00734 
00735 
00736 
00737     typedef struct _FT_SERIAL_NUMBER
00738     {
00739         DWORD   dwSn;                   // actually Serial Number at Power On
00740         DWORD   dwSn1;                  // Serial Number-1
00741         DWORD   dwSn2;                  // Serial Number-2
00742         DWORD   dwSnAktiv;              // Serial Number Activ (1/2) for next Power On
00743     } FT_SERIAL_NUMBER;
00744 
00745 
00746 
00747     typedef struct _FT_DISTANCE         // Robo Interface Distance Sensor
00748     {
00749         unsigned char   aDistModeNames[LEN_DIST_TYPE_NAMES];    // RO   Names for the Modes  
00750 
00751         DWORD           dwEnableDisVal1;                        // RO   1=Ask for Distance Value 1
00752         unsigned char   aDisVal1Name[LEN_DIST_VAR_NAMES];       // RO   Value 1 Name
00753         DWORD           dwDisVal1;                              // RW   Value 1
00754 
00755         DWORD           dwEnableDisVal2;                        // RO   1=Ask for Distance Value 2
00756         unsigned char   aDisVal2Name[LEN_DIST_VAR_NAMES];       // RO   Value 2 Name
00757         DWORD           dwDisVal2;                              // RW   Value 2
00758 
00759         DWORD           dwEnableDisVal3;                        // RO   1=Ask for Distance Value 3
00760         unsigned char   aDisVal3Name[LEN_DIST_VAR_NAMES];       // RO   Value 3 Name
00761         DWORD           dwDisVal3;                              // RW   Value 3
00762 
00763         DWORD           dwEnableDisVal4;                        // RO   1=Ask for Distance Value 4
00764         unsigned char   aDisVal4Name[LEN_DIST_VAR_NAMES];       // RO   Value 4 Name
00765         DWORD           dwDisVal4;                              // RW   Value 4
00766 
00767         DWORD           dwEnableDisVal5;                        // RO   1=Ask for Distance Value 5
00768         unsigned char   aDisVal5Name[LEN_DIST_VAR_NAMES];       // RO   Value 5 Name
00769         DWORD           dwDisVal5;                              // RW   Value 5
00770 
00771         DWORD           dwEnableDisVal6;                        // RO   1=Ask for Distance Value 6
00772         unsigned char   aDisVal6Name[LEN_DIST_VAR_NAMES];       // RO   Value 6 Name
00773         DWORD           dwDisVal6;                              // RW   Value 6
00774 
00775         DWORD           dwEnableDisVal7;                        // RO   1=Ask for Distance Value 7
00776         unsigned char   aDisVal7Name[LEN_DIST_VAR_NAMES];       // RO   Value 7 Name
00777         DWORD           dwDisVal7;                              // RW   Value 7
00778 
00779         DWORD           dwEnableDisVal8;                        // RO   1=Ask for Distance Value 8
00780         unsigned char   aDisVal8Name[LEN_DIST_VAR_NAMES];       // RO   Value 8 Name
00781         DWORD           dwDisVal8;                              // RW   Value 8
00782     } FT_DISTANCE;
00783 
00784 
00785 
00786     typedef union _FT_SETTING
00787     {
00788         struct                              // RO = Read Only, RW = Read / Write
00789         {
00790             DWORD   dwIfTyp;                // RO   Type of connected Device
00791                                             //      possible Values:       
00792                                             //          NO_FT_DEVICE            no answer from the Device - is it gone ?
00793                                             //          FT_INTELLIGENT_IF       FT-Intelligent Interface connect (serial)
00794                                             //          FT_ROBO_IF_IIM          FT-Robo Interface with Intelligent-Interface-Modus connect (serial)
00795                                             //          FT_ROBO_IF_USB          FT-Robo Interface connect with USB-Port
00796                                             //          FT_ROBO_IF_COM          FT-Robo Interface connect with COM- (serial-) Port
00797                                             //          FT_ROBO_IO_EXTENSION    FT-Robo I/O-Extension
00798                                             //          FT_ROBO_RF_DATA_LINK    FT-Robo RF Data Link
00799                                             //             FT_ROBO_IF_OVER_RF   FT-Robo Interface connect over RF-Data-Link
00800 
00801                                             // Serial numbers section
00802             DWORD   dwSn;                   // RO   actually Serial Number at Power On
00803             DWORD   dwSn1;                  // RW   Serial Number-1             (only FT-Robo Products)
00804             DWORD   dwSn2;                  // RO   Serial Number-2             (only FT-Robo Products)
00805             DWORD   dwSnAktiv;              // RW   Set Serial Number Activ (1/2) for next Power On
00806 
00807             DWORD   dwFw;                       // RO   Is Firmware Version for this product (only FT-Robo Products)
00808 
00809             unsigned char aSnStrg[LEN_STRG1];   // RO   String with Serialnumber    (only FT-Robo Products)
00810             unsigned char aSn1Strg[LEN_STRG1];  // RO   String with Serialnumber1   (only FT-Robo Products)
00811             unsigned char aSn2Strg[LEN_STRG1];  // RO   String with Serialnumber2   (only FT-Robo Products)
00812             unsigned char aFwStrg[LEN_STRG1];   // RO   String with Firmware        (only FT-Robo Products)
00813             unsigned char aSNaStrg[LEN_STRG2];  // RO   String with Short-Name      (only FT-Robo Products)
00814             unsigned char aLNaStrg[LEN_STRG2];  // RO   String with Long-Name       (only FT-Robo Products)
00815 
00816             DWORD   dwFwRoboIfVerAtLibIsMade;   // RO   Robo-If Firmware Version as this Lib is made
00817             DWORD   dwFwIoExtVerAtLibIsMade;    // RO   IO-Extension Firmware Version as this Lib is made
00818             DWORD   dwFwRfDataVerAtLibIsMade;   // RO   RF-DataLink Firmware Version as this Lib is made
00819             unsigned char aFwRoboIfVerAtLibIsMadeStrg[LEN_STRG1];   // RO   String with Robo-If Firmware Version as this Lib is made
00820             unsigned char aFwIoExtVerAtLibIsMadeStrg[LEN_STRG1];    // RO   String with IO-Extension Firmware Version as this Lib is made
00821             unsigned char aFwRfDataVerAtLibIsMadeStrg[LEN_STRG1];   // RO   String with Rf-Data-Link Firmware Version as this Lib is made
00822                                             
00823             DWORD   dwReserved;                 // Reserved for later use 
00824 
00825 
00826                                                 // Output Section
00827             DWORD   dwOutputAutoOff[4];         // RW   M1=[0]...M4=[3] Energy saver: 
00828                                                 //      "1" = "Power Off" motor driver when both outputs logical "0" (reduces Energy)
00829                                                 //      "0" = do not automatically disable the motor driver
00830             DWORD   dwOutputPwmType;            // RW   PWM-Type (Today only "0" supported)
00831 
00832 
00833                                                 // Robo Interface Distance Sensor
00834             DWORD   dwAnzDistanceModes;         // RO   Number of supported Distance Modes (Array Entries)
00835             DWORD   dwDistanceMode;             // RW   Type and Mode for Distance-Sensor (Index-Number in the range 0...ANZ_DISTANCE_TYPES)
00836             FT_DISTANCE     sDistance[ANZ_DISTANCE_TYPES];  // RW   Values for setting
00837                         
00838 
00839                                                         // Robo Interface Memory Section
00840             DWORD           dwProg[3];                  // RO   1=Program is saved in the Memory block; [0]=Flash-1 [1]=Flash-2 [2]=Ram
00841             unsigned char   aProgNames[3][NAME_LEN];    // RO   [0]=Flash-1 Prog Name; [1]=Flash-2 Prog Name; [2]=Ram Prog-Name
00842             DWORD           dwF1AutoStart;              // RO   1=Autostart Flash-1 programm, 0=no autostart
00843 
00844 
00845                                                 // Robo Interface Module Section
00846             DWORD           dwMod1Typ;          // RO   Type of left Module (only Robo-If)
00847             DWORD           dwMod2Typ;          // RO   Type of right Module (only Robo-If)
00848                                                 //      possible Values:       
00849                                                 //          MODULE_NOT_INSTALLED    No Module is installed
00850                                                 //          MODULE_RF1              RF Data Link is installed
00851 
00852             unsigned char   aMod1Strg[LEN_STRG1];   // RO   String with Module-1 Name   (only FT-Robo Products)
00853             unsigned char   aMod2Strg[LEN_STRG1];   // RO   String with Module-2 Name   (only FT-Robo Products)
00854 
00855 
00856                                                 // Robo Interface & RF Data Link Section
00857             DWORD   dwRfOn;                     // RW   0=disable RF  1=Enable RF
00858             DWORD   dwRfChannel;                // RW   Channel-Number (2..80) for RF-Communication 
00859             DWORD   dwRfSubChannel;             // RW   Sub-Channel of Device for the specified Channel (1..3)
00860             DWORD   dwRfMessage;                // RW   0=Disable Message-Router Function 1=Enable Message-Rounter Function
00861             DWORD   dwRfWrite;                  // W    0=write values permanent (FLASH); 1=write values temporary (RAM) 
00862             DWORD   dwRfFw;                     // RO   Firmwareversion of RF-Module
00863             unsigned char aRfFwStrg[LEN_STRG1]; // RO   String with Firmware of RF-Module 
00864 
00865                                                 // Information for the PC-RF Module
00866             DWORD   dwRfStopTransferOnError;    // RW   1=Stop the RF-Transfer Thread on bad RF Connection
00867 
00868                                                 // Information for the Interface RF-Module
00869             DWORD   dwRfMotorOffOnError;        // RW   1=Motor Off on bad RF Connection
00870         } sIf;
00871     } FT_SETTING;
00872 
00873 #ifdef MBED
00874 #include "mbed.h"
00875 #define ABF_IF_COMPLETE_NUM_WRITE 32
00876 #define ABF_IF_COMPLETE_NUM_READ 42
00877 #else
00878 #include <usb.h>
00879 #include <pthread.h>
00880 #include <semaphore.h>
00881 #include <termios.h>
00882 #endif
00883 
00884 /// \brief Handle for the ft Interface
00885 typedef struct ft_handle_devices {
00886     /// Place to hold the transfer area
00887     FT_TRANSFER_AREA transfer_area;
00888     NOTIFICATION_EVENTS ne;
00889 #ifdef USE_USB
00890     /// Pointer to the usb device
00891     struct usb_device *dev;
00892     /// Handle for USB communication
00893     usb_dev_handle *device;
00894 #endif
00895 #ifdef MBED
00896     /// Serial device
00897     Serial *sdev;
00898     /// Type of device
00899     long int type;
00900     /// Communication Thread
00901     Ticker *t;
00902     void FtThread();
00903     void FtThreadInit();
00904     void FtThreadTrigger();
00905     bool guardedFtThreadBegin();
00906     void FtThreadBegin();
00907     void FtThreadEnd();
00908     void FtThreadFinish();
00909     int write();
00910     void writeByte();
00911     void readByte();
00912     bool busy;
00913     unsigned char out[ABF_IF_COMPLETE_NUM_WRITE]; //= {ABF_IF_COMPLETE,1,0x07,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
00914     unsigned char in[ABF_IF_COMPLETE_NUM_READ];
00915     int num_write ;//= ABF_IF_COMPLETE_NUM_WRITE;
00916     int num_read ;//= ABF_IF_COMPLETE_NUM_READ;
00917     int windex,rindex; //read/write pointers
00918     int usb_endpoint_write;// = FT_ENDPOINT_INTERRUPT_OUT;
00919     int usb_endpoint_read;// = FT_ENDPOINT_INTERRUPT_IN;
00920     int cycle;//=0;
00921     /// Lock for communication
00922     int lock;
00923 #else
00924     /// Serial device
00925     long int sdev;
00926     /// Type of device
00927     long int type;
00928     /// Communication Thread
00929     pthread_t t;
00930     /// Lock for communication
00931     sem_t lock;
00932     /// Serial settings
00933     struct termios saveioset;
00934     /// Serial settings
00935     struct termios newioset;
00936 #endif
00937     /// Anaylog cycle time (II only)
00938     int analogcycle;
00939     /// Query time for the Interface
00940     unsigned int query_time;
00941     /// 0 = no connection to the interface
00942     unsigned char interface_connected;
00943 } *FT_HANDLE;
00944 /** \fn typedef FT_HANDLE
00945  *  Type definition for the ft handle.
00946  */
00947 
00948                                                 // ****** Function Prototypes  ******
00949     DWORD __stdcall     GetLibVersion(void);
00950     DWORD __stdcall     InitFtLib(void);
00951     DWORD __stdcall     CloseFtLib(void);
00952     DWORD __stdcall     IsFtLibInit(void);
00953     DWORD __stdcall     InitFtUsbDeviceList(void);
00954     UINT  __stdcall     GetNumFtUsbDevice(void);
00955     FT_HANDLE __stdcall GetFtUsbDeviceHandle(UCHAR ucDevNr);
00956     FT_HANDLE __stdcall GetFtUsbDeviceHandleSerialNr(DWORD dwSN, DWORD dwTyp);
00957     DWORD __stdcall     OpenFtUsbDevice(FT_HANDLE hFt);
00958     //FT_HANDLE __stdcall OpenFtCommDevice(DWORD dwPort, DWORD dwTyp, DWORD dwZyklus, DWORD *pdwError);
00959     DWORD __stdcall     SetFtDeviceCommMode (FT_HANDLE hFt, DWORD dwMode, DWORD dwParameter, USHORT *puiValue);
00960     DWORD __stdcall     CloseAllFtDevices(void);
00961     DWORD __stdcall     CloseFtDevice(FT_HANDLE hFt);
00962     DWORD __stdcall     GetFtDeviceTyp(FT_HANDLE hFt);
00963     LPCSTR __stdcall    GetFtSerialNrStrg(FT_HANDLE hFt);
00964     DWORD  __stdcall    GetFtSerialNr(FT_HANDLE hFt);
00965     LPCSTR __stdcall    GetFtFirmwareStrg(FT_HANDLE hFt);
00966     DWORD __stdcall     GetFtFirmware(FT_HANDLE hFt);
00967     LPCSTR __stdcall    GetFtManufacturerStrg(FT_HANDLE hFt);
00968     LPCSTR __stdcall    GetFtShortNameStrg(FT_HANDLE hFt);
00969     LPCSTR __stdcall    GetFtLongNameStrg(FT_HANDLE hFt);
00970     LPCSTR __stdcall    GetFtLibErrorString(DWORD dwErrorCode, DWORD dwTyp);
00971     DWORD __stdcall     GetFtDeviceSetting(FT_HANDLE hFt, FT_SETTING *pSet);
00972     DWORD __stdcall     SetFtDeviceSetting(FT_HANDLE hFt, FT_SETTING *pSet);
00973     DWORD __stdcall     SetFtDistanceSensorMode(FT_HANDLE hFt, DWORD dwMode, DWORD dwTol1, DWORD dwTol2, 
00974                                                 DWORD dwSchwell1, DWORD dwSchwell2, DWORD dwRepeat1, DWORD dwRepeat2);
00975 
00976 
00977     DWORD __stdcall     StartFtTransferArea(FT_HANDLE hFt, NOTIFICATION_EVENTS* sNEvent );
00978     DWORD __stdcall     StartFtTransferAreaWithCommunication(FT_HANDLE hFt, NOTIFICATION_EVENTS* sNEvent );
00979     DWORD __stdcall     StopFtTransferArea(FT_HANDLE hFt);
00980     FT_TRANSFER_AREA* __stdcall GetFtTransferAreaAddress(FT_HANDLE hFt);
00981     DWORD __stdcall     IsFtTransferActiv(FT_HANDLE hFt);
00982     DWORD __stdcall     ResetFtTransfer (FT_HANDLE hFt);
00983 
00984     
00985     DWORD __stdcall     GetFtMemoryLayout(FT_HANDLE hFt, BYTE * pbArray, DWORD dwSize);
00986     DWORD __stdcall     DownloadFtProgram(FT_HANDLE hFt, DWORD dwMemBlock, BYTE* pbArray, DWORD dwSize, DWORD dwParameter, BYTE *pbName, DWORD dwNameLen);
00987     DWORD __stdcall     StartFtProgram(FT_HANDLE hFt, DWORD dwMemBlock);
00988     DWORD __stdcall     StopFtProgram(FT_HANDLE hFt);
00989     DWORD __stdcall     DeleteFtProgram(FT_HANDLE hFt, DWORD dwMemBlock);
00990     DWORD __stdcall     SetFtProgramActiv(FT_HANDLE hFt, DWORD dwMemBlock);
00991     DWORD __stdcall     GetFtProgramName(FT_HANDLE hFt, DWORD dwMemBlock, DWORD dwSize, LPVOID pName);
00992     DWORD __stdcall     WriteFtMemoryData(FT_HANDLE hFt, DWORD dwData, DWORD dwAddress);
00993     DWORD __stdcall     GetFtMemoryData(FT_HANDLE hFt, BYTE * pbArray, DWORD dwSize, DWORD dwAddress);
00994 
00995 
00996     DWORD __stdcall     SendFtMessage(FT_HANDLE hFt, BYTE bHwId, BYTE bSubId, DWORD dwMessage, DWORD dwWaitTime, DWORD dwOption); 
00997     DWORD __stdcall     ClearFtMessageBuffer(FT_HANDLE hFt);
00998 
00999 
01000 
01001 
01002 //
01003 // FTLIB Error Codes
01004 //
01005     #define FTLIB_ERR_SUCCESS                              0x00000000L  
01006     #define FTLIB_ERR_CRC                                  0xE0000001L  
01007     #define FTLIB_ERR_BTSTUFF                              0xE0000002L  
01008     #define FTLIB_ERR_DATA_TOGGLE_MISMATCH                 0xE0000003L  
01009     #define FTLIB_ERR_STALL_PID                            0xE0000004L  
01010     #define FTLIB_ERR_DEV_NOT_RESPONDING                   0xE0000005L  
01011     #define FTLIB_ERR_PID_CHECK_FAILURE                    0xE0000006L  
01012     #define FTLIB_ERR_UNEXPECTED_PID                       0xE0000007L  
01013     #define FTLIB_ERR_DATA_OVERRUN                         0xE0000008L  
01014     #define FTLIB_ERR_DATA_UNDERRUN                        0xE0000009L  
01015     #define FTLIB_ERR_RESERVED1                            0xE000000AL  
01016     #define FTLIB_ERR_RESERVED2                            0xE000000BL  
01017     #define FTLIB_ERR_BUFFER_OVERRUN                       0xE000000CL  
01018     #define FTLIB_ERR_BUFFER_UNDERRUN                      0xE000000DL  
01019     #define FTLIB_ERR_NOT_ACCESSED                         0xE000000FL  
01020     #define FTLIB_ERR_FIFO                                 0xE0000010L  
01021     #define FTLIB_ERR_XACT_ERROR                           0xE0000011L  
01022     #define FTLIB_ERR_BABBLE_DETECTED                      0xE0000012L  
01023     #define FTLIB_ERR_DATA_BUFFER_ERROR                    0xE0000013L  
01024                                                     
01025     #define FTLIB_ERR_ENDPOINT_HALTED                      0xE0000030L  
01026     #define FTLIB_ERR_NO_MEMORY                            0xE0000100L  
01027     #define FTLIB_ERR_INVALID_URB_FUNCTION                 0xE0000200L  
01028     #define FTLIB_ERR_INVALID_PARAMETER                    0xE0000300L  
01029     #define FTLIB_ERR_ERROR_BUSY                           0xE0000400L  
01030     #define FTLIB_ERR_INVALID_PIPE_HANDLE                  0xE0000600L  
01031     #define FTLIB_ERR_NO_BANDWIDTH                         0xE0000700L  
01032     #define FTLIB_ERR_INTERNAL_HC_ERROR                    0xE0000800L  
01033     #define FTLIB_ERR_ERROR_SHORT_TRANSFER                 0xE0000900L  
01034     #define FTLIB_ERR_BAD_START_FRAME                      0xE0000A00L  
01035     #define FTLIB_ERR_ISOCH_REQUEST_FAILED                 0xE0000B00L  
01036     #define FTLIB_ERR_FRAME_CONTROL_OWNED                  0xE0000C00L  
01037     #define FTLIB_ERR_FRAME_CONTROL_NOT_OWNED              0xE0000D00L  
01038     #define FTLIB_ERR_NOT_SUPPORTED                        0xE0000E00L  
01039     #define FTLIB_ERR_INVALID_CONFIGURATION_DESCRIPTOR     0xE0000F00L  
01040 
01041     #define FTLIB_ERR_INSUFFICIENT_RESOURCES               0xE8001000L  
01042     #define FTLIB_ERR_SET_CONFIG_FAILED                    0xE0002000L  
01043     #define FTLIB_ERR_USBD_BUFFER_TOO_SMALL                0xE0003000L  
01044     #define FTLIB_ERR_USBD_INTERFACE_NOT_FOUND             0xE0004000L  
01045     #define FTLIB_ERR_INVALID_PIPE_FLAGS                   0xE0005000L  
01046     #define FTLIB_ERR_USBD_TIMEOUT                         0xE0006000L  
01047     #define FTLIB_ERR_DEVICE_GONE                          0xE0007000L  
01048     #define FTLIB_ERR_STATUS_NOT_MAPPED                    0xE0008000L  
01049 
01050     #define FTLIB_ERR_CANCELED                             0xE0010000L  
01051     #define FTLIB_ERR_ISO_NOT_ACCESSED_BY_HW               0xE0020000L  
01052     #define FTLIB_ERR_ISO_TD_ERROR                         0xE0030000L  
01053     #define FTLIB_ERR_ISO_NA_LATE_USBPORT                  0xE0040000L  
01054     #define FTLIB_ERR_ISO_NOT_ACCESSED_LATE                0xE0050000L  
01055                                                     
01056     #define FTLIB_ERR_FAILED                               0xE0001000L  
01057     #define FTLIB_ERR_INVALID_INBUFFER                     0xE0001001L  
01058     #define FTLIB_ERR_INVALID_OUTBUFFER                    0xE0001002L  
01059     #define FTLIB_ERR_OUT_OF_MEMORY                        0xE0001003L  
01060     #define FTLIB_ERR_PENDING_REQUESTS                     0xE0001004L  
01061     #define FTLIB_ERR_ALREADY_CONFIGURED                   0xE0001005L  
01062     #define FTLIB_ERR_NOT_CONFIGURED                       0xE0001006L  
01063     #define FTLIB_ERR_OPEN_PIPES                           0xE0001007L  
01064     #define FTLIB_ERR_ALREADY_BOUND                        0xE0001008L  
01065     #define FTLIB_ERR_NOT_BOUND                            0xE0001009L  
01066     #define FTLIB_ERR_DEVICE_NOT_PRESENT                   0xE000100AL  
01067     #define FTLIB_ERR_CONTROL_NOT_SUPPORTED                0xE000100BL  
01068     #define FTLIB_ERR_TIMEOUT                              0xE000100CL  
01069     #define FTLIB_ERR_INVALID_RECIPIENT                    0xE000100DL  
01070     #define FTLIB_ERR_INVALID_TYPE                         0xE000100EL  
01071     #define FTLIB_ERR_INVALID_IOCTL                        0xE000100FL  
01072     #define FTLIB_ERR_INVALID_DIRECTION                    0xE0001010L  
01073     #define FTLIB_ERR_TOO_MUCH_ISO_PACKETS                 0xE0001011L  
01074     #define FTLIB_ERR_POOL_EMPTY                           0xE0001012L  
01075     #define FTLIB_ERR_PIPE_NOT_FOUND                       0xE0001013L  
01076     #define FTLIB_ERR_INVALID_ISO_PACKET                   0xE0001014L  
01077     #define FTLIB_ERR_OUT_OF_ADDRESS_SPACE                 0xE0001015L  
01078     #define FTLIB_ERR_INTERFACE_NOT_FOUND                  0xE0001016L  
01079     #define FTLIB_ERR_INVALID_DEVICE_STATE                 0xE0001017L  
01080     #define FTLIB_ERR_INVALID_PARAM                        0xE0001018L  
01081     #define FTLIB_ERR_INVALID_POWER_STATE                  0xE000101AL  
01082     #define FTLIB_ERR_POWER_DOWN                           0xE000101BL  
01083     #define FTLIB_ERR_VERSION_MISMATCH                     0xE000101CL  
01084     #define FTLIB_ERR_SET_CONFIGURATION_FAILED             0xE000101DL  
01085 
01086     #define FTLIB_ERR_VID_RESTRICTION                      0xE0001080L  
01087     #define FTLIB_ERR_ISO_RESTRICTION                      0xE0001081L  
01088     #define FTLIB_ERR_BULK_RESTRICTION                     0xE0001082L  
01089     #define FTLIB_ERR_EP0_RESTRICTION                      0xE0001083L  
01090     #define FTLIB_ERR_PIPE_RESTRICTION                     0xE0001084L  
01091     #define FTLIB_ERR_PIPE_SIZE_RESTRICTION                0xE0001085L  
01092     #define FTLIB_ERR_CONTROL_RESTRICTION                  0xE0001086L  
01093     #define FTLIB_ERR_INTERRUPT_RESTRICTION                0xE0001087L  
01094                                                     
01095     #define FTLIB_ERR_DEVICE_NOT_FOUND                     0xE0001100L
01096     #define FTLIB_ERR_SOME_DEVICES_ARE_OPEN                0xE0001101L
01097     #define FTLIB_ERR_DEVICE_IS_OPEN                       0xE0001102L
01098     #define FTLIB_ERR_DEVICE_NOT_OPEN                      0xE0001103L
01099     #define FTLIB_ERR_NO_SUCH_DEVICE_INSTANCE              0xE0001104L
01100     #define FTLIB_ERR_INVALID_FUNCTION_PARAM               0xE0001105L
01101     #define FTLIB_ERR_DESTROY_DEVICE_LIST                  0xE0001106L
01102     #define FTLIB_ERR_USB_NOT_SUPPORTET_FROM_OS            0xE0001107L
01103     #define FTLIB_ERR_CLOSE_DEVICE                         0xE0001108L
01104 
01105     #define FTLIB_ERR_DEVICE_NOT_SUPPORTET                 0xE0001281L  
01106     #define FTLIB_ERR_WRONG_DEVICE_NUMBER                  0xE0001282L  
01107     #define FTLIB_ERR_UNKNOWN_DEVICE_HANDLE                0xE0001283L  
01108     #define FTLIB_ERR_WRONG_USB_HANDLE                     0xE0001284L  
01109     #define FTLIB_ERR_WRONG_PATHNAME                       0xE0001285L  
01110     #define FTLIB_ERR_LIB_IS_INITIALIZED                   0xE0001286L  
01111     #define FTLIB_ERR_LIB_IS_NOT_INITIALIZED               0xE0001287L  
01112     #define FTLIB_ERR_SERIAL_NR_UNKNOWN                    0xE0001288L  
01113     #define FTLIB_ERR_POWER_TOO_LOW                        0xE0001289L  
01114     #define FTLIB_ERR_WRONG_RETURN_VALUE                   0xE000128AL  
01115     #define FTLIB_ERR_USB_SUPPORT_IS_NOT_INITIALIZED       0xE000128BL  
01116 
01117     #define FTLIB_ERR_USB_MUT0                             0xE0001290L  
01118     #define FTLIB_ERR_USB_MUT1                             0xE0001291L  
01119     #define FTLIB_ERR_USB_MUT2                             0xE0001292L  
01120     #define FTLIB_ERR_USB_MUT3                             0xE0001293L 
01121     #define FTLIB_ERR_USB_DEVICE_IS_IN_USE                 0xE0001295L
01122 
01123     #define FTLIB_ERR_THREAD_NOT_STARTABLE                 0xE00012A0L  
01124     #define FTLIB_ERR_THREAD_NOT_STARTABLE_X1              0xE00012A1L  
01125     #define FTLIB_ERR_THREAD_NOT_STARTABLE_X2              0xE00012A2L  
01126     #define FTLIB_ERR_THREAD_NOT_STARTABLE_X3              0xE00012A3L  
01127     #define FTLIB_ERR_OTHER_THREAD_FOR_SAME_DEVICE_IS_RUN  0xE00012A4L  
01128     #define FTLIB_ERR_THREAD_IS_RUNNING                    0xE00012A5L  
01129     #define FTLIB_ERR_THREAD_NOT_RUNNING                   0xE00012A6L  
01130     #define FTLIB_ERR_THREAD_X1                            0xE00012A7L  
01131     #define FTLIB_ERR_THREAD_X2                            0xE00012A8L  
01132     #define FTLIB_ERR_THREAD_WRITE_USB                     0xE00012A9L  
01133     #define FTLIB_ERR_THREAD_READ_USB                      0xE00012AAL  
01134     #define FTLIB_ERR_THREAD_IS_NORMAL_STOPPED             0xE00012ABL  
01135     #define FTLIB_ERR_THREAD_WAIT_TIMEOUT                  0xE00012ACL  
01136     #define FTLIB_ERR_THREAD_WRITE_COM                     0xE00012ADL  
01137     #define FTLIB_ERR_THREAD_READ_COM                      0xE00012AEL   
01138 
01139     #define FTLIB_ERR_DOWNLOAD                             0xE00012C0L  
01140     #define FTLIB_ERR_DOWNLOAD_WRONG_PARAMETER             0xE00012C1L  
01141     #define FTLIB_ERR_DOWNLOAD_WRONG_MEM_BLOCK             0xE00012C2L  
01142     #define FTLIB_ERR_DOWNLOAD_DATA_SIZE_IS_NULL           0xE00012C3L  
01143     #define FTLIB_ERR_DOWNLOAD_DATA_SIZE_TOO_BIG           0xE00012C4L  
01144     #define FTLIB_ERR_DOWNLOAD_DATA_SIZE                   0xE00012C5L  
01145     #define FTLIB_ERR_DOWNLOAD_ERASE                       0xE00012C6L  
01146     #define FTLIB_ERR_DOWNLOAD_F5                          0xE00012C7L  
01147     #define FTLIB_ERR_DOWNLOAD_PROG_SNF1                   0xE00012C8L  
01148     #define FTLIB_ERR_DOWNLOAD_PROG_SNF2                   0xE00012C9L  
01149     #define FTLIB_ERR_DOWNLOAD_BLOCK                       0xE00012CAL  
01150     #define FTLIB_ERR_DOWNLOAD_BLOCK_NR                    0xE00012CBL  
01151     #define FTLIB_ERR_DOWNLOAD_CRC                         0xE00012CDL  
01152 
01153     #define FTLIB_ERR_IF_NO_PROGRAM                        0xE00012E0L  
01154     #define FTLIB_ERR_IF_PROGRAM_IS_RUNNING                0xE00012E1L  
01155     #define FTLIB_ERR_IF_NO_PROGRAM_IS_RUNNING             0xE00012E2L  
01156     #define FTLIB_ERR_IF_WRONG_PROG_NUMBER                 0xE00012E3L  
01157     #define FTLIB_ERR_IF_BUFFER_TOO_SMALL                  0xE00012E4L  
01158     #define FTLIB_ERR_IF_MEM_ADDRESS                       0xE00012E5L  
01159     #define FTLIB_ERR_IF_MEM_VERIFY                        0xE00012E6L  
01160     #define FTLIB_ERR_IF_NOT_SUPPORTET_MODUS               0xE00012E7L  
01161     #define FTLIB_ERR_IF_FUNCTION_NOT_SUPPORT              0xE00012E8L
01162     #define FTLIB_ERR_FUNCTION_OVER_RF_NOT_ALLOWED         0xE00012E9L
01163 
01164 
01165     #define FTLIB_INFO_PROGRAM_0_IS_RUNNING                0xE0001600L  
01166     #define FTLIB_INFO_PROGRAM_1_IS_RUNNING                0xE0001601L  
01167     #define FTLIB_INFO_PROGRAM_2_IS_RUNNING                0xE0001602L  
01168     #define FTLIB_INFO_ONLINE_MODUS                        0xE0001620L  
01169 
01170     #define FTLIB_FIRMWARE_UPDATE_FILE_WRONG_0             0xE0001800L  
01171     #define FTLIB_FIRMWARE_UPDATE_CRC                      0xE0001801L  
01172     #define FTLIB_FIRMWARE_UPDATE_FILE_OLD                 0xE0001802L
01173     #define FTLIB_FIRMWARE_UPDATE_FILE_WRONG_1             0xE0001803L
01174 
01175 
01176     #define FTLIB_ERR_PORT_NUMBER                          0xE0001900L  
01177     #define FTLIB_ERR_WRONG_PORT                           0xE0001901L  
01178     #define FTLIB_ERR_PORT_NUMBER_IS_NULL                  0xE0001902L  
01179     #define FTLIB_ERR_TYP                                  0xE0001903L  
01180     #define FTLIB_ERR_PORT_NOT_FOUND                       0xE0001904L  
01181     #define FTLIB_ERR_ACCESS_DENIED                        0xE0001905L  
01182     #define FTLIB_ERR_OPEN_COM                             0xE0001906L  
01183     #define FTLIB_ERR_CLOSE_COM                            0xE0001907L  
01184     #define FTLIB_ERR_INIT_COM                             0xE0001908L  
01185     #define FTLIB_ERR_INIT_COM_TIMEOUT                     0xE0001909L  
01186     #define FTLIB_ERR_WRITE_COM                            0xE000190AL  
01187     #define FTLIB_ERR_READ_COM                             0xE000190BL  
01188     #define FTLIB_ERR_READ_COM_NUMBER                      0xE000190CL  
01189     #define FTLIB_ERR_READ_COM_NOTHING                     0xE000190DL  
01190 
01191     #define FTLIB_ERR_RF_NOT_INSTALLED                     0xE0001A00L
01192     #define FTLIB_ERR_RF_WRONG_CHANNEL                     0xE0001A01L
01193     #define FTLIB_ERR_RF_WRONG_SUB_CHANNEL                 0xE0001A02L
01194     #define FTLIB_ERR_RF_NO_CONNECTION                     0xE0001A03L
01195     #define FTLIB_ERR_RF_NO_CONNECTION_A                   0xE0001A04L
01196     #define FTLIB_ERR_RF_NO_CONNECTION_B                   0xE0001A05L
01197     #define FTLIB_ERR_RF_NO_CONNECTION_C                   0xE0001A06L
01198     #define FTLIB_ERR_RF_TIMEOUT_1                         0xE0001A08L
01199     #define FTLIB_ERR_RF_TIMEOUT_2                         0xE0001A09L
01200     #define FTLIB_ERR_RF_FW_OLD1                           0xE0001A0AL
01201     #define FTLIB_ERR_RF_INTERNAL_1                        0xE0001A0DL
01202     #define FTLIB_ERR_RF_NO_INTERFACE_MODULE_FOUND         0xE0001A0EL
01203 
01204     #define FTLIB_ERR_DLL_NOT_LOADABLE                     0xE0001B00L 
01205     #define FTLIB_ERR_DLL_FUNCTION_ERROR                   0xE0001B01L 
01206 
01207     #define FTLIB_ERR_MSG_HWID_WRONG                       0xE0001C00L 
01208     #define FTLIB_ERR_MSG_BUFFER_FULL_TIMEOUT              0xE0001C01L
01209 
01210     #define FTLIB_ERR_UNKNOWN_OPTION_VALUE                 0xE0001D00L
01211 
01212     #define FTLIB_ERR_INTERFACE_00                         0xE0001F00L  
01213     #define FTLIB_ERR_INTERFACE_01                         0xE0001F01L  
01214     #define FTLIB_ERR_INTERFACE_02                         0xE0001F02L  
01215     #define FTLIB_ERR_INTERFACE_03                         0xE0001F03L  
01216     #define FTLIB_ERR_INTERFACE_04                         0xE0001F04L  
01217     #define FTLIB_ERR_INTERFACE_05                         0xE0001F05L  
01218     #define FTLIB_ERR_INTERFACE_06                         0xE0001F06L  
01219     #define FTLIB_ERR_INTERFACE_07                         0xE0001F07L  
01220     #define FTLIB_ERR_INTERFACE_08                         0xE0001F08L  
01221     #define FTLIB_ERR_INTERFACE_09                         0xE0001F09L  
01222     #define FTLIB_ERR_INTERFACE_0A                         0xE0001F0AL  
01223     #define FTLIB_ERR_INTERFACE_0B                         0xE0001F0BL  
01224     #define FTLIB_ERR_INTERFACE_0C                         0xE0001F0CL  
01225     #define FTLIB_ERR_INTERFACE_0D                         0xE0001F0DL  
01226     #define FTLIB_ERR_INTERFACE_0E                         0xE0001F0EL  
01227     #define FTLIB_ERR_INTERFACE_0F                         0xE0001F0FL  
01228 
01229     #define FTLIB_ERR_INTERFACE_D0                         0xE0001FD0L  
01230     #define FTLIB_ERR_INTERFACE_D1                         0xE0001FD1L  
01231     #define FTLIB_ERR_INTERFACE_D2                         0xE0001FD2L  
01232     #define FTLIB_ERR_INTERFACE_D3                         0xE0001FD3L  
01233     #define FTLIB_ERR_INTERFACE_D4                         0xE0001FD4L  
01234     #define FTLIB_ERR_INTERFACE_D5                         0xE0001FD5L  
01235     #define FTLIB_ERR_INTERFACE_D6                         0xE0001FD6L  
01236     #define FTLIB_ERR_INTERFACE_D7                         0xE0001FD7L  
01237     #define FTLIB_ERR_INTERFACE_D8                         0xE0001FD8L  
01238     #define FTLIB_ERR_INTERFACE_D9                         0xE0001FD9L  
01239     #define FTLIB_ERR_INTERFACE_DA                         0xE0001FDAL  
01240     #define FTLIB_ERR_INTERFACE_DB                         0xE0001FDBL  
01241     #define FTLIB_ERR_INTERFACE_DC                         0xE0001FDCL  
01242     #define FTLIB_ERR_INTERFACE_DD                         0xE0001FDDL  
01243     #define FTLIB_ERR_INTERFACE_DE                         0xE0001FDEL  
01244     #define FTLIB_ERR_INTERFACE_DF                         0xE0001FDFL  
01245 
01246     #define FTLIB_ERR_INTERFACE_E0                         0xE0001FE0L  
01247     #define FTLIB_ERR_INTERFACE_E1                         0xE0001FE1L  
01248     #define FTLIB_ERR_INTERFACE_E2                         0xE0001FE2L  
01249     #define FTLIB_ERR_INTERFACE_E3                         0xE0001FE3L  
01250     #define FTLIB_ERR_INTERFACE_E4                         0xE0001FE4L  
01251     #define FTLIB_ERR_INTERFACE_E5                         0xE0001FE5L  
01252     #define FTLIB_ERR_INTERFACE_E6                         0xE0001FE6L  
01253     #define FTLIB_ERR_INTERFACE_E7                         0xE0001FE7L  
01254     #define FTLIB_ERR_INTERFACE_E8                         0xE0001FE8L  
01255     #define FTLIB_ERR_INTERFACE_E9                         0xE0001FE9L  
01256     #define FTLIB_ERR_INTERFACE_EA                         0xE0001FEAL  
01257     #define FTLIB_ERR_INTERFACE_EB                         0xE0001FEBL  
01258     #define FTLIB_ERR_INTERFACE_EC                         0xE0001FECL  
01259     #define FTLIB_ERR_INTERFACE_ED                         0xE0001FEDL  
01260     #define FTLIB_ERR_INTERFACE_EE                         0xE0001FEEL  
01261     #define FTLIB_ERR_INTERFACE_EF                         0xE0001FEFL  
01262 
01263     #define FTLIB_ERR_INTERFACE_F0                         0xE0001FF0L  
01264     #define FTLIB_ERR_INTERFACE_F1                         0xE0001FF1L  
01265     #define FTLIB_ERR_INTERFACE_F2                         0xE0001FF2L  
01266     #define FTLIB_ERR_INTERFACE_F3                         0xE0001FF3L  
01267     #define FTLIB_ERR_INTERFACE_F4                         0xE0001FF4L  
01268     #define FTLIB_ERR_INTERFACE_F5                         0xE0001FF5L  
01269     #define FTLIB_ERR_INTERFACE_F6                         0xE0001FF6L  
01270     #define FTLIB_ERR_INTERFACE_F7                         0xE0001FF7L  
01271     #define FTLIB_ERR_INTERFACE_F8                         0xE0001FF8L  
01272     #define FTLIB_ERR_INTERFACE_F9                         0xE0001FF9L  
01273     #define FTLIB_ERR_INTERFACE_FA                         0xE0001FFAL  
01274     #define FTLIB_ERR_INTERFACE_FB                         0xE0001FFBL  
01275     #define FTLIB_ERR_INTERFACE_FC                         0xE0001FFCL  
01276     #define FTLIB_ERR_INTERFACE_FD                         0xE0001FFDL  
01277     #define FTLIB_ERR_INTERFACE_FE                         0xE0001FFEL  
01278     #define FTLIB_ERR_INTERFACE_FF                         0xE0001FFFL  
01279 
01280 /** \endcond doxygen ignore end */
01281 
01282 #endif
01283 
01284 
01285