【问题标题】:CoreBlueTooth: what is the Service UUID FFE0 shorten for?CoreBlueTooth:Service UUID FFE0 的缩写是什么?
【发布时间】:2015-03-10 22:35:45
【问题描述】:

我正在做一个项目,将 iOS 与配备 Bluetooth 4.0 的设备连接起来。

设备是从第三方购买的。 (我的 iPhone 作为中心角色)连接后,我打印它的 UUID

 for (CBService *service in peripheral.services) {

        NSLog(@"service :%@", service);
        NSLog(@"service uuid %@", service.UUID);

        [peripheral discoverCharacteristics:nil forService:service];
    }

输出是

2015-01-13 10:09:03.474 TestBTCC[3149:828116] service :<CBService: 0x17406f000, isPrimary = YES, UUID = FFE0>
2015-01-13 10:09:03.474 TestBTCC[3149:828116] service uuid FFE0

UUID 应为 128 位。而16bit应该是一些预定义的UUID的缩短格式。这是什么?

根据https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/PerformingCommonPeripheralRoleTasks/PerformingCommonPeripheralRoleTasks.html#//apple_ref/doc/uid/TP40013257-CH4-SW8,我可以使用预定义的shorten 16bit来生成CBUUID,比如

 CBUUID *heartRateServiceUUID = [CBUUID UUIDWithString: @"180D"];

我可以直接写吗:

 CBUUID *heartRateServiceUUID = [CBUUID UUIDWithString: @"FFE0"];

不管是什么意思?

【问题讨论】:

    标签: ios bluetooth uuid core-bluetooth


    【解决方案1】:

    FFE0 是一个温度特性,您将没有对该特性的写入权限,温度将以摄氏度为单位读出。您可以阅读特征或订阅其更新。

    更多信息可以在here找到。

    【讨论】:

    • 谢谢。我读了你提供的网站。它说FFE1(温度)是唯一的特征,它的类型是int8。但实际上,这里的设备并不是用来监测温度的。它每次都必须发送更多数据。
    • 顺便说一下,我的设备是从一家小型工厂购买的。它没有针对使用的温度进行识别。每次都能发送更多数据吗?
    • 蓝牙 SIG 将缩短的特性定义为标准,因此它应该是温度。您是扫描所有中心和所有服务,还是只扫描您购买的硬件的中心和服务 UUID?
    • 我的 iPhone 作为中心,我扫描提供服务的设备。现在的问题是:即使该服务是针对温度的,我是否可以将其用于常规数据传输(发送或接收我想要的任何数据)?
    • 这将取决于外围设备的权限。您需要阅读服务的 CBCharacteristic 上的 characteristic properties 以确定读写权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多