mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 00:18:11 +01:00
fix: Fix broken bluetooth_proxy and ble_clients after BLE enable/disable (#5704)
This commit is contained in:
parent
d394b957d1
commit
ce020b1f9f
1 changed files with 12 additions and 7 deletions
|
@ -20,16 +20,21 @@ static const esp_bt_uuid_t NOTIFY_DESC_UUID = {
|
||||||
void BLEClientBase::setup() {
|
void BLEClientBase::setup() {
|
||||||
static uint8_t connection_index = 0;
|
static uint8_t connection_index = 0;
|
||||||
this->connection_index_ = connection_index++;
|
this->connection_index_ = connection_index++;
|
||||||
|
|
||||||
auto ret = esp_ble_gattc_app_register(this->app_id);
|
|
||||||
if (ret) {
|
|
||||||
ESP_LOGE(TAG, "gattc app register failed. app_id=%d code=%d", this->app_id, ret);
|
|
||||||
this->mark_failed();
|
|
||||||
}
|
|
||||||
this->set_state(espbt::ClientState::IDLE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BLEClientBase::loop() {
|
void BLEClientBase::loop() {
|
||||||
|
if (!esp32_ble::global_ble->is_active()) {
|
||||||
|
this->set_state(espbt::ClientState::INIT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this->state_ == espbt::ClientState::INIT) {
|
||||||
|
auto ret = esp_ble_gattc_app_register(this->app_id);
|
||||||
|
if (ret) {
|
||||||
|
ESP_LOGE(TAG, "gattc app register failed. app_id=%d code=%d", this->app_id, ret);
|
||||||
|
this->mark_failed();
|
||||||
|
}
|
||||||
|
this->set_state(espbt::ClientState::IDLE);
|
||||||
|
}
|
||||||
// READY_TO_CONNECT means we have discovered the device
|
// READY_TO_CONNECT means we have discovered the device
|
||||||
// and the scanner has been stopped by the tracker.
|
// and the scanner has been stopped by the tracker.
|
||||||
if (this->state_ == espbt::ClientState::READY_TO_CONNECT) {
|
if (this->state_ == espbt::ClientState::READY_TO_CONNECT) {
|
||||||
|
|
Loading…
Reference in a new issue