- Estamos tratando de detectar un evento en C/C++.
- Estamos utilizando Bluez en Linux como nuestra Biblioteca de Bluetooth.
- Nuestro objetivo es ejecutar un script externo cuando se desencadena ese evento.
- Específicamente, tenemos un auricular Motorola H730, con un botón, y estamos buscando detectar la presión de ese botón.
- Hemos emparejado el dispositivo bluetooth (hcitool), y podemos conectarnos a él (bluez-test-audio), pero estaríamos interesados en migrar ese enfoque a C/C++.
La salida del hcidump cuando se conecta el dispositivo y se pulsa el botón es:Bluetooth: detectar evento usando Bluez
HCI sniffer - analizador de paquetes Bluetooth ver 2.2
dispositivo: hci0 snap_len: 1,028 filtro: 0xFFFFFFFFHCI Evento: cambio de modalidad (0x14) plen 6
estado 0x00 manejan intervalo de 0x00 21 modo 0
modo: activo datos
ACL: mango 21 banderas 0x02 dlen 17
L2CAP (d): cid 0x0041 len 13 [PSM 0]
< datos ACL: mango 21 banderas 0x00 dlen 14
L2CAP (d): cid 0x0047 len 10 [PSM 0]
< datos ACL: mango 21 banderas 0x00 dlargo 22
L2CAP (d): cid 0x0047 len 18 [PSM 0] datos
< ACL: mango 21 banderas 0x00 dlen 22
L2CAP (d): cid 0x0047 len 18 [PSM 0]
HCI Evento : Cantidad de paquetes completados (0x13) plen 5
manejar 21 paquetes 1
datos 10 ACL: mango 21 banderas 0x02 dlen 18
L2CAP (d): cid 0x0041 len 14 [PSM 0]
< datos ACL: mango 21 banderas 0x00 dlen 14
L2CAP (d): cid 0x0047 len 10 [PSM 0]
HCI Evento: número de paquetes completadas (0x13) plen 5
mango 21 paquetes 1
HCI Evento: número de paquetes completadas (0x13) plen 5
mango 21 paquetes 1
HCI Evento: número de Completado Paquetes (0x13) plen 5
manejar 21 paquetes 1
HCl Evento: Cambiar el modo (0x14) plen 6
estado 0x00 0x02 manejan intervalo de 21 modo Modo 2048
: Sniff- Hemos buscado la documentación bluetooth y no hemos tenido mucho éxito.
¿Cómo podemos detectar un evento bluetooth en C/C++ usando Bluez?
7
A
Respuesta
0
hcidump como se recogen son los registros entre el host del dispositivo y el controlador. Los eventos son los que el controlador envió al host del dispositivo y los comandos son los envíos de solicitud/respuesta al host del dispositivo.
Bluez guía de programación: http://people.csail.mit.edu/albert/bluez-intro/
1
me hizo algo similar el año pasado. El enfoque que establecí fue usar libdbus-c++ para generar objetos/clases proxy de C++ para comunicarme con bluez a través de dbus.
- Determine las interfaces bluetooth implementadas por sus auriculares. Usé d-feet y exploré el dispositivo cuando estaba conectado. Puede controlar y leer manualmente el estado de los auriculares aquí, esto fue útil para la depuración.
- Genera, encuentra o crea las descripciones dbus xml de las interfaces requeridas. Hice esto manualmente al traducir la especificación api del bluez api documentation a xml, pero creo que también podría crearlos mediante la introspección de dbus.
- Uso dbusxx-xml2cpp para generar objetos proxy
- Determinar la devolución de llamada que se llama cuando se presiona el botón
- Integrar objetos proxy en su código según sea necesario
Usted tendrá que enlazar el código de libdbus- C++ y que lo instale también en el destino.
Puede usar los objetos proxy generados para acceder a la funcionalidad completa de los auriculares, ¡puede ser útil para mucho más que simplemente presionar un botón!
Cuestiones relacionadas
- 1. Bluez Architecture: explique esta arquitectura
- 2. iPhone - detectar dispositivos bluetooth cercanos
- 3. ¿Dónde puedo encontrar documentación para BlueZ?
- 4. Usando Bluetooth en Android Emulator
- 5. ¿Enviar archivo usando Android bluetooth?
- 6. JavaScript detectar un evento AJAX
- 7. l2cap servidor/cliente usando IOBluetooth (pila bluetooth osx)
- 8. Linux programación de Bluetooth en c
- 9. Detectar combinación de evento clave
- 10. Android 2.1 Detectar conexión/desconexión de audio Bluetooth
- 11. iOS detectar puntos de conexión WiFi o dispositivos Bluetooth
- 12. Detectar evento de teclado en C
- 13. Android detectar evento de bloqueo del teléfono
- 14. Detectar evento de primer plano de aplicación
- 15. cómo detectar el evento pegar en excel
- 16. Detectar evento de selección de AutoCompleteExtender
- 17. ¿Hay algún evento para detectar cuándo se atenúa la pantalla?
- 18. detectar elementos desbordan usando jQuery
- 19. cómo detectar flash usando SWFObject
- 20. Linux Bluetooth l2ping con intensidad de señal
- 21. ¿Cómo puedo detectar un evento KeyPress en UITextField?
- 22. Evento desencadenante usando Jquery en cambio CSS?
- 23. Cómo detectar el toque del usuario con phonegap usando JS
- 24. Protocolo Bluetooth?
- 25. Bluetooth remoto
- 26. ¿Cómo encontrar los dispositivos en el rango usando bluetooth?
- 27. Cómo desvincular un dispositivo bluetooth usando android 2.1 sdk
- 28. ¿Cómo medir la distancia entre dos dispositivos iphone usando bluetooth?
- 29. Comunicación serial con Arduino UNO y Mac usando bluetooth mate
- 30. Conexión init sin sincronización usando Bluetooth Low Energy en Android
¿Has tenido algún éxito? – Schrieveslaach