Привет, я пишу о поведении hcitool enc <bdaddr>
.Как описано в теме , я имею дело с Bluetooth.Я использую Bluez 5.4x C API.На данный момент я могу сканировать и открывать соединение с устройством BLE либо с помощью командной строки, либо с помощью моего кода C.
Для этого я работаю с HCI API, поэтому после:
id = hci_get_route(NULL);
dd = hci_open_dev(id);
hci_le_set_scan_enable();
hci_le_create_conn();
Я получил дескриптор соединения = 71. На этом этапе я бы хотел зашифровать ссылку, используя эквивалент C для функциональности hcitool enc в C. Однако я не могу этого сделать.
Как только соединение установлено, я проверяю доступное соединение, используя:
hcitool con
, что возвращает:
< LE <bdaddr> handle 71 state 7 lm MASTER
, поэтому я предполагаю, что мой код на C работает,хотя бы до этого момента.Если я пытаюсь зашифровать ссылку, вызывая функцию hci_encrypt_link()
, система выходит из строя и возвращает:
Ошибка получения информации о соединении: нет такого файла или каталога
Чтобы проверить правильность поведения, я попытался выполнить тот же рабочий поток из командной строки, выполнив:
sudo hcitool lescan
sudo hcitool lecc --random <bdaddr> - return: connection handle 71
sudo hcitool enc <bdaddr> - return: Not connected
Может ли кто-нибудь помочь мне определить решение?