Select one of the symbols to view example projects that use it.
 
Outline
#include <string.h>
#include "esp_log.h"
#include "esp_bluedroid_hci.h"
#include "common/bt_target.h"
#include "hci/hci_trans_int.h"
#include "esp_bt.h"
#include "hci_log/bt_hci_log.h"
#define LOG_TAG
s_hci_driver_ops
esp_bluedroid_attach_hci_driver(const esp_bluedroid_hci_driver_operations_t *)
esp_bluedroid_detach_hci_driver()
hci_host_check_send_available()
hci_host_send_packet(uint8_t *, uint16_t)
hci_host_register_callback(const esp_bluedroid_hci_driver_callbacks_t *)
Files
ESP-IDF
components
app_trace
app_update
bootloader_support
bt
common
controller
esp_ble_mesh
host
bluedroid
api
include
bta
btc
common
config
device
external
hci
main
stack
nimble
include
porting
cmock
console
cxx
driver
efuse
esp_adc
esp_app_format
esp_bootloader_format
esp_coex
esp_common
esp_driver_ana_cmpr
esp_driver_cam
esp_driver_dac
esp_driver_gpio
esp_driver_gptimer
esp_driver_i2c
esp_driver_i2s
esp_driver_jpeg
esp_driver_ledc
esp_driver_mcpwm
esp_driver_parlio
esp_driver_pcnt
esp_driver_rmt
esp_driver_sdio
esp_driver_sdm
esp_driver_sdmmc
esp_driver_sdspi
esp_driver_spi
esp_driver_tsens
esp_driver_uart
esp_driver_usb_serial_jtag
esp_eth
esp_event
esp_gdbstub
esp_hid
esp_http_client
esp_http_server
esp_https_ota
esp_https_server
esp_hw_support
esp_lcd
esp_local_ctrl
esp_mm
esp_netif
esp_partition
esp_phy
esp_pm
esp_psram
esp_ringbuf
esp_rom
esp_security
esp_system
esp_timer
esp_vfs_console
esp_wifi
esp-tls
espcoredump
hal
heap
http_parser
ieee802154
log
mqtt
newlib
nvs_flash
nvs_sec_provider
openthread
perfmon
protobuf-c
protocomm
pthread
rt
sdmmc
soc
spi_flash
spiffs
tcp_transport
ulp
unity
vfs
wear_levelling
wifi_provisioning
wpa_supplicant
xtensa
examples
lwIP
FreeRTOS
cJSON
mbedTLS
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/bt/host/bluedroid/api/esp_bluedroid_hci.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include <string.h> #include "esp_log.h" #include "esp_bluedroid_hci.h" #include "common/bt_target.h" #include "hci/hci_trans_int.h"5 includes #if (BT_CONTROLLER_INCLUDED == TRUE) #include "esp_bt.h" #endif #include "hci_log/bt_hci_log.h" #define LOG_TAG "HCI_API" static esp_bluedroid_hci_driver_operations_t s_hci_driver_ops = { 0 }; esp_err_t esp_bluedroid_attach_hci_driver(const esp_bluedroid_hci_driver_operations_t *p_ops) { if (!p_ops) { ESP_LOGE(LOG_TAG, "%s invalid function parameter", __func__); return ESP_FAIL; }{...} s_hci_driver_ops.send = p_ops->send; s_hci_driver_ops.check_send_available = p_ops->check_send_available; s_hci_driver_ops.register_host_callback = p_ops->register_host_callback; return ESP_OK; }{ ... } esp_err_t esp_bluedroid_detach_hci_driver(void) { s_hci_driver_ops.send = NULL; s_hci_driver_ops.check_send_available = NULL; s_hci_driver_ops.register_host_callback = NULL; return ESP_OK; }{ ... } /**************************************************************** * INTERNAL USE * ****************************************************************//* ... */ bool hci_host_check_send_available(void) { bool can_send = false; #if (BT_CONTROLLER_INCLUDED == TRUE) can_send = esp_vhci_host_check_send_available(); #else /* BT_CONTROLLER_INCLUDED == TRUE */ if (s_hci_driver_ops.check_send_available) { can_send = s_hci_driver_ops.check_send_available(); }{...} #endif/* ... */ /* BT_CONTROLLER_INCLUDED == TRUE */ return can_send; }{ ... } void hci_host_send_packet(uint8_t *data, uint16_t len) { #if (BT_HCI_LOG_INCLUDED == TRUE) bt_hci_log_record_hci_data(data[0], &data[1], len - 1); #endif #if (BT_CONTROLLER_INCLUDED == TRUE) esp_vhci_host_send_packet(data, len); #else /* BT_CONTROLLER_INCLUDED == TRUE */ if (s_hci_driver_ops.send) { s_hci_driver_ops.send(data, len); }{...} #endif/* ... */ /* BT_CONTROLLER_INCLUDED == TRUE */ }{ ... } esp_err_t hci_host_register_callback(const esp_bluedroid_hci_driver_callbacks_t *callback) { esp_err_t ret = ESP_FAIL; if (!callback) { ESP_LOGE(LOG_TAG, "%s invalid function parameter", __func__); return ESP_FAIL; }{...} #if (BT_CONTROLLER_INCLUDED == TRUE) ret = esp_vhci_host_register_callback((esp_vhci_host_callback_t *)callback); #else /* BT_CONTROLLER_INCLUDED == TRUE */ if (s_hci_driver_ops.register_host_callback) { ret = s_hci_driver_ops.register_host_callback(callback); }{...} #endif/* ... */ /* BT_CONTROLLER_INCLUDED == TRUE */ return ret; }{ ... }
Details