]> granicus.if.org Git - esp-idf/commitdiff
Merge branch 'feature/btdm_add_get_local_used_addr_API' into 'master'
authorJiang Jiang Jian <jack@espressif.com>
Mon, 2 Apr 2018 14:28:00 +0000 (22:28 +0800)
committerJiang Jiang Jian <jack@espressif.com>
Mon, 2 Apr 2018 14:28:00 +0000 (22:28 +0800)
Component/bt: add esp_ble_gap_get_local_used_addr() API

See merge request idf/esp-idf!2137

1  2 
components/bt/bluedroid/stack/btm/btm_ble_gap.c
components/bt/bluedroid/stack/include/btm_ble_api.h

index b5faafe166eda9ff27a53782e0f4664ca0f9c11d,eb918ce6e7443f32cf2cc988fbfc9c13de9b56df..dfb588f243af055ca98560cf1336b0ad6ac23884
@@@ -1597,13 -1584,41 +1597,44 @@@ tBTM_STATUS BTM_BleSetRandAddress(BD_AD
      memcpy(btm_cb.ble_ctr_cb.addr_mgnt_cb.private_addr, rand_addr, BD_ADDR_LEN);
      btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type = BLE_ADDR_RANDOM;
      //send the set random address to the controller
 -    set_flag = btsnd_hcic_ble_set_random_addr(rand_addr);
 -    return set_flag;
 +    if(btsnd_hcic_ble_set_random_addr(rand_addr)) {
 +        return BTM_SUCCESS;
 +    } else {
 +        return BTM_SET_STATIC_RAND_ADDR_FAIL;
 +    }
  }
  
+ /*******************************************************************************
+ **
+ ** Function         BTM_BleGetCurrentAddress
+ **
+ ** Description      This function is called to get local used BLE address.
+ **
+ ** Parameters:       None.
+ **
+ ** Returns          success or fail
+ **
+ *******************************************************************************/
+ BOOLEAN BTM_BleGetCurrentAddress(BD_ADDR addr, uint8_t *addr_type)
+ {
+     if(addr == NULL || addr_type == NULL) {
+         BTM_TRACE_ERROR("%s addr or addr_type is NULL\n", __func__);
+         return FALSE;
+     }
+     if(btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type == BLE_ADDR_RANDOM) {
+         *addr_type = BLE_ADDR_RANDOM;
+         memcpy(addr, btm_cb.ble_ctr_cb.addr_mgnt_cb.private_addr, BD_ADDR_LEN);
+     } else if(btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type == BLE_ADDR_PUBLIC) {
+         *addr_type = BLE_ADDR_PUBLIC;
+         memcpy(addr, &controller_get_interface()->get_address()->address, BD_ADDR_LEN);
+     } else {
+         BTM_TRACE_ERROR("%s\n", __func__);
+         memset(addr, 0, BD_ADDR_LEN);
+         return FALSE;
+     }
+     return TRUE; 
+ }
  /*******************************************************************************
  **
  ** Function         BTM_CheckAdvData