From ef80c2638c1a1bc3239bd655712dbca585edbb01 Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Wed, 16 Oct 2024 16:15:29 +0100 Subject: [PATCH] Fix BLE service duplication bug on nRF52 --- Bluetooth.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Bluetooth.h b/Bluetooth.h index ee3964e..60cf86a 100644 --- a/Bluetooth.h +++ b/Bluetooth.h @@ -32,6 +32,7 @@ BLEUart SerialBT; BLEDis bledis; BLEBas blebas; + bool SerialBT_init = false; #endif #define BT_PAIRING_TIMEOUT 35000 @@ -502,10 +503,14 @@ void bt_disconnect_callback(uint16_t conn_handle, uint8_t reason) { // start device information service bledis.begin(); - SerialBT.bufferTXD(true); // enable buffering + // Guard to ensure SerialBT service is not duplicated through BT being power cycled + if (!SerialBT_init) { + SerialBT.bufferTXD(true); // enable buffering - SerialBT.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); // enable encryption for BLE serial - SerialBT.begin(); + SerialBT.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); // enable encryption for BLE serial + SerialBT.begin(); + SerialBT_init = true; + } blebas.begin();