mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-10-24 06:29:10 +00:00
feat(nimble): Added API to get resolve ADV data
This commit is contained in:
committed by
Rahul Tank
parent
040b56ba3b
commit
a147a4ec7b
@@ -121,6 +121,19 @@ int ble_gap_host_check_status(void);
|
||||
*/
|
||||
int ble_gap_get_local_used_addr(ble_addr_t *addr);
|
||||
|
||||
/**
|
||||
* This API is called to get ADV data for a specific type.
|
||||
|
||||
*
|
||||
* @param adv_data Pointer of ADV data which to be resolved.
|
||||
* @param adv_type Finding ADV data type.
|
||||
* @param adv_data_len Total length of Advertising data.
|
||||
* @param length Return the length of ADV data not including type.
|
||||
*
|
||||
* @return Pointer of type specific ADV data.
|
||||
*/
|
||||
uint8_t* ble_resolve_adv_data(const uint8_t *adv_data, uint8_t adv_type, uint8_t adv_data_len , uint8_t * length);
|
||||
|
||||
#if MYNEWT_VAL(BLE_HCI_VS)
|
||||
#if MYNEWT_VAL(BLE_POWER_CONTROL)
|
||||
|
||||
|
||||
@@ -850,6 +850,23 @@ int ble_gap_get_local_used_addr(ble_addr_t *addr)
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
uint8_t* ble_resolve_adv_data(const uint8_t *adv_data, uint8_t adv_type, uint8_t adv_data_len , uint8_t * length)
|
||||
{
|
||||
int rc = 0;
|
||||
const struct ble_hs_adv_field *fields;
|
||||
const uint8_t *data;
|
||||
|
||||
rc = ble_hs_adv_find_field(adv_type, adv_data, adv_data_len, &fields); /*Fill adv field*/
|
||||
|
||||
if (rc == 0) {
|
||||
*length = fields->length -1 ; /* minus length of type*/
|
||||
data = fields->value; /* Type specific adv data*/
|
||||
return (uint8_t*)data;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
/*****************************************************************************
|
||||
* $misc *
|
||||
*****************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user