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:
- 299:c1e4400af825
- Parent:
- 298:8785a8af8106
- Child:
- 300:d9a39f759a6a
--- a/public/GattServer.h Mon Mar 02 11:50:47 2015 +0000 +++ b/public/GattServer.h Mon Mar 02 11:50:48 2015 +0000 @@ -34,7 +34,6 @@ characteristicCount(0), onDataSent(), onDataWritten(), - onDataRead(), onUpdatesEnabled(NULL), onUpdatesDisabled(NULL), onConfirmationReceived(NULL) { @@ -44,10 +43,10 @@ friend class BLEDevice; private: /* These functions must be defined in the sub-class */ - virtual ble_error_t addService(GattService &) = 0; - virtual ble_error_t readValue(GattAttribute::Handle_t handle, uint8_t buffer[], uint16_t *const lengthP) = 0; - virtual ble_error_t updateValue(GattAttribute::Handle_t, uint8_t[], uint16_t, bool localOnly = false) = 0; - virtual ble_error_t initializeGATTDatabase(void) = 0; + virtual ble_error_t addService(GattService &) = 0; + virtual ble_error_t readValue(uint16_t handle, uint8_t buffer[], uint16_t *const lengthP) = 0; + virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t, bool localOnly = false) = 0; + virtual ble_error_t initializeGATTDatabase(void) = 0; // ToDo: For updateValue, check the CCCD to see if the value we are // updating has the notify or indicate bits sent, and if BOTH are set @@ -64,31 +63,6 @@ void setOnDataWritten(T *objPtr, void (T::*memberPtr)(const GattCharacteristicWriteCBParams *context)) { onDataWritten.add(objPtr, memberPtr); } - - /** - * A virtual function to allow underlying stacks to indicate if they support - * onDataRead(). It should be overridden to return true as applicable. - */ - virtual bool isOnDataReadAvaialble() const { - return false; - } - ble_error_t setOnDataRead(void (*callback)(const GattCharacteristicReadCBParams *eventDataP)) { - if (!isOnDataReadAvaialble()) { - return BLE_ERROR_NOT_IMPLEMENTED; - } - - onDataRead.add(callback); - return BLE_ERROR_NONE; - } - template <typename T> - ble_error_t setOnDataRead(T *objPtr, void (T::*memberPtr)(const GattCharacteristicReadCBParams *context)) { - if (!isOnDataReadAvaialble()) { - return BLE_ERROR_NOT_IMPLEMENTED; - } - - onDataRead.add(objPtr, memberPtr); - return BLE_ERROR_NONE; - } void setOnUpdatesEnabled(EventCallback_t callback) {onUpdatesEnabled = callback;} void setOnUpdatesDisabled(EventCallback_t callback) {onUpdatesDisabled = callback;} void setOnConfirmationReceived(EventCallback_t callback) {onConfirmationReceived = callback;} @@ -100,12 +74,6 @@ } } - 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: @@ -141,7 +109,6 @@ private: CallChainOfFunctionPointersWithContext<unsigned> onDataSent; CallChainOfFunctionPointersWithContext<const GattCharacteristicWriteCBParams *> onDataWritten; - CallChainOfFunctionPointersWithContext<const GattCharacteristicReadCBParams *> onDataRead; EventCallback_t onUpdatesEnabled; EventCallback_t onUpdatesDisabled; EventCallback_t onConfirmationReceived;