High level Bluetooth Low Energy API and radio abstraction layer

Dependents:   BLE_ANCS_SDAPI BLE_temperature BLE_HeartRate BLE_ANCS_SDAPI_IRC ... more

Overview

The BLE_API is a high level abstraction for using Bluetooth Low Energy on multiple platforms. For details and examples using the BLE_API please see the BLE_API Summary Page. Or click on the API Documentation tab above.

Supported Services

Supported services can be found in the BLE_API/services folder.

Revision:
1077:98d37e26903c
Parent:
1075:0d0dafb54bc9
Child:
1078:79c089630b38
--- a/ble/Gap.h	Mon Jan 11 08:51:43 2016 +0000
+++ b/ble/Gap.h	Mon Jan 11 08:51:43 2016 +0000
@@ -17,7 +17,6 @@
 #ifndef __GAP_H__
 #define __GAP_H__
 
-#include "ble/BLEProtocol.h"
 #include "GapAdvertisingData.h"
 #include "GapAdvertisingParams.h"
 #include "GapScanningParams.h"
@@ -31,28 +30,19 @@
 class GapAdvertisingData;
 
 class Gap {
-    /*
-     * DEPRECATION ALERT: all of the APIs in this `public` block are deprecated.
-     * They have been relocated to the class BLEProtocol.
-     */
 public:
-    /**
-     * Address-type for BLEProtocol addresses.
-     * @note: deprecated. Use BLEProtocol::AddressType::Type instead.
-     */
-    typedef BLEProtocol::AddressType::Type AddressType_t;
+    enum AddressType_t {
+        ADDR_TYPE_PUBLIC = 0,
+        ADDR_TYPE_RANDOM_STATIC,
+        ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE,
+        ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE
+    };
+    typedef enum AddressType_t addr_type_t; /* @Note: Deprecated. Use AddressType_t instead. */
 
-    /**
-     * Address-type for BLEProtocol addresses.
-     * @note: deprecated. Use BLEProtocol::AddressType::Type instead.
-     */
-    typedef BLEProtocol::AddressType::Type addr_type_t;
+    static const unsigned ADDR_LEN = 6;
+    typedef uint8_t Address_t[ADDR_LEN]; /* 48-bit address, LSB format. */
+    typedef Address_t address_t;         /* @Note: Deprecated. Use Address_t instead. */
 
-    static const unsigned ADDR_LEN = BLEProtocol::ADDR_LEN; /**< Length (in octets) of the BLE MAC address. */
-    typedef BLEProtocol::Address_t Address_t; /**< 48-bit address, LSB format. @Note: Deprecated. Use BLEProtocol::Address_t instead. */
-    typedef BLEProtocol::Address_t address_t; /**< 48-bit address, LSB format. @Note: Deprecated. Use BLEProtocol::Address_t instead. */
-
-public:
     enum TimeoutSource_t {
         TIMEOUT_SRC_ADVERTISING      = 0x00, /**< Advertising timeout. */
         TIMEOUT_SRC_SECURITY_REQUEST = 0x01, /**< Security request timeout. */
@@ -107,21 +97,21 @@
     typedef FunctionPointerWithContext<const AdvertisementCallbackParams_t *> AdvertisementReportCallback_t;
 
     struct ConnectionCallbackParams_t {
-        Handle_t                        handle;
-        Role_t                          role;
-        BLEProtocol::AddressType::Type  peerAddrType;
-        Address_t                       peerAddr;
-        BLEProtocol::AddressType::Type  ownAddrType;
-        Address_t                       ownAddr;
-        const ConnectionParams_t       *connectionParams;
+        Handle_t      handle;
+        Role_t        role;
+        AddressType_t peerAddrType;
+        Address_t     peerAddr;
+        AddressType_t ownAddrType;
+        Address_t     ownAddr;
+        const ConnectionParams_t *connectionParams;
 
-        ConnectionCallbackParams_t(Handle_t                        handleIn,
-                                   Role_t                          roleIn,
-                                   BLEProtocol::AddressType::Type  peerAddrTypeIn,
-                                   const uint8_t                  *peerAddrIn,
-                                   BLEProtocol::AddressType::Type  ownAddrTypeIn,
-                                   const uint8_t                  *ownAddrIn,
-                                   const ConnectionParams_t       *connectionParamsIn) :
+        ConnectionCallbackParams_t(Handle_t       handleIn,
+                                   Role_t         roleIn,
+                                   AddressType_t  peerAddrTypeIn,
+                                   const uint8_t *peerAddrIn,
+                                   AddressType_t  ownAddrTypeIn,
+                                   const uint8_t *ownAddrIn,
+                                   const ConnectionParams_t *connectionParamsIn) :
             handle(handleIn),
             role(roleIn),
             peerAddrType(peerAddrTypeIn),
@@ -171,7 +161,7 @@
      *
      * @return BLE_ERROR_NONE on success.
      */
-    virtual ble_error_t setAddress(BLEProtocol::AddressType::Type type, const Address_t address) {
+    virtual ble_error_t setAddress(AddressType_t type, const Address_t address) {
         /* avoid compiler warnings about unused variables */
         (void)type;
         (void)address;
@@ -184,7 +174,7 @@
      *
      * @return BLE_ERROR_NONE on success.
      */
-    virtual ble_error_t getAddress(BLEProtocol::AddressType::Type *typeP, Address_t address) {
+    virtual ble_error_t getAddress(AddressType_t *typeP, Address_t address) {
         /* Avoid compiler warnings about unused variables. */
         (void)typeP;
         (void)address;
@@ -243,10 +233,10 @@
      *     successfully. The connectionCallChain (if set) will be invoked upon
      *     a connection event.
      */
-    virtual ble_error_t connect(const Address_t                 peerAddr,
-                                BLEProtocol::AddressType::Type  peerAddrType,
-                                const ConnectionParams_t       *connectionParams,
-                                const GapScanningParams        *scanParams) {
+    virtual ble_error_t connect(const Address_t           peerAddr,
+                                Gap::AddressType_t        peerAddrType,
+                                const ConnectionParams_t *connectionParams,
+                                const GapScanningParams  *scanParams) {
         /* Avoid compiler warnings about unused variables. */
         (void)peerAddr;
         (void)peerAddrType;
@@ -1012,13 +1002,13 @@
 
     /* Entry points for the underlying stack to report events back to the user. */
 public:
-    void processConnectionEvent(Handle_t                        handle,
-                                Role_t                          role,
-                                BLEProtocol::AddressType::Type  peerAddrType,
-                                const Address_t                 peerAddr,
-                                BLEProtocol::AddressType::Type  ownAddrType,
-                                const Address_t                 ownAddr,
-                                const ConnectionParams_t       *connectionParams) {
+    void processConnectionEvent(Handle_t                  handle,
+                                Role_t                    role,
+                                AddressType_t             peerAddrType,
+                                const Address_t           peerAddr,
+                                AddressType_t             ownAddrType,
+                                const Address_t           ownAddr,
+                                const ConnectionParams_t *connectionParams) {
         state.connected = 1;
         ConnectionCallbackParams_t callbackParams(handle, role, peerAddrType, peerAddr, ownAddrType, ownAddr, connectionParams);
         connectionCallChain.call(&callbackParams);