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:
9:e9d6a9758cf7
Added readme.txt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pietermaljaars 6:ed0dc0647c01 1 #ifndef __ACCELERATION_SERVICE_H__
pietermaljaars 6:ed0dc0647c01 2 #define __ACCELERATION_SERVICE_H__
pietermaljaars 6:ed0dc0647c01 3
pietermaljaars 6:ed0dc0647c01 4 #include "ble/BLE.h"
pietermaljaars 6:ed0dc0647c01 5
Pieter Maljaars 9:e9d6a9758cf7 6 #define UUID_ACCELERATION_X_CHAR "5D34E2F0-3DD2-07AC-38F2-BBAD120EF853"
Pieter Maljaars 9:e9d6a9758cf7 7 #define UUID_ACCELERATION_Y_CHAR "5D34E2F0-3DD2-07AC-38F3-BBAD120EF853"
Pieter Maljaars 9:e9d6a9758cf7 8 #define UUID_ACCELERATION_Z_CHAR "5D34E2F0-3DD2-07AC-38F4-BBAD120EF853"
pietermaljaars 6:ed0dc0647c01 9 #define UUID_ACCELERATION_SERVICE "5D34E2F0-3DD2-07AC-38F1-BBAD120EF853"
pietermaljaars 6:ed0dc0647c01 10
pietermaljaars 6:ed0dc0647c01 11 /**
pietermaljaars 6:ed0dc0647c01 12 * @class AccelerationService
pietermaljaars 6:ed0dc0647c01 13 * @brief BLE Acceleration Service. This service displays the acceleration
pietermaljaars 6:ed0dc0647c01 14 */
pietermaljaars 6:ed0dc0647c01 15 class AccelerationService {
pietermaljaars 6:ed0dc0647c01 16 public:
pietermaljaars 6:ed0dc0647c01 17 /**
pietermaljaars 6:ed0dc0647c01 18 * @param[in] _ble
pietermaljaars 6:ed0dc0647c01 19 * BLE object for the underlying controller.
pietermaljaars 6:ed0dc0647c01 20 */
pietermaljaars 6:ed0dc0647c01 21 AccelerationService(BLE &_ble) :
pietermaljaars 6:ed0dc0647c01 22 ble(_ble),
pietermaljaars 6:ed0dc0647c01 23 accelerationIndex(0),
Pieter Maljaars 9:e9d6a9758cf7 24 accelerationXCharacteristic(UUID(UUID_ACCELERATION_X_CHAR), &temp, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
Pieter Maljaars 9:e9d6a9758cf7 25 accelerationYCharacteristic(UUID(UUID_ACCELERATION_Y_CHAR), &temp, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY),
Pieter Maljaars 9:e9d6a9758cf7 26 accelerationZCharacteristic(UUID(UUID_ACCELERATION_Z_CHAR), &temp, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY) {
pietermaljaars 6:ed0dc0647c01 27
Pieter Maljaars 9:e9d6a9758cf7 28 GattCharacteristic *charTable[] = {&accelerationXCharacteristic, &accelerationYCharacteristic, &accelerationZCharacteristic};
pietermaljaars 6:ed0dc0647c01 29 GattService AccelerationService(UUID(UUID_ACCELERATION_SERVICE), charTable, sizeof(charTable) / sizeof(GattCharacteristic *));
pietermaljaars 6:ed0dc0647c01 30
pietermaljaars 6:ed0dc0647c01 31 ble.addService(AccelerationService);
pietermaljaars 6:ed0dc0647c01 32 }
pietermaljaars 6:ed0dc0647c01 33
pietermaljaars 6:ed0dc0647c01 34 /**
pietermaljaars 6:ed0dc0647c01 35 * @brief Update the temperature with a new value. Valid values lie between -2732 and above.
pietermaljaars 6:ed0dc0647c01 36 *
pietermaljaars 6:ed0dc0647c01 37 * @param newTemp
pietermaljaars 6:ed0dc0647c01 38 * Update to temperature.
pietermaljaars 6:ed0dc0647c01 39 */
pietermaljaars 6:ed0dc0647c01 40 void addAcceleration(int16_t *newAccel) {
Pieter Maljaars 9:e9d6a9758cf7 41 temp = newAccel[0];
Pieter Maljaars 9:e9d6a9758cf7 42 ble.gattServer().write(accelerationXCharacteristic.getValueHandle(), (const uint8_t*)&temp, sizeof(temp));
Pieter Maljaars 9:e9d6a9758cf7 43 temp = newAccel[1];
Pieter Maljaars 9:e9d6a9758cf7 44 ble.gattServer().write(accelerationYCharacteristic.getValueHandle(), (const uint8_t*)&temp, sizeof(temp));
Pieter Maljaars 9:e9d6a9758cf7 45 temp = newAccel[2];
Pieter Maljaars 9:e9d6a9758cf7 46 ble.gattServer().write(accelerationZCharacteristic.getValueHandle(), (const uint8_t*)&temp, sizeof(temp));
pietermaljaars 6:ed0dc0647c01 47 }
pietermaljaars 6:ed0dc0647c01 48
Pieter Maljaars 8:d1f5c8801d59 49
pietermaljaars 6:ed0dc0647c01 50 protected:
pietermaljaars 6:ed0dc0647c01 51 /**
pietermaljaars 6:ed0dc0647c01 52 * A reference to the underlying BLE instance that this object is attached to.
pietermaljaars 6:ed0dc0647c01 53 * The services and characteristics will be registered in this BLE instance.
pietermaljaars 6:ed0dc0647c01 54 */
pietermaljaars 6:ed0dc0647c01 55 BLE &ble;
pietermaljaars 6:ed0dc0647c01 56
pietermaljaars 6:ed0dc0647c01 57 /**
pietermaljaars 6:ed0dc0647c01 58 * The current temperature represented as 0.1 degrees Celsius.
pietermaljaars 6:ed0dc0647c01 59 */
pietermaljaars 6:ed0dc0647c01 60 //int16_t acceleration[30][3];
pietermaljaars 6:ed0dc0647c01 61 int16_t temp;
pietermaljaars 6:ed0dc0647c01 62
pietermaljaars 6:ed0dc0647c01 63 uint16_t accelerationIndex;
pietermaljaars 6:ed0dc0647c01 64 /**
pietermaljaars 6:ed0dc0647c01 65 * A ReadOnlyGattCharacteristic that allows access to the peer device to the
pietermaljaars 6:ed0dc0647c01 66 * temperature value through BLE.
pietermaljaars 6:ed0dc0647c01 67 */
Pieter Maljaars 9:e9d6a9758cf7 68 ReadOnlyGattCharacteristic<int16_t> accelerationXCharacteristic;
Pieter Maljaars 9:e9d6a9758cf7 69 ReadOnlyGattCharacteristic<int16_t> accelerationYCharacteristic;
Pieter Maljaars 9:e9d6a9758cf7 70 ReadOnlyGattCharacteristic<int16_t> accelerationZCharacteristic;
pietermaljaars 6:ed0dc0647c01 71 };
pietermaljaars 6:ed0dc0647c01 72
Pieter Maljaars 8:d1f5c8801d59 73 #endif /* #ifndef __ACCELERATION_SERVICE_H__*/