High level Bluetooth Low Energy API and radio abstraction layer

Dependencies:   nRF51822

Dependents:   LinkNode_LIS3DH

Fork of BLE_API by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
Rohit Grover
Date:
Fri Jun 13 11:22:03 2014 +0100
Parent:
93:f97a35cc40f8
Child:
95:5d2102351bf4
Commit message:
add BLEDevice::readCharacteristicValue()

Changed in this revision

hw/BLEDevice.h Show annotated file Show diff for this revision Revisions of this file
hw/GattServer.h Show annotated file Show diff for this revision Revisions of this file
--- a/hw/BLEDevice.h	Wed Jun 11 15:03:35 2014 +0100
+++ b/hw/BLEDevice.h	Fri Jun 13 11:22:03 2014 +0100
@@ -142,7 +142,9 @@
     ble_error_t addService(GattService &service);
 
     Gap::GapState_t getGapState(void) const;
-    ble_error_t     updateCharacteristicValue(uint16_t handle, const uint8_t* value, uint16_t size, bool localOnly = false);
+
+    ble_error_t readCharacteristicValue(uint16_t handle, uint8_t *const buffer, uint16_t *const lengthP);
+    ble_error_t updateCharacteristicValue(uint16_t handle, const uint8_t* value, uint16_t size, bool localOnly = false);
 
     /**
      * Yield control to the BLE stack or to other tasks waiting for events. This
@@ -373,6 +375,11 @@
     return transport->getGap().getState();
 }
 
+inline ble_error_t BLEDevice::readCharacteristicValue(uint16_t handle, uint8_t *const buffer, uint16_t *const lengthP)
+{
+    return transport->getGattServer().readValue(handle, buffer, lengthP);
+}
+
 inline ble_error_t
 BLEDevice::updateCharacteristicValue(uint16_t handle, const uint8_t* value, uint16_t size, bool localOnly)
 {
--- a/hw/GattServer.h	Wed Jun 11 15:03:35 2014 +0100
+++ b/hw/GattServer.h	Fri Jun 13 11:22:03 2014 +0100
@@ -34,7 +34,7 @@
 public:
     /* These functions must be defined in the sub-class */
     virtual ble_error_t addService(GattService &) = 0;
-    virtual ble_error_t readValue(uint16_t, uint8_t[], uint16_t) = 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;
 
     // ToDo: For updateValue, check the CCCD to see if the value we are