65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
/*
|
|
* 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_BLUEDROID_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);
|
|
setValue(pValue, 2);
|
|
} // 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);
|
|
setValue(pValue, 2);
|
|
} // setNotifications
|
|
|
|
#endif
|