@@ -551,6 +551,10 @@ void BLEServerCallbacks::onMtuChanged(BLEServer *pServer, esp_ble_gatts_cb_param
551
551
552
552
#if defined(CONFIG_NIMBLE_ENABLED)
553
553
554
+ uint16_t BLEServer::getHandle () {
555
+ return getConnId ();
556
+ }
557
+
554
558
/* *
555
559
* @brief Resets the GATT server, used when services are added/removed after initialization.
556
560
*/
@@ -604,6 +608,7 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
604
608
log_e (" Connection failed" );
605
609
BLEDevice::startAdvertising ();
606
610
} else {
611
+ server->m_connId = event->connect .conn_handle ;
607
612
server->addPeerDevice ((void *)server, false , event->connect .conn_handle );
608
613
rc = ble_gap_conn_find (event->connect .conn_handle , &desc);
609
614
if (rc != 0 ) {
@@ -614,6 +619,8 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
614
619
server->m_pServerCallbacks ->onConnect (server);
615
620
server->m_pServerCallbacks ->onConnect (server, &desc);
616
621
}
622
+
623
+ server->m_connectedCount ++;
617
624
}
618
625
619
626
return 0 ;
@@ -634,7 +641,9 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
634
641
default : break ;
635
642
}
636
643
637
- server->removePeerDevice (event->disconnect .conn .conn_handle , false );
644
+ if (server->removePeerDevice (event->disconnect .conn .conn_handle , false )) {
645
+ server->m_connectedCount --;
646
+ }
638
647
639
648
if (server->m_svcChanged ) {
640
649
server->resetGATT ();
@@ -654,8 +663,8 @@ int BLEServer::handleGATTServerEvent(struct ble_gap_event *event, void *arg) {
654
663
655
664
for (auto &it : server->m_notifyChrVec ) {
656
665
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)) {
659
668
rc = ble_gap_conn_find (event->subscribe .conn_handle , &desc);
660
669
if (rc != 0 ) {
661
670
break ;
0 commit comments