![]() |
BluetoothLE: Probleme seit dem letzten Windows-Update
Hallo allerseits,
Windows speichert bei mir (auf drei Rechnern) seit dem letzten Update die gepairten BluetoothLE-Verbindungen nicht mehr. Die BluetoothLE-Implementierung von Delphi 10.2.3 und 10.3 kann unter Windows aber nur mit gepairten Verbindungen umgehen. Dies beißt sich leider und führt dazu, dass ich nach jedem Systemstart umständlich die Devices (Herzfrequenz, Watt-Pedal, RPM-Messung und Smart-Trainer-Rolle) unter Windows (bzw. mit Bluetooth LE Explorer) nochmals pairen muss, bevor mein Programm diese nochmals benutzen kann. Das Thema liegt auch schon beim Delphi-Support, aber hat hier jemand für das Probleme eine pfiffige Lösung? Selbst kann man das pairen aus Delphi heraus wahrscheinlich nicht anstoßen, oder? Ich kann zwar durch eine kleine Anpassung in System.Win.BluetoothWinRT das Device verbinden, dann finden sich aber keine Services (bzw. nur bei einem von vier Devices):
Delphi-Quellcode:
Grüße, Philipp
procedure TWinRTBluetoothLEDevice.CheckInitialized;
var LBLEDeviceAsyncOp: IAsyncOperation_1__IBluetoothLEDevice; begin if (FBluetoothLEDevice = nil) or FClosed then begin if FId = 0 then //Beginn alter Code // raise EBluetoothDeviceException.Create(SBluetoothLEDeviceNotPaired); //Ende alter Code //Beginn neuer Code begin if TAsyncOperation<IAsyncOperation_1__IBluetoothLEDevice>.Wait( TBluetoothLEDevice.Statics.FromBluetoothAddressAsync(FAddress), LBLEDeviceAsyncOp) = AsyncStatus.Completed then begin FBluetoothLEDevice := LBLEDeviceAsyncOp.GetResults; FClosed := False; if DeviceName = '' then FDeviceName := FBluetoothLEDevice.Name.ToString; FConnectionStatusChangeDelegate := TConnectionStatusChangeEventHandler.Create(Self); FBluetoothLEDevice.add_ConnectionStatusChanged(FConnectionStatusChangeDelegate); end; end //Ende neuer Code else if TAsyncOperation<IAsyncOperation_1__IBluetoothLEDevice>.Wait( TBluetoothLEDevice.Statics.FromIdAsync(FId), LBLEDeviceAsyncOp) = AsyncStatus.Completed then |
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Evtl. kann die kostenpflichtige Drittanbieter Biblothek WCL (Wireless Communication Library) da mehr?
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Zumindest WCL supported nur Windows (VCL), dann müsste ich jetzt je nach Plattform ein anderes Framework nutzen. Wäre nicht im Sinne des Erfinders.
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Ja, das stimmt, aus dem originalen Beitrag ging aber auch nicht daraus hervor, dass Cross-Plattform Fähigkeit ein Thema ist.
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Ich habe jetzt schon mal die IP*Works-Implementierung (TiplBLEClient) von BLE für Delphi ausprobiert. Diese bedingt kein Pairing, aber gerade bei der parallelen Nutzung von mehreren Devices kommt dort sehr häufig die Fehlermeldung, dass das Device nicht erreichbar ist. Entweder gibt es dafür eine Lösung oder dies ist auch keine Alternative.
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Schon mal bei deren Support um Rat gefragt?
Evtl. wissen die etwas oder es ist denen noch unbekannt, dann ist es evtl. eine Hilfe für die, das zu lerenen, damit es jemand analysieren und evtl. reparieren kann. Wenn's dumm läuft, liegt's aber auch am Verhalten der Gegenstellen. Ansonsten: Frohe Weihnachten TurboMagic |
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Ja, bin mit dem Support im Kontakt, aber am Ende ist es mehr selbst ausprobieren. Man muss desöfteren den DiscoverService-Befehl zweimal aufrufen, dann geht es meist. Und v.a. muss man DiscoverDevices (heißt bei IP*Works dort Scan) unterbrechen, wenn man ein Device gefunden hat und initialisiert. Erst danach wieder DiscoverDevice anwerfen und das zweite Device finden und initialisieren. Sehr mühsam (und teuer in Bezug auf die Lizenz), die beiden Implementierungen nebeneinander zu halten, wenn man bedenkt, dass es "nur" darum geht, dass bei TBluetoothLE das Pairen für Windows immer noch vorausgesetzt wird, es dieses unter Windows aber eigentlich nicht mehr wirklich gibt.
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Just for info: In meinen Windows-Versionen wird mittlerweile wieder das Pairing für BluetoothLE-Geräte gespeichert (war wohl nur ein Zwischenversuche von Microsoft für Windows 10 dies nicht mehr zu speichern). Damit kann man auch wieder die TBluetoothLE-Implementierung nutzen. Damit biete ich jetzt beides an, die IP-Works-BLE-Implementierung, die kein Pairing voraussetzt, aber manchmal das Programm crashen lässt und die TBluetoothLE-Implementierung, welche stabiler ist, aber einmaliges Pairing voraussetzt.
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Ich kenne IPWorks BLE jetzt nicht, aber könnte man die "good parts" von Beiden nicht kombinieren ?
|
AW: BluetoothLE: Probleme seit dem letzten Windows-Update
Glaube spontant nicht, IPWorks paired nicht die Devices und somit bleibt das Device für TBluetoothLE unnutzbar.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 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-2025 by Thomas Breitkreuz