AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi BluetoothLE: ein Device wird unter MacOS nicht gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

BluetoothLE: ein Device wird unter MacOS nicht gefunden

Ein Thema von philipp.hofmann · begonnen am 20. Apr 2021 · letzter Beitrag vom 23. Apr 2021
Antwort Antwort
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
912 Beiträge
 
Delphi 10.4 Sydney
 
#1

BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 16:43
Hi,

mit meiner App suche ich per
ble.DiscoverDevices(4000,TBluetoothUUIDsList)
nach BLE-Devices.

Dabei suche ich die beiden folgenden Services:
{00001818-0000-1000-8000-00805F9B34FB}
{00001826-0000-1000-8000-00805F9B34FB}

Ein ganz bestimmtes, neues Device wird unter Windows, Android und iOS anstandslos gefunden. Unter MacOS findet er dieses Device einfach nicht.
Wenn ich mit BlueSee alle BLE-Devices anschaue, dann taucht mein Device in der Liste auf. Andere Devices werden unter MacOS problemlos gefunden.
Ich habe es auch schon mit einem anderen Zeit-Setting ausprobiert.

Wenn ich aber ohne TBluetoothUUIDsList suchen gehe, taucht mein gewünschtes Device in der Liste auf, aber eben auch tausend andere, die ich gar nicht haben will.
Das bedeutet ich muss für MacOS meine Routine, wie ich die gewünschten Devices suchen gehe, komplett umbauen und mir den Namen der Devices geben lassen und auf der Basis entscheiden,
ob ich das Device nutzen möchte.

Was kann hier der Grund sein? Warum kann ich für MacOS genau für dieses eine Device (andere Devices von dem Hersteller, aber ältere Version funktionieren) nicht wie gehabt mit der TBluetoothUUIDsList als Filter suchen gehen?

Grüße, Philipp
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.164 Beiträge
 
Delphi 12 Athens
 
#2

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 18:21
Die UUID Filter hatten bei mir noch nie richtig sauber funktioniert.
Ich meine auch nicht unter iOS/Android, deshalb hatte ich die mal auf Wiedervorlage gelegt.
Es könnte auch sein das nur Macos Probleme macht, kann ich nicht mehr sagen, zuletzt mit XE8 oder so getestet.

Gibt es was das hier mit Rx1042 Testen könnte, z.B ein Beispiel von Embarcadero ?
Das ExploreLEDevices Demo, da könnte ich schnell mal ein Filter reinbauen.

Es gibt da glaube ich zwei Arten der Filterübergabe (Parameter), welche genau benutzt Du dafür ?
Vielleicht ein kleines Beispie wie der Aufruf bei Dir konkret aussehen soll.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
912 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 19:29
Das Problem ist, dass du ja nicht mit genau diesem Device (es geht um einen Wahoo KICKR V5) testen können wirst.
Alle anderen Rollentrainer funktionieren ja problemlos. Daher wird ein Test-Beispiel nicht so viel bringen.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.164 Beiträge
 
Delphi 12 Athens
 
#4

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 20:20
Ich kann eine UUID von meinen Geräten hier angeben, das sollte doch egal sein.
Ich arbeite allerdings nicht mit GATT Profilen, sondern mit UUID-128 Bit.
Vielleicht habe ich noch ein GATT-Teil irgendwo rumliegen, da muss ich aber suchen.
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
912 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 20:50
Hi Rollo,

anbei das angepasste ExplorerDeviceLE-Beispiel, wo beim Discovery die Liste übergeben wird.
Aktuell gehe ich davon aus, dass ich im Wechsel mit und ohne Liste scannen muss und ohne Liste am Namen erkenne, dass das von mir gewünschte Device dabei ist.

Grüße, Philipp
Angehängte Dateien
Dateityp: zip ExplorerDeviceLE.zip (144,5 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Delami

Registriert seit: 25. Mai 2006
27 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 20. Apr 2021, 23:57
Ich hab festgestellt, das weder die eine (TBluetoothUUIDsList) noch die andere Liste (TBluetoothLEScanFilterList) wirklich verlässlich funktioniert, wenn nach mehr als einer Service UUID gesucht wird (Win und MacOS).
Ich filtere im Anschluss an das scannen manuell:
was nicht über (BluetoothLE.DiscoveredDevices[i].ScannedAdvertiseData.ContainsServiceUUID(MeineLis te[K].UUID)) passt wird aus der Liste gelöscht.
-> BluetoothLE.DiscoveredDevices.Remove(BluetoothLE.D iscoveredDevices[i]);
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz