fix(nimble): Update hid device example in nimble to work with iOS

This commit is contained in:
Rahul Tank
2024-12-06 15:38:22 +05:30
parent 61d1a1ff7f
commit 0cefe61edc
3 changed files with 8 additions and 2 deletions

View File

@ -381,8 +381,10 @@ static int nimble_hidd_dev_input_set(void *devp, size_t index, size_t id, uint8_
assert(p_rpt != NULL);
om = ble_hs_mbuf_from_flat((void*)data, length);
assert(om != NULL);
/* NOTE : om is freed by stack */
rc = ble_att_svr_write_local(p_rpt->handle, om);
rc = ble_gatts_notify_custom(s_dev->conn_id, p_rpt->handle, om);
if (rc != 0) {
ESP_LOGE(TAG, "Write Input Report Failed: %d", rc);
return ESP_FAIL;

View File

@ -92,4 +92,5 @@ I (50557) HID_DEV_DEMO: Send the volume
## Troubleshooting
For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.
1. When using NimBLE stack, some iOS devices do not show the volume pop up. To fix this, please set CONFIG_BT_NIMBLE_SM_LVL to value 2. iOS needs Authenticated Pairing with Encryption to show up the pop ups.
2. For any technical queries, please open an [issue](https://github.com/espressif/esp-idf/issues) on GitHub. We will get back to you soon.

View File

@ -766,6 +766,9 @@ esp_err_t esp_hid_ble_gap_adv_init(uint16_t appearance, const char *device_name)
fields.flags = BLE_HS_ADV_F_DISC_GEN |
BLE_HS_ADV_F_BREDR_UNSUP;
fields.appearance = ESP_HID_APPEARANCE_GENERIC;
fields.appearance_is_present = 1;
/* Indicate that the TX power level field should be included; have the
* stack fill this value automatically. This is done by assigning the
* special value BLE_HS_ADV_TX_PWR_LVL_AUTO.