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.
Fork of nRF51822 by
Revision 455:e33de7c4574c, committed 2015-11-02
- Comitter:
- rgrover1
- Date:
- Mon Nov 02 09:05:10 2015 +0000
- Parent:
- 454:56e938f7d643
- Child:
- 456:da0323feba9b
- Commit message:
- Synchronized with git rev 18050e70
Author: Rohit Grover
Merge pull request #53 from marcuschangarm/defaultScanParams
When connecting, if no scanning parameters are passed, use values from Gap parent.
Changed in this revision
--- a/module.json Mon Nov 02 09:05:10 2015 +0000
+++ b/module.json Mon Nov 02 09:05:10 2015 +0000
@@ -1,12 +1,10 @@
{
"name": "ble-nrf51822",
- "version": "1.0.0",
+ "version": "0.4.8",
"description": "Nordic stack and drivers for the mbed BLE API.",
"keywords": [
"Bluetooth",
- "BLE",
- "mbed",
- "mbed-official"
+ "BLE"
],
"author": "Rohit Grover",
"repository": {
@@ -21,7 +19,7 @@
}
],
"dependencies": {
- "ble": "^1.0.0"
+ "ble": "~0.4.7"
},
"extraIncludes": [
"source/btle",
--- a/source/btle/btle.cpp Mon Nov 02 09:05:10 2015 +0000
+++ b/source/btle/btle.cpp Mon Nov 02 09:05:10 2015 +0000
@@ -133,7 +133,7 @@
dm_ble_evt_handler(p_ble_evt);
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
bleGattcEventHandler(p_ble_evt);
#endif
@@ -141,7 +141,7 @@
switch (p_ble_evt->header.evt_id) {
case BLE_GAP_EVT_CONNECTED: {
Gap::Handle_t handle = p_ble_evt->evt.gap_evt.conn_handle;
-#if defined(MCU_NRF51_16K_S110) || defined(MCU_NRF51_32K_S110)
+#if defined(TARGET_MCU_NRF51_16K_S110) || defined(TARGET_MCU_NRF51_32K_S110)
/* Only peripheral role is supported by S110 */
Gap::Role_t role = Gap::PERIPHERAL;
#else
--- a/source/btle/btle_discovery.cpp Mon Nov 02 09:05:10 2015 +0000
+++ b/source/btle/btle_discovery.cpp Mon Nov 02 09:05:10 2015 +0000
@@ -17,7 +17,7 @@
#include "nRF5xServiceDiscovery.h"
#include "nRF5xGattClient.h"
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
void bleGattcEventHandler(const ble_evt_t *p_ble_evt)
{
nRF5xServiceDiscovery &sdSingleton = nRF5xGattClient::getInstance().discovery;
--- a/source/nRF5xGap.cpp Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nRF5xGap.cpp Mon Nov 02 09:05:10 2015 +0000
@@ -233,17 +233,18 @@
}
ble_gap_scan_params_t scanParams;
- scanParams.active = 0; /**< If 1, perform active scanning (scan requests). */
scanParams.selective = 0; /**< If 1, ignore unknown devices (non whitelisted). */
scanParams.p_whitelist = NULL; /**< Pointer to whitelist, NULL if none is given. */
if (scanParamsIn != NULL) {
- scanParams.interval = scanParamsIn->getInterval(); /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
- scanParams.window = scanParamsIn->getWindow(); /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
- scanParams.timeout = scanParamsIn->getTimeout(); /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
+ scanParams.active = scanParamsIn->getActiveScanning(); /**< If 1, perform active scanning (scan requests). */
+ scanParams.interval = scanParamsIn->getInterval(); /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+ scanParams.window = scanParamsIn->getWindow(); /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+ scanParams.timeout = scanParamsIn->getTimeout(); /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
} else {
- scanParams.interval = 500; /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
- scanParams.window = 200; /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
- scanParams.timeout = 0; /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
+ scanParams.active = _scanningParams.getActiveScanning(); /**< If 1, perform active scanning (scan requests). */
+ scanParams.interval = _scanningParams.getInterval(); /**< Scan interval between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+ scanParams.window = _scanningParams.getWindow(); /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+ scanParams.timeout = _scanningParams.getTimeout(); /**< Scan timeout between 0x0001 and 0xFFFF in seconds, 0x0000 disables timeout. */
}
uint32_t rc = sd_ble_gap_connect(&addr, &scanParams, &connParams);
--- a/source/nRF5xGap.h Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nRF5xGap.h Mon Nov 02 09:05:10 2015 +0000
@@ -81,7 +81,7 @@
}
/* Observer role is not supported by S110, return BLE_ERROR_NOT_IMPLEMENTED */
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
virtual ble_error_t startRadioScan(const GapScanningParams &scanningParams) {
ble_gap_scan_params_t scanParams = {
.active = scanningParams.getActiveScanning(), /**< If 1, perform active scanning (scan requests). */
--- a/source/nRF5xGattClient.cpp Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nRF5xGattClient.cpp Mon Nov 02 09:05:10 2015 +0000
@@ -22,7 +22,7 @@
return nRFGattClientSingleton;
}
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
ble_error_t
nRF5xGattClient::launchServiceDiscovery(Gap::Handle_t connectionHandle,
ServiceDiscovery::ServiceCallback_t sc,
--- a/source/nRF5xGattClient.h Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nRF5xGattClient.h Mon Nov 02 09:05:10 2015 +0000
@@ -29,7 +29,7 @@
* When using S110, all Gatt client features will return
* BLE_ERROR_NOT_IMPLEMENTED
*/
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
/**
* Launch service discovery. Once launched, service discovery will remain
--- a/source/nRF5xGattServer.cpp Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nRF5xGattServer.cpp Mon Nov 02 09:05:10 2015 +0000
@@ -45,7 +45,6 @@
/**************************************************************************/
ble_error_t nRF5xGattServer::addService(GattService &service)
{
- /* ToDo: Make sure we don't overflow the array, etc. */
/* ToDo: Make sure this service UUID doesn't already exist (?) */
/* ToDo: Basic validation */
@@ -63,6 +62,9 @@
/* Add characteristics to the service */
for (uint8_t i = 0; i < service.getCharacteristicCount(); i++) {
+ if (characteristicCount >= BLE_TOTAL_CHARACTERISTICS) {
+ return BLE_ERROR_NO_MEM;
+ }
GattCharacteristic *p_char = service.getCharacteristic(i);
/* Skip any incompletely defined, read-only characteristics. */
@@ -108,8 +110,11 @@
characteristicCount++;
/* Add optional descriptors if any */
- /* ToDo: Make sure we don't overflow the array */
for (uint8_t j = 0; j < p_char->getDescriptorCount(); j++) {
+ if (descriptorCount >= BLE_TOTAL_DESCRIPTORS) {
+ return BLE_ERROR_NO_MEM;
+ }
+
GattAttribute *p_desc = p_char->getDescriptor(j);
/* skip the user-description-descriptor here; this has already been handled when adding the characteristic (above). */
if (p_desc->getUUID() == BLE_UUID_DESCRIPTOR_CHAR_USER_DESC) {
--- a/source/nordic-sdk/components/softdevice/s130/include/ble_gap.h Mon Nov 02 09:05:10 2015 +0000
+++ b/source/nordic-sdk/components/softdevice/s130/include/ble_gap.h Mon Nov 02 09:05:10 2015 +0000
@@ -547,7 +547,7 @@
{
ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. */
ble_gap_addr_t own_addr; /**< Bluetooth address of the local device used during connection setup. */
-#if !defined(MCU_NRF51_16K_S110) && !defined(MCU_NRF51_32K_S110)
+#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
uint8_t role; /**< BLE role for this connection, see @ref BLE_GAP_ROLES */
#endif
uint8_t irk_match :1; /**< If 1, peer device's address resolved using an IRK. */
