diff options
author | kolban <kolban1@kolban.com> | 2017-09-10 13:41:31 -0500 |
---|---|---|
committer | kolban <kolban1@kolban.com> | 2017-09-10 13:41:31 -0500 |
commit | 0eecee13a75bf13fd1752d3d9b6bc60709a265d2 (patch) | |
tree | 7d1492d47841ffa8b103cc9e111772af77b35481 /src/BLE2902.cpp | |
parent | 0.1.0 release (diff) | |
download | thermostat-0eecee13a75bf13fd1752d3d9b6bc60709a265d2.tar.gz thermostat-0eecee13a75bf13fd1752d3d9b6bc60709a265d2.tar.bz2 thermostat-0eecee13a75bf13fd1752d3d9b6bc60709a265d2.zip |
0.2.0
Diffstat (limited to 'src/BLE2902.cpp')
-rw-r--r-- | src/BLE2902.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/BLE2902.cpp b/src/BLE2902.cpp new file mode 100644 index 0000000..8984da8 --- /dev/null +++ b/src/BLE2902.cpp @@ -0,0 +1,69 @@ +/* + * BLE2902.cpp + * + * Created on: Jun 25, 2017 + * Author: kolban + */ + +/* + * See also: + * https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.client_characteristic_configuration.xml + */ +#include "sdkconfig.h" +#if defined(CONFIG_BT_ENABLED) + +#include "BLE2902.h" + +BLE2902::BLE2902() : BLEDescriptor(BLEUUID((uint16_t) 0x2902)) { + uint8_t data[2] = {0,0}; + setValue(data, 2); +} // BLE2902 + + +/** + * @brief Get the notifications value. + * @return The notifications value. True if notifications are enabled and false if not. + */ +bool BLE2902::getNotifications() { + return (getValue()[0] & (1 << 0)) != 0; +} // getNotifications + + +/** + * @brief Get the indications value. + * @return The indications value. True if indications are enabled and false if not. + */ +bool BLE2902::getIndications() { + return (getValue()[0] & (1 << 1)) != 0; +} // getIndications + + +/** + * @brief Set the indications flag. + * @param [in] flag The indications flag. + */ +void BLE2902::setIndications(bool flag) { + uint8_t *pValue = getValue(); + if (flag) { + pValue[0] |= 1<<1; + } else { + pValue[0] &= ~(1<<1); + } +} // setIndications + + +/** + * @brief Set the notifications flag. + * @param [in] flag The notifications flag. + */ +void BLE2902::setNotifications(bool flag) { + uint8_t *pValue = getValue(); + if (flag) { + pValue[0] |= 1<<0; + } else { + pValue[0] &= ~(1<<0); + } +} // setNotifications + + +#endif |