Skip to content

Commit ec5a40c

Browse files
committed
🐛 Fix NimBLE ^2 compatibility
1 parent a44b061 commit ec5a40c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/BLESerial.h

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919
# include <BLEDevice.h>
2020
#endif // BLESERIAL_USE_NIMBLE
2121

22+
#if !defined(BLESERIAL_NIMBLE_VERSION_MAJOR) && defined(BLESERIAL_USE_NIMBLE) && BLESERIAL_USE_NIMBLE
23+
# if __has_include(<NimBLEAdvertisementData.h>)
24+
# define BLESERIAL_NIMBLE_VERSION_MAJOR 2
25+
# warning "Using NimBLE version 2"
26+
# else // __has_include(<NimBLEAdvertisementData.h>)
27+
# define BLESERIAL_NIMBLE_VERSION_MAJOR 1
28+
# warning "Using NimBLE version 1"
29+
# endif // __has_include(<NimBLEAdvertisementData.h>)
30+
#endif // BLESERIAL_USE_NIMBLE
31+
2232
#ifndef BLESERIAL_USE_STL
2333
# define BLESERIAL_USE_STL true
2434
#endif // BLESERIAL_USE_STL
@@ -262,7 +272,17 @@ class BLESerialServerCallbacks : public BLEServerCallbacks {
262272
public:
263273
explicit BLESerialServerCallbacks(BLESerial<T>* bleSerial) : bleSerial(bleSerial) {}
264274

275+
#if defined(BLESERIAL_USE_NIMBLE) && BLESERIAL_USE_NIMBLE
276+
# if defined(BLESERIAL_NIMBLE_VERSION_MAJOR) && BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
277+
# warning "Using NimBLE version 2 for BLESerialServerCallbacks"
278+
void onDisconnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason) override
279+
# else // BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
280+
# warning "Using NimBLE version 1 for BLESerialServerCallbacks"
281+
void onDisconnect(NimBLEServer* pServer, ble_gap_conn_desc* desc) override
282+
# endif // BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
283+
#else // BLESERIAL_USE_NIMBLE
265284
void onDisconnect(BLEServer* pServer) override
285+
#endif // BLESERIAL_USE_NIMBLE
266286
{
267287
auto* pAdvertising = pServer->getAdvertising();
268288
if (pAdvertising == nullptr) {
@@ -280,7 +300,17 @@ class BLESerialCharacteristicCallbacks : public BLECharacteristicCallbacks {
280300
public:
281301
explicit BLESerialCharacteristicCallbacks(BLESerial<T>* bleSerial) : bleSerial(bleSerial) {}
282302

303+
#if defined(BLESERIAL_USE_NIMBLE) && BLESERIAL_USE_NIMBLE
304+
# if defined(BLESERIAL_NIMBLE_VERSION_MAJOR) && BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
305+
# warning "Using NimBLE version 2 for BLESerialCharacteristicCallbacks"
306+
void onWrite(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo) override
307+
# else // BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
308+
# warning "Using NimBLE version 1 for BLESerialCharacteristicCallbacks"
309+
void onWrite(NimBLECharacteristic* pCharacteristic, ble_gap_conn_desc* desc) override
310+
# endif // BLESERIAL_NIMBLE_VERSION_MAJOR >= 2
311+
#else // BLESERIAL_USE_NIMBLE
283312
void onWrite(BLECharacteristic* pCharacteristic) override
313+
#endif // BLESERIAL_USE_NIMBLE
284314
{
285315
if (pCharacteristic != bleSerial->m_pRxCharacteristic) {
286316
return;

0 commit comments

Comments
 (0)