iOS swift BLE读取多个特性

iOS swift BLE read multiple characteristics

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

同一个特征可以得到不同的值。为此,您可能必须向写入特性写入不同的值。例如,假设您的写入特征是 A,您的读取特征是 B.

您可以像这样将值写入 A

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

其中的数据根据​​您要提出的请求而有所不同。

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

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

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

当然,要使所有这些都起作用,您的 ble 设备应该进行相应的编程。

注意代码写在Objective-C