Skip to content

Commit aee31fb

Browse files
committed
[BREAKING] Refactor NimBLEDevice
* General code cleanup * `NimBLEDevice::getInitialized` renamed to `NimBLEDevice::isInitialized`. * `NimBLEDevice::setPower` no longer takes the `esp_power_level_t` and `esp_ble_power_type_t`, instead only an integer value in dbm units is accepted. * `NimBLEDevice::setPower` now returns a bool value, true = success. * `NimBLEDevice::setMTU` now returns a bool value, true = success. * `NimBLEDevice::injectConfirmPIN` renamed to `NimBLEDevice::injectConfirmPasskey` to use Bluetooth naming. * Fixes crash if `NimBLEDevice::deinit` is called when the stack has not been initialized. * Reverts 2db4756 as it would cause a crash when the NimBLEServer instance has a connection. * `NimBLEDevice::getAddress` will now return the address currently in use. * `NimBLEDevice::init` now returns a bool with `true` indicating success. * `NimBLEDevice::deinit` now returns a bool with `true` inidicating success. * `NimBLEDevice::setDeviceName` now returns a bool with `true` indicating success. * `NimBLEDevice::setCustomGapHandler` now returns a bool with `true` indicating success. * `NimBLEDevice::setOwnAddrType` now returns a bool with `true` indicating success. * `NimBLEDevice::setOwnAddrType` will now correctly apply the provided address type for all devices.
1 parent 0112bc1 commit aee31fb

File tree

15 files changed

+817
-810
lines changed

15 files changed

+817
-810
lines changed

docs/Migration_guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ The callback methods are:
386386
> `bool onConfirmPIN(NimBLEConnInfo& connInfo, uint32_t pin)`
387387
388388
Receives the pin when using numeric comparison authentication.
389-
Call `NimBLEDevice::injectConfirmPIN(connInfo, true);` to accept or `NimBLEDevice::injectConfirmPIN(connInfo, false);` to reject.
389+
Call `NimBLEDevice::injectConfirmPasskey(connInfo, true);` to accept or `NimBLEDevice::injectConfirmPasskey(connInfo, false);` to reject.
390390
<br/>
391391

392392
> `void onPassKeyEntry(NimBLEConnInfo& connInfo)`

