Hallo Jürgen,
Zitat:
wenn es mal connected war und ich disconnecte, oder
gehe so weit weg, bis es disconnected und connecte dann wieder innerhalb kurzer Zeit, v
Ja das sehe ich bei mir auch.
Ich denke dass das Phone die Settings speichert, umn schneller zu re-connecten.
Habe gesucht aber nicht allzuviel dazu gefunden, ich denke das ist Teil des Standards weil sich Android iOS da ähnlich verhalten.
Das würde auch Sinn machen, denn Funk kann öfters mal wegfallen, und wenn das Phone das dann automatisch
wieder einfangen kann wäre das von Vorteil.
Leider ist das bei mir auch nicht sehr vorhersehbar, insbesondere bei verschiedenen Module-Typen.
Beim RN4871 solltst du bestimmt die Advertisingrate einstellen können, leider habe ich viel mit Noname aus
Asien zu tun, wo man wenig bis keinen Einfluss drauf hat.
Da muss man nehmen was kommt.
Die Verbindung geht bei mir mittlerweile beim ersten, und nur bei manchen Geräten beim 2ten Versuch.
Ich glaube ich habe im Moment 4500ms - 5500ms Discovertime eingestellt.
Mit RSSI-Filter wollte ich auch schon arbeiten, habe aber festgestellt das die ScanFilter nicht zuverlässig arbeiten. Das geht bei manchen Geräten, aber es sind eben welche dabei die sich nicht nach Service filtern lassen.
Also kann ich die Filter nicht mehr benutzen.
Das ScanFilter nach ServiceUUID hatte sehr viel Stabilität reingebracht, deshalb hoffe ich immer noch das ich
da eine Lösung finde, so das alle anderen "Störsender" gar nicht mehr berücksichtigt werden.
So ähnlich wollte ich auch RSSI-Filter machen, habe aber gesehen das es so als Vorfilter gar nicht vorgesehen ist.
Also muss ich das filtern selber machen, im OnDiscoverDevice Event, was aber nicht so gut ist als wenn ich dem
StartDiscoverDevices schon einen Filter mitgebe.
Das Thema Disconnect/Reconnect war bei mir auch lange auf der Agenda: Verbinden OK, aber gezieltes Disconnect machte Probleme. Ich hatte da schon überall mal nachgesehen und nachgefragt, aber eine klar definierte Vorgehensweise gibt es da anscheinend nicht.
Auch Jim McKeeth hat da bei seinen Testgeräten nur Wert auf Verbindung gelegt, aber es wird nie berücksichtigt das man auch mal disconnecten möchte und sich woanders verbinden.
Naja, ich habe da jetzt halbwegs etwas zuverlässiges hingefrickelt, eine Mischung aus RSSI-Überwachung, OnDisconnect, KeepAlive-Signal und Reset aller möglichen BLE-Adapter und Manager.
Was ich schon gesehen habe ist das in machen Umgebungen eine ansonsten sehr stabile Verbindung ständig abbricht,
auch das ist vermutlich Teil der BLE-Standards, das soetwas immer passieren kann.
Ich bin bis dato aber davon ausgegangen das "connected" vom Phone auch möglichst gehalten wird, ala
TCP,
und notfalls automatisch wiederverbunden wird, s.o., solange es in Reichweite ist.
Das wird aber anscheinend auch nicht garantiert, jede kurze Unterbrechung muss ich selbst wiederverbinden.
Ich hoffe immer das von Version zu Version mal seitens Emba dran gearbeitet wird, aber ich sehe das eingentlich kaum an den BLE Kernels gearbeitet wird.
Vielleicht ist es ja auch gut so, denn im Moment fixe ich gerade die Änderungen seit 10.2 in anderen Bereichen.
Besonders blöd ist wenn eine laufende App nach einem Update plötzlich nicht mehr sauber läuft, das kommt seit XE8 leider immer wieder vor, aber die Tendenz ist zumindest das Fmx regelmäßig stabiler wird.
Rollo