From 6b96aee99d8c0a14da1d93c044ee3b6b5a009365 Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Thu, 18 Feb 2021 18:51:16 +0500 Subject: [PATCH 1/6] Add BLE characteristic callbacks overloads with esp_ble_gatts_cb_param_t* param --- libraries/BLE/src/BLECharacteristic.cpp | 37 ++++++++++++------------- libraries/BLE/src/BLECharacteristic.h | 26 +++++++++++++++++ 2 files changed, 43 insertions(+), 20 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.cpp b/libraries/BLE/src/BLECharacteristic.cpp index 7daaa32a51d..eb12662234e 100644 --- a/libraries/BLE/src/BLECharacteristic.cpp +++ b/libraries/BLE/src/BLECharacteristic.cpp @@ -223,7 +223,9 @@ void BLECharacteristic::handleGATTServerEvent( m_writeEvt = false; if (param->exec_write.exec_write_flag == ESP_GATT_PREP_WRITE_EXEC) { m_value.commit(); - m_pCallbacks->onWrite(this); // Invoke the onWrite callback handler. + // Invoke the onWrite callback handler. + m_pCallbacks->onWrite(this); + m_pCallbacks->onWrite(this, param); } else { m_value.cancel(); } @@ -311,7 +313,9 @@ void BLECharacteristic::handleGATTServerEvent( } // Response needed if (param->write.is_prep != true) { - m_pCallbacks->onWrite(this); // Invoke the onWrite callback handler. + // Invoke the onWrite callback handler. + m_pCallbacks->onWrite(this); + m_pCallbacks->onWrite(this, param); } } // Match on handles. break; @@ -384,6 +388,7 @@ void BLECharacteristic::handleGATTServerEvent( // If is.long is false then this is the first (or only) request to read data, so invoke the callback // Invoke the read callback. m_pCallbacks->onRead(this); + m_pCallbacks->onRead(this, param); std::string value = m_value.getValue(); @@ -758,42 +763,34 @@ std::string BLECharacteristic::toString() { BLECharacteristicCallbacks::~BLECharacteristicCallbacks() {} -/** - * @brief Callback function to support a read request. - * @param [in] pCharacteristic The characteristic that is the source of the event. - */ void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic) { log_d("BLECharacteristicCallbacks", ">> onRead: default"); log_d("BLECharacteristicCallbacks", "<< onRead"); } // onRead +void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { + log_d("BLECharacteristicCallbacks", ">> onRead: default"); + log_d("BLECharacteristicCallbacks", "<< onRead"); +} // onRead + -/** - * @brief Callback function to support a write request. - * @param [in] pCharacteristic The characteristic that is the source of the event. - */ void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic) { log_d("BLECharacteristicCallbacks", ">> onWrite: default"); log_d("BLECharacteristicCallbacks", "<< onWrite"); } // onWrite +void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { + log_d("BLECharacteristicCallbacks", ">> onWrite: default"); + log_d("BLECharacteristicCallbacks", "<< onWrite"); +} // onWrite + -/** - * @brief Callback function to support a Notify request. - * @param [in] pCharacteristic The characteristic that is the source of the event. - */ void BLECharacteristicCallbacks::onNotify(BLECharacteristic* pCharacteristic) { log_d("BLECharacteristicCallbacks", ">> onNotify: default"); log_d("BLECharacteristicCallbacks", "<< onNotify"); } // onNotify -/** - * @brief Callback function to support a Notify/Indicate Status report. - * @param [in] pCharacteristic The characteristic that is the source of the event. - * @param [in] s Status of the notification/indication - * @param [in] code Additional code of underlying errors - */ void BLECharacteristicCallbacks::onStatus(BLECharacteristic* pCharacteristic, Status s, uint32_t code) { log_d("BLECharacteristicCallbacks", ">> onStatus: default"); log_d("BLECharacteristicCallbacks", "<< onStatus"); diff --git a/libraries/BLE/src/BLECharacteristic.h b/libraries/BLE/src/BLECharacteristic.h index 12ef1ceaa7d..09b0b256d98 100644 --- a/libraries/BLE/src/BLECharacteristic.h +++ b/libraries/BLE/src/BLECharacteristic.h @@ -145,9 +145,35 @@ class BLECharacteristicCallbacks { }Status; virtual ~BLECharacteristicCallbacks(); + + /** + * @brief Callback function to support a read request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] param The BLE GATTS param. Use param->read. + */ virtual void onRead(BLECharacteristic* pCharacteristic); + virtual void onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); + + /** + * @brief Callback function to support a write request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] param The BLE GATTS param. Use param->write. + */ virtual void onWrite(BLECharacteristic* pCharacteristic); + virtual void onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); + + /** + * @brief Callback function to support a Notify request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + */ virtual void onNotify(BLECharacteristic* pCharacteristic); + + /** + * @brief Callback function to support a Notify/Indicate Status report. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] s Status of the notification/indication + * @param [in] code Additional code of underlying errors + */ virtual void onStatus(BLECharacteristic* pCharacteristic, Status s, uint32_t code); }; #endif /* CONFIG_BT_ENABLED */ From 759406de5eb519453f9d20011f5aa610d8df3649 Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Thu, 18 Feb 2021 19:19:16 +0500 Subject: [PATCH 2/6] BLECharacteristic.h fix spaces --- libraries/BLE/src/BLECharacteristic.h | 37 ++++++++++++++------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.h b/libraries/BLE/src/BLECharacteristic.h index 09b0b256d98..bf2ae7f47eb 100644 --- a/libraries/BLE/src/BLECharacteristic.h +++ b/libraries/BLE/src/BLECharacteristic.h @@ -145,36 +145,37 @@ class BLECharacteristicCallbacks { }Status; virtual ~BLECharacteristicCallbacks(); - + /** - * @brief Callback function to support a read request. - * @param [in] pCharacteristic The characteristic that is the source of the event. + * @brief Callback function to support a read request. + * @param [in] pCharacteristic The characteristic that is the source of the event. * @param [in] param The BLE GATTS param. Use param->read. - */ + */ virtual void onRead(BLECharacteristic* pCharacteristic); virtual void onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); /** - * @brief Callback function to support a write request. - * @param [in] pCharacteristic The characteristic that is the source of the event. + * @brief Callback function to support a write request. + * @param [in] pCharacteristic The characteristic that is the source of the event. * @param [in] param The BLE GATTS param. Use param->write. - */ + */ virtual void onWrite(BLECharacteristic* pCharacteristic); virtual void onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); - /** - * @brief Callback function to support a Notify request. - * @param [in] pCharacteristic The characteristic that is the source of the event. - */ + /** + * @brief Callback function to support a Notify request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + */ virtual void onNotify(BLECharacteristic* pCharacteristic); - /** - * @brief Callback function to support a Notify/Indicate Status report. - * @param [in] pCharacteristic The characteristic that is the source of the event. - * @param [in] s Status of the notification/indication - * @param [in] code Additional code of underlying errors - */ + /** + * @brief Callback function to support a Notify/Indicate Status report. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] s Status of the notification/indication + * @param [in] code Additional code of underlying errors + */ virtual void onStatus(BLECharacteristic* pCharacteristic, Status s, uint32_t code); -}; +}; //BLECharacteristicCallbacks + #endif /* CONFIG_BT_ENABLED */ #endif /* COMPONENTS_CPP_UTILS_BLECHARACTERISTIC_H_ */ From 17226690a65b8d290a9a63dde4906b7320ef0fb5 Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Thu, 18 Feb 2021 21:07:20 +0500 Subject: [PATCH 3/6] Update BLECharacteristic.h comments --- libraries/BLE/src/BLECharacteristic.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.h b/libraries/BLE/src/BLECharacteristic.h index bf2ae7f47eb..0cc68da1333 100644 --- a/libraries/BLE/src/BLECharacteristic.h +++ b/libraries/BLE/src/BLECharacteristic.h @@ -149,17 +149,25 @@ class BLECharacteristicCallbacks { /** * @brief Callback function to support a read request. * @param [in] pCharacteristic The characteristic that is the source of the event. - * @param [in] param The BLE GATTS param. Use param->read. */ virtual void onRead(BLECharacteristic* pCharacteristic); + /** + * @brief Callback function to support a read request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] param The BLE GATTS param. Use param->read. + */ virtual void onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); /** * @brief Callback function to support a write request. * @param [in] pCharacteristic The characteristic that is the source of the event. - * @param [in] param The BLE GATTS param. Use param->write. */ virtual void onWrite(BLECharacteristic* pCharacteristic); + /** + * @brief Callback function to support a write request. + * @param [in] pCharacteristic The characteristic that is the source of the event. + * @param [in] param The BLE GATTS param. Use param->write. + */ virtual void onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); /** From 06cc9766bda91def0fb43460d57acc677bb5089f Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Tue, 23 Feb 2021 13:28:18 +0500 Subject: [PATCH 4/6] Update callbacks docs and call structure --- libraries/BLE/src/BLECharacteristic.cpp | 18 ++++++------------ libraries/BLE/src/BLECharacteristic.h | 16 ++++++++-------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.cpp b/libraries/BLE/src/BLECharacteristic.cpp index eb12662234e..a6ea5f0ffd9 100644 --- a/libraries/BLE/src/BLECharacteristic.cpp +++ b/libraries/BLE/src/BLECharacteristic.cpp @@ -224,7 +224,6 @@ void BLECharacteristic::handleGATTServerEvent( if (param->exec_write.exec_write_flag == ESP_GATT_PREP_WRITE_EXEC) { m_value.commit(); // Invoke the onWrite callback handler. - m_pCallbacks->onWrite(this); m_pCallbacks->onWrite(this, param); } else { m_value.cancel(); @@ -314,7 +313,6 @@ void BLECharacteristic::handleGATTServerEvent( if (param->write.is_prep != true) { // Invoke the onWrite callback handler. - m_pCallbacks->onWrite(this); m_pCallbacks->onWrite(this, param); } } // Match on handles. @@ -387,7 +385,6 @@ void BLECharacteristic::handleGATTServerEvent( // If is.long is false then this is the first (or only) request to read data, so invoke the callback // Invoke the read callback. - m_pCallbacks->onRead(this); m_pCallbacks->onRead(this, param); std::string value = m_value.getValue(); @@ -762,24 +759,21 @@ std::string BLECharacteristic::toString() { BLECharacteristicCallbacks::~BLECharacteristicCallbacks() {} - -void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic) { - log_d("BLECharacteristicCallbacks", ">> onRead: default"); - log_d("BLECharacteristicCallbacks", "<< onRead"); +void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { + onRead(pCharacteristic); } // onRead -void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { +void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic) { log_d("BLECharacteristicCallbacks", ">> onRead: default"); log_d("BLECharacteristicCallbacks", "<< onRead"); } // onRead -void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic) { - log_d("BLECharacteristicCallbacks", ">> onWrite: default"); - log_d("BLECharacteristicCallbacks", "<< onWrite"); +void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { + onWrite(pCharacteristic); } // onWrite -void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param) { +void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic) { log_d("BLECharacteristicCallbacks", ">> onWrite: default"); log_d("BLECharacteristicCallbacks", "<< onWrite"); } // onWrite diff --git a/libraries/BLE/src/BLECharacteristic.h b/libraries/BLE/src/BLECharacteristic.h index 0cc68da1333..696538823b4 100644 --- a/libraries/BLE/src/BLECharacteristic.h +++ b/libraries/BLE/src/BLECharacteristic.h @@ -146,29 +146,29 @@ class BLECharacteristicCallbacks { virtual ~BLECharacteristicCallbacks(); - /** - * @brief Callback function to support a read request. - * @param [in] pCharacteristic The characteristic that is the source of the event. - */ - virtual void onRead(BLECharacteristic* pCharacteristic); /** * @brief Callback function to support a read request. * @param [in] pCharacteristic The characteristic that is the source of the event. * @param [in] param The BLE GATTS param. Use param->read. */ virtual void onRead(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); - /** - * @brief Callback function to support a write request. + * @brief DEPRECATED! Callback function to support a read request. Called only if onRead(,) not overrided. * @param [in] pCharacteristic The characteristic that is the source of the event. */ - virtual void onWrite(BLECharacteristic* pCharacteristic); + virtual void onRead(BLECharacteristic* pCharacteristic) __attribute__ ((deprecated)); + /** * @brief Callback function to support a write request. * @param [in] pCharacteristic The characteristic that is the source of the event. * @param [in] param The BLE GATTS param. Use param->write. */ virtual void onWrite(BLECharacteristic* pCharacteristic, esp_ble_gatts_cb_param_t* param); + /** + * @brief DEPRECATED! Callback function to support a write request. Called only if onWrite(,) not overrided. + * @param [in] pCharacteristic The characteristic that is the source of the event. + */ + virtual void onWrite(BLECharacteristic* pCharacteristic) __attribute__ ((deprecated)); /** * @brief Callback function to support a Notify request. From bc81dacf89573770b7f68e35170d9420117320c4 Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Tue, 23 Feb 2021 14:20:33 +0500 Subject: [PATCH 5/6] Remove __attribute__ ((deprecated)) from deprecated ble callbacks --- libraries/BLE/src/BLECharacteristic.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.h b/libraries/BLE/src/BLECharacteristic.h index 696538823b4..d1f1f102ba5 100644 --- a/libraries/BLE/src/BLECharacteristic.h +++ b/libraries/BLE/src/BLECharacteristic.h @@ -156,7 +156,7 @@ class BLECharacteristicCallbacks { * @brief DEPRECATED! Callback function to support a read request. Called only if onRead(,) not overrided. * @param [in] pCharacteristic The characteristic that is the source of the event. */ - virtual void onRead(BLECharacteristic* pCharacteristic) __attribute__ ((deprecated)); + virtual void onRead(BLECharacteristic* pCharacteristic); /** * @brief Callback function to support a write request. @@ -168,7 +168,7 @@ class BLECharacteristicCallbacks { * @brief DEPRECATED! Callback function to support a write request. Called only if onWrite(,) not overrided. * @param [in] pCharacteristic The characteristic that is the source of the event. */ - virtual void onWrite(BLECharacteristic* pCharacteristic) __attribute__ ((deprecated)); + virtual void onWrite(BLECharacteristic* pCharacteristic); /** * @brief Callback function to support a Notify request. From 0afaf24d27e11a513827962a6c13ced2b1290c90 Mon Sep 17 00:00:00 2001 From: mixa3607 <30209772+mixa3607@users.noreply.github.com> Date: Tue, 23 Feb 2021 14:26:34 +0500 Subject: [PATCH 6/6] Fix logging in default BLE callbacks --- libraries/BLE/src/BLECharacteristic.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libraries/BLE/src/BLECharacteristic.cpp b/libraries/BLE/src/BLECharacteristic.cpp index a6ea5f0ffd9..a9e57a3c1a6 100644 --- a/libraries/BLE/src/BLECharacteristic.cpp +++ b/libraries/BLE/src/BLECharacteristic.cpp @@ -764,8 +764,8 @@ void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic, esp_ } // onRead void BLECharacteristicCallbacks::onRead(BLECharacteristic* pCharacteristic) { - log_d("BLECharacteristicCallbacks", ">> onRead: default"); - log_d("BLECharacteristicCallbacks", "<< onRead"); + log_d(">> onRead: default"); + log_d("<< onRead"); } // onRead @@ -774,20 +774,20 @@ void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic, esp } // onWrite void BLECharacteristicCallbacks::onWrite(BLECharacteristic* pCharacteristic) { - log_d("BLECharacteristicCallbacks", ">> onWrite: default"); - log_d("BLECharacteristicCallbacks", "<< onWrite"); + log_d(">> onWrite: default"); + log_d("<< onWrite"); } // onWrite void BLECharacteristicCallbacks::onNotify(BLECharacteristic* pCharacteristic) { - log_d("BLECharacteristicCallbacks", ">> onNotify: default"); - log_d("BLECharacteristicCallbacks", "<< onNotify"); + log_d(">> onNotify: default"); + log_d("<< onNotify"); } // onNotify void BLECharacteristicCallbacks::onStatus(BLECharacteristic* pCharacteristic, Status s, uint32_t code) { - log_d("BLECharacteristicCallbacks", ">> onStatus: default"); - log_d("BLECharacteristicCallbacks", "<< onStatus"); + log_d(">> onStatus: default"); + log_d("<< onStatus"); } // onStatus