mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-28 03:23:14 +00:00
Merge branch 'feat/ble_mesh_lib_log_output_opt' into 'master'
feat(ble_mesh): add ext log initialization functions Closes BLERP-2336 See merge request espressif/esp-idf!42926
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2017 Intel Corporation
|
||||
* SPDX-FileContributor: 2018-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileContributor: 2018-2025 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -450,6 +450,13 @@ int bt_mesh_init(const struct bt_mesh_prov *prov,
|
||||
}
|
||||
|
||||
#if CONFIG_BLE_MESH_V11_SUPPORT
|
||||
extern int bt_mesh_ext_log_init(void);
|
||||
err = bt_mesh_ext_log_init();
|
||||
if (err) {
|
||||
BT_ERR("Bluetooth Mesh lib log init failed, err %d", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
extern int bt_mesh_v11_ext_init(void);
|
||||
err = bt_mesh_v11_ext_init();
|
||||
if (err) {
|
||||
|
||||
@@ -4006,8 +4006,6 @@ void bt_mesh_ext_mbt_server_cb_evt_to_btc(uint8_t event, void *model, void *ctx)
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
uint64_t config_ble_mesh_stack_trace_level : 3;
|
||||
|
||||
uint64_t config_ble_mesh_use_ble_50: 1;
|
||||
uint64_t config_ble_mesh_use_duplicate_scan : 1;
|
||||
uint64_t config_ble_mesh_pb_adv : 1;
|
||||
@@ -4172,8 +4170,6 @@ typedef struct {
|
||||
} bt_mesh_ext_config_t;
|
||||
|
||||
static const bt_mesh_ext_config_t bt_mesh_ext_cfg = {
|
||||
.config_ble_mesh_stack_trace_level = BLE_MESH_LOG_LEVEL,
|
||||
|
||||
.config_ble_mesh_use_ble_50 = IS_ENABLED(CONFIG_BLE_MESH_USE_BLE_50),
|
||||
.config_ble_mesh_use_duplicate_scan = IS_ENABLED(CONFIG_BLE_MESH_USE_DUPLICATE_SCAN),
|
||||
.config_ble_mesh_pb_adv = IS_ENABLED(CONFIG_BLE_MESH_PB_ADV),
|
||||
@@ -4963,6 +4959,116 @@ static const bt_mesh_ext_funcs_t bt_mesh_ext_func = {
|
||||
/* CONFIG_BLE_MESH_MBT_SRV */
|
||||
};
|
||||
|
||||
#define BLE_MESH_LIB_TRACE_TAG "BLE_MESH(lib)"
|
||||
#define BLE_MESH_LOG_FORMAT_START(level) LOG_COLOR_ ## level #level " (%" PRIu32 ") %s: "
|
||||
#define BLE_MESH_LOG_FORMAT_END LOG_RESET_COLOR "\n"
|
||||
|
||||
typedef void (*logger_func_t)(const char *format, ...);
|
||||
|
||||
typedef struct {
|
||||
logger_func_t error;
|
||||
logger_func_t warn;
|
||||
logger_func_t info;
|
||||
logger_func_t debug;
|
||||
} bt_mesh_lib_ext_log_env_t;
|
||||
|
||||
void bt_mesh_lib_log_error(const char *format, ...)
|
||||
{
|
||||
#if (CONFIG_BLE_MESH_NO_LOG ||\
|
||||
/* Disable log output when compressed logging
|
||||
* is enabled but ERR logs are not preserved */\
|
||||
(CONFIG_BLE_MESH_STACK_ERR_LOG_COMPRESSION &&\
|
||||
!CONFIG_BLE_MESH_STACK_ERR_LOG_PRESERVE))
|
||||
return;
|
||||
#else
|
||||
if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_ERROR) &&
|
||||
BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, ERROR)) {
|
||||
va_list args = {0};
|
||||
va_start(args, format);
|
||||
esp_log_write(ESP_LOG_ERROR, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_START(E), esp_log_timestamp(), BLE_MESH_LIB_TRACE_TAG);
|
||||
esp_log_writev(ESP_LOG_ERROR, BLE_MESH_LIB_TRACE_TAG, format, args);
|
||||
esp_log_write(ESP_LOG_ERROR, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_END);
|
||||
va_end(args);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void bt_mesh_lib_log_warn(const char *format, ...)
|
||||
{
|
||||
#if (CONFIG_BLE_MESH_NO_LOG ||\
|
||||
/* Disable log output when compressed logging
|
||||
* is enabled but WARN logs are not preserved */\
|
||||
(CONFIG_BLE_MESH_STACK_WARN_LOG_COMPRESSION &&\
|
||||
!CONFIG_BLE_MESH_STACK_WARN_LOG_PRESERVE))
|
||||
return;
|
||||
#else
|
||||
if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_WARN) &&
|
||||
BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, WARN)) {
|
||||
va_list args = {0};
|
||||
va_start(args, format);
|
||||
esp_log_write(ESP_LOG_WARN, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_START(W), esp_log_timestamp(), BLE_MESH_LIB_TRACE_TAG);
|
||||
esp_log_writev(ESP_LOG_WARN, BLE_MESH_LIB_TRACE_TAG, format, args);
|
||||
esp_log_write(ESP_LOG_WARN, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_END);
|
||||
va_end(args);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void bt_mesh_lib_log_info(const char *format, ...)
|
||||
{
|
||||
#if (CONFIG_BLE_MESH_NO_LOG ||\
|
||||
/* Disable log output when compressed logging
|
||||
* is enabled but INFO logs are not preserved */\
|
||||
(CONFIG_BLE_MESH_STACK_INFO_LOG_COMPRESSION &&\
|
||||
!CONFIG_BLE_MESH_STACK_INFO_LOG_PRESERVE))
|
||||
return;
|
||||
#else
|
||||
if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_INFO) &&
|
||||
BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, INFO)) {
|
||||
va_list args = {0};
|
||||
va_start(args, format);
|
||||
esp_log_write(ESP_LOG_INFO, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_START(I), esp_log_timestamp(), BLE_MESH_LIB_TRACE_TAG);
|
||||
esp_log_writev(ESP_LOG_INFO, BLE_MESH_LIB_TRACE_TAG, format, args);
|
||||
esp_log_write(ESP_LOG_INFO, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_END);
|
||||
va_end(args);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void bt_mesh_lib_log_debug(const char *format, ...)
|
||||
{
|
||||
#if (CONFIG_BLE_MESH_NO_LOG ||\
|
||||
/* Disable log output when compressed logging
|
||||
* is enabled but DEBUG logs are not preserved */\
|
||||
(CONFIG_BLE_MESH_STACK_DEBUG_LOG_COMPRESSION &&\
|
||||
!CONFIG_BLE_MESH_STACK_DEBUG_LOG_PRESERVE))
|
||||
return;
|
||||
#else
|
||||
if ((BLE_MESH_LOG_LEVEL >= BLE_MESH_LOG_LEVEL_DEBUG) &&
|
||||
BLE_MESH_LOG_LEVEL_CHECK(BLE_MESH, DEBUG)) {
|
||||
va_list args = {0};
|
||||
va_start(args, format);
|
||||
esp_log_write(ESP_LOG_DEBUG, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_START(D), esp_log_timestamp(), BLE_MESH_LIB_TRACE_TAG);
|
||||
esp_log_writev(ESP_LOG_DEBUG, BLE_MESH_LIB_TRACE_TAG, format, args);
|
||||
esp_log_write(ESP_LOG_DEBUG, BLE_MESH_LIB_TRACE_TAG, BLE_MESH_LOG_FORMAT_END);
|
||||
va_end(args);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
static bt_mesh_lib_ext_log_env_t bt_mesh_ext_log_env = {
|
||||
.error = bt_mesh_lib_log_error,
|
||||
.warn = bt_mesh_lib_log_warn,
|
||||
.info = bt_mesh_lib_log_info,
|
||||
.debug = bt_mesh_lib_log_debug,
|
||||
};
|
||||
|
||||
int bt_mesh_ext_log_init(void)
|
||||
{
|
||||
return bt_mesh_lib_log_env_init(&bt_mesh_ext_log_env,
|
||||
sizeof(bt_mesh_lib_ext_log_env_t));
|
||||
}
|
||||
|
||||
int bt_mesh_v11_ext_init(void)
|
||||
{
|
||||
return bt_mesh_v11_init(&bt_mesh_ext_cfg, sizeof(bt_mesh_ext_cfg),
|
||||
|
||||
@@ -24,6 +24,8 @@ extern "C" {
|
||||
int bt_mesh_v11_init(const void *cfg, size_t cfg_size,
|
||||
const void *func, size_t func_size);
|
||||
|
||||
int bt_mesh_lib_log_env_init(void *log_env, size_t log_env_size);
|
||||
|
||||
int bt_mesh_v11_deinit(void);
|
||||
|
||||
#define BLE_MESH_TAG_SEND_SEGMENTED BIT(0)
|
||||
|
||||
Submodule components/bt/esp_ble_mesh/lib/lib updated: d9fe7de9a9...6997e718f6
Reference in New Issue
Block a user