mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/btdm_fix_some_bluedroid_issues' into 'master'
Fix some bluedroid issues Closes BT-1926 and FCS-743 See merge request espressif/esp-idf!15170
This commit is contained in:
commit
4b2396e7fc
@ -1040,6 +1040,16 @@ config BT_BLE_ESTAB_LINK_CONN_TOUT
|
||||
Bluetooth Connection establishment maximum time, if connection time exceeds this value, the connection
|
||||
establishment fails, ESP_GATTC_OPEN_EVT or ESP_GATTS_OPEN_EVT is triggered.
|
||||
|
||||
config BT_MAX_DEVICE_NAME_LEN
|
||||
int "length of bluetooth device name"
|
||||
depends on BT_BLUEDROID_ENABLED
|
||||
range 32 248
|
||||
default 32
|
||||
help
|
||||
Bluetooth Device name length shall be no larger than 248 octets, If the broadcast data cannot contain
|
||||
the complete device name, then only the shortname will be displayed, the rest parts that can't fit in
|
||||
will be truncated.
|
||||
|
||||
config BT_BLE_RPA_SUPPORTED
|
||||
bool "Update RPA to Controller"
|
||||
depends on BT_BLUEDROID_ENABLED
|
||||
|
@ -1,16 +1,8 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -39,13 +31,18 @@ esp_err_t esp_bt_dev_set_device_name(const char *name)
|
||||
if (!name){
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
if (strlen(name) > ESP_DEV_DEVICE_NAME_MAX) {
|
||||
if (strlen(name) > BTC_MAX_LOC_BD_NAME_LEN) {
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
|
||||
msg.sig = BTC_SIG_API_CALL;
|
||||
msg.pid = BTC_PID_DEV;
|
||||
msg.act = BTC_DEV_ACT_SET_DEVICE_NAME;
|
||||
arg.set_dev_name.device_name = (char *)malloc((BTC_MAX_LOC_BD_NAME_LEN + 1) * sizeof(char));
|
||||
if (!arg.set_dev_name.device_name) {
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
|
||||
strcpy(arg.set_dev_name.device_name, name);
|
||||
|
||||
return (btc_transfer_context(&msg, &arg, sizeof(btc_dev_args_t), NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL);
|
||||
|
@ -1,23 +1,34 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include "osi/allocator.h"
|
||||
#include "bta/bta_api.h"
|
||||
#include "btc/btc_task.h"
|
||||
#include "btc/btc_manage.h"
|
||||
#include "btc/btc_dev.h"
|
||||
|
||||
void btc_dev_arg_deep_free(btc_msg_t *msg)
|
||||
{
|
||||
BTC_TRACE_DEBUG("%s \n", __func__);
|
||||
|
||||
switch (msg->act) {
|
||||
case BTC_DEV_ACT_SET_DEVICE_NAME:{
|
||||
char *device_name = ((btc_dev_args_t *)msg->arg)->set_dev_name.device_name;
|
||||
if (device_name) {
|
||||
osi_free(device_name);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
BTC_TRACE_DEBUG("Unhandled deep free %d\n", msg->act);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void btc_dev_call_handler(btc_msg_t *msg)
|
||||
{
|
||||
btc_dev_args_t *arg = (btc_dev_args_t *)msg->arg;
|
||||
@ -31,4 +42,6 @@ void btc_dev_call_handler(btc_msg_t *msg)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
btc_dev_arg_deep_free(msg);
|
||||
}
|
||||
|
@ -1,16 +1,8 @@
|
||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __BTC_DEV_H__
|
||||
#define __BTC_DEV_H__
|
||||
@ -27,8 +19,7 @@ typedef enum {
|
||||
typedef union {
|
||||
// BTC_BT_GAP_ACT_SET_DEV_NAME
|
||||
struct set_bt_dev_name_args {
|
||||
#define ESP_DEV_DEVICE_NAME_MAX (32)
|
||||
char device_name[ESP_DEV_DEVICE_NAME_MAX + 1];
|
||||
char *device_name;
|
||||
} set_dev_name;
|
||||
} btc_dev_args_t;
|
||||
|
||||
|
@ -163,6 +163,14 @@
|
||||
#endif
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
|
||||
//Device Nane Maximum Length
|
||||
#ifdef CONFIG_BT_MAX_DEVICE_NAME_LEN
|
||||
#define UC_MAX_LOC_BD_NAME_LEN CONFIG_BT_MAX_DEVICE_NAME_LEN
|
||||
#else
|
||||
#define UC_MAX_LOC_BD_NAME_LEN 64
|
||||
#endif
|
||||
|
||||
//BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
||||
#ifdef CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
||||
#define UC_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
||||
|
@ -850,8 +850,12 @@
|
||||
|
||||
/* Maximum local device name length stored btm database.
|
||||
'0' disables storage of the local name in BTM */
|
||||
#ifndef BTM_MAX_LOC_BD_NAME_LEN
|
||||
#if UC_MAX_LOC_BD_NAME_LEN
|
||||
#define BTM_MAX_LOC_BD_NAME_LEN UC_MAX_LOC_BD_NAME_LEN
|
||||
#define BTC_MAX_LOC_BD_NAME_LEN BTM_MAX_LOC_BD_NAME_LEN
|
||||
#else
|
||||
#define BTM_MAX_LOC_BD_NAME_LEN 64
|
||||
#define BTC_MAX_LOC_BD_NAME_LEN BTM_MAX_LOC_BD_NAME_LEN
|
||||
#endif
|
||||
|
||||
/* Fixed Default String. When this is defined as null string, the device's
|
||||
|
@ -523,10 +523,6 @@ tBTM_STATUS BTM_BleStartExtAdv(BOOLEAN enable, UINT8 num, tBTM_BLE_EXT_ADV *ext_
|
||||
end:
|
||||
|
||||
if (!enable && status == BTM_SUCCESS) {
|
||||
// Reset the configure parameters when stop extend adv.
|
||||
for (int i = 0; i < MAX_BLE_ADV_INSTANCE; i++) {
|
||||
extend_adv_cb.inst[i].configured = false;
|
||||
}
|
||||
// disable all ext adv
|
||||
if(num == 0) {
|
||||
|
||||
|
@ -255,7 +255,6 @@ components/bt/esp_ble_mesh/mesh_models/server/state_transition.c
|
||||
components/bt/esp_ble_mesh/mesh_models/server/time_scene_server.c
|
||||
components/bt/host/bluedroid/api/esp_a2dp_api.c
|
||||
components/bt/host/bluedroid/api/esp_avrc_api.c
|
||||
components/bt/host/bluedroid/api/esp_bt_device.c
|
||||
components/bt/host/bluedroid/api/esp_bt_main.c
|
||||
components/bt/host/bluedroid/api/esp_gap_ble_api.c
|
||||
components/bt/host/bluedroid/api/esp_gap_bt_api.c
|
||||
@ -395,7 +394,6 @@ components/bt/host/bluedroid/bta/sys/include/bta_sys_int.h
|
||||
components/bt/host/bluedroid/bta/sys/utl.c
|
||||
components/bt/host/bluedroid/btc/core/btc_ble_storage.c
|
||||
components/bt/host/bluedroid/btc/core/btc_config.c
|
||||
components/bt/host/bluedroid/btc/core/btc_dev.c
|
||||
components/bt/host/bluedroid/btc/core/btc_dm.c
|
||||
components/bt/host/bluedroid/btc/core/btc_main.c
|
||||
components/bt/host/bluedroid/btc/core/btc_profile_queue.c
|
||||
@ -405,7 +403,6 @@ components/bt/host/bluedroid/btc/core/btc_util.c
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_ble_storage.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_common.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_config.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_dev.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_dm.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_main.h
|
||||
components/bt/host/bluedroid/btc/include/btc/btc_profile_queue.h
|
||||
|
Loading…
Reference in New Issue
Block a user