The USB Component comes with a set of software utilities that you can use as templates to create your own programs for a PC. The utilities are specific for the different USB Device Classes. These are the available utilities:
The HID Client utility is a graphical application for a PC (running Microsoft Windows) that can be used for testing the USB Device HID implementation. It is available as a part of Keil MDK uVision and the executable file HID_Client.exe is available in the <mdk_install_dir>/ARM/Utilities/HID_Client/Release folder, where <mdk_install_dir> refers to the Keil MDK uVision installation directory. This program runs stand-alone without installation.
To check the HID Client utility with your board, do the following:
HIDClient.exe application.
The source code of the HID Client application is available in <install_dir>/ARM/Utilities/HID_Client. A Visual Studio 2010 (or later) based solution named HIDClient_VS2010.sln is available. The following is a summary of what you will find in each of the files that make up your HID Client application.
Header Files
HID.h includes the function declarations of the functions that are defined in HID.cpp.HIDClient.h is the main header file for the application. It includes other project specific headers (including Resource.h) and declares the CHIDClientApp application class.HIDClientDlg.h defines the behavior of the application's main dialog.Resource Files
HIDClient.ico is an icon file, which is used as the application's icon. This icon is included by the main resource file HIDClient.rc.HIDClient.rc2 contains resources that are not edited by Microsoft Visual C++. You should place all resources not editable by the resource editor in this file.Source Files
HID.cpp contains the necessary functions that are used in this example application to communicate with an USB HID device. All available functions in Windows for HID interaction are explained here: Introduction to HID Concepts. The function:HID_Init initializes the HID class to be used with the USB Host.HID_UnInit de-initializes the HID class from the USB Host.HID_FindDevices scans the USB Bus and lists all available HID devices for connection to the application. This information is obtained from the Device Descriptor that is generated by the USB Component using the configuration files.HID_GetName evaluates the Product String of the device to be shown in the drop down box of the application.HID_GetInputReportSize extracts the value of USBD_HIDn_IN_REPORT_MAX_SZ as specified in the USBD_Config_HID_n.h file.HID_GetOutputReportSize extracts the value of USBD_HIDn_OUT_REPORT_MAX_SZ as specified in the USBD_Config_HID_n.h file.HID_GetFeatureReportSize extracts the value of USBD_HIDn_FEAT_REPORT_MAX_SZ as specified in the USBD_Config_HID_n.h file.HID_Open opens the device.HID_GetSelectedDevice returns the selected device.HID_Close closes the device.HID_Read initiates a USBD_HIDn_GetReport within the device to send data to the USB Host.HID_Write triggers a USBD_HIDn_SetReport within the device to read data sent from the USB Host.HID_GetFeature and HID_SetFeature work on the USB HID Device's feature report (which is optional).HIDClient.cpp is the main application source file that contains the application class CHIDClientApp.HIDClient.rc is a listing of all of the Microsoft Windows resources that the program uses (located in the res subdirectory).HIDClientDlg.cpp implements the code of the client's dialog and calls the functions specified in HID.cpp. This is the actual place where the interaction between the USB Host and the USB Device is defined.