作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以在“didUpdateValeFor描述符:”方法中读取描述符值。以下是我从 BLE 设备获取的描述符日志。
<CBDescriptor: 0x1c445cb60, UUID = Characteristic Format, value = <08ff2427 013110>>
值采用数据格式,其有效范围从 XX 值到 YY 值,我猜它的类型是 uint32 。我无法转换它们。我无法从其他答案中得到任何解决方案。
最佳答案
一般来说,CBDescriptor
有一个 uuid
属性,该属性将是指定的值之一 in the documentation和一个 value
属性。 value
属性的类型取决于 uuid
。您可以在每个可能的 CBDescriptor uuid 中找到相关的 value
类型。例如,对于 CBUUIDCharacteristicFormatString
,value
是对格式字符串进行编码的 Data
实例。
解码CBDescriptor
的示例函数如下所示。您需要添加缺少的 uuid 类型。
func descriptorDescription(for descriptor: CBDescriptor) -> String {
var description: String?
var value: String?
switch descriptor.uuid.uuidString {
case CBUUIDCharacteristicFormatString:
if let data = descriptor.value as? Data {
description = "Characteristic format: "
value = data.description
}
case CBUUIDCharacteristicUserDescriptionString:
if let val = descriptor.value as? String {
description = "User description: "
value = val
}
case CBUUIDCharacteristicExtendedPropertiesString:
if let val = descriptor.value as? NSNumber {
description = "Extended Properties: "
value = val.description
}
case CBUUIDClientCharacteristicConfigurationString:
if let val = descriptor.value as? NSNumber {
description = "Client characteristic configuration: "
value = val.description
}
case CBUUIDServerCharacteristicConfigurationString:
if let val = descriptor.value as? NSNumber {
description = "Server characteristic configuration: "
value = val.description
}
case CBUUIDCharacteristicAggregateFormatString:
if let val = descriptor.value as? String {
description = "Characteristic aggregate format: "
value = val
}
default:
break
}
if let desc=description, let val = value {
return "\(desc)\(val)"
} else {
return "Unknown descriptor"
}
}
对于与CBUUIDCharacteristicFormatString
相关的数据的具体解码,您需要引用Bluetooth documentation
关于ios - 如何将 CBDescriptor 值转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52816049/
我是一名优秀的程序员,十分优秀!