i'm using two ble esp32,esp server takes 6sec to detect disconnection of esp client, how do i reduce this time to 1sec ?
Posted: Mon May 23, 2022 2:43 pm
- #include <BLEDevice.h>
- #include <BLEUtils.h>
- #include <BLEServer.h>
- #define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
- #define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
- bool deviceConnected = false;
- //Setup callbacks onConnect and onDisconnect
- class MyServerCallbacks: public BLEServerCallbacks {
- void onConnect(BLEServer* pServer) {
- deviceConnected = true;
- };
- void onDisconnect(BLEServer* pServer) {
- deviceConnected = false;
- Serial.println("Client has disconnected");
- Serial.println("readvertising");
- BLEDevice::getAdvertising()->start(); // start advertising after disconnect
- }
- };
- void setup() {
- Serial.begin(115200);
- Serial.println("Starting BLE work!");
- BLEDevice::init("Long name works now");
- BLEServer *pServer = BLEDevice::createServer();
- BLEService *pService = pServer->createService(SERVICE_UUID);
- BLECharacteristic *pCharacteristic = pService->createCharacteristic(
- CHARACTERISTIC_UUID,
- BLECharacteristic::PROPERTY_READ |
- BLECharacteristic::PROPERTY_WRITE
- );
- pCharacteristic->setValue("Hello World says Neil");
- pService->start();
- // BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
- BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
- pAdvertising->addServiceUUID(SERVICE_UUID);
- pAdvertising->setScanResponse(true);
- pAdvertising->setMinPreferred(0x06); // functions that help with iPhone connections issue
- pAdvertising->setMinPreferred(0x12);
- BLEDevice::startAdvertising();
- Serial.println"Characteristic defined! Now you can read it in your phone!");
- }
- void loop() {
- // put your main code here, to run repeatedly:
- if(deviceConnected){
- // code to be executed
- }
- }