7

在 iOS CBCharacteristic Class Reference 中,有用于返回特征属性的位图的描述。我正在寻找有关其中三个含义的信息。

文档将它们列出如下:

CBCharacteristicProperties

特征的可能属性。

enum {
    CBCharacteristicPropertyBroadcast = 0x01,
    CBCharacteristicPropertyRead = 0x02,
    CBCharacteristicPropertyWriteWithoutResponse = 0x04,
    CBCharacteristicPropertyWrite = 0x08,
    CBCharacteristicPropertyNotify = 0x10,
    CBCharacteristicPropertyIndicate = 0x20,
    CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,
    CBCharacteristicPropertyExtendedProperties = 0x80,
};

我找不到其他文档或这些属性的列表。

有些是显而易见的,例如读取、写入和通知。广播记录在我发现的其他 BLE 文档中。

CBCharacteristicPropertyWriteWithoutResponse 令人困惑。为什么这是一面旗帜?CBDevice 调用 writeValue:forCharacteristic:type: 有一个接受以下内容的标志:

enum {
    CBCharacteristicWriteWithResponse = 0,
    CBCharacteristicWriteWithoutResponse,
};

这些标志是多余的,还是必须为 writeValue:forCharacteristic:type: 提供与 CBCharacteristicProperties 标志匹配的类型?

另外,CBCharacteristicPropertyIndi​​cate 和 CBCharacteristicPropertyExtendedProperties 是什么意思?

有没有比 Apple 的文档更好的参考来解释这些?

4

1 回答 1

10

我在 Apple Developer Forums 上得到了这个答案:

它有助于理解底层规范。如果您查看 4.0 规范的主机卷中的 GATT 部分(可在此处获得:http: //www.bluetooth.org/Technical/Specifications/adopted.htm),常量应该更清楚。
CBCharacteristicPropertyWriteWithoutResponse 表示该特性支持“Write without Response”子过程。CBCharacteristicWriteWithoutResponse 表示您实际上想要使用“Write without Response”子过程。据推测,尝试对不支持它的特性使用“无响应写入”子过程将导致错误。希望有帮助,

作为后续,有问题的文档是Core Version 4.0。请参阅第3.3.1.1 节特性属性

于 2012-08-09T16:03:32.757 回答