自定义UUID在IOS示例中对BLE的意义是什么?

时间:2014-04-17 06:55:43

标签: ios objective-c bluetooth bluetooth-lowenergy core-bluetooth

我是iOS开发的新手,并为IOS研究 Bluetooth Low Energy (BLE, Bluetooth 4.0)

我研究了此链接的示例代码BTLE Central Peripheral Transfer

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

以上两个链接上的应用程序在send and receive the text data的两个IOS设备之间讨论BLE。 应用可以选择centralPeripheralcentral将接收Peripheral发送的文字数据。

它像UUID中的以下代码一样定义 header file

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

Central 连接到 Peripheral 之后,它会发现 Peripheral

如果 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. } 如下面的代码。

The question is like the following:

First Question:

UUID:@"08590F7E-DB05-467E-8757-72F6FAEB13D4"

我在Bluetooth Development Portal中找不到此 uuidgen 。 这是由 terminal 中的 The second Question: 创建的吗?

Central

如果我 characteristic ,并且我使用 setNotifyValue:YES 订阅了 Central 像上面的代码。

BLE会告诉 Peripheral 通过以下代码从 - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error 发送新数据,概念是否正确?

{{1}}

我是IOS开发和BLE的新手。

提前致谢。

1 个答案:

答案 0 :(得分:7)

第一个问题:

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

第二个问题:

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