examples/NimBLE_Client/NimBLE_Client.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ class ClientCallbacks : public NimBLEClientCallbacks {
6767
void onConfirmPIN(NimBLEConnInfo& connInfo, uint32_t pass_key){
6868
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
6969
/** Inject false if passkeys don't match. */
70-
NimBLEDevice::injectConfirmPIN(connInfo, true);
70+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
7171
};
7272

7373
/** Pairing process complete, we can check the results in connInfo */
7474
void onAuthenticationComplete(NimBLEConnInfo& connInfo){
7575
if(!connInfo.isEncrypted()) {
7676
Serial.println("Encrypt connection failed - disconnecting");
7777
/** Find the client with the connection handle provided in desc */
78-
NimBLEDevice::getClientByID(connInfo.getConnHandle())->disconnect();
78+
NimBLEDevice::getClientByHandle(connInfo.getConnHandle())->disconnect();
7979
return;
8080
}
8181
}

examples/NimBLE_Server/NimBLE_Server.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class ServerCallbacks: public NimBLEServerCallbacks {
4848
void onConfirmPIN(NimBLEConnInfo& connInfo, uint32_t pass_key) {
4949
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
5050
/** Inject false if passkeys don't match. */
51-
NimBLEDevice::injectConfirmPIN(connInfo, true);
51+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
5252
};
5353

5454
void onAuthenticationComplete(NimBLEConnInfo& connInfo) {

examples/Refactored_original_examples/BLE_client/BLE_client.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class MyClientCallback : public BLEClientCallbacks {
5858

5959
void onConfirmPIN(const BLEConnInfo& connInfo, uint32_t pass_key) {
6060
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
61-
NimBLEDevice::injectConfirmPIN(connInfo, true);
61+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
6262
}
6363

6464
void onAuthenticationComplete(const BLEConnInfo& connInfo){

examples/Refactored_original_examples/BLE_notify/BLE_notify.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class MyServerCallbacks: public BLEServerCallbacks {
6565
void onConfirmPIN(const BLEConnInfo& connInfo, uint32_t pass_key) {
6666
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
6767
/** Inject false if passkeys don't match. */
68-
NimBLEDevice::injectConfirmPIN(connInfo, true);
68+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
6969
}
7070

7171
void onAuthenticationComplete(const BLEConnInfo& connInfo) {

examples/Refactored_original_examples/BLE_server_multiconnect/BLE_server_multiconnect.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class MyServerCallbacks: public BLEServerCallbacks {
6767
void onConfirmPIN(const BLEConnInfo& connInfo, uint32_t pass_key) {
6868
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
6969
/** Inject false if passkeys don't match. */
70-
NimBLEDevice::injectConfirmPIN(connInfo, true);
70+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
7171
}
7272

7373
void onAuthenticationComplete(const BLEConnInfo& connInfo) {

examples/Refactored_original_examples/BLE_uart/BLE_uart.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class MyServerCallbacks: public BLEServerCallbacks {
6767
void onConfirmPIN(const BLEConnInfo& connInfo, uint32_t pass_key) {
6868
Serial.print("The passkey YES/NO number: ");Serial.println(pass_key);
6969
/** Inject false if passkeys don't match. */
70-
NimBLEDevice::injectConfirmPIN(connInfo, true);
70+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
7171
}
7272

7373
void onAuthenticationComplete(const BLEConnInfo& connInfo) {

src/NimBLEAdvertising.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ NimBLEAdvertising::NimBLEAdvertising() {
4444
* @brief Stops the current advertising and resets the advertising data to the default values.
4545
*/
4646
void NimBLEAdvertising::reset() {
47-
if(NimBLEDevice::getInitialized() && isAdvertising()) {
47+
if(NimBLEDevice::isInitialized() && isAdvertising()) {
4848
stop();
4949
}
5050
memset(&m_advData, 0, sizeof m_advData);
@@ -56,7 +56,11 @@ void NimBLEAdvertising::reset() {
5656
m_advData.name = (uint8_t *)name;
5757
m_advData.name_len = strlen(name);
5858
m_advData.name_is_complete = 1;
59+
#ifndef CONFIG_IDF_TARGET_ESP32P4
5960
m_advData.tx_pwr_lvl = NimBLEDevice::getPower();
61+
#else
62+
m_advData.tx_pwr_lvl = 0;
63+
#endif
6064
m_advData.flags = (BLE_HS_ADV_F_DISC_GEN | BLE_HS_ADV_F_BREDR_UNSUP);
6165

6266
#if !defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
@@ -639,15 +643,15 @@ bool NimBLEAdvertising::start(uint32_t duration, advCompleteCB_t advCompleteCB,
639643
}
640644

641645
#if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
642-
rc = ble_gap_adv_start(NimBLEDevice::m_own_addr_type,
646+
rc = ble_gap_adv_start(NimBLEDevice::m_ownAddrType,
643647
(dirAddr != nullptr) ? dirAddr->getBase() : NULL,
644648
duration,
645649
&m_advParams,
646650
(pServer != nullptr) ? NimBLEServer::handleGapEvent :
647651
NimBLEAdvertising::handleGapEvent,
648652
(void*)this);
649653
#else
650-
rc = ble_gap_adv_start(NimBLEDevice::m_own_addr_type,
654+
rc = ble_gap_adv_start(NimBLEDevice::m_ownAddrType,
651655
(dirAddr != nullptr) ? &peerAddr : NULL,
652656
duration,
653657
&m_advParams,
@@ -1018,7 +1022,11 @@ void NimBLEAdvertisementData::addTxPower() {
10181022
char cdata[3];
10191023
cdata[0] = BLE_HS_ADV_TX_PWR_LVL_LEN + 1;
10201024
cdata[1] = BLE_HS_ADV_TYPE_TX_PWR_LVL;
1025+
#ifndef CONFIG_IDF_TARGET_ESP32P4
10211026
cdata[2] = NimBLEDevice::getPower();
1027+
#else
1028+
cdata[2] = 0;
1029+
#endif
10221030
addData(cdata, 3);
10231031
} // addTxPower
10241032

src/NimBLEClient.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ bool NimBLEClient::connect(const NimBLEAddress &address, bool deleteAttributes)
226226
*/
227227
do {
228228
#if CONFIG_BT_NIMBLE_EXT_ADV
229-
rc = ble_gap_ext_connect(NimBLEDevice::m_own_addr_type,
229+
rc = ble_gap_ext_connect(NimBLEDevice::m_ownAddrType,
230230
peerAddr,
231231
m_connectTimeout,
232232
m_phyMask,
@@ -237,7 +237,7 @@ bool NimBLEClient::connect(const NimBLEAddress &address, bool deleteAttributes)
237237
this);
238238

239239
#else
240-
rc = ble_gap_connect(NimBLEDevice::m_own_addr_type, peerAddr,
240+
rc = ble_gap_connect(NimBLEDevice::m_ownAddrType, peerAddr,
241241
m_connectTimeout, &m_pConnParams,
242242
NimBLEClient::handleGapEvent, this);
243243
#endif
@@ -1342,7 +1342,7 @@ void NimBLEClientCallbacks::onIdentity(NimBLEConnInfo& connInfo){
13421342

13431343
void NimBLEClientCallbacks::onConfirmPIN(NimBLEConnInfo& connInfo, uint32_t pin){
13441344
NIMBLE_LOGD("NimBLEClientCallbacks", "onConfirmPIN: default: true");
1345-
NimBLEDevice::injectConfirmPIN(connInfo, true);
1345+
NimBLEDevice::injectConfirmPasskey(connInfo, true);
13461346
}
13471347

13481348
#endif /* CONFIG_BT_ENABLED && CONFIG_BT_NIMBLE_ROLE_CENTRAL */

0 commit comments

Comments
 (0)