Fixed not being able to pair with Windows when using NimBLE

and, consideration for boards that don't implement the `LED_BUILTIN` constant
This commit is contained in:
wakwak_koba 2020-10-23 08:12:52 +09:00
parent 9b41d732ef
commit ab02fbc108
4 changed files with 24 additions and 6 deletions

View File

@ -17,8 +17,10 @@ void setup()
{ {
MIDI.begin(); MIDI.begin();
#ifdef LED_BUILTIN
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
BLEMIDI.setHandleConnected(OnConnected); BLEMIDI.setHandleConnected(OnConnected);
BLEMIDI.setHandleDisconnected(OnDisconnected); BLEMIDI.setHandleDisconnected(OnDisconnected);
@ -51,7 +53,9 @@ void loop()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnConnected() { void OnConnected() {
isConnected = true; isConnected = true;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
#endif
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
@ -59,7 +63,9 @@ void OnConnected() {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnDisconnected() { void OnDisconnected() {
isConnected = false; isConnected = false;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

View File

@ -19,8 +19,10 @@ void setup()
Serial.begin(115200); Serial.begin(115200);
while (!Serial); while (!Serial);
#ifdef LED_BUILTIN
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
BLEMIDI.setHandleConnected(OnConnected); BLEMIDI.setHandleConnected(OnConnected);
BLEMIDI.setHandleDisconnected(OnDisconnected); BLEMIDI.setHandleDisconnected(OnDisconnected);
@ -49,7 +51,9 @@ void loop()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnConnected() { void OnConnected() {
isConnected = true; isConnected = true;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
#endif
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
@ -57,7 +61,9 @@ void OnConnected() {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnDisconnected() { void OnDisconnected() {
isConnected = false; isConnected = false;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------

View File

@ -41,8 +41,10 @@ bool isConnected = false;
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void setup() void setup()
{ {
#ifdef LED_BUILTIN
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
BLEMIDI.setHandleConnected(OnConnected); BLEMIDI.setHandleConnected(OnConnected);
BLEMIDI.setHandleDisconnected(OnDisconnected); BLEMIDI.setHandleDisconnected(OnDisconnected);
@ -75,7 +77,9 @@ void loop()
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnConnected() { void OnConnected() {
isConnected = true; isConnected = true;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED_BUILTIN, HIGH);
#endif
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
@ -83,5 +87,7 @@ void OnConnected() {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void OnDisconnected() { void OnDisconnected() {
isConnected = false; isConnected = false;
#ifdef LED_BUILTIN
digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED_BUILTIN, LOW);
#endif
} }

View File

@ -128,17 +128,17 @@ bool BLEMIDI_ESP32_NimBLE::begin(const char* deviceName, BLEMIDI_Transport<class
); );
_characteristic->setCallbacks(new MyCharacteristicCallbacks(this)); _characteristic->setCallbacks(new MyCharacteristicCallbacks(this));
auto _security = new NimBLESecurity();
_security->setAuthenticationMode(ESP_LE_AUTH_BOND);
// Start the service // Start the service
service->start(); service->start();
auto advertisementData = BLEAdvertisementData();
advertisementData.setFlags(0x04);
advertisementData.setCompleteServices(BLEUUID(SERVICE_UUID));
advertisementData.setName(deviceName);
// Start advertising // Start advertising
_advertising = _server->getAdvertising(); _advertising = _server->getAdvertising();
_advertising->setAdvertisementData(advertisementData); _advertising->addServiceUUID(service->getUUID());
_advertising->setAppearance(0x00);
_advertising->start(); _advertising->start();
return true; return true;