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