HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了自定义UUID在IOS示例中对BLE的意义是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是iOS开发的新手,并为 IOS研究蓝牙低功耗(BLE,蓝牙4.0).

我研究了这个链接BTLE Central Peripheral Transfer的示例代码.

链接iOS 7 SDK: Core Bluetooth – Practical Lesson中还有另一个类似的示例

上述两个链接上的应用程序讨论了在BLE上的两个IOS设备之间发送和接收文本数据.
应用程序可以选择作为中央或外围设备,中央将接收从外围设备发送的文本数据.

它像头文件中的以下代码一样定义UUID.

#define TRANSFER_CHARACTERISTIC_UUID    @"08590F7E-DB05-467E-8757-72F6FAEB13D4"

在中央连接到外围设备之后,它发现了外围设备的特性.

如果UUID等于TRANSFER_CHARACTERISTIC_UUID,则使用setNotifyValue:YES订阅它,如下面代码所示.

- (void)peripheral:(CBPeripheral *)peripheral didDiscovercharacteristicsForservice:(CBservice *)service error:(NSError *)error
{
    // Again,we loop through the array,just in case.
    for (CBCharacteristic *characteristic in service.characteristics) {

        // And check if it's the right one
        if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:TRANSFER_CHARACTERISTIC_UUID]]) {

            // If it is,subscribe to it
            [peripheral setNotifyValue:YES forCharacteristic:characteristic];
        }
    }

    // Once this is complete,we just need to wait for the data to come in.
}

问题如下:

一个问题:

我在Bluetooth Development Portal找不到这个UUID:@“08590F7E-DB05-467E-8757-72F6FAEB13D4”.
这是由uuidgen在终端创建的吗?

第二个问题

如果我是Central,并且我使用setNotifyValue订阅了特性:YES就像上面的代码一样.

BLE会通过以下代码告诉Central有来自外设的新数据,概念是否正确?

– (void)peripheral:(CBPeripheral *)peripheral didupdateValueForCharacteristic:(CBCharacteristic *)特征错误:(NSError *)错误

我是IOS开发和BLE的新手.

提前致谢.

解决方法

一个问题:

>是的,Apple甚至建议在各种WWDC视频中使用uuidgen生成这些UUID.蓝牙SIG未对128位UUID进行标准化,您可以使用这些UUID运行自己的配置文件.

第二个问题

>是的,首先发现服务,然后是特征,然后是setNotifyValue:YEs.从现在开始,您将通过[-CBPeripheralDelegate didupdateValueForCharacteristic:error:]接收来自外围设备的通知.当您手动读取特征时,将调用相同的回调(无法区分读取响应与核心蓝牙中的通知).

大佬总结

以上是大佬教程为你收集整理的自定义UUID在IOS示例中对BLE的意义是什么?全部内容,希望文章能够帮你解决自定义UUID在IOS示例中对BLE的意义是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。