Force New Connection
Add functionalities for https://github.com/lathoub/Arduino-BLE-MIDI/issues/40 issue.
This commit is contained in:
parent
5c42e14704
commit
dad42b4dde
|
|
@ -96,7 +96,7 @@ static uint32_t userOnPassKeyRequest()
|
|||
return passkey;
|
||||
};
|
||||
|
||||
/*
|
||||
/*
|
||||
###### BLE COMMUNICATION PARAMS ######
|
||||
*/
|
||||
/** Set connection parameters:
|
||||
|
|
@ -117,6 +117,23 @@ static uint32_t userOnPassKeyRequest()
|
|||
#define BLEMIDI_CLIENT_COMM_LATENCY 0 //
|
||||
#define BLEMIDI_CLIENT_COMM_TIMEOUT 200 //2000ms
|
||||
|
||||
/*
|
||||
###### BLE FORCE NEW CONNECTION ######
|
||||
*/
|
||||
|
||||
/**
|
||||
* This parameter force to skip the "soft-reconnection" and force to create a new connection after a disconnect event.
|
||||
* "Soft-reconnection" save some time and energy in comparation with performming a new connection, but some BLE devices
|
||||
* don't support or don't perform correctly a "soft-reconnection" after a disconnection event.
|
||||
* Uncomment this define if your device doesn't work propertily after a reconnection.
|
||||
*
|
||||
*/
|
||||
#define BLEMIDI_FORCE_NEW_CONNECTION
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
#############################################
|
||||
############ USER DEFINES END ###############
|
||||
|
|
@ -340,6 +357,13 @@ protected:
|
|||
_bluetoothEsp32->disconnected();
|
||||
}
|
||||
|
||||
#ifdef BLEMIDI_FORCE_NEW_CONNECTION
|
||||
// Renew Client
|
||||
NimBLEDevice::deleteClient(pClient);
|
||||
//NimBLEDevice::createClient();
|
||||
pClient = nullptr;
|
||||
#endif // BLEMIDI_FORCE_NEW_CONNECTION
|
||||
|
||||
//Try reconnection or search a new one
|
||||
NimBLEDevice::getScan()->start(1, scanEndedCB);
|
||||
}
|
||||
|
|
@ -481,6 +505,7 @@ bool BLEMIDI_Client_ESP32::connect()
|
|||
{
|
||||
using namespace std::placeholders; //<- for bind funtion in callback notification
|
||||
|
||||
#ifndef BLEMIDI_FORCE_NEW_CONNECTION
|
||||
/** Check if we have a client we should reuse first
|
||||
* Special case when we already know this device
|
||||
* This saves considerable time and power.
|
||||
|
|
@ -512,6 +537,7 @@ bool BLEMIDI_Client_ESP32::connect()
|
|||
NimBLEDevice::deleteClient(_client);
|
||||
_client = nullptr;
|
||||
}
|
||||
#endif //BLEMIDI_FORCE_NEW_CONNECTION
|
||||
|
||||
if (NimBLEDevice::getClientListSize() >= NIMBLE_MAX_CONNECTIONS)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue