Einzelnen Beitrag anzeigen

philipp.hofmann

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

AW: BluetoothLE: ein Device wird unter MacOS nicht gefunden

  Alt 22. Apr 2021, 15:36
Ich benutze FBluetoothManagerLE.StartDiscovery.
Zitat:
(klar ich muss ja auch das 3500ms OnEndDiscoverDevices abwarten
Sind dies nicht 1.500ms? Ich warte immer 2.000ms damit dies passt. Dies scheint auch stabil zu sein.
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);

und für den Fall ohne Filter prüfe ich in
BluetoothLEDiscoverLEDevice(const Sender: TObject; const ADevice: TBluetoothLEDevice; Rssi: Integer; const ScanResponse: TScanResponse);
ob ADevice.ScannedAdvertiseData.ContainsServiceUUID(E rste-Filter-UUID)
or ADevice.ScannedAdvertiseData.ContainsServiceUUID(Z weite-Filter-UUID)
...
gilt und nur dann wird das Device eingebunden.

Damit werden alle meine Devices stabil gefunden, auch der Wahoo KICKR V5. Unter allen anderen OS geht es bisher ohne die Suche ohne Filter.
Es ist jetzt aber so eingebaut, dass ich dies jederzeit einfach auf andere OS erweitern kann. Dies sind nur 3 {$IF defined(...)-Stellen im Code.
  Mit Zitat antworten Zitat