Skip to content

Commit f216e95

Browse files
committed
Add characteristic callbacks onStatus overload with conn info.
Adds a new overloaded callback to NimBLECharacteristicCallbacks for the notification/indication onStatus method that provides a NimBLEConnInfo reference.
1 parent 222f159 commit f216e95

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/NimBLECharacteristic.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,18 @@ void NimBLECharacteristicCallbacks::onStatus(NimBLECharacteristic* pCharacterist
499499
NIMBLE_LOGD("NimBLECharacteristicCallbacks", "onStatus: default");
500500
} // onStatus
501501

502+
/**
503+
* @brief Callback function to support a Notify/Indicate Status report.
504+
* @param [in] pCharacteristic The characteristic that is the source of the event.
505+
* @param [in] connInfo A reference to a NimBLEConnInfo instance containing the peer info.
506+
* @param [in] code Status return code from the NimBLE stack.
507+
* @details The status code for success is 0 for notifications and BLE_HS_EDONE for indications,
508+
* any other value is an error.
509+
*/
510+
void NimBLECharacteristicCallbacks::onStatus(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, int code) {
511+
NIMBLE_LOGD("NimBLECharacteristicCallbacks", "onStatus: default");
512+
} // onStatus
513+
502514
/**
503515
* @brief Callback function called when a client changes subscription status.
504516
* @param [in] pCharacteristic The characteristic that is the source of the event.

src/NimBLECharacteristic.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,8 @@ class NimBLECharacteristicCallbacks {
323323
virtual ~NimBLECharacteristicCallbacks() {}
324324
virtual void onRead(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo);
325325
virtual void onWrite(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo);
326-
virtual void onStatus(NimBLECharacteristic* pCharacteristic, int code);
326+
virtual void onStatus(NimBLECharacteristic* pCharacteristic, int code); // deprecated
327+
virtual void onStatus(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, int code);
327328
virtual void onSubscribe(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, uint16_t subValue);
328329
};
329330

src/NimBLEServer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,7 @@ int NimBLEServer::handleGapEvent(ble_gap_event* event, void* arg) {
487487
}
488488

489489
pChar->m_pCallbacks->onStatus(pChar, event->notify_tx.status);
490+
pChar->m_pCallbacks->onStatus(pChar, peerInfo, event->notify_tx.status);
490491
break;
491492
} // BLE_GAP_EVENT_NOTIFY_TX
492493

0 commit comments

Comments
 (0)