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
我正在尝试设计一个可以读取多个温度的应用程序。一个特征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