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+ # else // __has_include(<NimBLEAdvertisementData.h>)
26+ # define BLESERIAL_NIMBLE_VERSION_MAJOR 1
27+ # endif // __has_include(<NimBLEAdvertisementData.h>)
28+ # warning "Using NimBLE version " BLESERIAL_NIMBLE_VERSION_MAJOR
29+ #endif // BLESERIAL_USE_NIMBLE
30+
2231#ifndef BLESERIAL_USE_STL
2332# define BLESERIAL_USE_STL true
2433#endif // BLESERIAL_USE_STL
@@ -262,7 +271,15 @@ class BLESerialServerCallbacks : public BLEServerCallbacks {
262271 public:
263272 explicit BLESerialServerCallbacks (BLESerial<T>* bleSerial) : bleSerial(bleSerial) {}
264273
274+ #if defined(BLESERIAL_USE_NIMBLE) && BLESERIAL_USE_NIMBLE
275+ # if defined(NIMBLE_VERSION_MAJOR) && NIMBLE_VERSION_MAJOR >= 2
276+ void onDisconnect (NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason) override
277+ # else // NIMBLE_VERSION_MAJOR >= 2
278+ void onDisconnect (NimBLEServer* pServer, ble_gap_conn_desc* desc) override
279+ # endif // NIMBLE_VERSION_MAJOR >= 2
280+ #else // BLESERIAL_USE_NIMBLE
265281 void onDisconnect (BLEServer* pServer) override
282+ #endif // BLESERIAL_USE_NIMBLE
266283 {
267284 auto * pAdvertising = pServer->getAdvertising ();
268285 if (pAdvertising == nullptr ) {
@@ -280,7 +297,15 @@ class BLESerialCharacteristicCallbacks : public BLECharacteristicCallbacks {
280297 public:
281298 explicit BLESerialCharacteristicCallbacks (BLESerial<T>* bleSerial) : bleSerial(bleSerial) {}
282299
300+ #if defined(BLESERIAL_USE_NIMBLE) && BLESERIAL_USE_NIMBLE
301+ # if defined(NIMBLE_VERSION_MAJOR) && NIMBLE_VERSION_MAJOR >= 2
302+ void onWrite (NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo) override
303+ # else // NIMBLE_VERSION_MAJOR >= 2
304+ void onWrite (NimBLECharacteristic* pCharacteristic, ble_gap_conn_desc* desc) override
305+ # endif // NIMBLE_VERSION_MAJOR >= 2
306+ #else // BLESERIAL_USE_NIMBLE
283307 void onWrite (BLECharacteristic* pCharacteristic) override
308+ #endif // BLESERIAL_USE_NIMBLE
284309 {
285310 if (pCharacteristic != bleSerial->m_pRxCharacteristic ) {
286311 return ;
0 commit comments