Nordic stack and drivers for the mbed BLE API. Version to work around build bug.

Dependents:   microbit_rubber_ducky microbit_mouse_BLE microbit_mouse_BLE_daybreak_version microbit_presenter

Fork of nRF51822 by Nordic Semiconductor

Committer:
rgrover1
Date:
Mon Jul 06 10:13:27 2015 +0100
Revision:
371:8f7d2137727a
Parent:
370:295f76db798e
Synchronized with git rev 2716309c
Author: Rohit Grover
Release 0.4.0
=============

This is a major release which introduces the GATT Client functionality. It
aligns with release 0.4.0 of BLE_API.

Enhancements
~~~~~~~~~~~~

* Introduce GattClient. This includes functionality for service-discovery,
connections, and attribute-reads and writes. You'll find a demo program for
LEDBlinker on the mbed.org Bluetooth team page to use the new APIs. Some of
the GATT client functionality hasn't been implemented yet, but the APIs have
been added.

* We've added an implementation for the abstract base class for
SecurityManager. All security related APIs have been moved into that.

* There has been a major cleanup of APIs under BLE. APIs have now been
categorized as belonging to Gap, GattServer, GattClient, or SecurityManager.
There are accessors to get references for Gap, GattServer, GattClient, and
SecurityManager. A former call to ble.setAddress(...) is now expected to be
achieved with ble.gap().setAddress(...).

* We've cleaned up our APIs, and this has resulted in dropping some APIs like
BLE::reset().

* We've also dropped GattServer::initializeGattDatabase(). THis was added at
some point to support controllers where a commit point was needed to
indicate when the application had finished constructing the GATT database.
This API would get called internally before Gap::startAdvertising(). We now
expect the underlying port to do the equivalent of initializeGattDatabase()
implicitly upon Gap::startAdvertising().

* We've added a version of Gap::disconnect() which takes a connection handle.
The previous API (which did not take a connection handle) has been
deprecated; it will still work for situations where there's only a single
active connection. We hold on to that API to allow existing code to migrate
to the new API.

Bugfixes
~~~~~~~~

* None.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rohit Grover 22:c6ee8136847e 1 /* mbed Microcontroller Library
Rohit Grover 22:c6ee8136847e 2 * Copyright (c) 2006-2013 ARM Limited
Rohit Grover 22:c6ee8136847e 3 *
Rohit Grover 22:c6ee8136847e 4 * Licensed under the Apache License, Version 2.0 (the "License");
Rohit Grover 22:c6ee8136847e 5 * you may not use this file except in compliance with the License.
Rohit Grover 22:c6ee8136847e 6 * You may obtain a copy of the License at
Rohit Grover 22:c6ee8136847e 7 *
Rohit Grover 22:c6ee8136847e 8 * http://www.apache.org/licenses/LICENSE-2.0
Rohit Grover 22:c6ee8136847e 9 *
Rohit Grover 22:c6ee8136847e 10 * Unless required by applicable law or agreed to in writing, software
Rohit Grover 22:c6ee8136847e 11 * distributed under the License is distributed on an "AS IS" BASIS,
Rohit Grover 22:c6ee8136847e 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Rohit Grover 22:c6ee8136847e 13 * See the License for the specific language governing permissions and
Rohit Grover 22:c6ee8136847e 14 * limitations under the License.
Rohit Grover 22:c6ee8136847e 15 */
Rohit Grover 22:c6ee8136847e 16
Rohit Grover 22:c6ee8136847e 17 #ifndef _CUSTOM_HELPER_H_
Rohit Grover 22:c6ee8136847e 18 #define _CUSTOM_HELPER_H_
Rohit Grover 22:c6ee8136847e 19
rgrover1 129:7cf48219e771 20 #include "common/common.h"
rgrover1 129:7cf48219e771 21 #include "ble.h"
rgrover1 371:8f7d2137727a 22 #include "ble/UUID.h"
rgrover1 371:8f7d2137727a 23 #include "ble/GattCharacteristic.h"
rgrover1 129:7cf48219e771 24
Rohit Grover 22:c6ee8136847e 25 #ifdef __cplusplus
Rohit Grover 22:c6ee8136847e 26 extern "C" {
Rohit Grover 22:c6ee8136847e 27 #endif
Rohit Grover 22:c6ee8136847e 28
Rohit Grover 22:c6ee8136847e 29 uint8_t custom_add_uuid_base(uint8_t const *const p_uuid_base);
Rohit Grover 22:c6ee8136847e 30 error_t custom_decode_uuid(uint8_t const *const p_uuid_base,
Rohit Grover 22:c6ee8136847e 31 ble_uuid_t *p_uuid);
Rohit Grover 22:c6ee8136847e 32 ble_uuid_t custom_convert_to_nordic_uuid(const UUID &uuid);
Rohit Grover 22:c6ee8136847e 33
Rohit Grover 22:c6ee8136847e 34 error_t custom_add_in_characteristic(uint16_t service_handle,
Rohit Grover 22:c6ee8136847e 35 ble_uuid_t *p_uuid,
Rohit Grover 22:c6ee8136847e 36 uint8_t properties,
rgrover1 371:8f7d2137727a 37 SecurityManager::SecurityMode_t requiredSecurity,
Rohit Grover 22:c6ee8136847e 38 uint8_t *p_data,
Rohit Grover 22:c6ee8136847e 39 uint16_t min_length,
Rohit Grover 22:c6ee8136847e 40 uint16_t max_length,
rgrover1 119:3ba3e377b972 41 const uint8_t *userDescriptionDescriptorValuePtr,
rgrover1 119:3ba3e377b972 42 uint16_t userDescriptionDescriptorValueLen,
rgrover1 83:71302acf1804 43 bool readAuthorization,
rgrover1 82:6c51cbe4bc12 44 bool writeAuthorization,
Rohit Grover 22:c6ee8136847e 45 ble_gatts_char_handles_t *p_char_handle);
Rohit Grover 22:c6ee8136847e 46
carlescufi 54:e2294c844c83 47 error_t custom_add_in_descriptor(uint16_t char_handle,
carlescufi 54:e2294c844c83 48 ble_uuid_t *p_uuid,
carlescufi 54:e2294c844c83 49 uint8_t *p_data,
carlescufi 54:e2294c844c83 50 uint16_t min_length,
carlescufi 54:e2294c844c83 51 uint16_t max_length,
carlescufi 54:e2294c844c83 52 uint16_t *p_desc_handle);
carlescufi 54:e2294c844c83 53
Rohit Grover 22:c6ee8136847e 54 #ifdef __cplusplus
Rohit Grover 22:c6ee8136847e 55 }
Rohit Grover 22:c6ee8136847e 56 #endif
Rohit Grover 22:c6ee8136847e 57
rgrover1 82:6c51cbe4bc12 58 #endif // ifndef _CUSTOM_HELPER_H_