Lightly modified version of the BLE stack, that doesn't bring up a DFUService by default... as we have our own.
Fork of BLE_API by
Diff: public/GattServer.h
- Revision:
- 292:b5ee2ada4f33
- Parent:
- 267:ad6f6f40eb24
- Child:
- 293:6278354cfd98
--- a/public/GattServer.h Mon Mar 02 11:50:47 2015 +0000 +++ b/public/GattServer.h Mon Mar 02 11:50:47 2015 +0000 @@ -34,6 +34,7 @@ characteristicCount(0), onDataSent(), onDataWritten(), + onDataRead(), onUpdatesEnabled(NULL), onUpdatesDisabled(NULL), onConfirmationReceived(NULL) { @@ -63,6 +64,11 @@ void setOnDataWritten(T *objPtr, void (T::*memberPtr)(const GattCharacteristicWriteCBParams *context)) { onDataWritten.add(objPtr, memberPtr); } + void setOnDataRead(void (*callback)(const GattCharacteristicReadCBParams *eventDataP)) {onDataRead.add(callback);} + template <typename T> + void setOnDataRead(T *objPtr, void (T::*memberPtr)(const GattCharacteristicReadCBParams *context)) { + onDataRead.add(objPtr, memberPtr); + } void setOnUpdatesEnabled(EventCallback_t callback) {onUpdatesEnabled = callback;} void setOnUpdatesDisabled(EventCallback_t callback) {onUpdatesDisabled = callback;} void setOnConfirmationReceived(EventCallback_t callback) {onConfirmationReceived = callback;} @@ -74,6 +80,12 @@ } } + void handleDataReadEvent(const GattCharacteristicReadCBParams *params) { + if (onDataRead.hasCallbacksAttached()) { + onDataRead.call(params); + } + } + void handleEvent(GattServerEvents::gattEvent_e type, uint16_t charHandle) { switch (type) { case GattServerEvents::GATT_EVENT_UPDATES_ENABLED: @@ -109,6 +121,7 @@ private: CallChainOfFunctionPointersWithContext<unsigned> onDataSent; CallChainOfFunctionPointersWithContext<const GattCharacteristicWriteCBParams *> onDataWritten; + CallChainOfFunctionPointersWithContext<const GattCharacteristicReadCBParams *> onDataRead; EventCallback_t onUpdatesEnabled; EventCallback_t onUpdatesDisabled; EventCallback_t onConfirmationReceived;