nRF52840 only: Module with generic HID event data processing. More...
Modules |
|
| USB HID class types | |
|
nRF52840 only:
Module with types and definitions used by HID modules.
|
|
| USB HID class configuration | |
| USB HID generic | |
|
nRF52840 only:
Module with types, definitions, and API used by the HID generic class.
|
|
| USB HID keyboard | |
|
nRF52840 only:
Module with types, definitions, and API used by the HID keyboard class.
|
|
| USB HID mouse | |
|
nRF52840 only:
Module with types, definitions, and API used by the HID mouse class.
|
|
Data Structures |
|
| struct | app_usbd_hid_methods_t |
|
HID unified interface.
More...
|
|
| struct | app_usbd_hid_report_buffer_t |
|
HID report buffers.
More...
|
|
| struct | app_usbd_hid_subclass_desc_t |
|
HID subclass descriptor.
More...
|
|
| struct | app_usbd_hid_inst_t |
|
USB HID instance.
More...
|
|
| struct | app_usbd_hid_ctx_t |
|
HID internal context.
More...
|
|
Macros |
|
| #define | APP_USBD_HID_IFACE_IDX 0 |
|
HID instance interface index.
|
|
| #define | APP_USBD_HID_EPIN_IDX 0 |
|
HID instance endpoint IN index.
|
|
| #define | APP_USBD_HID_EPOUT_IDX 1 |
|
HID instance endpoint OUT index.
|
|
| #define | APP_USBD_HID_GENERIC_GLOBAL_OUT_REP_DEF (name, rep_size) |
|
Define OUT report buffer structure
app_usbd_hid_report_buffer_t
.
More...
|
|
| #define | APP_USBD_HID_GENERIC_SUBCLASS_REPORT_DESC (name,...) |
|
Initializer of HID report descriptor.
More...
|
|
| #define | APP_USBD_HID_GENERIC_SUBCLASS_PHYSICAL_DESC (name,...) |
|
Initializer of HID physical descriptor.
More...
|
|
| #define | APP_USBD_HID_INST_CONFIG (subclass_dsc,sub_boot,protocl,report_buff_in,report_buff_out,user_ev_handler,hid_methods,ep_list) |
|
USB HID instance initializer
app_usbd_hid_inst_t
.
More...
|
|
Typedefs |
|
| typedef void(* | app_usbd_hid_user_ev_handler_t )( app_usbd_class_inst_t const *p_inst, app_usbd_hid_user_event_t event) |
|
User event handler.
More...
|
|
| typedef ret_code_t (* | app_usbd_hid_idle_handler_t )( app_usbd_class_inst_t const *p_inst, uint8_t report_id) |
|
Idle report handler.
More...
|
|
Enumerations |
|
| enum |
app_usbd_hid_state_flag_t
{
APP_USBD_HID_STATE_FLAG_APPENDED = 0, APP_USBD_HID_STATE_FLAG_STARTED = 1, APP_USBD_HID_STATE_FLAG_SUSPENDED = 2, APP_USBD_HID_STATE_FLAG_TRANS_IN_PROGRESS = 3 } |
|
HID context state flags.
More...
|
|
| enum |
app_usbd_hid_user_event_t
{
APP_USBD_HID_USER_EVT_SET_BOOT_PROTO , APP_USBD_HID_USER_EVT_SET_REPORT_PROTO , APP_USBD_HID_USER_EVT_OUT_REPORT_READY , APP_USBD_HID_USER_EVT_IN_REPORT_DONE } |
|
Events passed to user event handler.
More...
|
|
Functions |
|
| static void | app_usbd_hid_access_lock ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Locks internal hid context.
More...
|
|
| static void | app_usbd_hid_access_unlock ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Unlocks internal hid context.
More...
|
|
| static bool | app_usbd_hid_access_lock_test ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Tests whether internal lock is acquired.
More...
|
|
| static void | app_usbd_hid_state_flag_set ( app_usbd_hid_ctx_t *p_hid_ctx, app_usbd_hid_state_flag_t flag) |
|
Set one of the HID internal state flags.
More...
|
|
| static void | app_usbd_hid_state_flag_clr ( app_usbd_hid_ctx_t *p_hid_ctx, app_usbd_hid_state_flag_t flag) |
|
Clear one of the HID internal state flags.
More...
|
|
| static bool | app_usbd_hid_state_flag_test ( app_usbd_hid_ctx_t *p_hid_ctx, app_usbd_hid_state_flag_t flag) |
|
Test one of the HID internal state flags.
More...
|
|
| static bool | app_usbd_hid_trans_required ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Checks whether HID endpoint transfer required.
More...
|
|
| static bool | app_usbd_hid_state_valid ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Validates internal hid state.
More...
|
|
| ret_code_t | app_usbd_hid_event_handler ( app_usbd_class_inst_t const *p_inst, app_usbd_hid_inst_t const *p_hinst, app_usbd_hid_ctx_t *p_hid_ctx, app_usbd_complex_evt_t const *p_event) |
|
HID generic event handler.
More...
|
|
| app_usbd_hid_report_buffer_t * | app_usbd_hid_rep_buff_in_get ( app_usbd_hid_inst_t const *p_hinst) |
|
Returns IN report buffer.
More...
|
|
|
static
app_usbd_hid_report_buffer_t const * |
app_usbd_hid_rep_buff_out_get ( app_usbd_hid_inst_t const *p_hinst) |
|
Returns OUT report buffer.
More...
|
|
|
static
app_usbd_hid_protocol_select_t |
app_usbd_hid_selected_protocol_get ( app_usbd_hid_ctx_t *p_hid_ctx) |
|
Returns HID selected protocol.
More...
|
|
| static nrf_drv_usbd_ep_t | app_usbd_hid_epin_addr_get ( app_usbd_class_inst_t const *p_inst) |
|
Auxiliary function to access to HID IN endpoint address.
More...
|
|
| static nrf_drv_usbd_ep_t | app_usbd_hid_epout_addr_get ( app_usbd_class_inst_t const *p_inst) |
|
Auxiliary function to access to HID generic OUT endpoint address.
More...
|
|
Detailed Description
nRF52840 only: Module with generic HID event data processing.
Macro Definition Documentation
| #define APP_USBD_HID_GENERIC_GLOBAL_OUT_REP_DEF | ( | name, | |
| rep_size | |||
| ) |
Define OUT report buffer structure app_usbd_hid_report_buffer_t .
- Parameters
-
name Instance name. rep_size Output report size.
| #define APP_USBD_HID_GENERIC_SUBCLASS_PHYSICAL_DESC | ( | name, | |
| ... | |||
| ) |
Initializer of HID physical descriptor.
- Parameters
-
name Physical descriptor name ... Physical descriptor data
| #define APP_USBD_HID_GENERIC_SUBCLASS_REPORT_DESC | ( | name, | |
| ... | |||
| ) |
Initializer of HID report descriptor.
- Parameters
-
name Report descriptor name ... Report descriptor data
| #define APP_USBD_HID_INST_CONFIG | ( | subclass_dsc, | |
| sub_boot, | |||
| protocl, | |||
| report_buff_in, | |||
| report_buff_out, | |||
| user_ev_handler, | |||
| hid_methods, | |||
| ep_list | |||
| ) |
USB HID instance initializer app_usbd_hid_inst_t .
- Parameters
-
subclass_dsc HID subclass descriptors. sub_boot Subclass boot. ( app_usbd_hid_subclass_t ) protocl HID protocol. ( app_usbd_hid_protocol_t ) report_buff_in Input report buffer list. report_buff_out Output report buffer. user_ev_handler app_usbd_hid_user_ev_handler_t . hid_methods app_usbd_hid_methods_t . ep_list List of endpoints and intervals
Typedef Documentation
| typedef ret_code_t (* app_usbd_hid_idle_handler_t)( app_usbd_class_inst_t const *p_inst, uint8_t report_id) |
Idle report handler.
- Parameters
-
[in] p_inst Class instance. [in] report_id Number of report ID that needs idle transfer.
| typedef void(* app_usbd_hid_user_ev_handler_t)( app_usbd_class_inst_t const *p_inst, app_usbd_hid_user_event_t event) |
User event handler.
- Parameters
-
[in] p_inst Class instance. [in] event User event.
Enumeration Type Documentation
HID context state flags.
Bit numbers in app_usbd_hid_ctx_t::state_flags .
Events passed to user event handler.
- Note
-
Example prototype of user event handler:
app_usbd_hid_mouse_user_event_t event);
Function Documentation
|
inline static |
Locks internal hid context.
Simple semaphore functionality to prevent concurrent access from application and interrupt to internal mouse data.
- Parameters
-
[in] p_hid_ctx Internal hid context
|
inline static |
Tests whether internal lock is acquired.
- Parameters
-
[in] p_hid_ctx Internal HID context.
- Return values
-
true Locked. false Unlocked.
|
inline static |
Unlocks internal hid context.
Simple semaphore functionality to prevent concurrent access from application and interrupt to internal mouse data.
- Parameters
-
[in] p_hid_ctx Internal hid context.
|
inline static |
Auxiliary function to access to HID IN endpoint address.
- Parameters
-
[in] p_inst Class instance data.
- Returns
- IN endpoint address.
<HID instance interface index.
<HID instance endpoint IN index.
|
inline static |
Auxiliary function to access to HID generic OUT endpoint address.
- Parameters
-
[in] p_inst Class instance data.
- Returns
- OUT endpoint address.
<HID instance interface index.
<HID instance endpoint OUT index.
| ret_code_t app_usbd_hid_event_handler | ( | app_usbd_class_inst_t const * | p_inst , |
| app_usbd_hid_inst_t const * | p_hinst , | ||
| app_usbd_hid_ctx_t * | p_hid_ctx , | ||
| app_usbd_complex_evt_t const * | p_event | ||
| ) |
HID generic event handler.
This handler should process every class event after specific class handler. This approach allow to handle some events in the same way in all HID sub-classes.
- Parameters
-
[in] p_inst Generic class instance. [in] p_hinst HID class instance. [in] p_hid_ctx HID context. [in] p_event Complex event structure.
- Returns
- Standard error code.
| app_usbd_hid_report_buffer_t * app_usbd_hid_rep_buff_in_get | ( | app_usbd_hid_inst_t const * | p_hinst | ) |
Returns IN report buffer.
- Parameters
-
[in] p_hinst HID class instance.
- Returns
- Report buffer handle or NULL if report doesn't exist.
|
inline static |
Returns OUT report buffer.
Output reports are handled in interrupt handler so only one buffer is required. Buffer returned by this function has predefined size, which should be equal (maximum OUTPUT report size + 1). To receive OUT report this function should be called on APP_USBD_HID_USER_EVT_OUT_REPORT_READY event.
- Parameters
-
[in] p_hinst HID class instance.
- Returns
- Report buffer handle or NULL if report doesn't exist.
|
inline static |
Returns HID selected protocol.
- Parameters
-
[in] p_hid_ctx HID context.
- Returns
- Currently selected protocol ( app_usbd_hid_protocol_select_t ).
|
inline static |
Clear one of the HID internal state flags.
- Parameters
-
[in] p_hid_ctx Internal HID context. [in] flag Flag to clear.
|
inline static |
Set one of the HID internal state flags.
- Parameters
-
[in] p_hid_ctx Internal HID context. [in] flag Flag to set.
|
inline static |
Test one of the HID internal state flags.
- Parameters
-
[in] p_hid_ctx Internal HID context. [in] flag Flag to test.
- Return values
-
true Flag is set. false Flag is not set.
|
inline static |
Validates internal hid state.
HID Mouse has to receive some USBD events before functions from this module could be used.
- Parameters
-
[in] p_hid_ctx Internal hid context.
- Return values
-
true State is valid. false State is invalid.
|
inline static |
Checks whether HID endpoint transfer required.
- Parameters
-
[in] p_hid_ctx Internal HID context.
- Return values
-
true Input endpoint transfer required. false Transfer in progress or not allowed.