mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix TX power value in ble adv data is incorrect
refence to https://github.com/espressif/esp-idf/issues/2284 Before fixing, the tx power in adv data is always 0xeb(-21dbm). restriction: If change BLE advertising TX power, please call esp_ble_gap_config_adv_data() after BLE adv TX power changed. Later, will implement set BLE advertising TX power via HCI, then the TX power value in adv data can be update automatically after BLE adv TX power changed.
This commit is contained in:
parent
ff2cea0df2
commit
b9382b29fa
@ -29,6 +29,7 @@
|
||||
#include "btc/btc_dm.h"
|
||||
#include "btc/btc_util.h"
|
||||
#include "osi/mutex.h"
|
||||
#include "esp_bt.h"
|
||||
|
||||
static tBTA_BLE_ADV_DATA gl_bta_adv_data;
|
||||
static tBTA_BLE_ADV_DATA gl_bta_scan_rsp_data;
|
||||
@ -142,6 +143,7 @@ static void btc_to_bta_adv_data(esp_ble_adv_data_t *p_adv_data, tBTA_BLE_ADV_DAT
|
||||
|
||||
if (p_adv_data->include_txpower) {
|
||||
mask |= BTM_BLE_AD_BIT_TX_PWR;
|
||||
bta_adv_data->tx_power = esp_ble_tx_power_get(ESP_BLE_PWR_TYPE_ADV);
|
||||
}
|
||||
|
||||
if (p_adv_data->min_interval > 0 && p_adv_data->max_interval > 0 &&
|
||||
|
@ -992,7 +992,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef BTM_BLE_ADV_TX_POWER
|
||||
#define BTM_BLE_ADV_TX_POWER {-21, -15, -7, 1, 9}
|
||||
#define BTM_BLE_ADV_TX_POWER {-12, -9, -6, -3, 0, 3, 6, 9}
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -222,10 +222,10 @@ tBTM_STATUS btm_ble_enable_multi_adv (BOOLEAN enable, UINT8 inst_id, UINT8 cb_ev
|
||||
** Returns tx power in dBm
|
||||
**
|
||||
*******************************************************************************/
|
||||
int btm_ble_tx_power[BTM_BLE_ADV_TX_POWER_MAX + 1] = BTM_BLE_ADV_TX_POWER;
|
||||
static const int btm_ble_tx_power[BTM_BLE_ADV_TX_POWER_MAX + 1] = BTM_BLE_ADV_TX_POWER;
|
||||
char btm_ble_map_adv_tx_power(int tx_power_index)
|
||||
{
|
||||
if (0 <= tx_power_index && tx_power_index < BTM_BLE_ADV_TX_POWER_MAX) {
|
||||
if (0 <= tx_power_index && tx_power_index <= BTM_BLE_ADV_TX_POWER_MAX) {
|
||||
return (char)btm_ble_tx_power[tx_power_index];
|
||||
}
|
||||
return 0;
|
||||
|
@ -375,10 +375,7 @@ typedef UINT8 tBTM_BLE_AD_TYPE;
|
||||
|
||||
/* adv tx power level */
|
||||
#define BTM_BLE_ADV_TX_POWER_MIN 0 /* minimum tx power */
|
||||
#define BTM_BLE_ADV_TX_POWER_LOW 1 /* low tx power */
|
||||
#define BTM_BLE_ADV_TX_POWER_MID 2 /* middle tx power */
|
||||
#define BTM_BLE_ADV_TX_POWER_UPPER 3 /* upper tx power */
|
||||
#define BTM_BLE_ADV_TX_POWER_MAX 4 /* maximum tx power */
|
||||
#define BTM_BLE_ADV_TX_POWER_MAX 7 /* maximum tx power */
|
||||
typedef UINT8 tBTM_BLE_ADV_TX_POWER;
|
||||
|
||||
/* adv tx power in dBm */
|
||||
|
Loading…
x
Reference in New Issue
Block a user