Einzelnen Beitrag anzeigen

Rollo62

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

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 23. Apr 2021, 08:40
Zitat:
(klar ich muss ja auch das 3500ms OnEndDiscoverDevices abwarten
Sind dies nicht 1.500ms? Ich warte immer 2.000ms damit dies passt.
Ja sorry, mein Typo.
Ich habe da generell 3500ms, um dem Phone etwas mehr Zeit zu geben.

Wie gesagt, ich mache jetzt auf dem Mac immer ein

BluetoothManagerLE.StartDiscovery(4000,Erste-Filter-UUID);
BluetoothManagerLE.StartDiscovery(4000,Zweite-Filter-UUID);
...
BluetoothManagerLE.StartDiscovery(4000);
Ich habe gestern mit dem Demo 1:1 getestet, weil ich dachte das ging schon nicht.
Da war bei einem Filter aber Alles OK, er findet auch mehrere gleiche Geräte.
Gerade habe mit 2. Filter getestet, das geht dann nicht mehr, findet weder das eine noch das Andere.

Delphi-Quellcode:
  
  TRAINER_SERVICE_WAHOO: TBluetoothUUID = '{0000FFB0-0000-1000-8000-00805F9B34FB}';
  TRAINER_SERVICE_OTHER: TBluetoothUUID = '{00000020-0000-1000-8000-00805F9B34FB}';
  ...
  bluetoothLEDeviceTypeHelpList.add( TRAINER_SERVICE_WAHOO ); //<== stimmt ,es geht nur mit einem Service in der Liste
  bluetoothLEDeviceTypeHelpList.add( TRAINER_SERVICE_OTHER );
Ich denke genau deshalb hatte ich das schon vor Jahren zu den Akten gelegt.
Nur hatte ich damals auch Probleme auf iOS und Android, soweit ich noch sagen kann,
deshalb wundert es mich das es jetzt bei Dir damit funktioniert.

Analyse im OnDiscoverLEDevice:
Ich mache es im Prinzip auch so, nur es kommen im BluetoothLEDiscoverLEDevice gerne 4-5 mal das gleiche Device, deshalb speichere ich das Ergebnis nur EINMAL in ein Dictionary (oder Map), und werte das erst später im OnEndDiscoverDevices aus.
Die ganzen Uninteressanten, insbesondere z.B. die mit DeviceName = '', lade ich gar nicht erst ins Dictionary, und halte es dabei schön sauber.
Weil das Analysieren und Holen der Service UUID auch wieder mehr Zeit kostet.

Geändert von Rollo62 (23. Apr 2021 um 08:43 Uhr)
  Mit Zitat antworten Zitat