Skip to content

Commit

Permalink
hid examples support esp32c3/s3
Browse files Browse the repository at this point in the history
  • Loading branch information
Weijian-Espressif committed Jun 25, 2021
1 parent ec22b49 commit 2ee9140
Show file tree
Hide file tree
Showing 8 changed files with 94 additions and 7 deletions.
5 changes: 5 additions & 0 deletions examples/bluetooth/esp_hid_device/main/esp_hid_device_main.c
Expand Up @@ -368,7 +368,12 @@ void app_main(void)
}
ESP_ERROR_CHECK( ret );

#if CONFIG_BT_CLASSIC_ENABLED
ret = esp_hid_gap_init(ESP_BT_MODE_BTDM);
#else
ret = esp_hid_gap_init(ESP_BT_MODE_BLE);
#endif

ESP_ERROR_CHECK( ret );

ret = esp_hid_ble_gap_adv_init(ESP_HID_APPEARANCE_GENERIC, hid_config.device_name);
Expand Down
18 changes: 15 additions & 3 deletions examples/bluetooth/esp_hid_device/main/esp_hid_gap.c
Expand Up @@ -135,6 +135,7 @@ static esp_hid_scan_result_t *find_scan_result(esp_bd_addr_t bda, esp_hid_scan_r
return NULL;
}

#if CONFIG_BT_CLASSIC_ENABLED
static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid_t *uuid, uint8_t *name, uint8_t name_len, int rssi)
{
esp_hid_scan_result_t *r = find_scan_result(bda, bt_scan_results);
Expand Down Expand Up @@ -186,6 +187,7 @@ static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid
bt_scan_results = r;
num_bt_scan_results++;
}
#endif

static void add_ble_scan_result(esp_bd_addr_t bda, esp_ble_addr_type_t addr_type, uint16_t appearance, uint8_t *name, uint8_t name_len, int rssi)
{
Expand Down Expand Up @@ -237,6 +239,7 @@ void print_uuid(esp_bt_uuid_t *uuid)
}
}

#if CONFIG_BT_CLASSIC_ENABLED
static void handle_bt_device_result(struct disc_res_param *disc_res)
{
GAP_DBG_PRINTF("BT : " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(disc_res->bda));
Expand Down Expand Up @@ -325,6 +328,7 @@ static void handle_bt_device_result(struct disc_res_param *disc_res)
add_bt_scan_result(disc_res->bda, cod, &uuid, name, name_len, rssi);
}
}
#endif

static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst)
{
Expand Down Expand Up @@ -372,7 +376,7 @@ static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst)
}
}


#if CONFIG_BT_CLASSIC_ENABLED
/*
* BT GAP
* */
Expand Down Expand Up @@ -440,6 +444,7 @@ static esp_err_t start_bt_scan(uint32_t seconds)
}
return ret;
}
#endif

