- Próbujemy wykryć zdarzenie w C/C++.
- Używamy Bluez w systemie Linux jako naszej Bibliotece Bluetooth.
- Naszym celem jest uruchomienie zewnętrznego skryptu po uruchomieniu tego zdarzenia.
- W szczególności mamy zestaw słuchawkowy Motorola H730 z przyciskiem na nim i chcemy wykryć naciśnięcie tego przycisku.
- Połączyliśmy urządzenie bluetooth (hcitool) i możemy się z nim połączyć (bluez-test-audio), ale byłby zainteresowany migracją tego podejścia do C/C++.
Wyjście hcidump, kiedy urządzenie jest podłączone i przycisk jest wciśnięty jest:Bluetooth: Wykryj zdarzenie za pomocą usługi Bluez
HCI snifferem - analizator pakietów Bluetooth w wersji 2.2
urządzenia: hci0 snap_len: 1028 filtr 0xFFFFFFFFHCI Zdarzenie: Zmiana trybu (0x14) plen 6
Stan 0x00 uchwyt 21 tryb 0x00 przerwa 0
Tryb: Aktywny
Dane ACL: uchwyt 21 flag 0x02 dlen 17
L2CAP (d): CID 0x0041 Len 13 [PSM 0]
< danych ACL: uchwyt 21 flagi 0x00 dlen 14
L2CAP (d): CID 0x0047 Len 10 [PSM 0]
< danych ACL: uchwyt 21 flagi 0x00 dlen 22
L2CAP (d): cid 0x0047 len 18 [Psm 0] dane
< ACL: uchwyt 21 flagi 0x00 dlen 22
L2CAP (d): cid 0x0047 len 18 [Psm 0]
HCI zdarzenia : Liczba zakończonych pakietów (0x13) plen 5
uchwyt 21 pakietów 1
Dane 10 ACL: uchwyt 21 flagi 0x02 dlen 18
L2CAP (d): CID 0x0041 Len 14 [PSM 0]
< danych ACL: uchwyt 21 flagi 0x00 dlen 14
L2CAP (d): CID 0x0047 Len 10 [PSM 0]
HCI zdarzenia: liczba ukończonych pakietów (0x13) plen 5
uchwytu 21 paczki 1
HCI zdarzenia: liczba ukończonych pakietów (0x13) plEn 5
uchwytu 21 paczki 1
HCI zdarzenia: liczba ukończonych Pakiety (0x13) plen 5
uchwyt 21 pakietów 1
HCI zdarzenia: Zmiana trybu (0x14) plen 6
stan 0x00 obsługiwać trybu 21 przerwy między 0x02 2048
Mode: Sniff- Szukaliśmy dla dokumentacji bluetooth i nie miał wiele sukcesów.
Jak możemy wykryć zdarzenie bluetooth w C/C++ za pomocą Bluez?
7
A
Odpowiedz
0
hcidump jako zebrane są logi między hostem urządzenia i kontrolerem. Zdarzeniami są te, które kontroler wysłał do urządzenia hosta, a polecenia są wysyłane do hosta urządzenia.
Bluez Podręcznik programowania: http://people.csail.mit.edu/albert/bluez-intro/
1
zrobiłem coś podobnego w ubiegłym roku. Podejście, na które się zdecydowałem, polegało na użyciu libdbus-c++ do generowania obiektów/klas proxy w języku C++ w celu komunikowania się z bluez przez dbus.
- Określa interfejsy bluetooth wprowadzone przez zestaw słuchawkowy. Użyłem d-feet i zbadałem urządzenie, kiedy było podłączone. Możesz ręcznie sterować i odczytać stan z zestawu słuchawkowego, co przydało się do debugowania.
- Generowanie, wyszukiwanie lub tworzenie opisów wymaganych przez dbus xml. Zrobiłem to ręcznie, tłumacząc specyfikację api z bluez api documentation na xml, ale uważam, że można również utworzyć je za pomocą introspekcji dbus.
- Zastosowanie dbusxx-xml2cpp wygenerować proxy obiektów
- Ustal zwrotnego, która jest wywoływana, gdy przycisk jest wciśnięty
- Zintegruj proxy obiektów w kodzie wymagane
Musisz połączyć swój kod do libdbus- C++ i zainstaluj go również na celu.
Możesz użyć wygenerowanych obiektów proxy, aby uzyskać dostęp do całej funkcjonalności zestawu słuchawkowego, może się przydać o wiele więcej niż naciśnięcie przycisku!
Powiązane problemy
- 1. Bluez Programowanie
- 2. Jak wykonać skanowanie niskonapięciowe bluetooth przez bibliotekę BlueZ C
- 3. Wykryj zdarzenie select AutoCompleteExtender
- 4. Wykryj zdarzenie ładowania wielu obrazów
- 5. Wykryj zdarzenie Backspace w UITextField
- 6. Przenoszenie aktywności Bluetooth do usługi
- 7. Problemy z łącznością za pomocą Bluetooth Android
- 8. Bluetooth przez uart za pomocą hciattach?
- 9. Wykryj zdarzenie Zamykanie okien przez Jquery
- 10. Wykryj tworzenie pliku za pomocą watchdog
- 11. Wykryj upuszczanie za pomocą jQuery sortable
- 12. Wykryj wersję systemu Windows za pomocą JavaScript
- 13. Wykryj wprowadzoną postać za pomocą JavaScriptu
- 14. Między przeglądarkami: wykryj zdarzenie rozmycia w oknie
- 15. Wykryj zdarzenie zamontowania dysku w języku C#
- 16. Urządzenia do automatycznego ponownego łączenia urządzeń Bluez
- 17. Wykrywanie usług zakończone niepowodzeniem za pomocą Bluetooth na Androidzie
- 18. Próba utworzenia pierwszej usługi za pomocą usługi Jersey
- 19. Jak mogę połączyć się z FitBit Zip przez Bluetooth 4.0 LE w systemie Linux z bluez?
- 20. Przesyłanie zdjęć za pomocą usługi Facebook iOS
- 21. Odczytywanie kluczy rejestru za pomocą usługi WMI
- 22. Tworzenie użytkowników za pomocą usługi Passport
- 23. Uwierzytelnianie za pomocą usługi przy użyciu tokenów
- 24. Hosting usługi WCF za pomocą Net.TCP
- 25. Skrobanie odpowiedzi JSON za pomocą usługi Scrapy
- 26. Załaduj NgModule entryComponents dynamicznie za pomocą usługi
- 27. Rejestracja usługi internetowej za pomocą Eureka
- 28. Monitoruj usługi Windowsa za pomocą cygwin
- 29. Zarządzanie projektem krzyżowym za pomocą konta usługi
- 30. Jak wydrukować pokwitowanie faktury za pomocą drukarki termicznej Bluetooth
Czy odniosłeś jakiś sukces? – Schrieveslaach