From 3705bc418cadd9d6ad87f2bcd5443ba82f730e15 Mon Sep 17 00:00:00 2001 From: jp-96 Date: Mon, 8 Jun 2020 12:19:56 +0900 Subject: [PATCH] extmod/modbluetooth: Register default GATT service and fix esp32 init. This is for the NimBLE bindings, to make sure the default GATT service appears and that the esp32 initialises NimBLE correctly (it now matches stm32). --- extmod/nimble/modbluetooth_nimble.c | 7 +++++-- ports/esp32/nimble.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/extmod/nimble/modbluetooth_nimble.c b/extmod/nimble/modbluetooth_nimble.c index 05ec611779..035ec3d26f 100644 --- a/extmod/nimble/modbluetooth_nimble.c +++ b/extmod/nimble/modbluetooth_nimble.c @@ -39,6 +39,7 @@ #include "nimble/ble.h" #include "nimble/nimble_port.h" #include "services/gap/ble_svc_gap.h" +#include "services/gatt/ble_svc_gatt.h" #ifndef MICROPY_PY_BLUETOOTH_DEFAULT_GAP_NAME #define MICROPY_PY_BLUETOOTH_DEFAULT_GAP_NAME "MPY NIMBLE" @@ -271,8 +272,9 @@ int mp_bluetooth_init(void) { nimble_port_init(); mp_bluetooth_nimble_port_postinit(); - // By default, just register the default gap service. + // By default, just register the default gap/gatt service. ble_svc_gap_init(); + ble_svc_gatt_init(); mp_bluetooth_nimble_port_start(); @@ -466,8 +468,9 @@ int mp_bluetooth_gatts_register_service_begin(bool append) { // Reset the gatt characteristic value db. mp_bluetooth_gatts_db_reset(MP_STATE_PORT(bluetooth_nimble_root_pointers)->gatts_db); - // By default, just register the default gap service. + // By default, just register the default gap/gatt service. ble_svc_gap_init(); + ble_svc_gatt_init(); if (!append) { // Unref any previous service definitions. diff --git a/ports/esp32/nimble.c b/ports/esp32/nimble.c index e60e08badf..16829732c3 100644 --- a/ports/esp32/nimble.c +++ b/ports/esp32/nimble.c @@ -44,7 +44,6 @@ void mp_bluetooth_nimble_port_preinit(void) { } void mp_bluetooth_nimble_port_postinit(void) { - nimble_port_freertos_init(ble_host_task); } void mp_bluetooth_nimble_port_deinit(void) { @@ -52,6 +51,7 @@ void mp_bluetooth_nimble_port_deinit(void) { } void mp_bluetooth_nimble_port_start(void) { + nimble_port_freertos_init(ble_host_task); } #endif