summaryrefslogtreecommitdiff
path: root/ESP32_BLE_Arduino/src/BLE2902.cpp
diff options
context:
space:
mode:
authorkolban <kolban1@kolban.com>2017-09-10 13:36:10 -0500
committerkolban <kolban1@kolban.com>2017-09-10 13:36:10 -0500
commit5e5b5b78f0aeca611edb52ff4e885334b6fe46a9 (patch)
tree8d207806891e66ee6ea292d82eb7f120e2138418 /ESP32_BLE_Arduino/src/BLE2902.cpp
downloadthermostat-5e5b5b78f0aeca611edb52ff4e885334b6fe46a9.tar.gz
thermostat-5e5b5b78f0aeca611edb52ff4e885334b6fe46a9.tar.bz2
thermostat-5e5b5b78f0aeca611edb52ff4e885334b6fe46a9.zip
0.1.0 release
Diffstat (limited to 'ESP32_BLE_Arduino/src/BLE2902.cpp')
-rw-r--r--ESP32_BLE_Arduino/src/BLE2902.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/ESP32_BLE_Arduino/src/BLE2902.cpp b/ESP32_BLE_Arduino/src/BLE2902.cpp
new file mode 100644
index 0000000..8984da8
--- /dev/null
+++ b/ESP32_BLE_Arduino/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