Bluez 5.65 mesh-cfgclient не удалось сгенерировать UUID
Я попытался подготовить устройство через Bluez и на своем Raspberry Pi.
Bluez: 5,65 Raspberry Pi: 3B+
Сначала я ищу настраиваемые устройства и получаю:
Scan result:
rssi = -38
UUID = DDDD00000000000000000000000000DD
OOB = 0000
URI Hash = 00000000
Если я указываю процесс предоставления с помощью:
provision dddd00000000000000000000000000dd
Я получаю сообщение об ошибке:
Failed to generate UUID array from dddd00000000000000000000000000dd
Если я пытаюсь это:
provision dddd0000-0000-0000-0000-0000000000dd
Я получил:
Requires UUID
Так что я не знаю, какой UUIDmesh-cfgclient
хотел бы получить от меня. Кто-нибудь знает, что я пропустил здесь.
Спасибо за вашу помощь.
1 ответ
Я тоже с этим сталкиваюсь. Я не знаю, новая ли это проблема, потому что это мой первый опыт работы с сеткой BLE...
Мои выводы до сих пор привели меня к тому, что UUID должен соответствовать RFC-4122.
Это мой вывод, основанный на загрузке исходного кода bluez (в частности, 5.65) вместе с исходным кодом ell (в частности, 0.55) и просмотреadd_node_setup
, что привело меня кl_util_from_hexstring
, что казалось прекрасным.
Это былоl_uuid_is_valid
которому не нравится формат...
Он ожидает (==2) иversion
(между 1 и 5) должны быть включены.
Имейте в виду, когда я упоминаю эти значения, они являются результатом битового сдвига, поэтому вариант == 0x80 и версия между 0x16 и 0x80, и все это после того, как предоставленный нам UUID преобразуется в шестнадцатеричный.
Я еще этого не делал, но вы, вероятно, можете использовать генератор uuid онлайн или в Linux (uuidgen
).
Я скажу, что в данный момент, я не знаю, почемуell
ожидаетvariant
to == 2.
Глядя на RFC, раздел4.1.1
, я не вижу ни одной битовой комбинации, равной 2.
На самом деле, просматривая википедию, я вижу, что номер UUID 2 соответствует не битовой комбинации, а нулевой позиции списка, которая равно 110 ("Зарезервировано, обратная совместимость Microsoft Corporation").
Если бы мы изменили вашdddd00000000000000000000000000dd
, я думаю, что это может выглядеть какdddd00000000 40 00 80 000000000000dd
.
Я выбрал0x40
для версии 4 и 0x80 для упомянутого ранее варианта №2 (с битовым сдвигом).