Pull request for i.a. sensor buffer template

Dependencies:   BLE_API MPU6050 mbed nRF51822

Committer:
JustinAtAlten
Date:
Thu Nov 15 15:20:46 2018 +0000
Revision:
11:8c38e284e9f7
Parent:
6:ed0dc0647c01
Added readme.txt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pietermaljaars 5:614164945894 1 #ifndef __TEMPERATURE_SERVICE_H__
pietermaljaars 5:614164945894 2 #define __TEMPERATURE_SERVICE_H__
pietermaljaars 5:614164945894 3
pietermaljaars 5:614164945894 4 #include "ble/BLE.h"
pietermaljaars 5:614164945894 5
pietermaljaars 5:614164945894 6 #define UUID_TEMPERATURE_CELSIUS_CHAR 0x2A1F
pietermaljaars 5:614164945894 7 #define UUID_TEMPERATURE_SERVICE "5D34E2F0-3DD2-07AC-38F1-BBAD120EF852"
pietermaljaars 5:614164945894 8
pietermaljaars 5:614164945894 9
pietermaljaars 5:614164945894 10 /**
pietermaljaars 5:614164945894 11 * @class TemperatureService
pietermaljaars 5:614164945894 12 * @brief BLE Temperature Service. This service displays the temperature, represented as an 16bit number.
pietermaljaars 5:614164945894 13 */
pietermaljaars 5:614164945894 14 class TemperatureService {
pietermaljaars 5:614164945894 15 public:
pietermaljaars 5:614164945894 16 /**
pietermaljaars 5:614164945894 17 * @param[in] _ble
pietermaljaars 5:614164945894 18 * BLE object for the underlying controller.
pietermaljaars 5:614164945894 19 * @param[in] temperature
pietermaljaars 5:614164945894 20 * 16bit temperature in 0.1 degrees Celsius
pietermaljaars 5:614164945894 21 */
pietermaljaars 5:614164945894 22 TemperatureService(BLE &_ble, int16_t temperature = 200) :
pietermaljaars 5:614164945894 23 ble(_ble),
pietermaljaars 5:614164945894 24 temperature(temperature),
pietermaljaars 5:614164945894 25 temperatureCharacteristic(UUID_TEMPERATURE_CELSIUS_CHAR, &temperature, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY) {
pietermaljaars 5:614164945894 26
pietermaljaars 5:614164945894 27 GattCharacteristic *charTable[] = {&temperatureCharacteristic};
pietermaljaars 5:614164945894 28 GattService TemperatureService(UUID(UUID_TEMPERATURE_SERVICE), charTable, sizeof(charTable) / sizeof(GattCharacteristic *));
pietermaljaars 5:614164945894 29
pietermaljaars 5:614164945894 30 ble.addService(TemperatureService);
pietermaljaars 5:614164945894 31 }
pietermaljaars 5:614164945894 32
pietermaljaars 5:614164945894 33 /**
pietermaljaars 5:614164945894 34 * @brief Update the temperature with a new value. Valid values lie between -2732 and above.
pietermaljaars 5:614164945894 35 *
pietermaljaars 5:614164945894 36 * @param newTemp
pietermaljaars 5:614164945894 37 * Update to temperature.
pietermaljaars 5:614164945894 38 */
pietermaljaars 5:614164945894 39 void updateTemperature(int16_t newTemp) {
pietermaljaars 5:614164945894 40 temperature = newTemp;
pietermaljaars 5:614164945894 41 uint16_t temp = (uint16_t)temperature;
pietermaljaars 5:614164945894 42 ble.gattServer().write(temperatureCharacteristic.getValueHandle(), (const uint8_t*)&temp, sizeof(temperature));
pietermaljaars 5:614164945894 43 }
pietermaljaars 5:614164945894 44
pietermaljaars 5:614164945894 45 protected:
pietermaljaars 5:614164945894 46 /**
pietermaljaars 5:614164945894 47 * A reference to the underlying BLE instance that this object is attached to.
pietermaljaars 5:614164945894 48 * The services and characteristics will be registered in this BLE instance.
pietermaljaars 5:614164945894 49 */
pietermaljaars 5:614164945894 50 BLE &ble;
pietermaljaars 5:614164945894 51
pietermaljaars 5:614164945894 52 /**
pietermaljaars 5:614164945894 53 * The current temperature represented as 0.1 degrees Celsius.
pietermaljaars 5:614164945894 54 */
pietermaljaars 5:614164945894 55 int16_t temperature;
pietermaljaars 5:614164945894 56 /**
pietermaljaars 5:614164945894 57 * A ReadOnlyGattCharacteristic that allows access to the peer device to the
pietermaljaars 5:614164945894 58 * temperature value through BLE.
pietermaljaars 5:614164945894 59 */
pietermaljaars 5:614164945894 60 ReadOnlyGattCharacteristic<int16_t> temperatureCharacteristic;
pietermaljaars 5:614164945894 61 };
pietermaljaars 5:614164945894 62
pietermaljaars 5:614164945894 63 #endif /* #ifndef __TEMPERATURE_SERVICE_H__*/