#include <USBMouse.h>
 
  
 | Public Member Functions | |
| USBMouse (bool connect_blocking=true, MOUSE_TYPE mouse_type=REL_MOUSE, uint16_t vendor_id=0x1234, uint16_t product_id=0x0001, uint16_t product_release=0x0001) | |
| Basic constructor.  More... | |
| USBMouse (USBPhy *phy, MOUSE_TYPE mouse_type=REL_MOUSE, uint16_t vendor_id=0x1234, uint16_t product_id=0x0001, uint16_t product_release=0x0001) | |
| Fully featured constructor.  More... | |
| virtual | ~USBMouse () | 
| Destroy this object.  More... | |
| bool | update (int16_t x, int16_t y, uint8_t buttons, int8_t z) | 
| Write a state of the mouse.  More... | |
| bool | move (int16_t x, int16_t y) | 
| Move the cursor to (x, y)  More... | |
| bool | press (uint8_t button) | 
| Press one or several buttons.  More... | |
| bool | release (uint8_t button) | 
| Release one or several buttons.  More... | |
| bool | double_click () | 
| Double click (MOUSE_LEFT)  More... | |
| bool | click (uint8_t button) | 
| Click.  More... | |
| bool | scroll (int8_t z) | 
| Scrolling.  More... | |
| bool | ready () | 
| Check if this class is ready.  More... | |
| void | wait_ready () | 
| Block until this HID device is in the configured state.  More... | |
| bool | send (const HID_REPORT *report) | 
| Send a Report.  More... | |
| bool | send_nb (const HID_REPORT *report) | 
| Send a Report.  More... | |
| bool | read (HID_REPORT *report) | 
| Read a report: blocking.  More... | |
| bool | read_nb (HID_REPORT *report) | 
| Read a report: non blocking.  More... | |
| void | init () | 
| Initialize this instance.  More... | |
| void | deinit () | 
| Power down this instance.  More... | |
| bool | configured () | 
| Check if the device is configured.  More... | |
| void | connect () | 
| Connect a device.  More... | |
| void | disconnect () | 
| Disconnect a device.  More... | |
| void | sof_enable () | 
| Enable the start of frame interrupt.  More... | |
| void | sof_disable () | 
| Disable the start of frame interrupt.  More... | |
| bool | endpoint_add (usb_ep_t endpoint, uint32_t max_packet, usb_ep_type_t type, ep_cb_t callback=NULL) | 
| Add an endpoint.  More... | |
| template<typename T > | |
| bool | endpoint_add (usb_ep_t endpoint, uint32_t max_packet, usb_ep_type_t type, void(T::*callback)()) | 
| Add an endpoint.  More... | |
| void | endpoint_remove (usb_ep_t endpoint) | 
| Remove an endpoint.  More... | |
| void | endpoint_remove_all () | 
| Remove all non-zero endpoints.  More... | |
| void | endpoint_stall (usb_ep_t endpoint) | 
| Stall an endpoint.  More... | |
| void | endpoint_unstall (usb_ep_t endpoint) | 
| Unstall an endpoint.  More... | |
| uint32_t | endpoint_max_packet_size (usb_ep_t endpoint) | 
| Get the current maximum size for this endpoint.  More... | |
| void | endpoint_abort (usb_ep_t endpoint) | 
| Abort the current transfer on this endpoint.  More... | |
| bool | read_start (usb_ep_t endpoint, uint8_t *buffer, uint32_t size) | 
| start a read on the given endpoint  More... | |
| uint32_t | read_finish (usb_ep_t endpoint) | 
| Get the status of a read.  More... | |
| bool | write_start (usb_ep_t endpoint, uint8_t *buffer, uint32_t size) | 
| Write a data to the given endpoint.  More... | |
| uint32_t | write_finish (usb_ep_t endpoint) | 
| Get the status of a write.  More... | |
| Protected Member Functions | |
| virtual void | callback_state_change (DeviceState new_state) | 
| Called when USB changes state.  More... | |
| virtual void | callback_request (const setup_packet_t *setup) | 
| Called by USBDevice on Endpoint0 request.  More... | |
| virtual void | callback_request_xfer_done (const setup_packet_t *setup, bool aborted) | 
| Called by USBDevice on data stage completion.  More... | |
| virtual void | callback_power (bool powered) | 
| Called by USBDevice layer on power state change.  More... | |
| virtual void | callback_sof (int frame_number) | 
| Called by USBDevice layer on each new USB frame.  More... | |
| virtual void | callback_reset () | 
| Called by USBDevice layer on bus reset.  More... | |
| void | complete_request (RequestResult result, uint8_t *data=NULL, uint32_t size=0) | 
| Called to complete the setup stage of a callback request.  More... | |
| void | complete_request_xfer_done (bool success) | 
| Called to complete the data stage of a callback request.  More... | |
| void | complete_set_configuration (bool success) | 
| Called to complete a set configuration command.  More... | |
| void | complete_set_interface (bool success) | 
| Called to complete a set interface command.  More... | |
| uint8_t * | find_descriptor (uint8_t descriptor_type, uint8_t index=0) | 
| Find a descriptor type inside the configuration descriptor.  More... | |
| const usb_ep_table_t * | endpoint_table () | 
| Get the endpoint table of this device.  More... | |
| virtual void | start_process () | 
| Callback called to indicate the USB processing needs to be done.  More... | |
| virtual void | lock () | 
| Acquire exclusive access to this instance USBDevice.  More... | |
| virtual void | unlock () | 
| Release exclusive access to this instance USBDevice.  More... | |
| virtual void | assert_locked () | 
| Assert that the current thread of execution holds the lock.  More... | |
USBMouse example.
Definition at line 107 of file USBMouse.h.
| USBMouse | ( | bool | connect_blocking = true, | 
| MOUSE_TYPE | mouse_type = REL_MOUSE, | ||
| uint16_t | vendor_id = 0x1234, | ||
| uint16_t | product_id = 0x0001, | ||
| uint16_t | product_release = 0x0001 | ||
| ) | 
Basic constructor.
Construct this object optionally connecting and blocking until it is ready.
| connect_blocking | true to perform a blocking connect, false to start in a disconnected state | 
| mouse_type | Mouse type: ABS_MOUSE (absolute mouse) or REL_MOUSE (relative mouse) (default: REL_MOUSE) | 
| vendor_id | Your vendor_id | 
| product_id | Your product_id | 
| product_release | Your product_release | 
| USBMouse | ( | USBPhy * | phy, | 
| MOUSE_TYPE | mouse_type = REL_MOUSE, | ||
| uint16_t | vendor_id = 0x1234, | ||
| uint16_t | product_id = 0x0001, | ||
| uint16_t | product_release = 0x0001 | ||
| ) | 
Fully featured constructor.
Construct this object with the supplied USBPhy and parameters. The user this object is responsible for calling connect() or init().
| phy | USB phy to use | 
| mouse_type | Mouse type: ABS_MOUSE (absolute mouse) or REL_MOUSE (relative mouse) (default: REL_MOUSE) | 
| vendor_id | Your vendor_id | 
| product_id | Your product_id | 
| product_release | Your product_release | 
| 
 | virtual | 
