15#ifndef COMPONENTS_NIMBLEREMOTEDESCRIPTOR_H_
16#define COMPONENTS_NIMBLEREMOTEDESCRIPTOR_H_
19#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
21#include "NimBLERemoteCharacteristic.h"
34 uint8_t
readUInt8() __attribute__ ((deprecated(
"Use template readValue<uint8_t>()")));
35 uint16_t
readUInt16() __attribute__ ((deprecated(
"Use template readValue<uint16_t>()")));
36 uint32_t
readUInt32() __attribute__ ((deprecated(
"Use template readValue<uint32_t>()")));
38 bool writeValue(
const uint8_t* data,
size_t length,
bool response =
false);
39 bool writeValue(
const std::vector<uint8_t>& v,
bool response =
false);
40 bool writeValue(
const char* s,
bool response =
false);
55 typename std::enable_if<!std::is_array<T>::value && !Has_c_str_len<T>::value,
bool>::type
58 return writeValue((uint8_t*)&s,
sizeof(T), response);
71 typename std::enable_if<Has_c_str_len<T>::value,
bool>::type
74 return writeValue((uint8_t*)s.c_str(), s.length(), response);
88 if(!skipSizeCheck && value.
size() <
sizeof(T))
return T();
89 return *((T *)value.
data());
96 const struct ble_gatt_dsc *dsc);
97 static int onWriteCB(uint16_t conn_handle,
const struct ble_gatt_error *error,
98 struct ble_gatt_attr *attr,
void *arg);
99 static int onReadCB(uint16_t conn_handle,
const struct ble_gatt_error *error,
100 struct ble_gatt_attr *attr,
void *arg);
A specialized container class to hold BLE attribute values.
Definition: NimBLEAttValue.h:61
const uint8_t * data() const
Returns a pointer to the internal buffer of the value.
Definition: NimBLEAttValue.h:154
uint16_t size() const
Returns the current size of the value in bytes.
Definition: NimBLEAttValue.h:151
A model of a remote BLE characteristic.
Definition: NimBLERemoteCharacteristic.h:44
A model of remote BLE descriptor.
Definition: NimBLERemoteDescriptor.h:27
std::string toString(void)
Return a string representation of this Remote Descriptor.
Definition: NimBLERemoteDescriptor.cpp:222
bool writeValue(const uint8_t *data, size_t length, bool response=false)
Write a new value to a remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:286
uint16_t readUInt16() __attribute__((deprecated("Use template readValue<uint16_t>()")))
Read an unsigned 16 bit value.
Definition: NimBLERemoteDescriptor.cpp:98
bool writeValue(const T &s, bool response=false)
Template to set the remote descriptor value to <type>val.
Definition: NimBLERemoteDescriptor.h:57
uint32_t readUInt32() __attribute__((deprecated("Use template readValue<uint32_t>()")))
Read an unsigned 32 bit value.
Definition: NimBLERemoteDescriptor.cpp:108
NimBLERemoteCharacteristic * getRemoteCharacteristic()
Get the characteristic that owns this descriptor.
Definition: NimBLERemoteDescriptor.cpp:69
NimBLEAttValue readValue()
Read the value of the remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:117
uint8_t readUInt8() __attribute__((deprecated("Use template readValue<uint8_t>()")))
Read a byte value.
Definition: NimBLERemoteDescriptor.cpp:88
uint16_t getHandle()
Retrieve the handle associated with this remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:60
T readValue(bool skipSizeCheck=false)
Template to convert the remote descriptor data to <type>.
Definition: NimBLERemoteDescriptor.h:86
NimBLEUUID getUUID()
Retrieve the UUID associated this remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:78
A model of a BLE UUID.
Definition: NimBLEUUID.h:37