BLE test

Fork of X_NUCLEO_IDB0XA1 by ST

Revision:
167:abc42e7158a6
Parent:
144:bdf5e8432131
Child:
168:ad1dff5dca1f
--- a/source/BlueNRGDevice.cpp	Fri Oct 30 16:47:42 2015 +0100
+++ b/source/BlueNRGDevice.cpp	Wed Nov 04 10:12:19 2015 +0100
@@ -126,17 +126,33 @@
     @param[in] void
     @returns    ble_error_t
 */
-ble_error_t BlueNRGDevice::init(void)
+ble_error_t BlueNRGDevice::init(BLE::InstanceID_t instanceID, FunctionPointerWithContext<BLE::InitializationCompleteCallbackContext *> callback)
 {
+	if (isInitialized) {
+        	BLE::InitializationCompleteCallbackContext context = {
+        	    BLE::Instance(instanceID),
+        	    BLE_ERROR_ALREADY_INITIALIZED
+        	};
+        	callback.call(&context);
+        	return BLE_ERROR_ALREADY_INITIALIZED;
+    	}
+
 	// Set the interrupt handler for the device
 	irq_.mode(PullNone); // betzw: set irq mode
 	irq_.rise(&HCI_Isr);
 
+	instanceID = instanceID;
+
 	/* ToDo: Clear memory contents, reset the SD, etc. */
 	// By default, we set the device GAP role to PERIPHERAL
 	btle_init(BlueNRGGap::getInstance().getIsSetAddress(), GAP_PERIPHERAL_ROLE_IDB04A1);
 	
 	isInitialized = true;
+	BLE::InitializationCompleteCallbackContext context = {
+	        BLE::Instance(instanceID),
+	        BLE_ERROR_NONE
+	};
+	callback.call(&context);
     
 	return BLE_ERROR_NONE;
 }
@@ -166,8 +182,6 @@
     return BLE_ERROR_NONE;
 }
 
-// ANDREA: mbedOS
-// betzw: really?
 /*!
   @brief  Wait for any BLE Event like BLE Connection, Read Request etc.    
   @param[in] void
@@ -206,18 +220,6 @@
 
 /**************************************************************************/
 /*!
-    @brief  get init state
-    @param[in] void
-    @returns    bool  
-*/
-/**************************************************************************/
-bool BlueNRGDevice::getIsInitialized(void)
-{
-    return isInitialized;
-}
-
-/**************************************************************************/
-/*!
     @brief  get reference to GAP object
     @param[in] void
     @returns    Gap&