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:
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