class QLowEnergyCharacteristic#

QLowEnergyCharacteristic 类存储有关蓝牙低功耗服务特征的信息。 更多...

摘要#

方法#

说明

本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式告诉我们

详细说明#

QLowEnergyCharacteristic 包含关于蓝牙低功耗服务特征的 name()uuid()value()properties()descriptors() 的信息。要获取特性的规范和信息,必须使用 QLowEnergyServiceQLowEnergyController 类连接到设备。

特征值可以通过管理该特征的服务的证书实例来写入,即通过 QLowEnergyService。通过 writeCharacteristic() 函数写入新值。当操作成功时,会发出 characteristicWritten() 信号。此对象的 value() 将自动相应更新。

特征值可以包含零个、一个或多个描述符。可以使用 descriptor() 函数单独检索它们。函数 descriptors() 返回所有描述符作为列表。描述符的一般用途是向特征添加上下文信息。例如,描述符可能提供格式或范围信息,指定如何解释特征值。

class PropertyType#

(继承自 enum.Flag) 此枚举描述了特征的性质。

常量

描述

QLowEnergyCharacteristic.Unknown

类型未知。

QLowEnergyCharacteristic.Broadcasting

允许广播通用属性(GATT)特征值。

QLowEnergyCharacteristic.Read

允许读取特征值。

QLowEnergyCharacteristic.WriteNoResponse

允许写入不允许响应的特征值。

QLowEnergyCharacteristic.Write

允许写入特征值。

QLowEnergyCharacteristic.Notify

允许通知特征值。

QLowEnergyCharacteristic.Indicate

允许指示特征值。

QLowEnergyCharacteristic.WriteSigned

允许对 GATT 特征值进行签名写入。

QLowEnergyCharacteristic.ExtendedProperty

特征扩展属性描述符中定义了其他特征属性。

不建议同时将 Notify 和 Indicate 属性设置在同一特征值上,因为底层蓝牙栈的行为因平台而异。请参阅 clientCharacteristicConfiguration

请参阅

properties()

PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDDisable#
PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDEnableNotification#
PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDEnableIndication#
__init__()#

构建一个新的QLowEnergyCharacteristic。这个类的默认构造函数实例始终是无效的。

请参阅

isValid()

__init__(other)
参数:

otherQLowEnergyCharacteristic

构建一个新的QLowEnergyCharacteristic,它是other的一个副本。

这两个副本将继续共享相同的基本数据,在写入时不会断开连接。

clientCharacteristicConfiguration()#
返回类型:

QLowEnergyDescriptor

返回客户端特征配置描述符或一个无效的QLowEnergyDescriptor实例,如果没有客户端特征配置描述符。

BLE特征可以支持通知和/或指示。在这两种情况下,外围设备将在特征值每次更改时通知中心。在BTLE属性协议中,通知消息不会被中心确认,而指示会被确认。通知被认为是更快的,但不可靠,而指示较慢但更可靠。

如果特征支持通知或指示,可以通过向客户端特征配置描述符写入特殊的位模式来启用它们。为了方便,这些位模式被提供为QLowEnergyCharacteristic::CCCDDisableQLowEnergyCharacteristic::CCCDEnableNotificationQLowEnergyCharacteristic::CCCDEnableIndication

在名为“mycharacteristic”的特性中,在名为“myservice”的服务上启用通知,可以使用以下代码。

auto cccd = mycharacteristic.clientCharacteristicConfiguration();
if (!cccd.isValid()) {
    // your error handling
    return error;
}
myservice->writeDescriptor(cccd, QLowEnergyCharacteristic::CCCDEnableNotification);

说明

调用characteristic.clientCharacteristicConfiguration()等同于调用characteristic.descriptor(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration)

说明

不建议在同一特征上同时使用通知和指示。这适用于设置特征的服务器端以及启用特征的客户端。蓝牙堆栈的行为平台之间不同,跨平台的行为可能会不一致。例如,Bluez Linux客户端可能会无条件尝试启用两种机制,而macOS客户端可能会无条件启用通知。如果需要两种机制,请考虑创建两个不同的特征。

请参阅

descriptor()

descriptor(uuid)#
参数:

uuidQBluetoothUuid

返回类型:

QLowEnergyDescriptor

返回指定uuid对应的描述符或无效的QLowEnergyDescriptor实例。

请参阅

descriptors()

descriptors()#
返回类型:

.列表形式QLowEnergyDescriptor

返回属于此属性的所有描述符的列表;否则返回空列表。

请参阅

descriptor()

isValid()#
返回类型:

bool

QLowEnergyCharacteristic对象有效,则返回true,否则返回false

无效的特征对象没有关联任何服务(默认构造的)或关联的服务因底层蓝牙低功耗设备断开连接而不再有效,例如。一旦对象无效,就无法再次变得有效。

说明

如果QLowEnergyCharacteristic实例因底层设备断开连接而变为无效,则封装在当前实例中的信息将保持断开连接时的状态。因此,可以在断开事件发生后检索这些信息。

name()#
返回类型:

str

返回特征的人可读名称。

名称基于特征的标准uuid,具体请参阅Bluetooth.org 特征集中的完整列表。

如果uuid未知,则返回字符串为空。

__ne__(b)#
参数:

bQLowEnergyCharacteristic

返回类型:

bool

如果ab不相等,则返回true;否则返回false

两个 QLowEnergyCharcteristic 实例被认为是相等的,如果它们指向同一远程低功耗蓝牙设备上的同一特征,或者两个实例都已通过默认构造函数创建。

__eq__(b)#
参数:

bQLowEnergyCharacteristic

返回类型:

bool

如果 a 等于 b,则返回 true,否则返回 false

如果两个 QLowEnergyCharacteristic 实例指向同一远程低功耗蓝牙设备上的同一特征,或者两个实例都已经通过默认构造函数创建,则认为它们相等。

properties()#
返回类型:

PropertyType 组合

返回特征的属性。

属性定义了特征的访问权限。

uuid()#
返回类型:

QBluetoothUuid

如果 isValid() 返回 true,则返回特征的 UUID;否则返回空 UUID。

value()#
返回类型:

QByteArray

返回特征的缓存值。

如果特征的 properties() 允许写入新值,则可以使用 writeCharacteristic() 更新值。

在关联服务进行 详细发现、一次成功的 读取 / 写入 操作或在收到更新通知时更新缓存。

如果特征没有 读取权限,则返回的 QByteArray 总是保持为空。在这种情况下,只有 characteristicChanged()characteristicWritten() 可能提供有关此特征值的信息。