Bluetooth Virtuelle Com-Ports
-
Hallo Gemeinde,
Mit BlueSoleil verbinde ich mich mit einem Bluetooth-Gerät.
Mit C++ stelle ich dann über den vergebenen Com-Port von BlueSoleil eine Verbidung mithCom = CreateFile( pcCommPort, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0 ); her.
Mit
array<String^>^ serialPorts = SerialPort::GetPortNames();
kann ich festellen, welche Ports überhaupt existieren und diese können dann in einem Menü (Grafische Oberfläche mit Qt) ausgewählt werden.
Das Problem ist jetzt eine automatische Verbindung. Meine Kunden würden gerne auf "automatisch verbinden" klicken und dann geschieht alles automatisch.
Ich muss also die Com-Ports einzeln öffnen, eine definierte Erkennung senden und schauen, ob ich eine Antwort erhalte. Dies klappt auch ganz gut. Allerdings erstellt BlueSoleil bei mir 10 virtuelle Ports. Wenn ich jetzt alle öffne und abfrage, dann ist das nicht sehr effizient, weil ja nur ein Port wirklich genutzt wird.
Gibt es eine Möglichkeit festzustellen, welche Geräte überhaupt über Bluetooth verbunden sind?
-
Warum tust Du überhaupt C++ und C++/CLI mischen, dazu noch im selben Bereich (serielle Schnittstelle)? Mir ein Rätsel wie man das machen kann...
-
weil ich mit GetPortNames() ein Funktion gefunden hatte, die mir die vorhandenen Ports angibt. Hatte sonst nicht Vergleichbares gefunden.
-
Verwende liebr das hier:
http://www.naughter.com/enumser.html
Und deaktiviere .NET in Deinem Projekt... das macht keinen Sinn!
Siehe auch:
http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/
-
darkshine schrieb:
Gibt es eine Möglichkeit festzustellen, welche Geräte überhaupt über Bluetooth verbunden sind?
ja - öffnen und abfragen ... ein andere Möglichkeit hast Du nicht ... Du kannst das aber durchaus in Threads packen und parallel abfragen - sollte etwas Zeit sparen