AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung BluetoothLE: Probleme seit dem letzten Windows-Update

BluetoothLE: Probleme seit dem letzten Windows-Update

Ein Thema von philipp.hofmann · begonnen am 25. Nov 2018 · letzter Beitrag vom 10. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2   
philipp.hofmann

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

BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 25. Nov 2018, 19:50
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:
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
Grüße, Philipp
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.812 Beiträge
 
Delphi 12 Athens
 
#2

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 29. Nov 2018, 20:30
Evtl. kann die kostenpflichtige Drittanbieter Biblothek WCL (Wireless Communication Library) da mehr?
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 30. Nov 2018, 14:14
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.812 Beiträge
 
Delphi 12 Athens
 
#4

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 1. Dez 2018, 08:19
Ja, das stimmt, aus dem originalen Beitrag ging aber auch nicht daraus hervor, dass Cross-Plattform Fähigkeit ein Thema ist.
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 21. Dez 2018, 14:12
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.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.812 Beiträge
 
Delphi 12 Athens
 
#6

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 23. Dez 2018, 14:36
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
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 23. Dez 2018, 15:23
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.
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 10. Mär 2020, 10:41
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.
  Mit Zitat antworten Zitat
Rollo62

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 10. Mär 2020, 10:44
Ich kenne IPWorks BLE jetzt nicht, aber könnte man die "good parts" von Beiden nicht kombinieren ?
  Mit Zitat antworten Zitat
philipp.hofmann

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

AW: BluetoothLE: Probleme seit dem letzten Windows-Update

  Alt 10. Mär 2020, 11:10
Glaube spontant nicht, IPWorks paired nicht die Devices und somit bleibt das Device für TBluetoothLE unnutzbar.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz