3.5.2.3.3 Mouse Data Event Handling
No extra event handler is required to be registered to receive mouse data. A call to function USB_HOST_HID_MOUSE_EventHandlerSet once is adequate to receive mouse data as well.
The mouse button state along with the X, Y, and Z relative coordinate positions are provided by the USB Host HID Mouse Driver. The data type is USB_HOST_HID_MOUSE_DATA and is defined in usb_host_hid_mouse.h. The following code shows an event handler example.
Example:
/* This code shows an example of HID Mouse Event Handler */ void APP_USBHostHIDMouseEventHandler ( USB_HOST_HID_MOUSE_HANDLE handle, USB_HOST_HID_MOUSE_EVENT event, void * pData ) { /* This function gets called in the following scenarios: 1. USB Mouse is Attached 2. USB Mouse is detached 3. USB Mouse data has been obtained. */ switch ( event) { case USB_HOST_HID_MOUSE_EVENT_ATTACH: /* Mouse Attached */ appData.state = APP_STATE_DEVICE_ATTACHED; break; case USB_HOST_HID_MOUSE_EVENT_DETACH: /* Mouse Detached */ appData.state = APP_STATE_DEVICE_DETACHED; break; case USB_HOST_HID_MOUSE_EVENT_REPORT_RECEIVED: /* Mouse data event */ appData.state = APP_STATE_READ_HID; /* Mouse Data from device */ memcpy(&appData.data, pData, sizeof(appData.data)); /* Now the Mouse data has been obtained. This is a parsed data in a simple format defined by USB_HOST_HID_MOUSE_DATA type. */ break; } } void APP_Tasks(void) { switch (appData.state) { case APP_STATE_BUS_ENABLE: /* In this state the application enables the USB Host Bus. Note * how the USB Mouse event handler is registered before the bus * is enabled. */ USB_HOST_HID_MOUSE_EventHandlerSet(APP_USBHostHIDMouseEventHandler); USB_HOST_BusEnable(0); appData.state = APP_STATE_WAIT_FOR_BUS_ENABLE_COMPLETE; break; case APP_STATE_WAIT_FOR_BUS_ENABLE_COMPLETE: /* Here we wait for the bus enable operation to complete. */ break; } }