Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 167:abc42e7158a6, committed 2015-11-04
- Comitter:
- Andrea Palmieri
- Date:
- Wed Nov 04 10:12:19 2015 +0100
- Parent:
- 166:63060ad4abd5
- Child:
- 168:ad1dff5dca1f
- Commit message:
- Synch with BLE API 2.0.3
Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>
Changed in this revision
| source/BlueNRGDevice.cpp | Show annotated file Show diff for this revision Revisions of this file |
| x-nucleo-idb0xa1/BlueNRGDevice.h | Show annotated file Show diff for this revision Revisions of this file |
--- 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&
--- a/x-nucleo-idb0xa1/BlueNRGDevice.h Fri Oct 30 16:47:42 2015 +0100
+++ b/x-nucleo-idb0xa1/BlueNRGDevice.h Wed Nov 04 10:12:19 2015 +0100
@@ -42,6 +42,7 @@
#include "mbed-drivers/mbed.h"
#include "ble/blecommon.h"
+#include "ble/BLEInstanceBase.h"
#include "ble/BLE.h"
#include "BlueNRGGap.h"
#include "BlueNRGGattServer.h"
@@ -55,7 +56,7 @@
BlueNRGDevice(PinName mosi, PinName miso, PinName sck, PinName cs, PinName rst, PinName irq);
virtual ~BlueNRGDevice(void);
- virtual ble_error_t init(void);
+ virtual ble_error_t init(BLE::InstanceID_t instanceID, FunctionPointerWithContext<BLE::InitializationCompleteCallbackContext *> callback);
virtual ble_error_t shutdown(void);
virtual const char *getVersion(void);
virtual Gap& getGap();
@@ -76,7 +77,9 @@
return *sm;
}
ble_error_t reset(void);
- bool getIsInitialized(void);
+ virtual bool hasInitialized(void) const {
+ return isInitialized;
+ }
bool dataPresent();
int32_t spiRead(uint8_t *buffer, uint8_t buff_size);
@@ -86,6 +89,7 @@
private:
bool isInitialized;
+ BLE::InstanceID_t instanceID;
SPI spi_;
DigitalOut nCS_;