PySide6.QtBluetooth.QLowEnergyCharacteristic¶
- class QLowEnergyCharacteristic¶
QLowEnergyCharacteristic
类存储有关蓝牙低功耗服务特性的信息。更多…概要¶
方法¶
def
__init__()
def
descriptor()
def
descriptors()
def
isValid()
def
name()
def
__ne__()
def
__eq__()
def
properties()
def
uuid()
def
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)
- Parameters:
构造一个新的
QLowEnergyCharacteristic
,它是other
的副本。两个副本继续共享相同的基础数据,这些数据在写入时不会分离。
- clientCharacteristicConfiguration()¶
- Return type:
返回客户端特性配置描述符,如果不存在客户端特性配置描述符,则返回无效的
QLowEnergyDescriptor
实例。BTLE特性可以支持通知和/或指示。在这两种情况下,外围设备都会在特性值每次更改时通知中央设备。在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)¶
- Parameters:
uuid –
QBluetoothUuid
- Return type:
返回
uuid
的描述符或一个无效的QLowEnergyDescriptor
实例。另请参阅
- descriptors()¶
- Return type:
返回属于此特征的描述符列表;否则返回空列表。
另请参阅
- isValid()¶
- Return type:
布尔
如果
QLowEnergyCharacteristic
对象有效,则返回true
,否则返回false
。无效的特征对象未与任何服务关联(默认构造的),或者由于与底层蓝牙低功耗设备断开连接等原因,关联的服务不再有效。一旦对象无效,它将无法再次变为有效。
注意
如果
QLowEnergyCharacteristic
实例由于与底层设备的断开连接而变为无效,当前实例封装的信息将保持断开连接时的状态。因此,可以在断开连接事件后检索这些信息。- name()¶
- Return type:
字符串
返回特征的可读名称。
名称基于特征的
uuid()
,该特征必须已经标准化。完整的特征类型列表可以在Bluetooth.org Characteristics下找到。如果
uuid()
未知,则返回的字符串为空。- __ne__(b)¶
- Parameters:
- Return type:
布尔
如果
a
和b
不相等,则返回true
;否则返回false
。如果两个QLowEnergyCharacteristic实例引用的是同一个远程蓝牙低功耗设备上的相同特性,或者两个实例都是默认构造的,则认为它们是相等的。
- __eq__(b)¶
- Parameters:
- Return type:
布尔
如果
a
等于b
,则返回true
,否则返回false
。如果两个
QLowEnergyCharacteristic
实例引用的是同一个远程蓝牙低功耗设备上的相同特性,或者两个实例都是默认构造的,则认为它们是相等的。- properties()¶
- Return type:
PropertyType
的组合
返回特征的属性。
属性定义了特征的访问权限。
- uuid()¶
- Return type:
如果
isValid()
返回true
,则返回特征的UUID;否则返回一个空的UUID。- value()¶
- Return type:
返回特征的缓存值。
如果特性的
properties()
允许写入新值,可以使用writeCharacteristic()
更新该值。缓存会在相关服务的
detail discovery
期间更新,成功的read
/write
操作或接收到更新通知时也会更新。如果特征没有
read permission
,返回的QByteArray将始终为空。在这种情况下,只有characteristicChanged()
或characteristicWritten()
可能提供有关此特征值的信息。