mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
component/bt: Modify the bluetooth device name length limits
This commit is contained in:
@ -1040,6 +1040,16 @@ config BT_BLE_ESTAB_LINK_CONN_TOUT
|
|||||||
Bluetooth Connection establishment maximum time, if connection time exceeds this value, the connection
|
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.
|
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
|
config BT_BLE_RPA_SUPPORTED
|
||||||
bool "Update RPA to Controller"
|
bool "Update RPA to Controller"
|
||||||
depends on BT_BLUEDROID_ENABLED
|
depends on BT_BLUEDROID_ENABLED
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// 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.
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -39,13 +31,18 @@ esp_err_t esp_bt_dev_set_device_name(const char *name)
|
|||||||
if (!name){
|
if (!name){
|
||||||
return ESP_ERR_INVALID_ARG;
|
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;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.sig = BTC_SIG_API_CALL;
|
msg.sig = BTC_SIG_API_CALL;
|
||||||
msg.pid = BTC_PID_DEV;
|
msg.pid = BTC_PID_DEV;
|
||||||
msg.act = BTC_DEV_ACT_SET_DEVICE_NAME;
|
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);
|
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);
|
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
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// 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.
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "osi/allocator.h"
|
||||||
#include "bta/bta_api.h"
|
#include "bta/bta_api.h"
|
||||||
#include "btc/btc_task.h"
|
#include "btc/btc_task.h"
|
||||||
#include "btc/btc_manage.h"
|
#include "btc/btc_manage.h"
|
||||||
#include "btc/btc_dev.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)
|
void btc_dev_call_handler(btc_msg_t *msg)
|
||||||
{
|
{
|
||||||
btc_dev_args_t *arg = (btc_dev_args_t *)msg->arg;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
btc_dev_arg_deep_free(msg);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// 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.
|
|
||||||
|
|
||||||
#ifndef __BTC_DEV_H__
|
#ifndef __BTC_DEV_H__
|
||||||
#define __BTC_DEV_H__
|
#define __BTC_DEV_H__
|
||||||
@ -27,8 +19,7 @@ typedef enum {
|
|||||||
typedef union {
|
typedef union {
|
||||||
// BTC_BT_GAP_ACT_SET_DEV_NAME
|
// BTC_BT_GAP_ACT_SET_DEV_NAME
|
||||||
struct set_bt_dev_name_args {
|
struct set_bt_dev_name_args {
|
||||||
#define ESP_DEV_DEVICE_NAME_MAX (32)
|
char *device_name;
|
||||||
char device_name[ESP_DEV_DEVICE_NAME_MAX + 1];
|
|
||||||
} set_dev_name;
|
} set_dev_name;
|
||||||
} btc_dev_args_t;
|
} btc_dev_args_t;
|
||||||
|
|
||||||
|
@ -171,6 +171,13 @@
|
|||||||
|
|
||||||
#if CONFIG_IDF_TARGET_ESP32
|
#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
|
//BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
||||||
#ifdef CONFIG_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
|
#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.
|
/* Maximum local device name length stored btm database.
|
||||||
'0' disables storage of the local name in BTM */
|
'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 BTM_MAX_LOC_BD_NAME_LEN 64
|
||||||
|
#define BTC_MAX_LOC_BD_NAME_LEN BTM_MAX_LOC_BD_NAME_LEN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Fixed Default String. When this is defined as null string, the device's
|
/* Fixed Default String. When this is defined as null string, the device's
|
||||||
|
Reference in New Issue
Block a user