Hallo,
wie kann man testen ob eine BLE Verbindung vom ESP32 Client zu einem Server noch besteht.
Ich möchte bei Bedarf den Scan-Vorgang erneut starten um die Verbindung herzustellen.
Vielen Dank für eure Hilfen.....
Gruß Jürgen
Hallo,
wie kann man testen ob eine BLE Verbindung vom ESP32 Client zu einem Server noch besteht.
Ich möchte bei Bedarf den Scan-Vorgang erneut starten um die Verbindung herzustellen.
Vielen Dank für eure Hilfen.....
Gruß Jürgen
Es gibt doch ein Event für Disconnect.
Hallo,
Danke für den Hinweis. Ich denke auch, dass es da irgendetwas gibt in der BLEDevice.h
Ich konnte es nur noch nicht herausfinden.
Vielleicht kannst Du mir da noch auf die Sprünge helfen.
Bin da auch nicht sosehr erfahren.
Ich nutze die BLEDevice.h Lib.
Vielen Dank.... Gruß Jürgen
Bei mir schaut das ganze dann so aus:
class ServerCallbacks : public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
Serial.println("Device connected!");
BT_Connected = true;
};
void onDisconnect(BLEServer* pServer) {
Serial.println("Device disconnected!");
BT_Connected = false;
delay(500); // Give the Bluetooth stack the chance to get things ready
pServer->startAdvertising(); // Advertising restart
Serial.println("Waiting for a connection...");
};
};
Wichtig ist hierbei, dass man sowohl die ServerEvents nutzen kann, als auch die des Clients, wo dann auch die Nachrichten empfangen werden können.
Vielen Dank für das Beispiel,
ich werde es demnächst mal bei mir testen.
Viele Grüße...
Hallo,
Ich habe dieses hier gefunden:
class MyClientCallback : public BLEClientCallbacks {
void onConnect(BLEClient* pclient) {
Serial.println("onConnect 230 ");
}
void onDisconnect(BLEClient* pclient) {
connected = false;
Serial.println("onDisconnect 235 ");
}
};
Mein ESP32 ist der Client.
Wenn ich das mit den Events richtig verstehe sollte bei einem ersten Connect
die Routine "onConnect" aufgerufen werden und wenn die Verbindung
verloren geht "onDisconnect".
Ist das so richtig?
Gruß Jürgen
Nein, auf den ersten Blick ist das die falsche Stelle.
Wie vorher beschrieben, gibt es Server und Client Callbacks.
class ServerCallbacks : public BLEServerCallbacks
class MyClientCallback : public BLEClientCallbacks
Und da sind die Events eben unterschiedlich.
Hallo,
also, wie schon geschrieben, ich nutze den ESP32 als BLE Client.
Bei der von mir beschriebenen:
class MyClientCallback : public BLEClientCallbacks { ...
kommt eine Raktion bei einem Connect und anschließenden Disconnect...
Ich hatte dann mal noch die von Dir gezeigte
class ServerCallbacks : public BLEServerCallbacks { ...
getestet, da kam keine Reaktion bei mir.
Aber mit dieser "Event" Sache hast Du mich wohl auf einen richtigen Weg gebracht.
So hoffe ich jedenfalls.
Ich möchte das eigentlich dafür nutzen, falls die Verbindung mal verloren geht einen
Neu-Scan anzuregen...
Vorher hatte ich lange mit " bleDevice.connected() " getestet, bin aber nicht zu einem Erfolg gekommen...
Viele Grüße
Jürgen
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.