Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Description

This function open the connection to the selected by a number (starting from zero) Trenz Electronic USB FX2 device number  (Cypress driver derivative and VID = 0xbd0, PID=0x0300) connected to a host computer's USB port.

Description of internal procedure

This function takes an already initialized USB device list, searches for Trenz Electronic USB FX2 devices (Cypress driver derivative and VID = 0xbd0, PID=0x0300) connected to host computer's USB ports and counts them.
An internal operation that closes an handle to the CyUSB.sys driver (or a derivative like TE_USB_FX2_xx.sys) is executed instead (see page 33 of CyAPI.pdf).
If one or more devices are attached and

  • if 0 ≤ CardNumber ≤ (number of attached devices – 1), thenthe then the selected module is not directly given by USBDeviceList (CCyUSBDevice type). An internal operation that opens a handle to CyUSB.sys driver (or a derivative like TE driver) is executed instead (see page 45 of CyAPI.pdf). This handle is internally managed by CyAPI.lib, therefore there is no need to expose them to the user.
  • if CardNumber ≥ number of attached devices, thenUSBDeviceList (CyUSBDevice type) is not initialized to null (the device list is not erased). An internal operation that closes an handle to CyUSB.sys driver (or a derivative like TE driver) is executed instead (see page 33 of CyAPI.pdf).
Info
A more intuitive name for this function would have been TE_USB_FX2_SelectCard().
Note
You can use this function to select the desired module without the need to call TE_USB_FX2_Close() before. Though doing so would not cause any problems.
Close() is automatically carried out by the TE_USB_FX2_Open() function if a handle to the driver is already open (i.e. a TE_USB_FX2_Open() has been successfully called before).
Note

If no device is attached, USBDeviceList is not initialized to null (the device list is not erased).

Description of internal procedure

TE_USB_FX2_SetData_InstanceDriverBuffer() function instantiates the class used by CyAPI to use Bulk EndPoint (CCyBulkEndPoint, see pages 9 to 11) and initializes the parameters of this class instantiation.

The parameters are :

  1. Timeout
  2. XMODE_DIRECT (this parameter set the driver to single buffering, instead the slower double buffering)
  3. DeviceDriverBufferSize.

...

 

Use of the code

Declaration

...