fork

Fork of nRF51822 by Nordic Semiconductor

Revision:
88:fdb2b0db620e
Parent:
87:f9516241903b
Child:
89:c0dbd55614b2
--- a/nRF51GattServer.cpp	Wed Jan 21 10:01:16 2015 +0000
+++ b/nRF51GattServer.cpp	Wed Jan 21 10:01:16 2015 +0000
@@ -176,6 +176,7 @@
 ble_error_t nRF51GattServer::updateValue(uint16_t charHandle, uint8_t buffer[], uint16_t len, bool localOnly)
 {
     uint16_t gapConnectionHandle = nRF51Gap::getInstance().getConnectionHandle();
+    ble_error_t returnValue = BLE_ERROR_NONE;
 
     if (localOnly) {
         /* Only update locally regardless of notify/indicate */
@@ -212,13 +213,22 @@
                         sd_ble_gatts_value_set(nrfCharacteristicHandles[charHandle].value_handle, 0, &len, buffer),
                         BLE_ERROR_PARAM_OUT_OF_RANGE );
         }
+
+        /*  Notifications consume application buffers. The return value can 
+            be used for resending notifications.
+        */
+        if (error != ERROR_NONE)
+        {
+            returnValue = BLE_STACK_BUSY;
+        }
+
     } else {
         ASSERT_INT( ERROR_NONE,
                     sd_ble_gatts_value_set(nrfCharacteristicHandles[charHandle].value_handle, 0, &len, buffer),
                     BLE_ERROR_PARAM_OUT_OF_RANGE );
     }
 
-    return BLE_ERROR_NONE;
+    return returnValue;
 }
 
 /**************************************************************************/