AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android - BlueTooth LE Advertise Broadcast Bytes empfangen
Thema durchsuchen
Ansicht
Themen-Optionen

Android - BlueTooth LE Advertise Broadcast Bytes empfangen

Ein Thema von OrtmannMedia · begonnen am 18. Feb 2017 · letzter Beitrag vom 3. Mai 2017
 
OrtmannMedia
(Gast)

n/a Beiträge
 
#37

AW: Android - BlueTooth LE Advertise Broadcast Bytes empfangen

  Alt 2. Mai 2017, 18:56
Hallo Rollo,
auch danke für diese Info.
Inzwischen habe ich das recht brauchbar hinbekommen.
Nach recht langen Versuchen, dann auch ähnliche Sequenz wie von Dir.
Ja, scheint das DiscoverServices macht nen connect, wenn erforderlich.
Allerdings verhält sich DiscoverServices (bei mir) unterschiedlich stabil,
jenachdem wieviel Chars ich eingerichtet habe. Habe nun nach langen Versuchsreichen
beschlossen, immer Connect konkret zu verwensen, und dann erst nach Erfolg DiscoverServices.

DiscoverDevices selbst klappt sehr rasch.
Connect dagegen eben nur gelegentlich, das hab ich in eine Loop gepackt.
Muss man halt leider warten bis es verbindet.
Leider gibt Connect immer True zurück, auch wenn es nicht geklappt hat.
Ich verwende dann bei jedem Versuch IsConnected (statt die RSSI abzufragen), um zu
sehen ob die Verbinung tatsächlich geklappt hat. Das funktioniert zuverlässig.
Auch in meinem RN4871 Modul kommt dann gleichzeitig das Connect,
sobald es geklappt hat.
Ich habe 1 Private Service mit 2 Private Characteristics eingerichtet,
diese kann ich dann problemlos abfragen. Ich filtere die Suche dabei
"manuell" nach 128bit UUID.
Jedoch gibt es Probleme, wenn ich z.B. 4 oder mehr Characteristics einrichte.
Bei 4 klappt es gelegentlich nicht, und die Sucher dauert deutlich länger, bei 6 garnicht mehr.
Bei 2 jedoch immer, bisher absolut zuverlässig, und auch ohne merkliche Suchzeit.
Also mache ich nur mit 2 Chars, mit je 20 Octets Daten.
Das passt eh gut. Eine nehme ich zum Senden an das RN4871, das andere
habe ich als Notification eingerichtet und darüber sendet das RN an meine App.
Somit habe ich bidirektionale Schnittstelle. Ist ja fast wie eine RS232/UART jetzt bei mir.
Wenn was nicht mehr klappt (connection verloren, IsConnect false),
gehe ich zurück, dann fängt es wieder an zu connecten usw.
und holt das nach, was nicht erledigt wurde.
Das gibt dann zwar eine Pause, aber irgendwann werden die Daten dann übertragen.
Und dann halt noch ein Timeout (zähler) insgesamt, wenn es halt wirklich nicht mehr geht.
Somit, denke ich ists zumindest ne Komplett-Lösung.
Nun muss ich mich noch mit Threads und so beschäftigen, damit das auch
nicht nur "so" bei mir zuhause klappt, sondern wirklich zuverlässig. Da werde ich sicher
noch andere Fragen posten hier... Aber so prinzipiell habe ich es hinbekommen.
Vielen Dank
  Mit Zitat antworten Zitat
 


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 13:50 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