PBL mbed final

Fork of nRF51822 by Shuta Nakamae

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Mon Nov 02 09:05:11 2015 +0000
Parent:
457:4b6a1f794460
Child:
459:98c44deafc70
Commit message:
Synchronized with git rev 20b07e38
Author: Rohit Grover
update init() to match the chagnes around initializationCompleteCallback.

refer to https://github.com/ARMmbed/ble/pull/91 and https://github.com/ARMmbed/ble/issues/90

Changed in this revision

source/nRF5xn.cpp Show annotated file Show diff for this revision Revisions of this file
source/nRF5xn.h Show annotated file Show diff for this revision Revisions of this file
--- a/source/nRF5xn.cpp	Mon Nov 02 09:05:11 2015 +0000
+++ b/source/nRF5xn.cpp	Mon Nov 02 09:05:11 2015 +0000
@@ -38,7 +38,7 @@
     return (&deviceInstance);
 }
 
-nRF5xn::nRF5xn(void)
+nRF5xn::nRF5xn(void) : initialized(false), instanceID(BLE::DEFAULT_INSTANCE)
 {
 }
 
@@ -72,11 +72,24 @@
     return versionString;
 }
 
-ble_error_t nRF5xn::init(void)
+ble_error_t nRF5xn::init(BLE::InstanceID_t instanceID, BLE::InitializationCompleteCallback_t callback)
 {
+    if (initialized) {
+        if (callback) {
+            callback(BLE::Instance(instanceID), BLE_ERROR_ALREADY_INITIALIZED);
+        }
+        return BLE_ERROR_ALREADY_INITIALIZED;
+    }
+
+    instanceID   = instanceID;
+
     /* ToDo: Clear memory contents, reset the SD, etc. */
     btle_init();
 
+    initialized = true;
+    if (callback) {
+        callback(BLE::Instance(instanceID), BLE_ERROR_NONE);
+    }
     return BLE_ERROR_NONE;
 }
 
--- a/source/nRF5xn.h	Mon Nov 02 09:05:11 2015 +0000
+++ b/source/nRF5xn.h	Mon Nov 02 09:05:11 2015 +0000
@@ -17,13 +17,15 @@
 #ifndef __NRF51822_H__
 #define __NRF51822_H__
 
-#include "mbed.h"
+#include "ble/BLE.h"
 #include "ble/blecommon.h"
-#include "ble/BLE.h"
+#include "ble/BLEInstanceBase.h"
+
 #include "nRF5xGap.h"
 #include "nRF5xGattServer.h"
 #include "nRF5xGattClient.h"
 #include "nRF5xSecurityManager.h"
+
 #include "btle.h"
 
 class nRF5xn : public BLEInstanceBase
@@ -32,7 +34,10 @@
     nRF5xn(void);
     virtual ~nRF5xn(void);
 
-    virtual ble_error_t init(void);
+    virtual ble_error_t init(BLE::InstanceID_t instanceID, BLE::InitializationCompleteCallback_t);
+    virtual bool        hasInitialized(void) const {
+        return initialized;
+    }
     virtual ble_error_t shutdown(void);
     virtual const char *getVersion(void);
 
@@ -58,6 +63,10 @@
         return nRF5xSecurityManager::getInstance();
     }
     virtual void waitForEvent(void);
+
+private:
+    bool              initialized;
+    BLE::InstanceID_t instanceID;
 };
 
 #endif
\ No newline at end of file