【发布时间】:2021-09-08 12:45:57
【问题描述】:
我正在关注一个教程,它说 UUID 是 65210001-28D5-4B7B-BADF-7DEE1E8D1B6D 然后他以这种格式将其添加到代码中,但没有解释转换是如何发生的:
// Simple Service UUID: 65210001-28D5-4B7B-BADF-7DEE1E8D1B6D
static struct bt_uuid_128 simple_service_uuid =
BT_UUID_INIT_128(0x6d, 0x1b, 0x8d, 0x1e, 0xee, 0x7d, 0xdf, 0xba, 0x7b,
0x4b, 0xd5, 0x28, 0x01, 0x00, 0x21, 0x65);
我很好奇,0x6d, 0x1b, 0x8d, 0x1e, 0xee, 0x7d, 0xdf, 0xba, 0x7b,0x4b, 0xd5, 0x28, 0x01, 0x00, 0x21, 0x65 到底是什么格式?十六进制?
如何从 UUID 获取到数组?我已经尝试过十六进制转换和其他一些 python 编码,但我无法创建任何接近的东西。 我希望在 python 中进行转换。
【问题讨论】:
-
反向
65210001-28D5-4B7B-BADF-7DEE1E8D1B6D一次取 2 个:6D 1B 8D 1E EE 7D ...->BT_UUID_INIT_128(0x6d, 0x1b, 0x8d, 0x1e, 0xee, ...) -
哇,我从来没有注意到,谢谢!我仍然很好奇,是十六进制还是字节数据(或其他什么?)。 @PatrickArtner 标记为 python 因为我正在尝试在 python 中进行转换,对不起!
-
0x6d 是 2 字节(16 位),表示为十六进制数字(数字中前面字母 af 中的 0x 是赠品) - 至于为什么它被反转 - 谷歌使用的语言和BT_IIOD_INIT_128 以获取有关所用结构的更多信息。
-
好的,我明白了。我现在将编写一个 python 脚本来为我制作数组;)感谢帮助!
-
这真的取决于
BT_UUID_INIT_128是如何定义的,以及它所应用的结构。也许任何有文档的库