Befehle über Bluetooth senden
-
Hallo,
ich versuche gerade einen Ansatz zu finden für ein C++ Programm, welches Befehle via Bluetooth versendet. Sowas ähnliches wie HTERM und TeraTerm über Windows oder Putty über Linux.
Das Programm soll unter Linux laufen.
Kann mir jemand nen Tip geben wie ich am Besten anfangen könnte?
Ich hatte überleg, ob ich den Bluetooth Adapter (USB) wie in einer Socket-Verbindung ansteuer. Aber ich bin mir da nicht so sicher.Ich danke schonmal!
LG
-
Die Frage hat was mit Linux und Bluetooth zun tun, aber so ziemlich gar nichts mit C++.
Kennst du schon dieses neue Teil im Internet, nennt sich google?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
BlueZ ist der Bluetooth Stack unter Linux. Die API Doku ist eher bescheiden, du wirst also nicht drumrum kommen früher oder später in den Source zu schauen.
Am Besten gehst du wie folgt vor:
Zuerst schau dir die Tools für die Linux Konsole an, vor allem hciconfig und hcitools. Lies die Manpages, versuch deine Bluetooth Devices damit zu finden und gegebenenfalls eine Verbindung aufzubauen (Pairing).Danach lad dir den BlueZ Sourcecode runter und lies den Sourcecode für diese Tools (im tools Ordner im bluez source archiv). Fang mit einfachen Sachen an wie einem Device Scan und arbeite dich dann langsam vor zu den komplizierteren Sachen. Notiere dir die wichtigsten Funktionsaufrufe ans BlueZ API und schlage die API Funktionen gegebenenfalls im BlueZ Source nach. Oft ist es nicht offensichtlich was ein bestimmter Parameter tut und du musst wirklich in die Implementierung rein. Der Code ist aber zum Großteil sehr übersichtlich. Das sollte dir einen ungefähren Überblick darüber geben wie der Spaß funktioniert.
Sobald du einen groben Überblick hast wie das API funktioniert solltest du anfangen selbst Democode zu schreiben. Einfacher Dateitransfer über RFCOMM zum Beispiel solltest du in einer Woche problemlos zum Laufen kriegen können.
Dann kannst Du dir Gedanken machen welches Protokoll für deine Anwendung am besten geeignet ist. Der Bluetooth Standard spezifiziert einen ganzen Haufen unterschiedlicher Protokolle, allerdings unterstützen die meisten Geräte nur einen kleinen Teil davon. Wahrscheinlich fährst du also mit einem Low-level Protokoll wie RFCOMM am Besten und implementierst dann alles weitere im Application Layer.
Es gibt derzeit keine portable Lösung für Bluetooth. Wenn du den Kram also später nach Windows oder OS X portieren willst, musst du den ganzen Low-level Quatsch mit einem anderen Stack nochmal implementieren. Behalte das im Hinterkopf und strukturiere deinen Code entsprechend falls du dir diese Option offenhalten willst.
-
Mich hat das Thema auch interessiert und habe das hier dazu gefunden:
http://people.csail.mit.edu/albert/bluez-intro/Weiter unten sind auch Beispiele in C. Vielleicht bringt es dir noch was.
mfg