Bluetooth® HID Host API | 您所在的位置:网站首页 › HID蓝牙模块 › Bluetooth® HID Host API |
Bluetooth® HID Host API
Overview
A Bluetooth HID host is a device or software that is capable of connecting and communicating with Bluetooth HID devices, such as keyboards, mice. Users can use the Bluetooth HID Host APIs to send output data or control commands to the HID devices, enabling them to control the behavior or settings of the devices. Application ExampleCheck bluetooth folder in ESP-IDF examples, which contains the following application: Example bluetooth/esp_hid_host is implemented using the generic esp_hid APIs. esp_hid APIs are build upon the Bluetooth HID APIs and can be a reference. API Reference Header Filecomponents/bt/host/bluedroid/api/include/api/esp_hidh_api.h This header file can be included with: #include "esp_hidh_api.h"This header file is a part of the API provided by the bt component. To declare that your component depends on bt, add the following to your CMakeLists.txt: REQUIRES btor PRIV_REQUIRES bt Functions esp_err_t esp_bt_hid_host_register_callback(esp_hh_cb_t callback)This function is called to init callbacks with HID host module. 参数callback -- [in] pointer to the init callback function. 返回ESP_OK: success other: failed esp_err_t esp_bt_hid_host_init(void)This function initializes HID host. This function should be called after esp_bluedroid_enable() and esp_bluedroid_init()/esp_bluedroid_init_with_cfg() success, and should be called after esp_bt_hid_host_register_callback(). When the operation is complete the callback function will be called with ESP_HIDH_INIT_EVT. 返回ESP_OK: success other: failed esp_err_t esp_bt_hid_host_deinit(void)Closes the interface. This function should be called after esp_bluedroid_enable() and esp_bluedroid_init()/esp_bluedroid_init_with_cfg() success, and should be called after esp_bt_hid_host_init(). When the operation is complete the callback function will be called with ESP_HIDH_DEINIT_EVT. 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_connect(esp_bd_addr_t bd_addr)Connect to HID device. When the operation is complete the callback function will be called with ESP_HIDH_OPEN_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_disconnect(esp_bd_addr_t bd_addr)Disconnect from HID device. When the operation is complete the callback function will be called with ESP_HIDH_CLOSE_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_virtual_cable_unplug(esp_bd_addr_t bd_addr)Virtual UnPlug (VUP) the specified HID device. When the operation is complete the callback function will be called with ESP_HIDH_VC_UNPLUG_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_set_info(esp_bd_addr_t bd_addr, esp_hidh_hid_info_t *hid_info)Set the HID device descriptor for the specified HID device. When the operation is complete the callback function will be called with ESP_HIDH_SET_INFO_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. hid_info -- [in] HID device descriptor structure. 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_get_protocol(esp_bd_addr_t bd_addr)Get the HID proto mode. When the operation is complete the callback function will be called with ESP_HIDH_GET_PROTO_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. 返回ESP_OK: success other: failed esp_err_t esp_bt_hid_host_set_protocol(esp_bd_addr_t bd_addr, esp_hidh_protocol_mode_t protocol_mode)Set the HID proto mode. When the operation is complete the callback function will be called with ESP_HIDH_SET_PROTO_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. protocol_mode -- [in] Protocol mode type. 返回ESP_OK: success other: failed esp_err_t esp_bt_hid_host_get_idle(esp_bd_addr_t bd_addr)Get the HID Idle Time. When the operation is complete the callback function will be called with ESP_HIDH_GET_IDLE_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. 返回ESP_OK: success other: failed esp_err_t esp_bt_hid_host_set_idle(esp_bd_addr_t bd_addr, uint16_t idle_time)Set the HID Idle Time. When the operation is complete the callback function will be called with ESP_HIDH_SET_IDLE_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. idle_time -- [in] Idle time rate 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_get_report(esp_bd_addr_t bd_addr, esp_hidh_report_type_t report_type, uint8_t report_id, int buffer_size)Send a GET_REPORT to HID device. When the operation is complete the callback function will be called with ESP_HIDH_GET_RPT_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. report_type -- [in] Report type report_id -- [in] Report id buffer_size -- [in] Buffer size 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_set_report(esp_bd_addr_t bd_addr, esp_hidh_report_type_t report_type, uint8_t *report, size_t len)Send a SET_REPORT to HID device. When the operation is complete the callback function will be called with ESP_HIDH_SET_RPT_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. report_type -- [in] Report type report -- [in] Report data pointer len -- [in] Report data length 返回- ESP_OK: success other: failed esp_err_t esp_bt_hid_host_send_data(esp_bd_addr_t bd_addr, uint8_t *data, size_t len)Send data to HID device. When the operation is complete the callback function will be called with ESP_HIDH_DATA_EVT. 参数bd_addr -- [in] Remote device bluetooth device address. data -- [in] Data pointer len -- [in] Data length 返回- ESP_OK: success other: failed Unions union esp_hidh_cb_param_t #includeHID host callback parameters union. Public Members struct esp_hidh_cb_param_t::hidh_init_evt_param initHIDH callback param of ESP_HIDH_INIT_EVT struct esp_hidh_cb_param_t::hidh_uninit_evt_param deinitHIDH callback param of ESP_HIDH_DEINIT_EVT struct esp_hidh_cb_param_t::hidh_open_evt_param openHIDH callback param of ESP_HIDH_OPEN_EVT struct esp_hidh_cb_param_t::hidh_close_evt_param closeHIDH callback param of ESP_HIDH_CLOSE_EVT struct esp_hidh_cb_param_t::hidh_unplug_evt_param unplugHIDH callback param of ESP_HIDH_VC_UNPLUG_EVT struct esp_hidh_cb_param_t::hidh_get_proto_evt_param get_protoHIDH callback param of ESP_HIDH_GET_PROTO_EVT struct esp_hidh_cb_param_t::hidh_set_proto_evt_param set_protoHIDH callback param of ESP_HIDH_SET_PROTO_EVT struct esp_hidh_cb_param_t::hidh_get_rpt_evt_param get_rptHIDH callback param of ESP_HIDH_GET_RPT_EVT struct esp_hidh_cb_param_t::hidh_set_rpt_evt_param set_rptHIDH callback param of ESP_HIDH_SET_RPT_EVT struct esp_hidh_cb_param_t::hidh_send_data_evt_param send_dataHIDH callback param of ESP_HIDH_DATA_EVT struct esp_hidh_cb_param_t::hidh_get_idle_evt_param get_idleHIDH callback param of ESP_HIDH_GET_IDLE_EVT struct esp_hidh_cb_param_t::hidh_set_idle_evt_param set_idleHIDH callback param of ESP_HIDH_SET_IDLE_EVT struct esp_hidh_cb_param_t::hidh_data_ind_evt_param data_indHIDH callback param of ESP_HIDH_DATA_IND_EVT struct esp_hidh_cb_param_t::hidh_add_dev_evt_param add_devHIDH callback param of ESP_HIDH_ADD_DEV_EVT struct esp_hidh_cb_param_t::hidh_rmv_dev_evt_param rmv_devHIDH callback param of ESP_HIDH_RMV_DEV_EVT struct esp_hidh_cb_param_t::hidh_get_dscp_evt_param dscpHIDH callback param of ESP_HIDH_GET_DSCP_EVT struct esp_hidh_cb_param_t::hidh_set_info_evt_param set_infoHIDH callback param of ESP_HIDH_SET_INFO_EVT struct hidh_add_dev_evt_param #includeESP_HIDH_ADD_DEV_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle esp_bd_addr_t bd_addrdevice address struct hidh_close_evt_param #includeESP_HIDH_CLOSE_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t reasonlower layer failed reason(ref hiddefs.h) esp_hidh_connection_state_t conn_statusconnection status uint8_t handledevice handle struct hidh_data_ind_evt_param #includeESP_HIDH_DATA_IND_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle esp_hidh_protocol_mode_t proto_modeprotocol mode uint16_t lendata length uint8_t *datadata pointer struct hidh_get_dscp_evt_param #includeESP_HIDH_GET_DSCP_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle bool addedIndicate if added uint16_t vendor_idVendor ID uint16_t product_idProduct ID uint16_t versionVersion uint16_t ssr_max_latencySSR max latency in slots uint16_t ssr_min_toutSSR min timeout in slots uint8_t ctry_codeCountry Code uint16_t dl_lenDevice descriptor length uint8_t *dsc_listDevice descriptor pointer struct hidh_get_idle_evt_param #includeESP_HIDH_GET_IDLE_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle uint8_t idle_rateidle rate struct hidh_get_proto_evt_param #includeESP_HIDH_GET_PROTO_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle esp_hidh_protocol_mode_t proto_modeprotocol mode struct hidh_get_rpt_evt_param #includeESP_HIDH_GET_RPT_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle uint16_t lendata length uint8_t *datadata pointer struct hidh_init_evt_param #includeESP_HIDH_INIT_EVT. Public Members esp_hidh_status_t statusstatus struct hidh_open_evt_param #includeESP_HIDH_OPEN_EVT. Public Members esp_hidh_status_t statusoperation status esp_hidh_connection_state_t conn_statusconnection status bool is_origindicate if host intiate the connection uint8_t handledevice handle esp_bd_addr_t bd_addrdevice address struct hidh_rmv_dev_evt_param #includeESP_HIDH_RMV_DEV_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle esp_bd_addr_t bd_addrdevice address struct hidh_send_data_evt_param #includeESP_HIDH_DATA_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle uint8_t reasonlower layer failed reason(ref hiddefs.h) struct hidh_set_idle_evt_param #includeESP_HIDH_SET_IDLE_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle struct hidh_set_info_evt_param #includeESP_HIDH_SET_INFO_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle esp_bd_addr_t bd_addrdevice address struct hidh_set_proto_evt_param #includeESP_HIDH_SET_PROTO_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle struct hidh_set_rpt_evt_param #includeESP_HIDH_SET_RPT_EVT. Public Members esp_hidh_status_t statusoperation status uint8_t handledevice handle struct hidh_uninit_evt_param #includeESP_HIDH_DEINIT_EVT. Public Members esp_hidh_status_t statusstatus struct hidh_unplug_evt_param #includeESP_HIDH_VC_UNPLUG_EVT. Public Members esp_hidh_status_t statusoperation status esp_hidh_connection_state_t conn_statusconnection status uint8_t handledevice handle Structures struct esp_hidh_hid_info_tHID device information from HID Device Service Record and Device ID Service Record. Public Members int attr_maskdevice attribute bit mask, refer to esp_hidh_dev_attr_t uint8_t sub_classHID device subclass uint8_t app_idapplication ID, refer to esp_hidh_dev_app_id_t int vendor_idDevice ID information: vendor ID int product_idDevice ID information: product ID int versionDevice ID information: version uint8_t ctry_codeSDP attrbutes of HID devices: HID country code (https://www.usb.org/sites/default/files/hid1_11.pdf) int dl_lenSDP attrbutes of HID devices: HID device descriptor length uint8_t dsc_list[BTHH_MAX_DSC_LEN]SDP attrbutes of HID devices: HID device descriptor definition Macros BTHH_MAX_DSC_LENmaximum size of HID Device report descriptor Type Definitions typedef void (*esp_hh_cb_t)(esp_hidh_cb_event_t event, esp_hidh_cb_param_t *param)HID host callback function type. Param eventEvent type Param paramPoint to callback parameter, currently is union type Enumerations enum esp_hidh_connection_state_tHID host connection state. Values: enumerator ESP_HIDH_CONN_STATE_CONNECTEDconnected state enumerator ESP_HIDH_CONN_STATE_CONNECTINGconnecting state enumerator ESP_HIDH_CONN_STATE_DISCONNECTEDdisconnected state enumerator ESP_HIDH_CONN_STATE_DISCONNECTINGdisconnecting state enumerator ESP_HIDH_CONN_STATE_UNKNOWNunknown state (initial state) enum esp_hidh_status_tHID handshake error code and vendor-defined result code. Values: enumerator ESP_HIDH_OKsuccessful enumerator ESP_HIDH_HS_HID_NOT_READYhandshake error: device not ready enumerator ESP_HIDH_HS_INVALID_RPT_IDhandshake error: invalid report ID enumerator ESP_HIDH_HS_TRANS_NOT_SPThandshake error: HID device does not support the request enumerator ESP_HIDH_HS_INVALID_PARAMhandshake error: parameter value does not meet the expected criteria of called function or API enumerator ESP_HIDH_HS_ERRORhandshake error: HID device could not identify the error condition enumerator ESP_HIDH_ERRgeneral ESP HID Host error enumerator ESP_HIDH_ERR_SDPSDP error enumerator ESP_HIDH_ERR_PROTOSET_PROTOCOL error, only used in ESP_HIDH_OPEN_EVT callback enumerator ESP_HIDH_ERR_DB_FULLdevice database full, used in ESP_HIDH_OPEN_EVT/ESP_HIDH_ADD_DEV_EVT enumerator ESP_HIDH_ERR_TOD_UNSPTtype of device not supported enumerator ESP_HIDH_ERR_NO_RESout of system resources enumerator ESP_HIDH_ERR_AUTH_FAILEDauthentication fail enumerator ESP_HIDH_ERR_HDLconnection handle error enumerator ESP_HIDH_ERR_SECencryption error enumerator ESP_HIDH_BUSYvendor-defined: temporarily can not handle this request enumerator ESP_HIDH_NO_DATAvendor-defined: no data. enumerator ESP_HIDH_NEED_INITvendor-defined: HIDH module shall initialize first enumerator ESP_HIDH_NEED_DEINITvendor-defined: HIDH module shall de-deinitialize first enumerator ESP_HIDH_NO_CONNECTIONvendor-defined: connection may have been closed enum esp_hidh_protocol_mode_tHID host protocol modes. Values: enumerator ESP_HIDH_BOOT_MODEboot protocol mode enumerator ESP_HIDH_REPORT_MODEreport protocol mode enumerator ESP_HIDH_UNSUPPORTED_MODEunsupported protocol mode enum esp_hidh_report_type_tHID host report types. Values: enumerator ESP_HIDH_REPORT_TYPE_OTHERunsupported report type enumerator ESP_HIDH_REPORT_TYPE_INPUTinput report type enumerator ESP_HIDH_REPORT_TYPE_OUTPUToutput report type enumerator ESP_HIDH_REPORT_TYPE_FEATUREfeature report type enum esp_hidh_cb_event_tHID host callback function events. Values: enumerator ESP_HIDH_INIT_EVTwhen HID host is initialized, the event comes enumerator ESP_HIDH_DEINIT_EVTwhen HID host is deinitialized, the event comes enumerator ESP_HIDH_OPEN_EVTwhen HID host connection opened, the event comes enumerator ESP_HIDH_CLOSE_EVTwhen HID host connection closed, the event comes enumerator ESP_HIDH_GET_RPT_EVTwhen Get_Report command is called, the event comes enumerator ESP_HIDH_SET_RPT_EVTwhen Set_Report command is called, the event comes enumerator ESP_HIDH_GET_PROTO_EVTwhen Get_Protocol command is called, the event comes enumerator ESP_HIDH_SET_PROTO_EVTwhen Set_Protocol command is called, the event comes enumerator ESP_HIDH_GET_IDLE_EVTwhen Get_Idle command is called, the event comes enumerator ESP_HIDH_SET_IDLE_EVTwhen Set_Idle command is called, the event comes enumerator ESP_HIDH_GET_DSCP_EVTwhen HIDH is initialized, the event comes enumerator ESP_HIDH_ADD_DEV_EVTwhen a device is added, the event comes enumerator ESP_HIDH_RMV_DEV_EVTwhen a device is removed, the event comes enumerator ESP_HIDH_VC_UNPLUG_EVTwhen virtually unplugged, the event comes enumerator ESP_HIDH_DATA_EVTwhen send data on interrupt channel, the event comes enumerator ESP_HIDH_DATA_IND_EVTwhen receive data on interrupt channel, the event comes enumerator ESP_HIDH_SET_INFO_EVTwhen set the HID device descriptor, the event comes enum esp_hidh_dev_attr_tHID device information from HID Device Service Record and Device ID Service Record. Values: enumerator ESP_HIDH_DEV_ATTR_VIRTUAL_CABLEwhether Virtual Cables is supported enumerator ESP_HIDH_DEV_ATTR_NORMALLY_CONNECTABLEwhether device is in Page Scan mode when there is no active connection enumerator ESP_HIDH_DEV_ATTR_RECONNECT_INITIATEwhether the HID device inititates the reconnection process enum esp_hidh_dev_app_id_tapplication ID(non-zero) for each type of device Values: enumerator ESP_HIDH_APP_ID_MOUSEpointing device enumerator ESP_HIDH_APP_ID_KEYBOARDkeyboard enumerator ESP_HIDH_APP_ID_REMOTE_CONTROLremote control enumerator ESP_HIDH_APP_ID_JOYSTICKjoystick enumerator ESP_HIDH_APP_ID_GAMEPADgamepad |
CopyRight 2018-2019 实验室设备网 版权所有 |