Mehrere BLE-Verbindungen mit Linux und Bluez 5.0

Ich bin derzeit versucht, eine Verbindung zu mehreren BLE Geräte mit BlueZ 5.0 und Linux. Ich habe einen host-BLE-adapter, und ich geändert haben, die gatttool zu verbinden und diese Funktion ausführen. Wenn ich eine Instanz der geänderten gatttool, habe ich mich erfolgreich verbinden und eine Benachrichtigung erhalten Daten aus der BLE-Gerät. Wenn ich starten Sie eine weitere Instanz der geänderten gatttool und eine Verbindung zu einem anderen von der BLE Gerät, diese Anwendung beginnt mit Erhalt der Mitteilung Daten sowohl von BLE-Geräten und die erstmalige Anwendung nicht mehr empfängt keine Daten. Ich glaube, dies ist aufgrund der socket-setup, bei dem beide Anwendungen konfigurieren Ihre Steckdosen an die gleiche Adresse und PSM (die neueste Instanz, die die Daten erhält, während der andere ist verhungert). Gibt es eine Möglichkeit zu verhindern, dass diese Bedingung? Im Idealfall, ich will eine Anwendung die Verbindung zu mehreren Geräten. Ich gehe davon aus, dass die Anwendung kann nur eine Buchse für den Grund, dass mehrere sockets haben das gleiche Problem wie die verschiedenen Instanzen vor. Meine BLE Gerät ist mit einem TI CC2540 Schlüsselanhänger-als ein Herzfrequenz-monitor.

  • Ist das nicht das, was Sie wollen? Wenn Sie möchten, eine Anwendung zum verbinden von mehreren Geräten, dann kann man es über eine einzige Buchse. Ich glaube, dass jede Nachricht durch kommt mit dem Gerät der BT-Adresse, so können Sie verbinden es mit dem rechten Gerät.
  • Ich verstehe jetzt, dass ich sollte ein sockel. Die ACL-Verbindung verarbeiten soll, verwendet werden, die Daten zu Separieren. Ich habe Schwierigkeiten beim Zugriff auf diese Griff über BlueZ. Buchse(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) schafft die Steckdose. connect(sock, (struct sockaddr *) &addr, sizeof(addr)) verbindet den socket. Zugriff auf das handle mittels ioctl(socket, HCIGETCONNINFO, cr) gibt einen errno 2 (keine Datei). Die dest-Adresse korrekt ist. Meine erstellten Stecker oben gibt einen Wert von 5 in der Erwägung, dass der socket = hci_open_dev(dev_id) liefert den Wert 6. Gibt es einen besseren Weg, um diese zu behandeln.
  • Die ioctl(socket, HCIGETCONNINFO, cr) - Methode funktioniert gut für bluetooth-classic-Geräten, aber nicht BLE Geräte. Ich brauche eine Methode für den Zugriff auf die ACL-Daten-Griff für ein BLE-Gerät für die Paarung Zwecke. Ist das möglich mit BlueZ?
  • Ich habe ähnliches problem. Erläutern Sie bitte die Ergebnisse Ihrer Experimente?
InformationsquelleAutor user2321427 | 2013-04-25
Schreibe einen Kommentar