Destroy this object.
Any classes which inherit from this class must call deinit before this destructor runs.
| 
 | protectedvirtualinherited | 
Assert that the current thread of execution holds the lock.
| 
 | protectedvirtualinherited | 
Called by USBDevice layer on power state change.
| powered | true if device is powered, false otherwise | 
Warning: Called in ISR context
Definition at line 341 of file USBDevice.h.
| 
 | protectedvirtualinherited | 
| 
 | protectedvirtualinherited | 
Called by USBDevice on data stage completion.
The function complete_request_xfer_done must be always be called in response to this callback.
| setup | Setup packet of the current request | 
| aborted | false if the operation was aborted, true otherwise | 
Warning: Called in ISR context
Implements USBDevice.
| 
 | protectedvirtualinherited | 
Called by USBDevice layer on bus reset.
complete_reset must be called after the device is fully reset.
Warning: Called in ISR context
Reimplemented in USBCDC_ECM, USBCDC, and USBTester.
Definition at line 369 of file USBDevice.h.
| 
 | protectedvirtualinherited | 
Called by USBDevice layer on each new USB frame.
Callbacks are enabled and disabled by calling sof_enable and sof_disable.
| frame_number | The current frame number | 
Warning: Called in ISR context
Definition at line 356 of file USBDevice.h.
| 
 | protectedvirtualinherited | 
| bool click | ( | uint8_t | button | ) | 
Click.
| button | state of the buttons ( ex: clic(MOUSE_LEFT)) | 
| 
 | protectedinherited | 
Called to complete the setup stage of a callback request.
Possible options that can be passed as a result are:
| result | The result of the setup phase. | 
| data | Buffer to send or receive if the result is Send or Receive | 
| size | Size to transfer if the result is Send or Receive | 
| 
 | protectedinherited | 
Called to complete the data stage of a callback request.
| success | true if the operation was successful, false otherwise | 
| 
 | protectedinherited | 
Called to complete a set configuration command.
| success | true if the configuration was set, false otherwise | 
| 
 | protectedinherited | 
Called to complete a set interface command.
| success | true if the interface was set, false otherwise | 
| 
 | inherited | 
Check if the device is configured.
| 
 | inherited | 
Connect a device.
| 
 | inherited | 
Power down this instance.
Disable interrupts and stop sending events.
| 
 | inherited | 
Disconnect a device.
| bool double_click | ( | ) | 
Double click (MOUSE_LEFT)
| 
 | inherited | 
