High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Revision 838:e2f69ba31b02, committed 2015-11-02
- Comitter:
- rgrover1
- Date:
- Mon Nov 02 09:09:04 2015 +0000
- Parent:
- 837:66f14bc44c30
- Child:
- 839:4b121c20d616
- Commit message:
- Synchronized with git rev df088f57
Author: Vincent Coubard
Add st-ble-shield as a possible target dependency.
Changed in this revision
--- a/ble/GattCharacteristic.h Mon Nov 02 09:09:03 2015 +0000 +++ b/ble/GattCharacteristic.h Mon Nov 02 09:09:04 2015 +0000 @@ -57,7 +57,6 @@ UUID_HEART_RATE_MEASUREMENT_CHAR = 0x2A37, UUID_HID_CONTROL_POINT_CHAR = 0x2A4C, UUID_HID_INFORMATION_CHAR = 0x2A4A, - UUID_HUMIDITY_CHAR = 0x2A6F, UUID_IEEE_REGULATORY_CERTIFICATION_DATA_LIST_CHAR = 0x2A2A, UUID_INTERMEDIATE_CUFF_PRESSURE_CHAR = 0x2A36, UUID_INTERMEDIATE_TEMPERATURE_CHAR = 0x2A1E, @@ -68,7 +67,6 @@ UUID_UNREAD_ALERT_CHAR = 0x2A45, UUID_NEW_ALERT_CHAR = 0x2A46, UUID_PNP_ID_CHAR = 0x2A50, - UUID_PRESSURE_CHAR = 0x2A6D, UUID_PROTOCOL_MODE_CHAR = 0x2A4E, UUID_RECORD_ACCESS_CONTROL_POINT_CHAR = 0x2A52, UUID_REFERENCE_TIME_INFORMATION_CHAR = 0x2A14, @@ -83,7 +81,6 @@ UUID_SUPPORTED_NEW_ALERT_CATEGORY_CHAR = 0x2A47, UUID_SUPPORTED_UNREAD_ALERT_CATEGORY_CHAR = 0x2A48, UUID_SYSTEM_ID_CHAR = 0x2A23, - UUID_TEMPERATURE_CHAR = 0x2A6E, UUID_TEMPERATURE_MEASUREMENT_CHAR = 0x2A1C, UUID_TEMPERATURE_TYPE_CHAR = 0x2A1D, UUID_TIME_ACCURACY_CHAR = 0x2A12, @@ -96,7 +93,7 @@ UUID_CSC_FEATURE_CHAR = 0x2A5C, UUID_CSC_MEASUREMENT_CHAR = 0x2A5B, UUID_RSC_FEATURE_CHAR = 0x2A54, - UUID_RSC_MEASUREMENT_CHAR = 0x2A53 + UUID_RSC_MEASUREMENT_CHAR = 0x2A53, }; /**************************************************************************/
--- a/ble/GattService.h Mon Nov 02 09:09:03 2015 +0000 +++ b/ble/GattService.h Mon Nov 02 09:09:04 2015 +0000 @@ -29,7 +29,6 @@ UUID_CURRENT_TIME_SERVICE = 0x1805, UUID_CYCLING_SPEED_AND_CADENCE = 0x1816, UUID_DEVICE_INFORMATION_SERVICE = 0x180A, - UUID_ENVIRONMENTAL_SERVICE = 0x181A, UUID_GLUCOSE_SERVICE = 0x1808, UUID_HEALTH_THERMOMETER_SERVICE = 0x1809, UUID_HEART_RATE_SERVICE = 0x180D,
--- a/ble/services/EnvironmentalService.h Mon Nov 02 09:09:03 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* mbed Microcontroller Library - * Copyright (c) 2006-2013 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef __BLE_ENVIRONMENTAL_SERVICE_H__ -#define __BLE_ENVIRONMENTAL_SERVICE_H__ - -#include "ble/BLE.h" - - /** -* @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> -* Pressure: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.pressure.xml -*/ -class EnvironmentalService { -public: - /** - * @brief EnvironmentalService constructor. - * @param ble Reference to BLE device. - * @param temperature_en Enable this characteristic. - * @param humidity_en Enable this characteristic. - * @param pressure_en Enable this characteristic. - */ - EnvironmentalService(BLE &_ble, - bool temperature_en = false, - bool humidity_en = false, - bool pressure_en = false) : - ble(_ble), - temperatureCharacteristic(GattCharacteristic::UUID_TEMPERATURE_CHAR, - (uint8_t *) &temperature, - (temperature_en) ? 2 : 0, // minLength - (temperature_en) ? 2 : 0, // maxLength - GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ), - humidityCharacteristic(GattCharacteristic::UUID_HUMIDITY_CHAR, - (uint8_t *) &humidity, - (humidity_en) ? 2 : 0, // minLength - (humidity_en) ? 2 : 0, // maxLength - GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ), - pressureCharacteristic(GattCharacteristic::UUID_PRESSURE_CHAR, - (uint8_t *) &pressure, - (pressure_en) ? 4 : 0, // minLength - (pressure_en) ? 4 : 0, // maxLength - GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ) - { - static bool serviceAdded = false; /* We should only ever need to add the information service once. */ - if (serviceAdded) { - return; - } - - GattCharacteristic *charTable[] = { &humidityCharacteristic, - &pressureCharacteristic, - &temperatureCharacteristic }; - - GattService environmentalService(GattService::UUID_ENVIRONMENTAL_SERVICE, charTable, - sizeof(charTable) / sizeof(GattCharacteristic *)); - - ble.gattServer().addService(environmentalService); - serviceAdded = true; - } - - /** - * @brief Update humidity characteristic. - * @param newHumidityVal New humidity measurement. - */ - void updateHumidity(uint16_t newHumidityVal) - { - humidity = (uint32_t) (newHumidityVal*100); - ble.gattServer().write(humidityCharacteristic.getValueHandle(), (uint8_t *) &humidity, 2); - } - - /** - * @brief Update pressure characteristic. - * @param newPressureVal New pressure measurement. - */ - void updatePressure(uint32_t newPressureVal) - { - pressure = (uint32_t) (newPressureVal*10); - ble.gattServer().write(pressureCharacteristic.getValueHandle(), (uint8_t *) &pressure, 4); - } - - /** - * @brief Update temperature characteristic. - * @param newTemperatureVal New temperature measurement. - */ - void updateTemperature(float newTemperatureVal) - { - temperature = (int16_t) (newTemperatureVal*100); - ble.gattServer().write(temperatureCharacteristic.getValueHandle(), (uint8_t *) &temperature, 2); - } - -private: - BLE &ble; - - int16_t temperature; - GattCharacteristic temperatureCharacteristic; - uint16_t humidity; - GattCharacteristic humidityCharacteristic; - uint32_t pressure; - GattCharacteristic pressureCharacteristic; -}; - -#endif /* #ifndef __BLE_ENVIRONMENTAL_SERVICE_H__*/ \ No newline at end of file
--- a/ble/services/LinkLossService.h Mon Nov 02 09:09:03 2015 +0000 +++ b/ble/services/LinkLossService.h Mon Nov 02 09:09:04 2015 +0000 @@ -52,12 +52,11 @@ GattCharacteristic *charTable[] = {&alertLevelChar}; GattService linkLossService(GattService::UUID_LINK_LOSS_SERVICE, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); - ble.gattServer().addService(linkLossService); + ble.addService(linkLossService); serviceAdded = true; - ble.gap().onDisconnection(this, &LinkLossService::onDisconnectionFilter); - ble.gattServer().onDataWritten(this, &LinkLossService::onDataWritten); - + ble.addToDisconnectionCallChain(this, &LinkLossService::onDisconnectionFilter); + ble.onDataWritten(this, &LinkLossService::onDataWritten); } /** @@ -87,7 +86,7 @@ } } - void onDisconnectionFilter(const Gap::DisconnectionCallbackParams_t *params) { + void onDisconnectionFilter(void) { if (alertLevel != NO_ALERT) { callback(alertLevel); }
--- a/module.json Mon Nov 02 09:09:03 2015 +0000 +++ b/module.json Mon Nov 02 09:09:04 2015 +0000 @@ -20,6 +20,9 @@ ], "dependencies": {}, "targetDependencies": { + "st-ble-shield": { + "x-nucleo-idb0xa1": "ARMmbed/ble-x-nucleo-idb0xa1" + }, "nrf51822": { "ble-nrf51822": "~0.4.7" },