@@ -551,6 +551,10 @@ void BLEServerCallbacks::onMtuChanged(BLEServer *pServer, esp_ble_gatts_cb_param
551551
552552#if defined(CONFIG_NIMBLE_ENABLED)
553553
554+ uint16_t BLEServer::getHandle () {
555+ return getConnId ();
556+ }
557+
554558/* *
555559 * @brief Resets the GATT server, used when services are added/removed after initialization.
556560 */
@@ -604,6 +608,7 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
604608 log_e (" Connection failed" );
605609 BLEDevice::startAdvertising ();
606610 } else {
611+ server->m_connId = event->connect .conn_handle ;
607612 server->addPeerDevice ((void *)server, false , event->connect .conn_handle );
608613 rc = ble_gap_conn_find (event->connect .conn_handle , &desc);
609614 if (rc != 0 ) {
@@ -614,6 +619,8 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
614619 server->m_pServerCallbacks ->onConnect (server);
615620 server->m_pServerCallbacks ->onConnect (server, &desc);
616621 }
622+
623+ server->m_connectedCount ++;
617624 }
618625
619626 return 0 ;
@@ -634,7 +641,9 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
634641 default : break ;
635642 }
636643
637- server->removePeerDevice (event->disconnect .conn .conn_handle , false );
644+ if (server->removePeerDevice (event->disconnect .conn .conn_handle , false )) {
645+ server->m_connectedCount --;
646+ }
638647
639648 if (server->m_svcChanged ) {
640649 server->resetGATT ();
@@ -654,8 +663,8 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
654663
655664 for (auto &it : server->m_notifyChrVec ) {
656665 if (it->getHandle () == event->subscribe .attr_handle ) {
657- if ((it-> getProperties () & BLE_GATT_CHR_F_READ_AUTHEN) || ( it->getProperties () & BLE_GATT_CHR_F_READ_AUTHOR)
658- || (it-> getProperties () & BLE_GATT_CHR_F_READ_ENC)) {
666+ uint16_t properties = it->getProperties ();
667+ if ((properties & BLE_GATT_CHR_F_READ_AUTHEN) || (properties & BLE_GATT_CHR_F_READ_AUTHOR) || (properties & BLE_GATT_CHR_F_READ_ENC)) {
659668 rc = ble_gap_conn_find (event->subscribe .conn_handle , &desc);
660669 if (rc != 0 ) {
661670 break ;
0 commit comments