diff options
author | Neil Kolban <kolban1@kolban.com> | 2018-05-27 10:56:49 -0500 |
---|---|---|
committer | Neil Kolban <kolban1@kolban.com> | 2018-05-27 10:56:49 -0500 |
commit | e885eea75617598e3b1dff9e972d2e59f297ae28 (patch) | |
tree | 7244f26854294af16fef14605e321016f213d98a /src/BLEClient.cpp | |
parent | Fixes for BLE_notify sample (diff) | |
download | thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.gz thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.bz2 thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.zip |
0.4.13
Diffstat (limited to 'src/BLEClient.cpp')
-rw-r--r-- | src/BLEClient.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/BLEClient.cpp b/src/BLEClient.cpp index 57ff4d2..f09cf91 100644 --- a/src/BLEClient.cpp +++ b/src/BLEClient.cpp @@ -77,6 +77,7 @@ void BLEClient::clearServices() { delete myPair.second; } m_servicesMap.clear(); + m_haveServices = false; ESP_LOGD(LOG_TAG, "<< clearServices"); } // clearServices @@ -111,7 +112,7 @@ bool BLEClient::connect(BLEAddress address) { getGattcIf(), *getPeerAddress().getNative(), // address BLE_ADDR_TYPE_PUBLIC, // Note: This was added on 2018-04-03 when the latest ESP-IDF was detected to have changed the signature. - 1 // direct connection + true // direct connection ); if (errRc != ESP_OK) { ESP_LOGE(LOG_TAG, "esp_ble_gattc_open: rc=%d %s", errRc, GeneralUtils::errorToString(errRc)); @@ -166,6 +167,8 @@ void BLEClient::gattClientEventHandler( m_pClientCallbacks->onDisconnect(this); } m_isConnected = false; + m_semaphoreRssiCmplEvt.give(); + m_semaphoreSearchCmplEvt.give(1); break; } // ESP_GATTC_DISCONNECT_EVT @@ -213,7 +216,7 @@ void BLEClient::gattClientEventHandler( // - uint16_t conn_id // case ESP_GATTC_SEARCH_CMPL_EVT: { - m_semaphoreSearchCmplEvt.give(); + m_semaphoreSearchCmplEvt.give(0); break; } // ESP_GATTC_SEARCH_CMPL_EVT @@ -366,8 +369,8 @@ std::map<std::string, BLERemoteService*>* BLEClient::getServices() { ESP_LOGE(LOG_TAG, "esp_ble_gattc_search_service: rc=%d %s", errRc, GeneralUtils::errorToString(errRc)); return &m_servicesMap; } - m_semaphoreSearchCmplEvt.wait("getServices"); - m_haveServices = true; // Remember that we now have services. + // If sucessfull, remember that we now have services. + m_haveServices = (m_semaphoreSearchCmplEvt.wait("getServices") == 0); ESP_LOGD(LOG_TAG, "<< getServices"); return &m_servicesMap; } // getServices |