Workings and tests to create custom GATT services, for use as part of peripheral communication in cars
Dependencies: BLE_API mbed nRF51822
BroadcasterService.h
- Committer:
- alexanderlea
- Date:
- 2015-02-24
- Revision:
- 7:5c983cf3c352
- Parent:
- 4:ac0ee88ea0ed
- Child:
- 8:3376f79e7d50
File content as of revision 7:5c983cf3c352:
#ifndef __BLE_BROADCASTER_SERVICE_H__ #define __BLE_BROADCASTER_SERVICE_H__ #include "BLEDevice.h" /** * @class BroadcasterService * @brief Based heavily on the BLE Battery Service, the aim is to send key, pair values <br> */ class BroadcasterService { public: /** * @param[ref] _ble * * @param[in] */ BroadcasterService(BLEDevice &_ble, uint8_t _command) : ble(_ble), command(_command), broadcasterCharacteristic(0x2A67, &command, sizeof(command), sizeof(command), GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | // GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY) { static bool serviceAdded = false; /* We should only ever need to add the service once. */ if (serviceAdded) { return; } GattCharacteristic *charTable[] = {&broadcasterCharacteristic}; GattService broadcasterService(0x1817, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); ble.addService(broadcasterService); serviceAdded = true; } /** * @brief * * @param */ void sendCommand(uint8_t _newCommand) { command = _newCommand; ble.updateCharacteristicValue(broadcasterCharacteristic.getValueAttribute().getHandle(), &command, 1); } private: BLEDevice &ble; uint8_t command; GattCharacteristic broadcasterCharacteristic; }; #endif