Sto programmando in BlueZ sul mio Raspberry Pi con un dongle Bluetooth USB. Devo essere in grado di collegarmi programmaticamente ad un Arduino BT, il problema è che il modulo Bluetooth di Arduino usa ancora l'accoppiamento legacy, quindi ogni volta che provo ad aprire un socket sul dispositivo ottengo un Permission Denied
. Come si invia un PIN per completare la richiesta di abbinamento tramite BlueZ?Programmazione Bluez
risposta
È possibile controllare il file main.c
nella cartella client del codice sorgente Bluez più recente. È il codice sorgente per lo strumento bluetoothctl. Eseguilo anche tu. Il codice sorgente mostra esattamente come usano GDBus, inclusi proxy, agenti, metodi di chiamata come descritto nell'API (/doc folder) e tutto il resto. È in C e utilizza l'API di alto livello.
Vi suggerisco di passare attraverso il codice perché mi ci sono volute 2 settimane per cercare di capire Bluez in C e il fatto che non c'è documentazione, ma quando ho letto il file main.c ero pronto in un giorno. Leggi sulla documentazione corretta dell'API di Dbus e, ancora più importante, sui concetti. Alcuni documenti che mi hanno aiutato:
Lo strumento GDBus: https://developer.gnome.org/gio/stable/gdbus.html
Queste contengono tutte le chiamate per GDBus e oggetti nel file main.c
e li spiegano molto bene. https://developer.gnome.org/gio/stable/gdbus-convenience.html
D-Piedi, uno strumento prezioso per l'ispezione e l'apprendimento di Dbus sul proprio sistema. Prova a controllare il bus/bluez. https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet
o
sudo apt-get install d-feet
Non c'è molto di un tutorial, ma vale la pena di leggere per capire alcuni concetti, come lo strumento bluetoothctl si inserisce in quello che stanno cercando di dire qui. http://dbus.freedesktop.org/doc/dbus-tutorial.html
Il bluetoothctl crea comunque una shell interattiva, quindi potrebbe non essere saggio sprecare tempo nel tentativo di inserire il codice, ma scegliere solo ciò che è necessario da esso.
- 1. Architettura Bluez: Spiega questa architettura
- 2. Bluetooth: Rileva evento utilizzando Bluez
- 3. BlueZ vs Bluedroid stack bluetooth
- 4. Dispositivi di riconnessione automatica Bluez
- 5. programmazione Bluetooth in c
- 6. Accoppiamento Bluetooth in C blueZ su Linux
- 7. Come implementare Bluetooth LE con Bluez in Linux
- 8. Esempio di lettura/scrittura BLE C/C++ con Bluez
- 9. Connessioni BLE multiple che utilizzano Linux e Bluez 5.0
- 10. Come eseguire una scansione bluetooth a bassa energia tramite la libreria BlueZ C
- 11. BlueZ 5.30: API GATT D-Bus - Scoperta e connessione semplice a un dispositivo BLE in C
- 12. Come posso collegarmi a FitBit Zip su Bluetooth 4.0 LE su Linux con bluez?
- 13. Come inviare la notifica Bluetooth GATT a basso consumo con Bluez?
- 14. Programmazione dei colori con programmazione scale_fill_manual ggplot
- 15. La programmazione parallela è == la programmazione multithread?
- 16. differenza tra programmazione socket e programmazione Http
- 17. Errore di programmazione o errore di programmazione?
- 18. programmazione evolutiva
- 19. Programmazione USB
- 20. Programmazione Xbox
- 21. La programmazione funzionale deve essere insegnata prima della programmazione imperativa?
- 22. Programmazione UNIX. struct timeval come stamparlo (programmazione C)
- 23. Differenza tra programmazione orientata agli oggetti e programmazione reattiva
- 24. Qual è la differenza tra programmazione Dataflow e programmazione reattiva?
- 25. La programmazione concorrente è uguale alla programmazione parallela?
- 26. I linguaggi di programmazione funzionale sono adatti alla programmazione grafica?
- 27. Programmazione con Microsoft Kinect
- 28. Programmazione flash su Linux
- 29. Programmazione VHDL su Linux?
- 30. Vantaggi della programmazione assertiva
Hai provato con 'simple-agent'? –
Voglio farlo senza software di terze parti, solo attraverso l'API C bluez. –
Provate questo: http://stackoverflow.com/questions/14820004/bluetooth-pairing-in-c-bluez-on-linux –