Stack unabhängige c / c ++ Bluetooth API?

8


Ich wollte wissen, ob es eine Stack-unabhängige C / C ++ - Bluetooth-API für Windows (XP, Vista, 7, x86 und x64) gibt.

Mein Ziel ist es, eine Verbindung herzustellen und zeitkritische Daten über Bluetooth zu senden / empfangen.

Meine Recherchen haben mir folgende Möglichkeiten und Nachteile für diese Aufgabe gegeben:

  • Windows Sockets für Bluetooth
    Funktioniert nur mit Microsoft Bluetooth Stack
  • Verwenden des COM-Anschlusses (CreateFile / ReadFile / ...)
    Langsamer als die Socket-Option und der Benutzer muss zuerst eine Verbindung zum Gerät herstellen.
  • Stapelabhängige API verwenden
    Dies würde erfordern, den verwendeten Stapel zu erkennen und Lese- / Schreibfunktionen für jeden Stapel zu erstellen. Sehr zeitaufwendig und ich weiß nicht, ob es überhaupt möglich ist, alle Stacks zu unterstützen
  • Schreiben eines KMDF-Treibers
    Ich dachte daran, einen Funktionstreiber zu schreiben, um direkt mit dem Bluetooth-HCI-Treiber zu sprechen, der stapelunabhängig sein sollte. Dies wäre sehr zeitaufwendig, weil ich die gesamte Bluetooth-Spezifikation lesen müsste, oder gibt es eine API für die HCI-Befehle?

Ich weiß, dass es auch einen kommerziellen SDK von btframework.com gibt, der die meisten (oder alle) Bluetooth-Stacks unterstützt, aber ich brauche eine Freeware-Option.

Bitte sagen Sie mir, ob es weitere Möglichkeiten für diese Aufgabe gibt.
Wenn es keine gibt, könnten Sie mir sagen, welche Optionen Sie bevorzugen würden und warum?
Ist es in Ordnung, Windows Sockets zu verwenden und die anderen Bluetooth-Stacks zu ignorieren?

Danke für Ihre Hilfe:)

    
lolo 08.05.2011, 16:04
quelle

2 Antworten

4

Ich denke, eine Option wäre die Verwendung von C ++ / CLI als Schnittstelle zu meiner verwalteten Bluetooth-Bibliothek 32feet.NET, die die meisten Stacks unter Windows unterstützt. Ссылка

    
alanjmcf 09.05.2011, 12:37
quelle
3

Ich habe diese Bibliothek erfolgreich verwendet. Sie heißt WCL, ist aber nicht kostenlos. Damit können Sie sich über SPP verbinden, ohne einen virtuellen COM-Port erstellen zu müssen.

Obwohl ihre Dokumentation nicht sehr gut ist, bieten sie einen guten Demo-Code, den Sie vielleicht ausprobieren möchten.

Es unterstützt die Microsoft-, Toshiba-, Widcomm- und Bluesoleil-Stacks und es gibt eine native C ++ - Implementierung (sowie eine .NET-Version).

    
Jet 24.08.2012 09:00
quelle

Tags und Links