Einzelnen Beitrag anzeigen

dudi

Registriert seit: 21. Dez 2004
7 Beiträge
 
#1

BLE auf Android furchtbar langsam

  Alt 18. Sep 2023, 16:02
Ja Moin,
ich weiß nicht genau ob ich überhaut weitermachen soll, oder ob das sinnlos ist.
Wir haben vor Jahren eine eine BLE-App unter Win10 entwickelt, die 1Khz Daten von einem Messgerät über BLE in Echtzeit sendet. Das funktioniert gut.
Das ganze setzt auf der Win10 API auf und ist im CBuilder geschrieben worden. Jetzt war die Idee, es auch auf Android und Apfel laufen zu lassen.
Ich habe jetzt eine kleine Anwendung geschrieben, um zu sehen wie sich das ganze verhält. Ich setze auf FMX auf und benutze das BLE-Objekt. Unter Windows läuft es, wie erwartet und liefert mir alle Daten in Echtzeit ab. Unter Android ist es eine Katastrophe! Es gehen zwar keine Daten verloren, aber die App läuft mit einen Faktor 3 nach. Das heißt, halte ich den Datenstrom an, bekomme ich noch eine ganze weile Daten. 1500 Datenpakete bekommen, das device Stromlos gemacht, dann sind noch 4000 Datenpakete nachgelaufen. Ich habe verschiedene Android-Geräte mit verschiedenen OS-Versionen getestet.

Jetzt meine Fragen. Die Daten sind ja da, warum werden die so langsam durchgereicht? Ist das ein Problem vom BLE-Objekt?
Liegen da noch irgendwelche Javaschichten zwischen? Was macht das so furchtbar langsam? Die Daten werden automatisch per Notify gesendet.
Die einzelnen Datenpaket kommen in der Funktion BluetoothLE1CharacteristicRead an, aber immer nur Blockweise, typisch 20Bytes. Gibt's eine Möglichkeit alle vorhandenen Datenblöcke am Stück einzulesen?
Hat jemand eine Idee?
  Mit Zitat antworten Zitat