Technical reference
19
Example
The following code is a fragment of a C application which demonstrates how to open a
single unit with the asynchronous open unit functions:
//======================================================
// Opening a unit asynchronously
//======================================================
// Tell the driver to start enumerating the unit in the background
// (usb_tc08_open_unit_async returns immediately)
result = usb_tc08_open_unit_async();
// handle any error conditions
if (result == -1)
{
error_code = usb_tc08_get_last_error(0);
printf("Unit failed to open\nThe error code is %d", error_code);
// could terminate the application here
}
else if (result == 0)
{
printf("No USB TC08 units found");
// could terminate the application here
}
// No errors, so start polling usb_tc08_open_unit_progress
// continuously for its enumeration state
do
{
result = usb_tc08_open_unit_progress(&handle, &progress);
switch (result)
{
case USBTC08_PROGRESS_FAIL: // enum equates to: -1
error_code = usb_tc08_get_last_error(0);
printf("Unit failed to open\nThe error code is %d", error_code);
// could terminate the application here
break;
case USBTC08_PROGRESS_PENDING: // enum equates to: 0
printf("\nThe unit is %d percent enumerated", progress);
Sleep(500); // wait for approx. half a second
break;
case USBTC08_PROGRESS_COMPLETE: // enum equates to: 1
printf("\n\nThe unit with handle '%d', opened successfully",
handle);
break;
}
}
while (result == USBTC08_PROGRESS_PENDING);
//
// Start using the open unit
//