/*
* BLE GAP
Expand Down Expand Up @@ -671,11 +676,15 @@ static esp_err_t init_low_level(uint8_t mode)
{
esp_err_t ret;
esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
#if CONFIG_BT_CLASSIC_ENABLED
if (mode & ESP_BT_MODE_CLASSIC_BT) {
bt_cfg.mode = mode;
bt_cfg.bt_max_acl_conn = 3;
bt_cfg.bt_max_sync_conn = 3;
} else {
} else
#endif
{

ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT);
if (ret) {
ESP_LOGE(TAG, "esp_bt_controller_mem_release failed: %d", ret);
Expand Down Expand Up @@ -705,13 +714,14 @@ static esp_err_t init_low_level(uint8_t mode)
ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", ret);
return ret;
}

#if CONFIG_BT_CLASSIC_ENABLED
if (mode & ESP_BT_MODE_CLASSIC_BT) {
ret = init_bt_gap();
if (ret) {
return ret;
}
}
#endif

if (mode & ESP_BT_MODE_BLE) {
ret = init_ble_gap();
Expand Down Expand Up @@ -772,9 +782,11 @@ esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_resul
}

if (start_ble_scan(seconds) == ESP_OK) {
#if CONFIG_BT_CLASSIC_ENABLED
if (start_bt_scan(seconds) == ESP_OK) {
WAIT_BT_CB();
}
#endif
WAIT_BLE_CB();
} else {
return ESP_FAIL;
Expand Down
14 changes: 14 additions & 0 deletions examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32c3
@@ -0,0 +1,14 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET="esp32c3"
CONFIG_IDF_TARGET_ESP32C3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005

#
# Bluetooth
#
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
14 changes: 14 additions & 0 deletions examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32s3
@@ -0,0 +1,14 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET="esp32c3"
CONFIG_IDF_TARGET_ESP32C3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005

#
# Bluetooth
#
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
18 changes: 14 additions & 4 deletions examples/bluetooth/esp_hid_host/main/esp_hid_gap.c
Expand Up @@ -135,6 +135,7 @@ static esp_hid_scan_result_t *find_scan_result(esp_bd_addr_t bda, esp_hid_scan_r
return NULL;
}

#if CONFIG_BT_CLASSIC_ENABLED
static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid_t *uuid, uint8_t *name, uint8_t name_len, int rssi)
{
esp_hid_scan_result_t *r = find_scan_result(bda, bt_scan_results);
Expand Down Expand Up @@ -186,6 +187,7 @@ static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid
bt_scan_results = r;
num_bt_scan_results++;
}
#endif

static void add_ble_scan_result(esp_bd_addr_t bda, esp_ble_addr_type_t addr_type, uint16_t appearance, uint8_t *name, uint8_t name_len, int rssi)
{
Expand Down Expand Up @@ -237,6 +239,7 @@ void print_uuid(esp_bt_uuid_t *uuid)
}
}

#if CONFIG_BT_CLASSIC_ENABLED
static void handle_bt_device_result(struct disc_res_param *disc_res)
{
GAP_DBG_PRINTF("BT : " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(disc_res->bda));
Expand Down Expand Up @@ -325,6 +328,7 @@ static void handle_bt_device_result(struct disc_res_param *disc_res)
add_bt_scan_result(disc_res->bda, cod, &uuid, name, name_len, rssi);
}
}
#endif

static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst)
{
Expand Down Expand Up @@ -372,7 +376,7 @@ static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst)
}
}


#if CONFIG_BT_CLASSIC_ENABLED
/*
* BT GAP
* */
Expand Down Expand Up @@ -440,6 +444,7 @@ static esp_err_t start_bt_scan(uint32_t seconds)
}
return ret;
}
#endif

/*
* BLE GAP
Expand Down Expand Up @@ -671,11 +676,14 @@ static esp_err_t init_low_level(uint8_t mode)
{
esp_err_t ret;
esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
#if CONFIG_BT_CLASSIC_ENABLED
if (mode & ESP_BT_MODE_CLASSIC_BT) {
bt_cfg.mode = mode;
bt_cfg.bt_max_acl_conn = 3;
bt_cfg.bt_max_sync_conn = 3;
} else {
} else
#endif
{
ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT);
if (ret) {
ESP_LOGE(TAG, "esp_bt_controller_mem_release failed: %d", ret);
Expand Down Expand Up @@ -705,14 +713,14 @@ static esp_err_t init_low_level(uint8_t mode)
ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", ret);
return ret;
}

#if CONFIG_BT_CLASSIC_ENABLED
if (mode & ESP_BT_MODE_CLASSIC_BT) {
ret = init_bt_gap();
if (ret) {
return ret;
}
}

#endif
if (mode & ESP_BT_MODE_BLE) {
ret = init_ble_gap();
if (ret) {
Expand Down Expand Up @@ -772,9 +780,11 @@ esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_resul
}

if (start_ble_scan(seconds) == ESP_OK) {
#if CONFIG_BT_CLASSIC_ENABLED
if (start_bt_scan(seconds) == ESP_OK) {
WAIT_BT_CB();
}
#endif
WAIT_BLE_CB();
} else {
return ESP_FAIL;
Expand Down
4 changes: 4 additions & 0 deletions examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c
Expand Up @@ -123,7 +123,11 @@ void app_main(void)
ret = nvs_flash_init();
}
ESP_ERROR_CHECK( ret );
#if CONFIG_BT_CLASSIC_ENABLED
ESP_ERROR_CHECK( esp_hid_gap_init(ESP_BT_MODE_BTDM) );
#else
ESP_ERROR_CHECK( esp_hid_gap_init(ESP_BT_MODE_BLE) );
#endif
ESP_ERROR_CHECK( esp_ble_gattc_register_callback(esp_hidh_gattc_event_handler) );
esp_hidh_config_t config = {
.callback = hidh_callback,
Expand Down
14 changes: 14 additions & 0 deletions examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32c3
@@ -0,0 +1,14 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET="esp32c3"
CONFIG_IDF_TARGET_ESP32C3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005

#
# Bluetooth
#
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
14 changes: 14 additions & 0 deletions examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32s3
@@ -0,0 +1,14 @@
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_RISCV=y
CONFIG_IDF_TARGET="esp32c3"
CONFIG_IDF_TARGET_ESP32C3=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005

#
# Bluetooth
#
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y

0 comments on commit 2ee9140

Please sign in to comment.