From: jacob.eva Date: Wed, 16 Oct 2024 15:15:29 +0000 (+0100) Subject: Fix BLE service duplication bug on nRF52 X-Git-Url: https://git.tnoah.ca/?a=commitdiff_plain;h=ef80c2638c1a1bc3239bd655712dbca585edbb01;p=lora-radio.git Fix BLE service duplication bug on nRF52 --- 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();