test

Dependencies:   nrf51-sdk

Dependents:   microbit-dal

Fork of nRF51822 by Lancaster University

Revision:
127:bd1e1fe607e0
Parent:
125:35e4f65364bc
Child:
128:b7fc7925b5da
--- a/btle/btle.cpp	Fri May 08 15:33:55 2015 +0100
+++ b/btle/btle.cpp	Fri May 08 15:33:55 2015 +0100
@@ -92,12 +92,24 @@
     ASSERT_STATUS( softdevice_ble_evt_handler_set(btle_handler));
     ASSERT_STATUS( softdevice_sys_evt_handler_set(sys_evt_dispatch));
 
-    pstorage_init();
+    btle_gap_init();
+
+    return ERROR_NONE;
+}
+
+ble_error_t
+btle_initializeSecurity()
+{
+    if (pstorage_init() != NRF_SUCCESS) {
+        return BLE_ERROR_UNSPECIFIED;
+    }
 
     dm_init_param_t dm_init_param = {
         .clear_persistent_data = false /* Set to true in case the module should clear all persistent data. */
     };
-    dm_init(&dm_init_param);
+    if (dm_init(&dm_init_param) != NRF_SUCCESS) {
+        return BLE_ERROR_UNSPECIFIED;
+    }
 
     uint8_t applicationInstance;
     const dm_application_param_t dm_param = {
@@ -117,17 +129,39 @@
             },                             /**< Key distribution bitmap: keys that the peripheral device will distribute. */
         }
     };
-    dm_register(&applicationInstance, &dm_param);
 
-    btle_gap_init();
+    ret_code_t rc;
+    if ((rc = dm_register(&applicationInstance, &dm_param)) != NRF_SUCCESS) {
+        switch (rc) {
+            case NRF_ERROR_INVALID_STATE:
+                return BLE_ERROR_INVALID_STATE;
+            case NRF_ERROR_NO_MEM:
+                return BLE_ERROR_NO_MEM;
+            default:
+                return BLE_ERROR_UNSPECIFIED;
+        }
+    }
 
-    return ERROR_NONE;
+    return BLE_ERROR_NONE;
 }
 
 ret_code_t
 dm_handler(dm_handle_t const *p_handle, dm_event_t const *p_event, ret_code_t event_result)
 {
     printf("dm_handler: event %u\r\n", p_event->event_id);
+
+    switch (p_event->event_id) {
+        case DM_EVT_SECURITY_SETUP: /* started */
+            break;
+        case DM_EVT_SECURITY_SETUP_COMPLETE:
+            break;
+        case DM_EVT_LINK_SECURED:
+            break;
+        case DM_EVT_DEVICE_CONTEXT_STORED:
+            break;
+        default:
+            break;
+    }
     return NRF_SUCCESS;
 }