Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: TYBLE16_simple_data_logger TYBLE16_MP3_Air
ReadWriteGattCharacteristic< T > Class Template Reference
[Server]
  Helper class that represents a readable and writable GattCharacteristic. More...
#include <GattCharacteristic.h>
Inherits GattCharacteristic.
Detailed Description
template<typename T>
 class ReadWriteGattCharacteristic< T >
Helper class that represents a readable and writable GattCharacteristic.
Definition at line 2015 of file GattCharacteristic.h.
Member Typedef Documentation
| typedef ble::att_security_requirement_t SecurityRequirement_t  [inherited] | 
Security level applied to GATT operations.
Definition at line 1363 of file GattCharacteristic.h.
Member Enumeration Documentation
| anonymous enum  [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 100 of file GattCharacteristic.h.
| anonymous enum  [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.
- Enumerator:
Definition at line 524 of file GattCharacteristic.h.
| anonymous enum  [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.
- Note:
- See Bluetooth Specification 4.0 (Vol. 3), Part G, Section 3.3.3.5.2.
- Enumerator:
Definition at line 1081 of file GattCharacteristic.h.
| enum Properties_t  [inherited] | 
Characteristic properties.
It is a bitfield that determines how a characteristic value can be used.
- Note:
- See Bluetooth Specification 4.0 (Vol. 3), Part G, Section 3.3.1.1 and Section 3.3.3.1 for Extended Properties.
- Enumerator:
Definition at line 1231 of file GattCharacteristic.h.
Constructor & Destructor Documentation
| ReadWriteGattCharacteristic | ( | const UUID & | uuid, | 
| T * | valuePtr, | ||
| uint8_t | additionalProperties = BLE_GATT_CHAR_PROPERTIES_NONE, | ||
| GattAttribute * | descriptors[] = NULL, | ||
| unsigned | numDescriptors = 0 | ||
| ) | 
Construct a ReadWriteGattCharacteristic.
- Parameters:
- 
  [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.
- Note:
- Instances of ReadWriteGattCharacteristic have variable length attribute value with maximum size equal to sizeof(T). For a fixed length alternative, use GattCharacteristic directly.
Definition at line 2035 of file GattCharacteristic.h.
Member Function Documentation
| GattAuthCallbackReply_t authorizeRead | ( | GattReadAuthCallbackParams * | params ) |  [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.
- Attention:
- This function is not meant to be called by user code.
- Parameters:
- 
  [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. 
- Returns:
- A GattAuthCallbackReply_t value indicating whether authorization is granted.
- Note:
- If the read request is approved and params->data remains NULL, then the current characteristic value is used in the read response payload.
- If the read is approved, the event handler can specify an outgoing value directly with the help of the fields GattReadAuthCallbackParams::data and GattReadAuthCallbackParams::len.
Definition at line 1674 of file GattCharacteristic.h.
| GattAuthCallbackReply_t authorizeWrite | ( | GattWriteAuthCallbackParams * | params ) |  [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.
- Attention:
- This function is not meant to be called by user code.
- Parameters:
- 
  [in] params Context of the write-auth request; it contains an out-parameter used as a reply. 
- Returns:
- A GattAuthCallbackReply_t value indicating whether authorization is granted.
Definition at line 1640 of file GattCharacteristic.h.
| GattAttribute* getDescriptor | ( | uint8_t | index ) |  [inherited] | 
Get this characteristic's descriptor at a specific index.
- Parameters:
- 
  [in] index The index of the descriptor to get. 
- Returns:
- A pointer the requested descriptor if indexis within the range of the descriptor array or NULL otherwise.
Definition at line 1832 of file GattCharacteristic.h.
| uint8_t getDescriptorCount | ( | void | ) | const  [inherited] | 
Get the total number of descriptors within this characteristic.
- Returns:
- The total number of descriptors.
Definition at line 1793 of file GattCharacteristic.h.
| uint8_t getProperties | ( | void | ) | const  [inherited] | 
Get the characteristic's properties.
- Note:
- Refer to GattCharacteristic::Properties_t.
- Returns:
- The characteristic's properties.
Definition at line 1727 of file GattCharacteristic.h.
| SecurityRequirement_t getReadSecurityRequirement | ( | ) | const  [inherited] | 
Get the security requirement of the read operation.
- Returns:
- The security requirement of the read operation.
Definition at line 1488 of file GattCharacteristic.h.
| SecurityRequirement_t getUpdateSecurityRequirement | ( | ) | const  [inherited] | 
Get the security requirement of update operations.
- Note:
- This security requirement is also applied to the write operation of the Client Characteristic Configuration Descriptor.
- Returns:
- The security requirement that must be met to send updates and accept write of the CCCD.
Definition at line 1548 of file GattCharacteristic.h.
| GattAttribute& getValueAttribute | ( | ) |  [inherited] | 
Get the characteristic's value attribute.
- Returns:
- A reference to the characteristic's value attribute.
Definition at line 1692 of file GattCharacteristic.h.
| const GattAttribute& getValueAttribute | ( | ) | const  [inherited] | 
Get the characteristic's value attribute.
- Returns:
- A const reference to the characteristic's value attribute.
Definition at line 1702 of file GattCharacteristic.h.
| GattAttribute::Handle_t getValueHandle | ( | void | ) | const  [inherited] | 
Get the characteristic's value attribute handle in the ATT table.
- Returns:
- The value attribute handle.
- Note:
- The underlying BLE stack assigns the attribute handle when the enclosing service is added.
Definition at line 1715 of file GattCharacteristic.h.
| SecurityRequirement_t getWriteSecurityRequirement | ( | ) | const  [inherited] | 
Get the security requirement of write operations.
- Returns:
- The security requirement of write operations.
Definition at line 1520 of file GattCharacteristic.h.
| static bool isReadable | ( | uint8_t | properties ) |  [static, inherited] | 
Indicates if the properties is readable.
- Parameters:
- 
  [in] properties The properties to inspect. 
- Returns:
- True if the properties has its readable flag set and false otherwise.
Definition at line 1306 of file GattCharacteristic.h.
| bool isReadAuthorizationEnabled | ( | ) | const  [inherited] | 
Check whether read authorization is enabled.
Read authorization is enabled when a read authorization event handler is set up.
- Returns:
- true if read authorization is enabled and false otherwise.
Definition at line 1806 of file GattCharacteristic.h.
| static bool isWritable | ( | uint8_t | properties ) |  [static, inherited] | 
Indicates if the properties has at least one of the writable flags.
- Parameters:
- 
  [in] properties The properties to inspect. 
- Returns:
- True if the properties set at least one of the writable flags and false otherwise.
Definition at line 1288 of file GattCharacteristic.h.
| bool isWriteAuthorizationEnabled | ( | ) | const  [inherited] | 
Check whether write authorization is enabled.
Write authorization is enabled when a write authorization event handler is set up.
- Returns:
- true if write authorization is enabled, false otherwise.
Definition at line 1819 of file GattCharacteristic.h.
| MBED_DEPRECATED_SINCE | ( | "mbed-os-5.9" | , | 
| "Use | getWriteSecurityRequirements, | ||
| getReadSecurityRequirements and" "getUpdateSecurityRequirements" | |||
| ) |  [inherited] | 
Get the characteristic's required security.
- Returns:
- The characteristic's required security.
Definition at line 1743 of file GattCharacteristic.h.
| MBED_DEPRECATED_SINCE | ( | "mbed-os-5.9" | , | 
| "Use | setWriteSecurityRequirements, | ||
| setReadSecurityRequirements and" "setUpdateSecurityRequirements" | |||
| ) |  [inherited] | 
Set up the minimum security (mode and level) requirements for access to the characteristic's value attribute.
- Parameters:
- 
  [in] securityMode Can be one of encryption or signing, with or without protection for man in the middle attacks (MITM). 
Definition at line 1442 of file GattCharacteristic.h.
| void setReadAuthorizationCallback | ( | void(*)(GattReadAuthCallbackParams *) | callback ) |  [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.
- Parameters:
- 
  [in] callback Event handler being registered. 
Definition at line 1599 of file GattCharacteristic.h.
| void setReadAuthorizationCallback | ( | T * | object, | 
| void(T::*)(GattReadAuthCallbackParams *) | member | ||
| ) |  [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.
- Parameters:
- 
  [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 1619 of file GattCharacteristic.h.
| void setReadSecurityRequirement | ( | SecurityRequirement_t | security ) |  [inherited] | 
Set the security of the read operation.
- Parameters:
- 
  [in] security The security requirement of the read operation. 
Definition at line 1478 of file GattCharacteristic.h.
| void setSecurityRequirements | ( | SecurityRequirement_t | read_security, | 
| SecurityRequirement_t | write_security, | ||
| SecurityRequirement_t | update_security | ||
| ) |  [inherited] | 
Set all security requirements of the characteristic.
- Parameters:
- 
  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 1463 of file GattCharacteristic.h.
| void setUpdateSecurityRequirement | ( | SecurityRequirement_t | security ) |  [inherited] | 
Set the security requirement of update operations.
- Note:
- This security requirement is also applied to the write operation of the Client Characteristic Configuration Descriptor.
- Parameters:
- 
  [in] security The security requirement that must be met to send updates and accept write of the CCCD. 
Definition at line 1534 of file GattCharacteristic.h.
| void setWriteAuthorizationCallback | ( | T * | object, | 
| void(T::*)(GattWriteAuthCallbackParams *) | member | ||
| ) |  [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.
- Parameters:
- 
  [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 1582 of file GattCharacteristic.h.
| void setWriteAuthorizationCallback | ( | void(*)(GattWriteAuthCallbackParams *) | callback ) |  [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.
- Parameters:
- 
  [in] callback Event handler being registered. 
Definition at line 1563 of file GattCharacteristic.h.
| void setWriteSecurityRequirement | ( | SecurityRequirement_t | security ) |  [inherited] | 
Set the security requirement of the write operations.
- Note:
- If the signed write flag is set in the characteristic properties then the security requirement applied to write operation must be either AUTHENTICATED or UNAUTHENTICATED. Security requirements NONE and SC_AUTHENTICATED are not applicable to signing operation.
- Parameters:
- 
  [in] security The security requirement of write operations. 
Definition at line 1503 of file GattCharacteristic.h.
Generated on Tue Jul 12 2022 13:55:35 by
 1.7.2
 1.7.2