首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙GATT服务概述

蓝牙GATT服务概述
EN

Stack Overflow用户
提问于 2020-02-01 13:31:30
回答 1查看 4.2K关注 0票数 2

我正考虑为一个定制的应用程序实现关贸总协定的几个服务,但我现在还停留在研究中。我知道这些服务不是随机的,有些部分定义得很好,有些部分仍然让我感到困惑。

例如,设备信息服务似乎被宣传为0000180a-xxx,我可以在https://www.bluetooth.com/specifications/gatt/services/中找到“180 a”,但是例如,子字段"Model Number String“具有id 00002a24-xxx,这是一个完全不同的前缀,它也没有在相同的列表中定义,而是在这里定义:https://www.bluetooth.com/specifications/gatt/characteristics/。我怎么能得到所有这些前缀的列表?

我用xxx标记的那部分似乎等于我的手机里的随机装置。有没有什么地方概述了uuid应该如何构建,以及我可以在自己的GATT服务中使用哪些“安全”前缀?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-06 17:43:26

在蓝牙中,属性类型、GATT服务类型、特征类型和描述符类型以及其他常量都是通过UUID识别的。

UUID不过是标识符,128位标识符.一个给定的128位值指定一个给定的事物.使用128位随机值可以使独立生成标识符的双方碰撞的可能性最小,而不需要中央注册表。

蓝牙中的UUID

蓝牙标准定义的UUID得到特殊待遇,因为它们通常在规范的各种协议中使用。它们围绕着蓝牙基础UUID (xxxxxxxx 0000-1000-8000-00805F9B34FB)进行分组,并共享96个公共比特。(见岩心规格,3.B.2.5.1)

在各种协议部分中,标准UUID可以以短形式传输,跳过公共比特,因此只能在空中使用16或32位。这是一个实现细节,特定于整个堆栈中的一些协议。因此,标准定义的UUID通常称为短UUID.

除了标准UUID之外,任何实现者都可以自由地从128位随机产生自己的UUID,并在任何需要的地方使用它们。自定义UUID不能使用蓝牙Base (不能以短格式编码,但您不应该关心这一点)。

对自定义服务的影响

在实现标准服务和特性时使用标准UUID。

永远不要使用蓝牙基地-基于UUID的UUID用于自定义目的。

在开发自定义服务和属性时,从代码中重用现有的UUID(或UUID的一部分)并不是一个好主意。你真的应该再生你的。

旁注

规范没有为自定义UUID定义任何分组方案(您称之为前缀),但一些供应商确实会煽动对自定义did进行分组,其方式是生成一个96位的自定义基本UUID,并由此发出增量值,就像蓝牙一样。这是不标准的,也不会带来协议优化。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60017350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档