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 Bluetooth Low Energy

Revision:
299:c1e4400af825
Parent:
298:8785a8af8106
Child:
300:d9a39f759a6a
diff -r 8785a8af8106 -r c1e4400af825 public/GattServer.h
--- 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;