@@ -895,6 +895,11 @@ bool BLEClient::connect(BLEAddress address, uint8_t type, uint32_t timeoutMs) {
895
895
*/
896
896
int BLEClient::serviceDiscoveredCB (uint16_t conn_handle, const struct ble_gatt_error *error, const struct ble_gatt_svc *service, void *arg)
897
897
{
898
+ if (error == nullptr || service == nullptr ) {
899
+ log_e (" serviceDiscoveredCB: error or service is nullptr" );
900
+ return 0 ;
901
+ }
902
+
898
903
log_d (" Service Discovered >> status: %d handle: %d" , error->status , (error->status == 0 ) ? service->start_handle : -1 );
899
904
900
905
ble_task_data_t *pTaskData = (ble_task_data_t *)arg;
@@ -936,7 +941,7 @@ std::map<std::string, BLERemoteService *> *BLEClient::getServices() {
936
941
*/
937
942
log_v (" >> getServices" );
938
943
// TODO implement retrieving services from cache
939
- m_semaphoreSearchCmplEvt.take (" getServices" );
944
+ // m_semaphoreSearchCmplEvt.take("getServices");
940
945
clearServices (); // Clear any services that may exist.
941
946
942
947
int errRc = 0 ;
@@ -947,12 +952,12 @@ std::map<std::string, BLERemoteService *> *BLEClient::getServices() {
947
952
if (errRc != 0 ) {
948
953
log_e (" ble_gattc_disc_all_svcs: rc=%d %s" , errRc, BLEUtils::returnCodeToString (errRc));
949
954
m_lastErr = errRc;
950
- m_semaphoreSearchCmplEvt.give ();
955
+ // m_semaphoreSearchCmplEvt.give();
951
956
return &m_servicesMap;
952
957
}
953
958
// If successful, remember that we now have services.
954
959
m_haveServices = m_servicesMap.size () > 0 ;
955
- m_semaphoreSearchCmplEvt.give ();
960
+ // m_semaphoreSearchCmplEvt.give();
956
961
log_v (" << getServices" );
957
962
return &m_servicesMap;
958
963
} // getServices
@@ -1249,6 +1254,7 @@ int BLEClient::handleGAPEvent(struct ble_gap_event *event, void *arg) {
1249
1254
int BLEClient::disconnect (uint8_t reason) {
1250
1255
log_d (" >> disconnect()" );
1251
1256
int rc = 0 ;
1257
+
1252
1258
if (isConnected ()) {
1253
1259
// If the timer was already started, ignore this call.
1254
1260
if (ble_npl_callout_is_active (&m_dcTimer)) {
@@ -1278,9 +1284,9 @@ int BLEClient::disconnect(uint8_t reason) {
1278
1284
ble_npl_callout_stop (&m_dcTimer);
1279
1285
}
1280
1286
log_e (" ble_gap_terminate failed: rc=%d %s" , rc, BLEUtils::returnCodeToString (rc));
1281
- } else {
1282
- log_d (" Not connected to any peers" );
1283
1287
}
1288
+ } else {
1289
+ log_d (" Not connected to any peers" );
1284
1290
}
1285
1291
1286
1292
log_d (" << disconnect()" );
0 commit comments