MCPcopy Create free account
hub / github.com/Heltec-Aaron-Lee/WiFi_Kit_series / gattClientEventHandler

Method gattClientEventHandler

libraries/BLE/src/BLEClient.cpp:650–831  ·  view source on GitHub ↗

* @brief Handle GATT Client events */

Source from the content-addressed store, hash-verified

648 * @brief Handle GATT Client events
649 */
650void BLEClient::gattClientEventHandler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *evtParam) {
651
652 log_d("gattClientEventHandler [esp_gatt_if: %u] ... %s", gattc_if, BLEUtils::gattClientEventTypeToString(event).c_str());
653
654 // it is possible to receive events from other connections while waiting for registration
655 if (m_gattc_if == ESP_GATT_IF_NONE && event != ESP_GATTC_REG_EVT) {
656 return;
657 }
658
659 // Execute handler code based on the type of event received.
660 switch (event) {
661
662 case ESP_GATTC_SRVC_CHG_EVT: log_i("SERVICE CHANGED"); break;
663
664 case ESP_GATTC_CLOSE_EVT:
665 {
666 // esp_ble_gattc_app_unregister(m_appId);
667 // BLEDevice::removePeerDevice(m_gattc_if, true);
668 break;
669 }
670
671 //
672 // ESP_GATTC_DISCONNECT_EVT
673 //
674 // disconnect:
675 // - esp_gatt_status_t status
676 // - uint16_t conn_id
677 // - esp_bd_addr_t remote_bda
678 case ESP_GATTC_DISCONNECT_EVT:
679 {
680 if (evtParam->disconnect.conn_id != getConnId()) {
681 break;
682 }
683 // If we receive a disconnect event, set the class flag that indicates that we are
684 // no longer connected.
685 bool m_wasConnected = m_isConnected;
686 m_isConnected = false;
687 esp_ble_gattc_app_unregister(m_gattc_if);
688 m_gattc_if = ESP_GATT_IF_NONE;
689 m_semaphoreOpenEvt.give(ESP_GATT_IF_NONE);
690 m_semaphoreRssiCmplEvt.give();
691 m_semaphoreSearchCmplEvt.give(1);
692 BLEDevice::removePeerDevice(m_appId, true);
693 // Reset security state on disconnect
694 BLESecurity::resetSecurity();
695 if (m_wasConnected && m_pClientCallbacks != nullptr) {
696 m_pClientCallbacks->onDisconnect(this);
697 }
698 break;
699 } // ESP_GATTC_DISCONNECT_EVT
700
701 //
702 // ESP_GATTC_OPEN_EVT
703 //
704 // open:
705 // - esp_gatt_status_t status
706 // - uint16_t conn_id
707 // - esp_bd_addr_t remote_bda

Callers

nothing calls this directly

Calls 6

BLEUUIDClass · 0.85
c_strMethod · 0.80
giveMethod · 0.80
onDisconnectMethod · 0.45
onConnectMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected