- class QLowEnergyCharacteristic#
QLowEnergyCharacteristic 类存储有关蓝牙低功耗服务特征的信息。 更多...
摘要#
方法#
def
__init__()
定义
descriptor()
定义
isValid()
定义
name()
定义
__ne__()
定义
__eq__()
定义
properties()
定义
uuid()
定义
value()
说明
本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单的方式告诉我们
详细说明#
QLowEnergyCharacteristic
包含关于蓝牙低功耗服务特征的name()
、uuid()
、value()
、properties()
和descriptors()
的信息。要获取特性的规范和信息,必须使用QLowEnergyService
和QLowEnergyController
类连接到设备。特征值可以通过管理该特征的服务的证书实例来写入,即通过
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
请参阅
- PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDDisable#
- PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDEnableNotification#
- PySide6.QtBluetooth.QLowEnergyCharacteristic.CCCDEnableIndication#
- __init__()#
构建一个新的
QLowEnergyCharacteristic
。这个类的默认构造函数实例始终是无效的。请参阅
- __init__(other)
- 参数:
other –
QLowEnergyCharacteristic
构建一个新的
QLowEnergyCharacteristic
,它是other
的一个副本。这两个副本将继续共享相同的基本数据,在写入时不会断开连接。
- clientCharacteristicConfiguration()#
- 返回类型:
返回客户端特征配置描述符或一个无效的
QLowEnergyDescriptor
实例,如果没有客户端特征配置描述符。BLE特征可以支持通知和/或指示。在这两种情况下,外围设备将在特征值每次更改时通知中心。在BTLE属性协议中,通知消息不会被中心确认,而指示会被确认。通知被认为是更快的,但不可靠,而指示较慢但更可靠。
如果特征支持通知或指示,可以通过向客户端特征配置描述符写入特殊的位模式来启用它们。为了方便,这些位模式被提供为QLowEnergyCharacteristic::CCCDDisable、QLowEnergyCharacteristic::CCCDEnableNotification、QLowEnergyCharacteristic::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(uuid)#
- 参数:
uuid –
QBluetoothUuid
- 返回类型:
返回指定uuid对应的描述符或无效的
QLowEnergyDescriptor
实例。请参阅
- descriptors()#
- 返回类型:
.列表形式
QLowEnergyDescriptor
返回属于此属性的所有描述符的列表;否则返回空列表。
请参阅
- isValid()#
- 返回类型:
bool
若
QLowEnergyCharacteristic
对象有效,则返回true
,否则返回false
。无效的特征对象没有关联任何服务(默认构造的)或关联的服务因底层蓝牙低功耗设备断开连接而不再有效,例如。一旦对象无效,就无法再次变得有效。
说明
如果
QLowEnergyCharacteristic
实例因底层设备断开连接而变为无效,则封装在当前实例中的信息将保持断开连接时的状态。因此,可以在断开事件发生后检索这些信息。- name()#
- 返回类型:
str
返回特征的人可读名称。
名称基于特征的标准uuid,具体请参阅Bluetooth.org 特征集中的完整列表。
如果uuid未知,则返回字符串为空。
- __ne__(b)#
- 参数:
- 返回类型:
bool
如果
a
和b
不相等,则返回true
;否则返回false
。两个 QLowEnergyCharcteristic 实例被认为是相等的,如果它们指向同一远程低功耗蓝牙设备上的同一特征,或者两个实例都已通过默认构造函数创建。
- __eq__(b)#
- 参数:
- 返回类型:
bool
如果
a
等于b
,则返回true
,否则返回false
。如果两个
QLowEnergyCharacteristic
实例指向同一远程低功耗蓝牙设备上的同一特征,或者两个实例都已经通过默认构造函数创建,则认为它们相等。- properties()#
- 返回类型:
PropertyType
组合
返回特征的属性。
属性定义了特征的访问权限。
- uuid()#
- 返回类型:
如果
isValid()
返回true
,则返回特征的 UUID;否则返回空 UUID。- value()#
- 返回类型:
返回特征的缓存值。
如果特征的
properties()
允许写入新值,则可以使用writeCharacteristic()
更新值。在关联服务进行
详细发现
、一次成功的读取
/写入
操作或在收到更新通知时更新缓存。如果特征没有
读取权限
,则返回的 QByteArray 总是保持为空。在这种情况下,只有characteristicChanged()
或characteristicWritten()
可能提供有关此特征值的信息。