@@ -94,13 +94,12 @@ void BLEService::executeCreate(BLEServer *pServer) {
94
94
/* *
95
95
* @brief Delete the service.
96
96
* Delete the service.
97
- * @param [in] gatts_if The handle of the GATT server interface.
98
97
* @return N/A.
99
98
*/
100
99
101
100
void BLEService::executeDelete () {
102
101
ESP_LOGD (LOG_TAG, " >> executeDelete()" );
103
- m_semaphoreDeleteEvt.take (" executeDelete" ); // Take the mutex and release at event ESP_GATTS_CREATE_EVT
102
+ m_semaphoreDeleteEvt.take (" executeDelete" ); // Take the mutex and release at event ESP_GATTS_DELETE_EVT
104
103
105
104
esp_err_t errRc = ::esp_ble_gatts_delete_service ( getHandle () );
106
105
@@ -329,9 +328,18 @@ void BLEService::handleGATTServerEvent(
329
328
break ;
330
329
} // ESP_GATTS_START_EVT
331
330
332
- case ESP_GATTS_STOP_EVT:
333
- m_semaphoreStopEvt.give ();
331
+ // ESP_GATTS_STOP_EVT
332
+ //
333
+ // stop:
334
+ // esp_gatt_status_t status
335
+ // uint16_t service_handle
336
+ //
337
+ case ESP_GATTS_STOP_EVT: {
338
+ if (param->stop .service_handle == getHandle ()) {
339
+ m_semaphoreStopEvt.give ();
340
+ }
334
341
break ;
342
+ } // ESP_GATTS_STOP_EVT
335
343
336
344
337
345
// ESP_GATTS_CREATE_EVT
@@ -354,10 +362,20 @@ void BLEService::handleGATTServerEvent(
354
362
break ;
355
363
} // ESP_GATTS_CREATE_EVT
356
364
365
+
366
+ // ESP_GATTS_DELETE_EVT
367
+ // Called when a service is deleted.
368
+ //
369
+ // delete:
370
+ // * esp_gatt_status_t status
371
+ // * uint16_t service_handle
372
+ //
357
373
case ESP_GATTS_DELETE_EVT: {
358
- m_semaphoreDeleteEvt.give ();
374
+ if (param->del .service_handle == getHandle ()) {
375
+ m_semaphoreDeleteEvt.give ();
376
+ }
359
377
break ;
360
- }
378
+ } // ESP_GATTS_DELETE_EVT
361
379
362
380
default : {
363
381
break ;
0 commit comments