Я программирую в BlueZ на моей малине Pi с помощью USB-ключа Bluetooth. Мне нужно иметь возможность программно подключаться к Arduino BT, проблема в том, что Bluetooth-модуль Arduino по-прежнему использует устаревшее сопряжение, поэтому всякий раз, когда я пытаюсь открыть сокет для устройства, я получаю Permission Denied
. Как отправить PIN-код, чтобы выполнить запрос на сопряжение через BlueZ?Bluez Программирование
ответ
Возможно, вы захотите проверить файл main.c
в папке client самого последнего исходного кода Bluez. Это исходный код для инструмента bluetoothctl. Запустите его тоже. Исходный код показывает, как они используют GDBus, включая прокси, агенты, вызывающие методы, описанные в API (/doc folder), и все такое. Он находится в C и использует API высокого уровня.
Я предлагаю вам пройти через код, потому что мне понадобилось 2 недели, бесконечно пытаясь понять Bluez в C и тот факт, что документации нет, но когда я прочитал этот файл main.c, я был готов через день. Прочитайте правильную документацию API Dbus и, что более важно, концепции. Некоторые документы, которые помогли мне:
gdbus инструмент: https://developer.gnome.org/gio/stable/gdbus.html
Они содержат все вызовы gdbus и объекты в файле main.c
и объяснить их очень хорошо. https://developer.gnome.org/gio/stable/gdbus-convenience.html
D-Feet - бесценный инструмент для изучения и изучения Dbus в вашей системе. Попробуйте проверить автобус/bluez. https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet
или
sudo apt-get install d-feet
Не большая часть учебника, но стоит прочитать, чтобы понять некоторые понятия, как инструмент bluetoothctl вписывается в то, что они пытаются сказать здесь. http://dbus.freedesktop.org/doc/dbus-tutorial.html
bluetoothctl создает интерактивную оболочку, поэтому, возможно, было бы неразумно тратить время на то, чтобы поместиться в ваш код, но просто выберите то, что вам нужно от него.
- 1. Программирование BlueZ GATT в C
- 2. Альтернатива BlueZ?
- 3. Linux Программирование Bluetooth
- 4. DBUS API в BLUEZ
- 5. Linux Bluez Перегрузка Bluetooth?
- 6. Просмотр файлов через bluez
- 7. Включить отладку Bluez Fedora
- 8. android a2dp sink bluez
- 9. Bluez BLE Connection Linux
- 10. Bluez-5.36 StartDiscovery() метод
- 11. Как перестроить bluez
- 12. Linux BlueZ dbus communication
- 13. Язык программирования Dbus & Bluez
- 14. Название устройства Android == "BlueZ"?
- 15. Как установить режим bluez?
- 16. Архитектура Bluez: объясните эту архитектуру
- 17. bluez: ошибка соединения с 5
- 18. Linux BlueZ dbus-коммуникация a2dp
- 19. Как получить RSSI с BlueZ?
- 20. Генератор кода C для Bluez
- 21. Сервер Bluez для двунаправленной связи
- 22. В каком формате команды bluez?
- 23. Ubunu, BlueZ, Перечисление сопряженных устройств
- 24. Обновлен документ Bluez DBUS-API?
- 25. Bluetooth-библиотека для BlueZ (Windows)
- 26. Linux Программирование на Bluetooth в C & socket.h
- 27. Как добавить интерфейс на объект gdbus (/ org/bluez/hci1) для bluez 5.35?
- 28. веб-программирование и программирование
- 29. Программирование «Самомодифицирующееся программирование»
- 30. Обнаружение ближайших маяков с помощью Bluez
Испытываете ли вы с помощью «простого агента»? –
Я хочу сделать это без стороннего программного обеспечения, только через bluez C API. –
Попробуйте следующее: http://stackoverflow.com/questions/14820004/bluetooth-pairing-in-c-bluez-on-linux –