# Characteristic – BLE service characteristic¶

Stores information about a BLE service characteristic and allows reading and writing of the characteristic’s value.

class _bleio.Characteristic

There is no regular constructor for a Characteristic. A new local Characteristic can be created and attached to a Service by calling add_to_service(). Remote Characteristic objects are created by Connection.discover_remote_services() as part of remote Services.

add_to_service(service, uuid, *, properties=0, read_perm=Attribute.OPEN, write_perm=Attribute.OPEN, max_length=20, fixed_length=False, initial_value=None)

Create a new Characteristic object, and add it to this Service.

Parameters: service (Service) – The service that will provide this characteristic uuid (UUID) – The uuid of the characteristic properties (int) – The properties of the characteristic, specified as a bitmask of these values bitwise-or’d together: BROADCAST, INDICATE, NOTIFY, READ, WRITE, WRITE_NO_RESPONSE. read_perm (int) – Specifies whether the characteristic can be read by a client, and if so, which security mode is required. Must be one of the integer values Attribute.NO_ACCESS, Attribute.OPEN, Attribute.ENCRYPT_NO_MITM, Attribute.ENCRYPT_WITH_MITM, Attribute.LESC_ENCRYPT_WITH_MITM, Attribute.SIGNED_NO_MITM, or Attribute.SIGNED_WITH_MITM. write_perm (int) – Specifies whether the characteristic can be written by a client, and if so, which security mode is required. Values allowed are the same as read_perm. max_length (int) – Maximum length in bytes of the characteristic value. The maximum allowed is is 512, or possibly 510 if fixed_length is False. The default, 20, is the maximum number of data bytes that fit in a single BLE 4.x ATT packet. fixed_length (bool) – True if the characteristic value is of fixed length. initial_value (buf) – The initial value for this characteristic. If not given, will be filled with zeros. the new Characteristic.
properties

An int bitmask representing which properties are set, specified as bitwise or’ing of of these possible values. BROADCAST, INDICATE, NOTIFY, READ, WRITE, WRITE_NO_RESPONSE.

uuid

The UUID of this characteristic. (read-only)

Will be None if the 128-bit UUID for this characteristic is not known.

value

The value of this characteristic.

descriptors

A tuple of Descriptor that describe this characteristic. (read-only)

service(read-only)

The Service this Characteristic is a part of.

set_cccd(*, notify=False, indicate=False)

Set the remote characteristic’s CCCD to enable or disable notification and indication.

Parameters: notify (bool) – True if Characteristic should receive notifications of remote writes indicate (float) – True if Characteristic should receive indications of remote writes
BROADCAST

INDICATE

property: server will indicate to the client when the value is set and wait for a response

NOTIFY

property: server will notify the client when the value is set

READ

property: clients may read this characteristic

WRITE

property: clients may write this characteristic; a response will be sent back

WRITE_NO_RESPONSE

property: clients may write this characteristic; no response will be sent back