gpt4 book ai didi

objective-c - 识别正在通知的 BLE 设备

转载 作者:行者123 更新时间:2023-12-03 16:40:49 24 4
gpt4 key购买 nike

我连接了多个 BLE 设备,每个设备在电池状态发生变化时都会进行“通知”。

在收到状态更改通知后读取数据时,如何识别哪个 BLE 正在通知?

// Instance method to get the battery state
- (void) getBattery:(CBCharacteristic *)characteristic
{
//----------------
NSLog(@"getBattery");
//----------------
{
// Get the Battery Data
NSLog(@"Battery Level is : %@ (HEX)" , characteristic.value);
}
}

这是在收到通知时读取数据的代码...

感谢您的回答,但看来我只接收来自上次服务设置的数据以进行通知。这是Notify的调用代码...

嗨,太棒了。我可以识别数据更改时通知的设备。

但是,我的代码似乎只是通知并收集最后识别的特征的数据。

调用代码如下:

- (void)peripheral:(CBPeripheral *)peripheral    didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
{

// Retrieve the characteristic value for battery
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:SR1_DEVICE_BATTERY_LEVEL_SERVICE_UUID]]) {
[self getBattery:characteristic];
}
}

最佳答案

当外设发送值已更改的通知时,CBPeripheralDelegate 方法 didUpdateValueForCharacteristic被调用。此方法包含对 CBPeripheral 的引用。您没有展示如何从此方法转到 getBattery 方法,但这样做时需要传递外围设备。

您还可以引用CBCharacteristic的服务属性的外围属性 -

 CBPeripheral *p=characteristic.service.peripheral;

关于objective-c - 识别正在通知的 BLE 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com