Hardware Reference
In-Depth Information
Characteristic Value Handle
These two bytes contain the attribute handle of the attribute that contains the actual
value of the characteristic. Although it's often the case, you should never assume
that this handle will be contiguous (i.e., 0xNNNN+1 ) to the one containing the dec‐
laration.
Characteristic UUID
The UUID of the particular characteristic, this can be either a SIG-approved UUID
(when making use of the dozens of characteristic types included in the standard
profiles) or a 128-bit vendor specific UUID otherwise.
Continuing with the class and object-orientation analogy, characteristics are like indi‐
vidual fields or properties in that class, and a profile is like an application that makes
use of one or more classes for a specific need or purpose.
Characteristic value attribute
Finally, the characteristic value attribute contains the actual user data that the client can
read from and write to for practical information exchanges. The type for this attribute
is always the same UUID found in the characteristic's declaration value field (as shown
in “Characteristic declaration attribute” on page 59 ). So, characteristic value attributes
no longer have types of services or characteristics , but rather concrete, specific UUIDs
that can refer to a sensor's reading or a keypress on a keyboard.
The value of a characteristic value attribute can contain any type of data imaginable,
from temperatures in celsius to key scan codes to display strings to speeds in miles per
hour—anything that can be usefully transmitted over two BLE devices can fill in the
contents of that value.
Characteristic Descriptors
GATT characteristic descriptors (commonly called simply descriptors ) are mostly used
to provide the client with metadata (additional information about the characteristic
and its value). They are always placed within the characteristic definition and after the
characteristic value attribute. Descriptors are always made of a single attribute, the
characteristic descriptor declaration , whose UUID is always the descriptor type and
whose value contains whatever is defined by that particular descriptor type.
You can find two types of descriptors in the different GATT characteristics:
GATT-defined descriptors
These are the fundamental, widely used descriptor types that simply add meta in‐
formation about the characteristic. The following sections describe the most com‐
mon ones.
Search WWH ::




Custom Search