LEDをON(文字列'a'を送る)OFF(文字列'b'を送る)できるMSC
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_SimpleChat by
Diff: Services/TxPower.h
- Revision:
- 5:35728098eeae
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Services/TxPower.h Thu Dec 08 10:57:15 2016 +0000 @@ -0,0 +1,60 @@ +#ifndef TX_POWER_H +#define TX_POWER_H +#include "ble/BLE.h" + +//#include "BLEDevice.h" + +/** +* @class Tx power service +* @brief Tx power Service. This service exposes a device’s current transmit power level when in a connection (-100dbm to +20). +* Service: https://developer.bluetooth.org/gatt/services/Pages/ServiceViewer.aspx?u=org.bluetooth.service.tx_power.xml +* Tx power Char: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.tx_power_level.xml +*/ +class TxPowerService +{ + +public: + /** + * @param[ref] _ble + * BLEDevice object for the underlying controller. + * @param[in] TxValue + * signed 8bit Transmit power. + */ + + // TxPowerChar(GattCharacteristic::UUID_TX_POWER_LEVEL_CHAR, (uint8_t*)&TxPower, sizeof(TxPower), sizeof(TxPower), +// GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ) { + + TxPowerService(BLE &_ble, int8_t TxValue): + ble(_ble), + TxPower(TxValue), + TxPowerChar(GattCharacteristic::UUID_TX_POWER_LEVEL_CHAR, &TxPower, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ) { + GattCharacteristic *charTable[] = {&TxPowerChar}; + GattService TxPowerService(GattService::UUID_TX_POWER_SERVICE, charTable, sizeof(charTable) / sizeof(GattCharacteristic *)); + + ble.addService(TxPowerService); + } + + /** + * @brief Update the Tx power with a new value. with a valid range from -100dbm to +20dbm according to the service Char. + * + * @param newTxPower + * update the Tx power with the new value. + */ + void updateTxPower(int8_t newTxPower) { + + if(newTxPower >= -100 && newTxPower <= 20) { + + TxPower = newTxPower; + ble.updateCharacteristicValue (TxPowerChar.getValueAttribute().getHandle(), (uint8_t*)&TxPower, 1); + //ble.updateCharacteristicValue (TxPowerChar.getValueHandle(), (uint8_t*)&TxPower, 1); + //ble.gattServer().write(TxPowerChar.getValueHandle(), &TxPower, 1); + } + } + +private: + BLE &ble; + int8_t TxPower; + ReadOnlyGattCharacteristic<int8_t> TxPowerChar; +}; + +#endif \ No newline at end of file