summaryrefslogtreecommitdiff
path: root/src/BLEClient.cpp
diff options
context:
space:
mode:
authorNeil Kolban <kolban1@kolban.com>2018-05-27 10:56:49 -0500
committerNeil Kolban <kolban1@kolban.com>2018-05-27 10:56:49 -0500
commite885eea75617598e3b1dff9e972d2e59f297ae28 (patch)
tree7244f26854294af16fef14605e321016f213d98a /src/BLEClient.cpp
parentFixes for BLE_notify sample (diff)
downloadthermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.gz
thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.tar.bz2
thermostat-e885eea75617598e3b1dff9e972d2e59f297ae28.zip
0.4.13
Diffstat (limited to 'src/BLEClient.cpp')
-rw-r--r--src/BLEClient.cpp11
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