From 157acb308601df34bfcc6682de7d2ffeea563231 Mon Sep 17 00:00:00 2001 From: zwj Date: Thu, 15 Sep 2022 21:57:02 +0800 Subject: [PATCH] Fixed extend adv tx power range error --- .../bt/host/bluedroid/api/include/api/esp_gap_ble_api.h | 3 +++ components/bt/host/bluedroid/bta/include/bta/bta_api.h | 2 +- components/bt/host/bluedroid/stack/hcic/hciblecmds.c | 4 ++-- .../bt/host/bluedroid/stack/include/stack/btm_ble_api.h | 2 +- components/bt/host/bluedroid/stack/include/stack/hcimsgs.h | 2 +- .../ble_50/ble50_security_server/main/ble50_sec_gatts_demo.c | 1 + .../bluedroid/ble_50/multi-adv/main/multi_adv_demo.c | 5 +++++ .../bluedroid/ble_50/peroidic_adv/main/periodic_adv_demo.c | 1 + 8 files changed, 15 insertions(+), 5 deletions(-) diff --git a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h index ce30993585..a842f11def 100644 --- a/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h +++ b/components/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h @@ -765,6 +765,9 @@ typedef uint8_t esp_ble_gap_sync_t; #define ESP_BLE_LEGACY_ADV_TYPE_SCAN_RSP_TO_ADV_SCAN_IND (0x1a) typedef uint8_t esp_ble_gap_adv_type_t; +/// Extend advertising tx power, range: [-127, +126] dBm +#define EXT_ADV_TX_PWR_NO_PREFERENCE (127) /*!< host has no preference for tx power */ + /** * @brief ext adv parameters */ diff --git a/components/bt/host/bluedroid/bta/include/bta/bta_api.h b/components/bt/host/bluedroid/bta/include/bta/bta_api.h index 32e59d27e2..67ad7d6686 100644 --- a/components/bt/host/bluedroid/bta/include/bta/bta_api.h +++ b/components/bt/host/bluedroid/bta/include/bta/bta_api.h @@ -1466,7 +1466,7 @@ typedef struct { tBLE_ADDR_TYPE peer_addr_type; BD_ADDR peer_addr; tBTA_BLE_AFP filter_policy; - UINT8 tx_power; + INT8 tx_power; tBTA_DM_BLE_GAP_PHY primary_phy; UINT8 max_skip; tBTA_DM_BLE_GAP_PHY secondary_phy; diff --git a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c index 4369ecc2c8..8aaab5ea2a 100644 --- a/components/bt/host/bluedroid/stack/hcic/hciblecmds.c +++ b/components/bt/host/bluedroid/stack/hcic/hciblecmds.c @@ -1214,7 +1214,7 @@ UINT8 btsnd_hcic_ble_set_extend_rand_address(UINT8 adv_handle, BD_ADDR rand_addr UINT8 btsnd_hcic_ble_set_ext_adv_params(UINT8 adv_handle, UINT16 properties, UINT32 interval_min, UINT32 interval_max, UINT8 channel_map, UINT8 own_addr_type, UINT8 peer_addr_type, BD_ADDR peer_addr, - UINT8 adv_filter_policy, UINT8 adv_tx_power, + UINT8 adv_filter_policy, INT8 adv_tx_power, UINT8 primary_adv_phy, UINT8 secondary_adv_max_skip, UINT8 secondary_adv_phy, UINT8 adv_sid, UINT8 scan_req_ntf_enable) @@ -1244,7 +1244,7 @@ UINT8 btsnd_hcic_ble_set_ext_adv_params(UINT8 adv_handle, UINT16 properties, UIN UINT8_TO_STREAM(pp, peer_addr_type); BDADDR_TO_STREAM (pp, peer_addr); UINT8_TO_STREAM(pp, adv_filter_policy); - UINT8_TO_STREAM(pp, adv_tx_power); + INT8_TO_STREAM(pp, adv_tx_power); UINT8_TO_STREAM(pp, primary_adv_phy); UINT8_TO_STREAM(pp, secondary_adv_max_skip); UINT8_TO_STREAM(pp, secondary_adv_phy); diff --git a/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h b/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h index f7cac0ecd8..b20b861a28 100644 --- a/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h +++ b/components/bt/host/bluedroid/stack/include/stack/btm_ble_api.h @@ -767,7 +767,7 @@ typedef struct { tBLE_ADDR_TYPE peer_addr_type; BD_ADDR peer_addr; tBTM_BLE_AFP filter_policy; - UINT8 tx_power; + INT8 tx_power; tBTM_BLE_GAP_PHY primary_phy; UINT8 max_skip; tBTM_BLE_GAP_PHY secondary_phy; diff --git a/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h b/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h index 44aa840945..ebdacff27a 100644 --- a/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h +++ b/components/bt/host/bluedroid/stack/include/stack/hcimsgs.h @@ -962,7 +962,7 @@ UINT8 btsnd_hcic_ble_set_extend_rand_address(UINT8 adv_handle, BD_ADDR rand_addr UINT8 btsnd_hcic_ble_set_ext_adv_params(UINT8 adv_handle, UINT16 properties, UINT32 interval_min, UINT32 interval_max, UINT8 channel_map, UINT8 own_addr_type, UINT8 peer_addr_type, BD_ADDR peer_addr, - UINT8 adv_filter_policy, UINT8 adv_tx_power, + UINT8 adv_filter_policy, INT8 adv_tx_power, UINT8 primary_adv_phy, UINT8 secondary_adv_max_skip, UINT8 secondary_adv_phy, UINT8 adv_sid, UINT8 scan_req_ntf_enable); diff --git a/examples/bluetooth/bluedroid/ble_50/ble50_security_server/main/ble50_sec_gatts_demo.c b/examples/bluetooth/bluedroid/ble_50/ble50_security_server/main/ble50_sec_gatts_demo.c index 744acce676..d56abe5483 100644 --- a/examples/bluetooth/bluedroid/ble_50/ble50_security_server/main/ble50_sec_gatts_demo.c +++ b/examples/bluetooth/bluedroid/ble_50/ble50_security_server/main/ble50_sec_gatts_demo.c @@ -57,6 +57,7 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { .sid = 0, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_PUBLIC, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; struct gatts_profile_inst { diff --git a/examples/bluetooth/bluedroid/ble_50/multi-adv/main/multi_adv_demo.c b/examples/bluetooth/bluedroid/ble_50/multi-adv/main/multi_adv_demo.c index 92eb86ebcd..b3fb958afa 100644 --- a/examples/bluetooth/bluedroid/ble_50/multi-adv/main/multi_adv_demo.c +++ b/examples/bluetooth/bluedroid/ble_50/multi-adv/main/multi_adv_demo.c @@ -6,6 +6,7 @@ CONDITIONS OF ANY KIND, either express or implied. */ + /**************************************************************************** * * This demo showcases BLE GATT server. It can send adv data, be connected by client. @@ -66,6 +67,7 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_1M = { .sid = 0, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_RANDOM, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { @@ -80,6 +82,7 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { .sid = 1, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_RANDOM, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; esp_ble_gap_ext_adv_params_t legacy_adv_params = { @@ -94,6 +97,7 @@ esp_ble_gap_ext_adv_params_t legacy_adv_params = { .sid = 2, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_RANDOM, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; esp_ble_gap_ext_adv_params_t ext_adv_params_coded = { @@ -108,6 +112,7 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_coded = { .sid = 3, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_RANDOM, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; static uint8_t raw_adv_data_1m[] = { diff --git a/examples/bluetooth/bluedroid/ble_50/peroidic_adv/main/periodic_adv_demo.c b/examples/bluetooth/bluedroid/ble_50/peroidic_adv/main/periodic_adv_demo.c index 9a2d032fbf..c97bfe029c 100644 --- a/examples/bluetooth/bluedroid/ble_50/peroidic_adv/main/periodic_adv_demo.c +++ b/examples/bluetooth/bluedroid/ble_50/peroidic_adv/main/periodic_adv_demo.c @@ -67,6 +67,7 @@ esp_ble_gap_ext_adv_params_t ext_adv_params_2M = { .sid = 0, .scan_req_notif = false, .own_addr_type = BLE_ADDR_TYPE_RANDOM, + .tx_power = EXT_ADV_TX_PWR_NO_PREFERENCE, }; static esp_ble_gap_periodic_adv_params_t periodic_adv_params = {