From 149dff2ee25771f26b9331ff09dc875eb69eb3dd Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Thu, 30 Jan 2025 16:54:34 +0000 Subject: [PATCH] Guard against BT power cycle object duplication bug --- Bluetooth.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Bluetooth.h b/Bluetooth.h index bbb0c82..d14284f 100644 --- a/Bluetooth.h +++ b/Bluetooth.h @@ -38,6 +38,7 @@ BLEUart SerialBT(BLE_RX_BUF); BLEDis bledis; BLEBas blebas; + bool SerialBT_init = false; #endif #define BT_PAIRING_TIMEOUT 35000 @@ -511,12 +512,14 @@ char bt_devname[11]; // 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(); - - blebas.begin(); + SerialBT.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM); // enable encryption for BLE serial + SerialBT.begin(); + SerialBT_init = true; + } Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE); Bluefruit.Advertising.addTxPower();