From af7237de0f72c89e6314610fee301c8c4280109b Mon Sep 17 00:00:00 2001 From: David Lehrian Date: Sat, 29 May 2021 17:42:15 -0700 Subject: [PATCH 1/2] add onMtuChanged to BLEServerCallbacks Add method onMtuChanged to the BLEServerCallbacks so the application can be notified if the MTU size changes. --- libraries/BLE/src/BLEServer.cpp | 7 +++++++ libraries/BLE/src/BLEServer.h | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/libraries/BLE/src/BLEServer.cpp b/libraries/BLE/src/BLEServer.cpp index 0b39c9ca1ee..d0ba2cd4b2d 100644 --- a/libraries/BLE/src/BLEServer.cpp +++ b/libraries/BLE/src/BLEServer.cpp @@ -157,6 +157,7 @@ void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t case ESP_GATTS_MTU_EVT: updatePeerMTU(param->mtu.conn_id, param->mtu.mtu); + m_pServerCallbacks->onMtuChanges(this, param); break; // ESP_GATTS_CONNECT_EVT @@ -371,6 +372,12 @@ void BLEServerCallbacks::onDisconnect(BLEServer* pServer) { log_d("BLEServerCallbacks", "<< onDisconnect()"); } // onDisconnect +void BLEServerCallbacks::onMtuChanged(BLEServer* pServer, esp_ble_gatts_cb_param_t* param) { + log_d("BLEServerCallbacks", ">> onMtuChanged(): Default"); + log_d("BLEServerCallbacks", "Device: %s MTU: %d", BLEDevice::toString().c_str(), param->mtu.mtu); + log_d("BLEServerCallbacks", "<< onMtuChanged()"); +} // onDisconnect + /* multi connect support */ /* TODO do some more tweaks */ void BLEServer::updatePeerMTU(uint16_t conn_id, uint16_t mtu) { diff --git a/libraries/BLE/src/BLEServer.h b/libraries/BLE/src/BLEServer.h index 2ae23edb7a4..a7bcf77d927 100644 --- a/libraries/BLE/src/BLEServer.h +++ b/libraries/BLE/src/BLEServer.h @@ -134,6 +134,16 @@ class BLEServerCallbacks { * @param [in] pServer A reference to the %BLE server that received the existing client disconnection. */ virtual void onDisconnect(BLEServer* pServer); + + /** + * @brief Handle a new client connection. + * + * When the MTU changes this method is invoked. + * + * @param [in] pServer A reference to the %BLE server that received the client connection. + * @param [in] param A reference to esp_ble_gatts_cb_param_t. + */ + virtual void onMtuChanged(BLEServer* pServer, esp_ble_gatts_cb_param_t* param) }; // BLEServerCallbacks From 03069407b3a2623eff89147020edafca0ade988e Mon Sep 17 00:00:00 2001 From: David Lehrian Date: Mon, 31 May 2021 10:42:38 -0700 Subject: [PATCH 2/2] Correct missing semicolon and misspelled method. Correct missing semicolon and misspelled method. --- libraries/BLE/src/BLEServer.cpp | 4 ++-- libraries/BLE/src/BLEServer.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/BLE/src/BLEServer.cpp b/libraries/BLE/src/BLEServer.cpp index d0ba2cd4b2d..fcb67da9c7d 100644 --- a/libraries/BLE/src/BLEServer.cpp +++ b/libraries/BLE/src/BLEServer.cpp @@ -157,7 +157,7 @@ void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t case ESP_GATTS_MTU_EVT: updatePeerMTU(param->mtu.conn_id, param->mtu.mtu); - m_pServerCallbacks->onMtuChanges(this, param); + m_pServerCallbacks->onMtuChanged(this, param); break; // ESP_GATTS_CONNECT_EVT @@ -376,7 +376,7 @@ void BLEServerCallbacks::onMtuChanged(BLEServer* pServer, esp_ble_gatts_cb_param log_d("BLEServerCallbacks", ">> onMtuChanged(): Default"); log_d("BLEServerCallbacks", "Device: %s MTU: %d", BLEDevice::toString().c_str(), param->mtu.mtu); log_d("BLEServerCallbacks", "<< onMtuChanged()"); -} // onDisconnect +} // onMtuChanged /* multi connect support */ /* TODO do some more tweaks */ diff --git a/libraries/BLE/src/BLEServer.h b/libraries/BLE/src/BLEServer.h index a7bcf77d927..f3ca5be6ffd 100644 --- a/libraries/BLE/src/BLEServer.h +++ b/libraries/BLE/src/BLEServer.h @@ -143,7 +143,7 @@ class BLEServerCallbacks { * @param [in] pServer A reference to the %BLE server that received the client connection. * @param [in] param A reference to esp_ble_gatts_cb_param_t. */ - virtual void onMtuChanged(BLEServer* pServer, esp_ble_gatts_cb_param_t* param) + virtual void onMtuChanged(BLEServer* pServer, esp_ble_gatts_cb_param_t* param); }; // BLEServerCallbacks