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.
Dependents: BLE_PowerBank_HeyFaradey
Fork of BLE_API by
Revision 1036:7af23cdcfcac, committed 2015-12-10
- Comitter:
- rgrover1
- Date:
- Thu Dec 10 09:15:04 2015 +0000
- Parent:
- 1035:d8ba3cb5a39a
- Child:
- 1037:ec64da75c9ee
- Commit message:
- Synchronized with git rev aac31815
Author: Rohit Grover
Merge branch 'endian' of https://github.com/marcuschangarm/ble into marcuschangarm-endian
Changed in this revision
--- a/DOXYGEN_FRONTPAGE.md Thu Dec 10 09:15:04 2015 +0000 +++ b/DOXYGEN_FRONTPAGE.md Thu Dec 10 09:15:04 2015 +0000 @@ -4,8 +4,7 @@ Bluetooth Low Energy on multiple platforms. This documentation describes the internal structure of the mbed -[BLE API](https://github.com/armmbed/ble). It was automatically generated from -specially formatted comment blocks in BLE API's source code using Doxygen (see http://www.stack.nl/~dimitri/doxygen/ for more information on Doxygen). +[BLE API](https://github.com/armmbed/ble). For getting started with BLE on mbed, check our [introduction page](https://docs.mbed.com/docs/ble-intros/en/latest/).
--- a/ble.doxyfile Thu Dec 10 09:15:04 2015 +0000 +++ b/ble.doxyfile Thu Dec 10 09:15:04 2015 +0000 @@ -131,7 +131,7 @@ # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. -FULL_PATH_NAMES = NO +FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is @@ -165,7 +165,7 @@ # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) -JAVADOC_AUTOBRIEF = YES +JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style @@ -245,15 +245,21 @@ # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, -# and language is one of the parsers supported by doxygen: IDL, Java, -# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, -# C++. For instance to make doxygen treat .inc files as Fortran files (default -# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note -# that for custom extensions you also need to set FILE_PATTERNS otherwise the -# files are not read by doxygen. - -EXTENSION_MAPPING = +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = h=C++ # If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all # comments according to the Markdown format, which allows for more readable @@ -361,12 +367,12 @@ # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES -EXTRACT_ALL = YES +EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. -EXTRACT_PRIVATE = YES +EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. @@ -376,7 +382,7 @@ # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. -EXTRACT_STATIC = YES +EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. @@ -389,7 +395,7 @@ # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. -EXTRACT_LOCAL_METHODS = YES +EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called @@ -488,7 +494,7 @@ # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. -SORT_MEMBERS_CTORS_1ST = NO +SORT_MEMBERS_CTORS_1ST = YES # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) @@ -638,7 +644,7 @@ # wrong or incomplete parameter documentation, but not about the absence of # documentation. -WARN_NO_PARAMDOC = NO +WARN_NO_PARAMDOC = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text @@ -653,10 +659,10 @@ # and error messages should be written. If left blank the output is written # to stderr. -WARN_LOGFILE = +WARN_LOGFILE = doxygen_warn.log #--------------------------------------------------------------------------- -# configuration options related to the input files +# Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain @@ -731,7 +737,7 @@ # and *.h) to filter out the source-files in the directories. If left # blank all files are included. -EXAMPLE_PATTERNS = * +EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude @@ -833,6 +839,16 @@ REFERENCES_LINK_SOURCE = YES +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source @@ -855,7 +871,7 @@ # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. -ALPHABETICAL_INDEX = NO +ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns @@ -871,7 +887,7 @@ IGNORE_PREFIX = #--------------------------------------------------------------------------- -# configuration options related to the HTML output +# Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will @@ -1131,9 +1147,11 @@ GENERATE_ECLIPSEHELP = NO -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project @@ -1237,7 +1255,7 @@ # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. @@ -1273,10 +1291,11 @@ SEARCHDATA_FILE = searchdata.xml -# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple # projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. EXTERNAL_SEARCH_ID = @@ -1290,7 +1309,7 @@ EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- -# configuration options related to the LaTeX output +# Configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will @@ -1396,7 +1415,7 @@ LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- -# configuration options related to the RTF output +# Configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output @@ -1685,7 +1704,7 @@ # this option also works with HAVE_DOT disabled, but it is recommended to # install and use dot, since it yields more powerful graphs. -CLASS_DIAGRAMS = NO +CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see
--- a/ble/Gap.h Thu Dec 10 09:15:04 2015 +0000
+++ b/ble/Gap.h Thu Dec 10 09:15:04 2015 +0000
@@ -183,14 +183,16 @@
}
/**
- * @return Minimum Advertising interval in milliseconds.
+ * @return Minimum Advertising interval in milliseconds for connectable
+ * undirected and connectable directed event types.
*/
virtual uint16_t getMinAdvertisingInterval(void) const {
return 0; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
- * @return Minimum Advertising interval in milliseconds for non-connectible mode.
+ * @return Minimum Advertising interval in milliseconds for scannable
+ * undirected and non-connectable undirected event types.
*/
virtual uint16_t getMinNonConnectableAdvertisingInterval(void) const {
return 0; /* Requesting action from porter(s): override this API if this capability is supported. */
@@ -464,11 +466,6 @@
* peripheral faster, at the expense of more power being used by the radio
* due to the higher data transmit rate.
*
- * @note: This API is now *deprecated* and will be dropped in the future.
- * You should use the parallel API from Gap directly. A former call to
- * ble.setAdvertisingInterval(...) should now be achieved using
- * ble.gap().setAdvertisingInterval(...).
- *
* @Note: [WARNING] This API previously used 0.625ms as the unit for its
* 'interval' argument. That required an explicit conversion from
* milliseconds using Gap::MSEC_TO_GAP_DURATION_UNITS(). This conversion is
--- a/ble/services/EnvironmentalService.h Thu Dec 10 09:15:04 2015 +0000
+++ b/ble/services/EnvironmentalService.h Thu Dec 10 09:15:04 2015 +0000
@@ -21,10 +21,10 @@
/**
* @class EnvironmentalService
-* @brief BLE Environmental Service. This service provides the location of the thermometer and the temperature. <br>
-* Service: https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.environmental_sensing.xml <br>
-* Temperature: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature.xml <br>
-* Humidity: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.humidity.xml <br>
+* @brief BLE Environmental Service. This service provides temperature, humidity and pressure measurement.
+* Service: https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.environmental_sensing.xml
+* Temperature: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature.xml
+* Humidity: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.humidity.xml
* Pressure: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.pressure.xml
*/
class EnvironmentalService {
--- a/ble/services/HealthThermometerService.h Thu Dec 10 09:15:04 2015 +0000
+++ b/ble/services/HealthThermometerService.h Thu Dec 10 09:15:04 2015 +0000
@@ -21,34 +21,34 @@
/**
* @class HealthThermometerService
-* @brief BLE Health Thermometer Service. This service provides the location of the thermometer and the temperature. <br>
-* Service: https://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?u=org.bluetooth.profile.health_thermometer.xml <br>
-* Temperature Measurement: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_measurement.xml <br>
+* @brief BLE Health Thermometer Service. This service provides the location of the thermometer and the temperature.
+* Service: https://developer.bluetooth.org/gatt/profiles/Pages/ProfileViewer.aspx?u=org.bluetooth.profile.health_thermometer.xml
+* Temperature Measurement: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_measurement.xml
* Temperature Type: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_type.xml
*/
class HealthThermometerService {
public:
/**
- * @enum Sensor Location
- * @brief Location of sensor on the body
+ * @enum Sensor Location.
+ * @brief Location of sensor on the body.
*/
enum SensorLocation_t {
- LOCATION_ARMPIT = 1, /*!< armpit */
- LOCATION_BODY, /*!< body */
- LOCATION_EAR, /*!< ear */
- LOCATION_FINGER, /*!< finger */
+ LOCATION_ARMPIT = 1, /*!< Armpit. */
+ LOCATION_BODY, /*!< Body. */
+ LOCATION_EAR, /*!< Ear. */
+ LOCATION_FINGER, /*!< Finger. */
LOCATION_GI_TRACT, /*!< GI tract */
- LOCATION_MOUTH, /*!< mouth */
- LOCATION_RECTUM, /*!< rectum */
- LOCATION_TOE, /*!< toe */
- LOCATION_EAR_DRUM, /*!< ear drum */
+ LOCATION_MOUTH, /*!< Mouth. */
+ LOCATION_RECTUM, /*!< Rectum. */
+ LOCATION_TOE, /*!< Toe. */
+ LOCATION_EAR_DRUM, /*!< Eardrum. */
};
public:
/**
- * @brief Add the Health Thermometer Service to an existing ble object, initialize with temperature and location.
- * @param[ref] _ble reference to the BLE device
- * @param[in] initialTemp initial value in celsius
+ * @brief Add the Health Thermometer Service to an existing BLE object, initialize with temperature and location.
+ * @param[ref] _ble Reference to the BLE device.
+ * @param[in] initialTemp Initial value in celsius.
* @param[in] _location
*/
HealthThermometerService(BLE &_ble, float initialTemp, uint8_t _location) :
@@ -64,10 +64,10 @@
}
/**
- * @brief Update the temperature being broadcast
+ * @brief Update the temperature being broadcast.
*
* @param[in] temperature
- * Floating point value of the temperature
+ * Floating point value of the temperature.
*
*/
void updateTemperature(float temperature) {
@@ -80,14 +80,14 @@
/**
* @brief Update the location.
* @param loc
- * new location value.
+ * New location value.
*/
void updateLocation(SensorLocation_t loc) {
ble.gattServer().write(tempLocation.getValueHandle(), reinterpret_cast<uint8_t *>(&loc), sizeof(uint8_t));
}
private:
- /* Private internal representation for the bytes used to work with the vaulue of the heart-rate characteristic. */
+ /* Private internal representation for the bytes used to work with the vaulue of the temperature characteristic. */
struct TemperatureValueBytes {
static const unsigned OFFSET_OF_FLAGS = 0;
static const unsigned OFFSET_OF_VALUE = OFFSET_OF_FLAGS + sizeof(uint8_t);
@@ -101,7 +101,7 @@
static const uint8_t TEMPERATURE_UNITS_FAHRENHEIT = 1;
TemperatureValueBytes(float initialTemperature) : bytes() {
- /* assumption: temperature values are expressed in Celsius */
+ /* Assumption: temperature values are expressed in celsius */
bytes[OFFSET_OF_FLAGS] = (TEMPERATURE_UNITS_CELSIUS << TEMPERATURE_UNITS_FLAG_POS) |
(false << TIMESTAMP_FLAG_POS) |
(false << TEMPERATURE_TYPE_FLAG_POS);
@@ -128,15 +128,15 @@
* @return The temperature in 11073-20601 FLOAT-Type format.
*/
uint32_t quick_ieee11073_from_float(float temperature) {
- uint8_t exponent = 0xFE; //exponent is -2
+ uint8_t exponent = 0xFE; //Exponent is -2
uint32_t mantissa = (uint32_t)(temperature * 100);
return (((uint32_t)exponent) << 24) | mantissa;
}
private:
- /* First byte = 8-bit flags, Second field is a float holding the temperature value. */
- /* See --> https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_measurement.xml */
+ /* First byte: 8-bit flags. Second field is a float holding the temperature value. */
+ /* See https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.temperature_measurement.xml */
uint8_t bytes[SIZEOF_VALUE_BYTES];
};
--- a/ble/services/HeartRateService.h Thu Dec 10 09:15:04 2015 +0000
+++ b/ble/services/HeartRateService.h Thu Dec 10 09:15:04 2015 +0000
@@ -21,35 +21,35 @@
/**
* @class HeartRateService
-* @brief BLE Service for HeartRate. This BLE Service contains the location of the sensor, the heartrate in beats per minute. <br>
-* Service: https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.heart_rate.xml <br>
-* HRM Char: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml <br>
+* @brief BLE Service for HeartRate. This BLE Service contains the location of the sensor and the heart rate in beats per minute.
+* Service: https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.heart_rate.xml
+* HRM Char: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml
* Location: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.body_sensor_location.xml
*/
class HeartRateService {
public:
/**
* @enum SensorLocation
- * @brief Location of HeartRate sensor on body.
+ * @brief Location of the heart rate sensor on body.
*/
enum {
- LOCATION_OTHER = 0, /*!< Other Location */
- LOCATION_CHEST, /*!< Chest */
- LOCATION_WRIST, /*!< Wrist */
- LOCATION_FINGER, /*!< Finger */
- LOCATION_HAND, /*!< Hand */
- LOCATION_EAR_LOBE, /*!< Earlobe */
- LOCATION_FOOT, /*!< Foot */
+ LOCATION_OTHER = 0, /*!< Other location. */
+ LOCATION_CHEST, /*!< Chest. */
+ LOCATION_WRIST, /*!< Wrist. */
+ LOCATION_FINGER, /*!< Finger. */
+ LOCATION_HAND, /*!< Hand. */
+ LOCATION_EAR_LOBE, /*!< Earlobe. */
+ LOCATION_FOOT, /*!< Foot. */
};
public:
/**
- * @brief Constructor with 8bit HRM Counter value.
+ * @brief Constructor with 8-bit HRM Counter value.
*
* @param[ref] _ble
* Reference to the underlying BLE.
* @param[in] hrmCounter (8-bit)
- * initial value for the hrm counter.
+ * Initial value for the HRM counter.
* @param[in] location
* Sensor's location.
*/
@@ -70,7 +70,7 @@
* @param[in] _ble
* Reference to the underlying BLE.
* @param[in] hrmCounter (8-bit)
- * initial value for the hrm counter.
+ * Initial value for the HRM counter.
* @param[in] location
* Sensor's location.
*/
@@ -86,10 +86,10 @@
}
/**
- * @brief Set a new 8-bit value for heart rate.
+ * @brief Set a new 8-bit value for the heart rate.
*
* @param[in] hrmCounter
- * HeartRate in bpm.
+ * Heart rate in BPM.
*/
void updateHeartRate(uint8_t hrmCounter) {
valueBytes.updateHeartRate(hrmCounter);
@@ -97,10 +97,10 @@
}
/**
- * Set a new 16-bit value for heart rate.
+ * Set a new 16-bit value for the heart rate.
*
* @param[in] hrmCounter
- * HeartRate in bpm.
+ * Heart rate in BPM.
*/
void updateHeartRate(uint16_t hrmCounter) {
valueBytes.updateHeartRate(hrmCounter);
@@ -108,8 +108,8 @@
}
/**
- * This callback allows the HeartRateService to receive updates to the
- * controlPoint Characteristic.
+ * This callback allows the heart rate service to receive updates to the
+ * controlPoint characteristic.
*
* @param[in] params
* Information about the characterisitc being updated.
@@ -118,7 +118,7 @@
if (params->handle == controlPoint.getValueAttribute().getHandle()) {
/* Do something here if the new value is 1; else you can override this method by
* extending this class.
- * @NOTE: if you are extending this class, be sure to also call
+ * @NOTE: If you are extending this class, be sure to also call
* ble.onDataWritten(this, &ExtendedHRService::onDataWritten); in
* your constructor.
*/
@@ -135,9 +135,9 @@
}
protected:
- /* Private internal representation for the bytes used to work with the vaulue of the heart-rate characteristic. */
+ /* Private internal representation for the bytes used to work with the value of the heart rate characteristic. */
struct HeartRateValueBytes {
- static const unsigned MAX_VALUE_BYTES = 3; /* FLAGS + up to two bytes for heart-rate */
+ static const unsigned MAX_VALUE_BYTES = 3; /* Flags, and up to two bytes for heart rate. */
static const unsigned FLAGS_BYTE_INDEX = 0;
static const unsigned VALUE_FORMAT_BITNUM = 0;
@@ -175,8 +175,8 @@
}
private:
- /* First byte = 8-bit values, no extra info, Second byte = uint8_t HRM value */
- /* See --> https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml */
+ /* First byte: 8-bit values, no extra info. Second byte: uint8_t HRM value */
+ /* See https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml */
uint8_t valueBytes[MAX_VALUE_BYTES];
};
--- a/module.json Thu Dec 10 09:15:04 2015 +0000
+++ b/module.json Thu Dec 10 09:15:04 2015 +0000
@@ -1,6 +1,6 @@
{
"name": "ble",
- "version": "2.1.7",
+ "version": "2.1.9",
"description": "The BLE module offers a high level abstraction for using Bluetooth Low Energy on multiple platforms.",
"keywords": [
"Bluetooth",