Abort the current transfer on this endpoint.
| endpoint | endpoint with transfer to abort | 
| 
 | inherited | 
Add an endpoint.
| endpoint | Endpoint to enable | 
| max_packet | Maximum size of a packet which can be sent or received on this endpoint | 
| type | Endpoint type - USB_EP_TYPE_BULK, USB_EP_TYPE_INT or USB_EP_TYPE_ISO | 
| callback | Method pointer to be called when a packet is transferred | 
| 
 | inherited | 
Add an endpoint.
| endpoint | Endpoint to enable | 
| max_packet | Maximum size of a packet which can be sent or received on this endpoint | 
| type | Endpoint type - USB_EP_TYPE_BULK, USB_EP_TYPE_INT or USB_EP_TYPE_ISO | 
| callback | Method pointer to be called when a packet is transferred | 
Definition at line 161 of file USBDevice.h.
| 
 | inherited | 
Get the current maximum size for this endpoint.
Return the currently configured maximum packet size, wMaxPacketSize, for this endpoint.
| 
 | inherited | 
Remove an endpoint.
| endpoint | Endpoint to disable | 
| 
 | inherited | 
Remove all non-zero endpoints.
| 
 | inherited | 
Stall an endpoint.
If there is an ongoing transfer on this endpoint then it will be aborted.
| endpoint | Endpoint to stall | 
| 
 | protectedinherited | 
| 
 | inherited | 
Unstall an endpoint.
Unstalling an endpoint resets data toggle back to DATA0. Additionally, if there is an ongoing transfer on this endpoint it will be aborted.
| endpoint | Endpoint to unstall | 
| 
 | protectedinherited | 
Find a descriptor type inside the configuration descriptor.
| descriptor_type | Type of descriptor to find | 
| index | Configuration descriptor index ( 0 if only one configuration present ) | 
| 
 | inherited | 
Initialize this instance.
This function must be called before calling any other functions of this class, unless specifically
| 
 | protectedvirtualinherited | 
Acquire exclusive access to this instance USBDevice.
| bool move | ( | int16_t | x, | 
| int16_t | y | ||
| ) | 
Move the cursor to (x, y)
| x | x-axis position | 
| y | y-axis position | 
| bool press | ( | uint8_t | button | ) | 
Press one or several buttons.
| button | button state (ex: press(MOUSE_LEFT)) | 
| 
 | inherited | 
Read a report: blocking.
| report | pointer to the report to fill | 
| 
 | inherited | 
Get the status of a read.
| endpoint | endpoint to get the status of | 
| 
 | inherited | 
Read a report: non blocking.
| report | pointer to the report to fill | 
| 
 | inherited | 
start a read on the given endpoint
Start a read on the given endpoint. The data buffer must remain unchanged until the transfer either completes or is aborted.
| endpoint | endpoint to read data from | 
| buffer | buffer to fill with read data | 
| size | The size of data to read. This must be greater than or equal to the max packet size for this endpoint | 
| 
 | inherited | 
Check if this class is ready.
| bool release | ( | uint8_t | button | ) | 
Release one or several buttons.
| button | button state (ex: release(MOUSE_LEFT)) | 
| bool scroll | ( | int8_t | z | ) | 
Scrolling.
| z | value of the wheel (>0 to go down, <0 to go up) | 
| 
 | inherited | 
Send a Report.
warning: blocking
| report | Report which will be sent (a report is defined by all data and the length) | 
| 
 | inherited | 
Send a Report.
warning: non blocking
| report | Report which will be sent (a report is defined by all data and the length) | 
| 
 | inherited | 
Disable the start of frame interrupt.
Stop calling USBDevice::callback_sof.
| 
 | inherited | 
Enable the start of frame interrupt.
Call USBDevice::callback_sof on every frame.
| 
 | protectedvirtualinherited | 
Callback called to indicate the USB processing needs to be done.
Implements USBPhyEvents.
| 
 | protectedvirtualinherited | 
Release exclusive access to this instance USBDevice.
| bool update | ( | int16_t | x, | 
| int16_t | y, | ||
| uint8_t | buttons, | ||
| int8_t | z | ||
| ) | 
Write a state of the mouse.
| x | x-axis position | 
| y | y-axis position | 
| buttons | buttons state (first bit represents MOUSE_LEFT, second bit MOUSE_RIGHT and third bit MOUSE_MIDDLE) | 
| z | wheel state (>0 to scroll down, <0 to scroll up) | 
| 
 | inherited | 
Block until this HID device is in the configured state.
| 
 | inherited | 
Get the status of a write.
| endpoint | endpoint to get the status of | 
| 
 | inherited | 
Write a data to the given endpoint.
Write data to an endpoint. The data sent must remain unchanged until the transfer either completes or is aborted.
| endpoint | endpoint to write data to | 
| buffer | data to write | 
| size | the size of data to send. This must be less than or equal to the max packet size of this endpoint |