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:
1183:1589830dbdb7
Parent:
1179:4ab722f8dca0
--- a/ble/GapAdvertisingParams.h	Wed Apr 06 19:15:34 2016 +0100
+++ b/ble/GapAdvertisingParams.h	Wed Apr 06 19:15:36 2016 +0100
@@ -25,24 +25,55 @@
  */
 class GapAdvertisingParams {
 public:
+    /**
+     * Minimum Advertising interval for connectable undirected and connectable
+     * directed events in 625us units - 20ms.
+     */
     static const unsigned GAP_ADV_PARAMS_INTERVAL_MIN        = 0x0020;
+    /**
+     * Minimum Advertising interval for scannable and non-connectable
+     * undirected events in 625us units - 100ms.
+     */
     static const unsigned GAP_ADV_PARAMS_INTERVAL_MIN_NONCON = 0x00A0;
+    /**
+     * Maximum Advertising interval in 625us units - 10.24s.
+     */
     static const unsigned GAP_ADV_PARAMS_INTERVAL_MAX        = 0x4000;
+    /**
+     * Maximum advertising timeout seconds.
+     */
     static const unsigned GAP_ADV_PARAMS_TIMEOUT_MAX         = 0x3FFF;
 
-    /*!
+    /**
      * Encapsulates the peripheral advertising modes, which determine how
      * the device appears to other central devices in hearing range.
      */
     enum AdvertisingType_t {
-        ADV_CONNECTABLE_UNDIRECTED,     /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */
-        ADV_CONNECTABLE_DIRECTED,       /**< Vol 3, Part C, Section 9.3.3 and Vol 6, Part B, Section 2.3.1.2 */
-        ADV_SCANNABLE_UNDIRECTED,       /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4 */
-        ADV_NON_CONNECTABLE_UNDIRECTED  /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3 */
+        ADV_CONNECTABLE_UNDIRECTED,     /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1. */
+        ADV_CONNECTABLE_DIRECTED,       /**< Vol 3, Part C, Section 9.3.3 and Vol 6, Part B, Section 2.3.1.2. */
+        ADV_SCANNABLE_UNDIRECTED,       /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4. */
+        ADV_NON_CONNECTABLE_UNDIRECTED  /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3. */
     };
-    typedef enum AdvertisingType_t AdvertisingType; /* Deprecated type alias. */
+    /**
+     * Type alias for GapAdvertisingParams::AdvertisingType_t.
+     *
+     * @deprecated  This type alias will be dropped in future releases.
+     */
+    typedef enum AdvertisingType_t AdvertisingType;
 
 public:
+    /**
+     * Construct an instance of GapAdvertisingParams.
+     *
+     * @param[in] advType
+     *              Type of advertising. Default is
+     *              GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED.
+     * @param[in] interval
+     *              Advertising interval in units of 0.625ms. Default is
+     *              GapAdvertisingParams::GAP_ADV_PARAMS_INTERVAL_MIN_NONCON.
+     * @param[in] timeout
+     *              Advertising timeout. Default is 0.
+     */
     GapAdvertisingParams(AdvertisingType_t advType  = ADV_CONNECTABLE_UNDIRECTED,
                          uint16_t          interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
                          uint16_t          timeout  = 0) : _advType(advType), _interval(interval), _timeout(timeout) {
@@ -78,43 +109,99 @@
     }
 
     static const uint16_t UNIT_0_625_MS = 625;  /**< Number of microseconds in 0.625 milliseconds. */
+    /**
+     * Convert milliseconds to units of 0.625ms.
+     *
+     * @param[in] durationInMillis
+     *              The number of milliseconds to convert.
+     *
+     * @return The value of @p durationInMillis in units of 0.625ms.
+     */
     static uint16_t MSEC_TO_ADVERTISEMENT_DURATION_UNITS(uint32_t durationInMillis) {
         return (durationInMillis * 1000) / UNIT_0_625_MS;
     }
+    /**
+     * Convert units of 0.625ms to milliseconds.
+     *
+     * @param[in] gapUnits
+     *              The number of units of 0.625ms to convert.
+     *
+     * @return The value of @p gapUnits in milliseconds.
+     */
     static uint16_t ADVERTISEMENT_DURATION_UNITS_TO_MS(uint16_t gapUnits) {
         return (gapUnits * UNIT_0_625_MS) / 1000;
     }
 
+    /**
+     * Get the advertising type.
+     *
+     * @return The advertising type.
+     */
     AdvertisingType_t getAdvertisingType(void) const {
         return _advType;
     }
 
     /**
-     * @return the advertisement interval (in milliseconds).
+     * Get the advertising interval in milliseconds.
+     *
+     * @return The advertisement interval (in milliseconds).
      */
     uint16_t getInterval(void) const {
         return ADVERTISEMENT_DURATION_UNITS_TO_MS(_interval);
     }
 
     /**
-     * @return the advertisement interval in advertisement duration units (0.625ms units).
+     * Get the advertisement interval in units of 0.625ms.
+     *
+     * @return The advertisement interval in advertisement duration units (0.625ms units).
      */
     uint16_t getIntervalInADVUnits(void) const {
         return _interval;
     }
 
+    /**
+     * Get The advertising timeout.
+     *
+     * @return The advertising timeout (in seconds).
+     */
     uint16_t getTimeout(void) const {
         return _timeout;
     }
 
-    void setAdvertisingType(AdvertisingType_t newAdvType) {_advType = newAdvType;  }
-    void setInterval(uint16_t newInterval)                {_interval = MSEC_TO_ADVERTISEMENT_DURATION_UNITS(newInterval);}
-    void setTimeout(uint16_t newTimeout)                  {_timeout = newTimeout;  }
+    /**
+     * Set the advertising type.
+     *
+     * @param[in] newAdvType
+     *              The new advertising type.
+     */
+    void setAdvertisingType(AdvertisingType_t newAdvType) {
+        _advType = newAdvType;
+    }
+
+    /**
+     * Set the advertising interval in milliseconds.
+     *
+     * @param[in] newInterval
+     *              The new advertising interval in milliseconds.
+     */
+    void setInterval(uint16_t newInterval) {
+        _interval = MSEC_TO_ADVERTISEMENT_DURATION_UNITS(newInterval);
+    }
+
+    /**
+     * Set the advertising timeout.
+     *
+     * @param[in] newTimeout
+     *              The new advertising timeout (in seconds).
+     */
+    void setTimeout(uint16_t newTimeout) {
+        _timeout = newTimeout;
+    }
 
 private:
-    AdvertisingType_t _advType;
-    uint16_t          _interval; /* In ADV duration units (i.e. 0.625ms). */
-    uint16_t          _timeout;  /* In seconds. */
+    AdvertisingType_t _advType;  /**< The advertising type. */
+    uint16_t          _interval; /**< The advertising interval in ADV duration units (i.e. 0.625ms). */
+    uint16_t          _timeout;  /**< The advertising timeout in seconds. */
 };
 
-#endif // ifndef __GAP_ADVERTISING_PARAMS_H__
\ No newline at end of file
+#endif /* ifndef __GAP_ADVERTISING_PARAMS_H__ */
\ No newline at end of file