iOS swift BLE读取多个特性

时间:2016-06-29 19:05:29

标签: ios swift uuid bluetooth-lowenergy

我正在尝试设计一个可以读取多个温度的应用。一个特征UUID只能处理1个值是真的吗?如果是这样,我如何读取多个值?(例如,温度1,温度2,温度3 ...)我是否需要自己声明多个特征UUID?但是,如果我只在我的应用程序中声明那些,那么外围设备将如何知道UUID对应于什么值呢?大多数示例只读取一个值(温度,心率等)

1 个答案:

答案 0 :(得分:0)

您可以从同一特征中获得不同的值。为此,您可能必须为写入特性写入不同的值。例如,假设你的写作特征是 A ,你的阅读特征 B

您可以将值写入 A ,就像这样

[self.discoveredPeripheral writeValue:data
                    forCharacteristic:characteristic
                                 type:CBCharacteristicWriteWithResponse];

根据您要提出的请求,数据会有所不同。

对于您的阅读特征 B ,指示属性应设置为YES,如下所示 didDiscoverCharacteristicsForService 委托回调

if (c.properties & CBCharacteristicPropertyIndicate) {
    [peripheral setNotifyValue:YES forCharacteristic:c];
}

现在每当您向 A 写入值时,您将获得委托方法 didUpdateValueForCharacteristic 的回调。您必须正确处理响应。

当然,为了使所有这些工作正常,您的设备应该进行相应的编程。

请注意,代码是用Objective-C

编写的