PBL mbed final
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. */