Programuję w BlueZ na moim Raspberry Pi z kluczem USB Bluetooth. Muszę być w stanie programowo połączyć się z Arduino BT, problem polega na tym, że moduł Bluetooth Arduino wciąż używa starszego parowania, więc za każdym razem, gdy próbuję otworzyć gniazdo na urządzeniu, otrzymuję Permission Denied
. Jak wysłać kod PIN, aby ukończyć żądanie parowania za pomocą BlueZ?Bluez Programowanie
Odpowiedz
Możesz chcieć sprawdzić plik main.c
w folderze client najnowszego kodu źródłowego Bluez. Jest to kod źródłowy narzędzia bluetoothctl. Uruchom także. Kod źródłowy pokazuje dokładnie, w jaki sposób korzystają z GDBus, w tym z serwerów proxy, agentów, metod wywoływania, jak opisano w API (/doc folder) i tym podobne. Jest w C i używa interfejsu API wysokiego poziomu.
Proponuję, abyś przejrzał kod, ponieważ zajęło mi to 2 tygodnie bez końca próbując zrozumieć Bluez w C i fakt, że nie ma dokumentacji, ale kiedy przeczytałem ten plik main.c byłem gotowy w jeden dzień. Zapoznaj się z odpowiednią dokumentacją API Dbus i, co ważniejsze, z koncepcjami. Niektóre dokumenty, które pomogły mi:
Narzędzie gdbus: https://developer.gnome.org/gio/stable/gdbus.html
Zawierają one wszystkie połączenia do gdbus i obiektów w pliku main.c
i wyjaśnić je bardzo dobrze. https://developer.gnome.org/gio/stable/gdbus-convenience.html
D-Feet, nieocenione narzędzie do kontroli i poznawania Dbus w Twoim systemie. Spróbuj sprawdzić autobus/bluez. https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet
lub
sudo apt-get install d-feet
Nie wiele z samouczka, ale warto czytać, aby zrozumieć pewne koncepcje, jako narzędzie bluetoothctl pasuje do tego, co próbujesz powiedzieć tutaj. http://dbus.freedesktop.org/doc/dbus-tutorial.html
Jednak bluetoothctl tworzy interaktywną powłokę, więc może nie być mądrym tracić czasu, próbując dopasować kod, ale wystarczy wybrać z niego to, czego potrzebujesz.
- 1. Bluetooth: Wykryj zdarzenie za pomocą usługi Bluez
- 2. Urządzenia do automatycznego ponownego łączenia urządzeń Bluez
- 3. Programowanie języka Windows Assembly Programowanie
- 4. Programowanie Winsock
- 5. Programowanie Poppler'a
- 6. Programowanie GPU?
- 7. Programowanie USB
- 8. Wiele połączeń BLE przy użyciu Linuksa i Bluez 5.0
- 9. Jak wykonać skanowanie niskonapięciowe bluetooth przez bibliotekę BlueZ C
- 10. C/C++ BLE odczyt/zapis przykład z Bluez
- 11. Programowanie Flash na Linuksie
- 12. Programowanie wbudowane ... bardzo początek
- 13. Programowanie chipsetów Intel
- 14. Programowanie C# i Bluetooth
- 15. C programowanie funkcji sqrt
- 16. Programowanie przy użyciu wieloprocesowości
- 17. zmienne lokalne: Programowanie Praktyki
- 18. Programowanie dynamiczne w repa
- 19. Programowanie jądra Linuksa: makefile
- 20. xrandr związane, C programowanie
- 21. Programowanie typów danych
- 22. Programowanie pierwsze, drugie ramy?
- 23. Jak robimy programowanie AJAX
- 24. Programowanie procesora graficznego Java
- 25. Programowanie wieloprocesorowe Python
- 26. Programowanie Androida - rozdzielczość ekranu
- 27. Linux Shell: programowanie VLC
- 28. Programowanie gniazd w C++
- 29. Prolog Programowanie w Ubuntu
- 30. Programowanie USB w Linuksie
Czy testowałeś za pomocą 'prostego-agenta'? –
Chcę to zrobić bez oprogramowania stron trzecich, tylko poprzez interfejs API bluez C. –
Spróbuj tego: http://stackoverflow.com/questions/14820004/bluetooth-pairing-in-c-bluez-on-linux –