【问题标题】:Bluetooth Low Energy UUID number低功耗蓝牙 UUID 编号
【发布时间】:2017-12-22 15:09:50
【问题描述】:

现在我正在研究低功耗蓝牙设备,我完全阅读了 office 文档,并从 office 网站下载了示例源代码 https://developer.android.com/guide/topics/connectivity/bluetooth-le.html

一切都运行良好,但我不知道他们是如何获取 UUID 号码 ex '公共静态字符串 HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb".enter image description here

【问题讨论】:

标签: java android bluetooth bluetooth-lowenergy


【解决方案1】:

使用 UUID 的 C++ 函数需要一个指向 16 字节结构(不是字符串)的指针。

如果 UUID 以字符串形式给出,则必须将其更改为结构,如下所示:

字符串 HEART_RATE_MEASUREMENT = "00002a37-0000-1000-8000-00805f9b34fb";

UUID Heart_Rate_UUID = { 0x00002a37, 0x0000, 0x1000, 0x00, 0x80, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb };

结构 UUID 为 { long, short[2], char[8] } 所以请注意,由于处理器字节序,字符串中的第三组 (-8000-) 必须反转 (0x00, 0x80)。

生成的二进制代码实际上是 37 2a 00 00 00 00 00 10 00 80 00 80 5f 9b 34 fb

x86 处理器的字节顺序是完全打乱的。

因此,UUID 通常在 Web 应用程序中作为文本传递,因为网络字节顺序可能与处理器相关的字节顺序不同。

Microsoft 编译器有一些扩展,例如 MIDL (q.v.),有助于转换,但很多程序员只是手动重写它,如我上面所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2018-10-12
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多