Helper class that represents a readable and writable GattCharacteristic. More...
#include <GattCharacteristic.h>
Public Types | |
typedef ble::att_security_requirement_t | SecurityRequirement_t |
Security level applied to GATT operations. More... | |
Public Member Functions | |
ReadWriteGattCharacteristic (const UUID &uuid, T *valuePtr, uint8_t additionalProperties=BLE_GATT_CHAR_PROPERTIES_NONE, GattAttribute *descriptors[]=nullptr, unsigned numDescriptors=0) | |
Construct a ReadWriteGattCharacteristic. More... | |
void | setSecurityRequirements (SecurityRequirement_t read_security, SecurityRequirement_t write_security, SecurityRequirement_t update_security) |
Set all security requirements of the characteristic. More... | |
void | setReadSecurityRequirement (SecurityRequirement_t security) |
Set the security of the read operation. More... | |
SecurityRequirement_t | getReadSecurityRequirement () const |
Get the security requirement of the read operation. More... | |
void | setWriteSecurityRequirement (SecurityRequirement_t security) |
Set the security requirement of the write operations. More... | |
SecurityRequirement_t | getWriteSecurityRequirement () const |
Get the security requirement of write operations. More... | |
void | setUpdateSecurityRequirement (SecurityRequirement_t security) |
Set the security requirement of update operations. More... | |
SecurityRequirement_t | getUpdateSecurityRequirement () const |
Get the security requirement of update operations. More... | |
void | setWriteAuthorizationCallback (void(*callback)(GattWriteAuthCallbackParams *)) |
Register a callback handling client's write requests or commands. More... | |
template<typename T > | |
void | setWriteAuthorizationCallback (T *object, void(T::*member)(GattWriteAuthCallbackParams *)) |
Register a callback handling client's write requests or commands. More... | |
const FunctionPointerWithContext< GattWriteAuthCallbackParams * > & | getWriteAuthorizationCallback () const |
Return the callback registered to handle client's write. More... | |
void | setReadAuthorizationCallback (void(*callback)(GattReadAuthCallbackParams *)) |
Register the read requests event handler. More... | |
template<typename T > | |
void | setReadAuthorizationCallback (T *object, void(T::*member)(GattReadAuthCallbackParams *)) |
Register the read requests event handler. More... | |
const FunctionPointerWithContext< GattReadAuthCallbackParams * > & | getReadAuthorizationCallback () const |
Return the callback registered to handle client's read. More... | |
GattAuthCallbackReply_t | authorizeWrite (GattWriteAuthCallbackParams *params) |
Invoke the write authorization callback. More... | |
GattAuthCallbackReply_t | authorizeRead (GattReadAuthCallbackParams *params) |
Invoke the read authorization callback. More... | |
GattAttribute & | getValueAttribute () |
Get the characteristic's value attribute. More... | |
const GattAttribute & | getValueAttribute () const |
Get the characteristic's value attribute. More... | |
GattAttribute::Handle_t | getValueHandle () const |
Get the characteristic's value attribute handle in the ATT table. More... | |
uint8_t | getProperties () const |
Get the characteristic's properties. More... | |
uint8_t | getDescriptorCount () const |
Get the total number of descriptors within this characteristic. More... | |
bool | isReadAuthorizationEnabled () const |
Check whether read authorization is enabled. More... | |
bool | isWriteAuthorizationEnabled () const |
Check whether write authorization is enabled. More... | |
GattAttribute * | getDescriptor (uint8_t index) |
Get this characteristic's descriptor at a specific index. More... | |
Static Public Member Functions | |
static bool | isWritable (uint8_t properties) |
Indicates if the properties has at least one of the writable flags. More... | |
static bool | isReadable (uint8_t properties) |
Indicates if the properties is readable. More... | |
Helper class that represents a readable and writable GattCharacteristic.
Definition at line 1972 of file gatt/GattCharacteristic.h.
|
inherited |
Security level applied to GATT operations.
Definition at line 1374 of file gatt/GattCharacteristic.h.
|
inherited |
Enumerator | |
---|---|
UUID_BATTERY_LEVEL_STATE_CHAR |
Not used in actual BLE service. |
UUID_BATTERY_POWER_STATE_CHAR |
Not used in actual BLE service. |
UUID_REMOVABLE_CHAR |
Not used in actual BLE service. |
UUID_SERVICE_REQUIRED_CHAR |
Not used in actual BLE service. |
UUID_ALERT_CATEGORY_ID_CHAR |
Not used as a characteristic UUID. |
UUID_ALERT_CATEGORY_ID_BIT_MASK_CHAR |
Not used as a characteristic UUID. |
UUID_ALERT_LEVEL_CHAR |
Control point of the Immediate Alert service that allows the client to command the server to alert to a given level. |
UUID_ALERT_NOTIFICATION_CONTROL_POINT_CHAR |
Control point of the Alert Notification service that allows the client finely tune the notification configuration. |
UUID_ALERT_STATUS_CHAR |
Part of the Alert Notification service, which exposes the count of unread alert events existing in the server. |
UUID_BATTERY_LEVEL_CHAR |
Characteristic of the Battery service, which exposes the current battery level as a percentage. |
UUID_BLOOD_PRESSURE_FEATURE_CHAR |
Describe the features supported by the blood pressure sensor exposed by the Blood Pressure service. |
UUID_BLOOD_PRESSURE_MEASUREMENT_CHAR |
Characteristic of the Blood Pressure service that exposes the measurement of the blood sensor. |
UUID_BODY_SENSOR_LOCATION_CHAR |
Characteristic of the Heart Rate service that indicate the intended location of the heart rate monitor. |
UUID_BOOT_KEYBOARD_INPUT_REPORT_CHAR |
Part of the Human Interface Device service. |
UUID_BOOT_KEYBOARD_OUTPUT_REPORT_CHAR |
Part of the Human Interface Device service. |
UUID_BOOT_MOUSE_INPUT_REPORT_CHAR |
Part of the Human Interface Device service. |
UUID_CURRENT_TIME_CHAR |
Characteristic of the Current Time service that contains the current time. |
UUID_DATE_TIME_CHAR |
Not used in a service as a characteristic. |
UUID_DAY_DATE_TIME_CHAR |
Not used in a service as a characteristic. |
UUID_DAY_OF_WEEK_CHAR |
Not used in a service as a characteristic. |
UUID_DST_OFFSET_CHAR |
Not used in a service as a characteristic. |
UUID_EXACT_TIME_256_CHAR |
Not used in a service as a characteristic. |
UUID_FIRMWARE_REVISION_STRING_CHAR |
Characteristic of the Device Information Service that contains a UTF8 string representing the firmware revision for the firmware within the device. |
UUID_GLUCOSE_FEATURE_CHAR |
Characteristic of the Glucose service that exposes features supported by the server. |
UUID_GLUCOSE_MEASUREMENT_CHAR |
Characteristic of the Glucose service that exposes glucose measurements. |
UUID_GLUCOSE_MEASUREMENT_CONTEXT_CHAR |
Characteristic of the Glucose service that sends additional information related to the glucose measurements. |
UUID_HARDWARE_REVISION_STRING_CHAR |
Characteristic of the Device Information Service that contains a UTF8 string representing the hardware revision of the device. |
UUID_HEART_RATE_CONTROL_POINT_CHAR |
Characteristic of the Heart Rate service used by the client to control the service behavior. |
UUID_HEART_RATE_MEASUREMENT_CHAR |
Characteristic of the Heart Rate that sends heart rate measurements to registered clients. |
UUID_HID_CONTROL_POINT_CHAR |
Part of the Human Interface Device service. |
UUID_HID_INFORMATION_CHAR |
Part of the Human Interface Device service. |
UUID_HUMIDITY_CHAR |
Characteristic of the Environmental Sensing service, which exposes humidity measurements. |
UUID_IEEE_REGULATORY_CERTIFICATION_DATA_LIST_CHAR |
Characteristic of the Device Information Service, which exposes various regulatory or certification compliance items to which the device claims adherence. |
UUID_INTERMEDIATE_CUFF_PRESSURE_CHAR |
Characteristic of the Blood Pressure service, which exposes intermediate cuff pressure measurements. |
UUID_INTERMEDIATE_TEMPERATURE_CHAR |
Characteristic of the Health Thermometer service that sends intermediate temperature values while the measurement is in progress. |
UUID_LOCAL_TIME_INFORMATION_CHAR |
Characteristic of the current Time service that exposes information about the local time. |
UUID_MANUFACTURER_NAME_STRING_CHAR |
Characteristic of the Device Information Service that contains a UTF8 string representing the manufacturer name of the device. |
UUID_MEASUREMENT_INTERVAL_CHAR |
Characteristic of the Health Thermometer service that exposes the interval time between two measurements. |
UUID_MODEL_NUMBER_STRING_CHAR |
Characteristic of the Device Information Service that contains a UTF8 string representing the model number of the device assigned by the vendor. |
UUID_UNREAD_ALERT_CHAR |
Characteristic of the Alert Notification Service that shows how many numbers of unread alerts exist in the specific category in the device. |
UUID_NEW_ALERT_CHAR |
Characteristic of the Alert Notification Service that defines the category of the alert and how many new alerts of that category have occurred in the server. |
UUID_PNP_ID_CHAR |
Characteristic of the Device Information Service; it is a set of values used to create a device ID that is unique for this device. |
UUID_PRESSURE_CHAR |
Characteristic of the Environmental Sensing Service that exposes the pressure measured. |
UUID_PROTOCOL_MODE_CHAR |
Part of the Human Interface Device service. |
UUID_RECORD_ACCESS_CONTROL_POINT_CHAR |
Pulse Oxymeter, Glucose and Continuous Glucose Monitoring services use this control point to provide basic management of the patient record database. |
UUID_REFERENCE_TIME_INFORMATION_CHAR |
Characteristic of the Current Time service that exposes information related to the current time served (accuracy, source, hours since update and so on). |
UUID_REPORT_CHAR |
Part of the Human Interface Device service. |
UUID_REPORT_MAP_CHAR |
Part of the Human Interface Device service. |
UUID_RINGER_CONTROL_POINT_CHAR |
Characteristic of the Phone Alert Status service that allows a client to configure operating mode. |
UUID_RINGER_SETTING_CHAR |
Characteristic of the Phone Alert Status service that returns the ringer setting when read. |
UUID_SCAN_INTERVAL_WINDOW_CHAR |
Characteristic of the Scan Parameter service that stores the client's scan parameters (scan interval and scan window). |
UUID_SCAN_REFRESH_CHAR |
Characteristic of the Scan Parameter service that sends a notification to a client when the server requires its latest scan parameters. |
UUID_SERIAL_NUMBER_STRING_CHAR |
Characteristic of the Device Information Service that contains a UTF8 string representing the serial number of the device. |
UUID_SOFTWARE_REVISION_STRING_CHAR |
Characteristic of the Device Information Service that contains an UTF8 string representing the software revision of the device. |
UUID_SUPPORTED_NEW_ALERT_CATEGORY_CHAR |
Characteristic of the Alert Notification Service that notifies the count of new alerts for a given category to a subscribed client. |
UUID_SUPPORTED_UNREAD_ALERT_CATEGORY_CHAR |
Characteristic of the Alert Notification service, which exposes categories of unread alert supported by the server. |
UUID_SYSTEM_ID_CHAR |
Characteristic of the Device Information Service that exposes a structure containing an Organizationally Unique Identifier (OUI) followed by a manufacturer-defined identifier. The value of the structure is unique for each individual instance of the product. |
UUID_TEMPERATURE_CHAR |
Characteristic of the Environmental Sensing service that exposes the temperature measurement with a resolution of 0.01 degree Celsius. |
UUID_TEMPERATURE_MEASUREMENT_CHAR |
Characteristic of the Health Thermometer service that sends temperature measurement to clients. |
UUID_TEMPERATURE_TYPE_CHAR |
Characteristic of the Health Thermometer service that describes where the measurement takes place. |
UUID_TIME_ACCURACY_CHAR |
Not used in a service as a characteristic. |
UUID_TIME_SOURCE_CHAR |
Not used in a service as a characteristic. |
UUID_TIME_UPDATE_CONTROL_POINT_CHAR |
Characteristic of the Reference Time service that allows clients to control time update. |
UUID_TIME_UPDATE_STATE_CHAR |
Characteristic of the Reference Time service that informs clients of the status of the time update operation. |
UUID_TIME_WITH_DST_CHAR |
Characteristic of the Next DST Change service that returns to clients the time with DST. |
UUID_TIME_ZONE_CHAR |
Not used in a service as a characteristic. |
UUID_TX_POWER_LEVEL_CHAR |
Characteristic of the TX Power service that exposes the current transmission power in dBm. |
UUID_CSC_FEATURE_CHAR |
Characteristic of the Cycling Speed and Cadence (CSC) service that exposes features supported by the server. |
UUID_CSC_MEASUREMENT_CHAR |
Characteristic of the Cycling Speed and Cadence (CSC) service that exposes measurements made by the server. |
UUID_RSC_FEATURE_CHAR |
Characteristic of the Running Speed and Cadence (RSC) service that exposes features supported by the server. |
UUID_RSC_MEASUREMENT_CHAR |
Characteristic of the Running Speed and Cadence (RSC) service that exposes measurements made by the server. |
Definition at line 111 of file gatt/GattCharacteristic.h.
|
inherited |
Unit type of a characteristic value.
These unit types are used to describe what the raw numeric data in a characteristic actually represents. A server can expose that information to its clients by adding a Characteristic Presentation Format descriptor to relevant characteristics.
Definition at line 535 of file gatt/GattCharacteristic.h.
|
inherited |
Presentation format of a characteristic.
It determines how the value of a characteristic is formatted. A server can expose that information to its clients by adding a Characteristic Presentation Format descriptor to relevant characteristics.
Definition at line 1092 of file gatt/GattCharacteristic.h.
|
inherited |
Characteristic properties.
It is a bitfield that determines how a characteristic value can be used.
Definition at line 1242 of file gatt/GattCharacteristic.h.
ReadWriteGattCharacteristic | ( | const UUID & | uuid, |
T * | valuePtr, | ||
uint8_t | additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE , |
||
GattAttribute * | descriptors[] = nullptr , |
||
unsigned | numDescriptors = 0 |
||
) |
Construct a ReadWriteGattCharacteristic.
[in] | uuid | The characteristic's UUID. |
[in] | valuePtr | Pointer to the characteristic's initial value. The pointer is reinterpreted as a pointer to an uint8_t buffer. |
[in] | additionalProperties | Additional characteristic properties. By default, the properties are set to Properties_t::BLE_GATT_CHAR_PROPERTIES_WRITE and Properties_t::BLE_GATT_CHAR_PROPERTIES_READ. |
[in] | descriptors | An array of pointers to descriptors to be added to the new characteristic. |
[in] | numDescriptors | The total number of descriptors in descriptors . |
Definition at line 1992 of file gatt/GattCharacteristic.h.
|
inherited |
Invoke the read authorization callback.
This function is a helper that calls the registered read handler to determine the authorization reply for a read request.
[in] | params | Context of the read-auth request; it contains an out-parameter used as a reply and the handler can fill it with outgoing data. |
Definition at line 1689 of file gatt/GattCharacteristic.h.
|
inherited |
Invoke the write authorization callback.
This function is a helper that calls the registered write handler to determine the authorization reply for a write request.
[in] | params | Context of the write-auth request; it contains an out-parameter used as a reply. |
Definition at line 1655 of file gatt/GattCharacteristic.h.
|
inherited |
Get this characteristic's descriptor at a specific index.
[in] | index | The index of the descriptor to get. |
index
is within the range of the descriptor array or nullptr otherwise.Definition at line 1795 of file gatt/GattCharacteristic.h.
|
inherited |
Get the total number of descriptors within this characteristic.
Definition at line 1752 of file gatt/GattCharacteristic.h.
|
inherited |
Get the characteristic's properties.
Definition at line 1742 of file gatt/GattCharacteristic.h.
|
inherited |
Return the callback registered to handle client's read.
Definition at line 1636 of file gatt/GattCharacteristic.h.
|
inherited |
Get the security requirement of the read operation.
Definition at line 1481 of file gatt/GattCharacteristic.h.
|
inherited |
Get the security requirement of update operations.
Definition at line 1541 of file gatt/GattCharacteristic.h.
|
inherited |
Get the characteristic's value attribute.
Definition at line 1707 of file gatt/GattCharacteristic.h.
|
inherited |
Get the characteristic's value attribute.
Definition at line 1717 of file gatt/GattCharacteristic.h.
|
inherited |
Get the characteristic's value attribute handle in the ATT table.
Definition at line 1730 of file gatt/GattCharacteristic.h.
|
inherited |
Return the callback registered to handle client's write.
Definition at line 1588 of file gatt/GattCharacteristic.h.
|
inherited |
Get the security requirement of write operations.
Definition at line 1513 of file gatt/GattCharacteristic.h.
|
staticinherited |
Indicates if the properties is readable.
[in] | properties | The properties to inspect. |
Definition at line 1317 of file gatt/GattCharacteristic.h.
|
inherited |
Check whether read authorization is enabled.
Read authorization is enabled when a read authorization event handler is set up.
Definition at line 1765 of file gatt/GattCharacteristic.h.
|
staticinherited |
Indicates if the properties has at least one of the writable flags.
[in] | properties | The properties to inspect. |
Definition at line 1299 of file gatt/GattCharacteristic.h.
|
inherited |
Check whether write authorization is enabled.
Write authorization is enabled when a write authorization event handler is set up.
Definition at line 1778 of file gatt/GattCharacteristic.h.
|
inherited |
Register the read requests event handler.
The callback registered is invoked when the client attempts to read the characteristic value; the event handler can accept or reject the read request with the appropriate error code. It can also set specific outgoing data.
[in] | callback | Event handler being registered. |
Definition at line 1603 of file gatt/GattCharacteristic.h.
|
inherited |
Register the read requests event handler.
The callback registered is invoked when the client attempts to read the characteristic value; the event handler can accept or reject the read request with the appropriate error code. It can also set specific outgoing data.
[in] | object | Pointer to the object of a class defining the event handler (member ). It must remain valid for the lifetime of the GattCharacteristic. |
[in] | member | The member function that handles the read event. |
Definition at line 1623 of file gatt/GattCharacteristic.h.
|
inherited |
Set the security of the read operation.
[in] | security | The security requirement of the read operation. |
Definition at line 1471 of file gatt/GattCharacteristic.h.
|
inherited |
Set all security requirements of the characteristic.
read_security | The security requirement of the read operations. |
write_security | The security requirement of write operations. |
update_security | The security requirement of update operations. |
Definition at line 1456 of file gatt/GattCharacteristic.h.
|
inherited |
Set the security requirement of update operations.
[in] | security | The security requirement that must be met to send updates and accept write of the CCCD. |
Definition at line 1527 of file gatt/GattCharacteristic.h.
|
inherited |
Register a callback handling client's write requests or commands.
The callback registered is invoked when the client attempts to write the characteristic value; the event handler can accept or reject the write request with the appropriate error code.
[in] | callback | Event handler being registered. |
Definition at line 1556 of file gatt/GattCharacteristic.h.
|
inherited |
Register a callback handling client's write requests or commands.
The callback registered is invoked when the client attempts to write the characteristic value; the event handler can accept or reject the write request with the appropriate error code.
[in] | object | Pointer to the object of a class defining the event handler (member ). It must remain valid for the lifetime of the GattCharacteristic. |
[in] | member | The member function that handles the write event. |
Definition at line 1575 of file gatt/GattCharacteristic.h.
|
inherited |
Set the security requirement of the write operations.
[in] | security | The security requirement of write operations. |
Definition at line 1496 of file gatt/GattCharacteristic.h.