如何解决为什么有些 BLE uuid 没有缩短
目前,我正在为 ESP32 开发一个 BLE 应用程序,我想为 BLE 外设执行服务和特征发现。
据我了解蓝牙规范,我知道每个服务和特征都有一个 128 位的 UUID。但是,在许多情况下,这些 UUID 会缩短为 16 位或 32 位 UUID(只要 128 位 UUID 的其余部分与基本 UUID 匹配)。举例说明:
// Base UUID
00000000-0000-1000-8000-00805F9B34FB
// 128-bit
ABCDEFGH-0000-1000-8000-00805F9B34FB
// Corresponding 16-bit
EFGH
// Corresponding 32-bit
ABCDEFGH
当我使用 MacBook 在 BLE 设备上运行服务发现时,我得到以下结果:
discovered services: (
FE95,"00001204-0000-1000-8000-00805F9B34FB",FEF5,"00001206-0000-1000-8000-00805F9B34FB"
)
我现在的问题是:为什么其中两个服务 UUID 没有缩短?我希望 1204
和 1206
也是有效的服务 UUID,因为其他字符类似于基本 UUID。
我怀疑它与“分配的数字”https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf 有关,但是 1204
和 1206
就像 fe96
和 fef5
一样在那里.
上下文:
在开发我的 ESP32 应用程序时,我需要服务 UUID 与我的 MacBook 保持一致,但在我当前的实现中,我将 1204
和 1206
作为输出,据我所知是正确的,但不一致 -我的目标是保持一致。
discovered services: (
FE95,1204,1206
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。