From fdc7df10243743278ff40ade81bc8cfd43cf1a75 Mon Sep 17 00:00:00 2001 From: Arjan Filius Date: Fri, 11 Jan 2019 19:41:36 +0100 Subject: [PATCH] Implement setTXpower() for custom BLE advertisement --- src/BLEAdvertising.cpp | 14 ++++++++++++++ src/BLEAdvertising.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/BLEAdvertising.cpp b/src/BLEAdvertising.cpp index 230d77c..fbf1195 100644 --- a/src/BLEAdvertising.cpp +++ b/src/BLEAdvertising.cpp @@ -464,6 +464,20 @@ void BLEAdvertisementData::setShortName(std::string name) { } // setShortName +/** + * @brief Set the TXPower parameter. + * @param [in] TXpower to include in the payload. + * + */ +void BLEAdvertisementData::setTXPower(uint8_t TXPower) { + char cdata[3]; + cdata[0] = 2; + cdata[1] = ESP_BLE_AD_TYPE_TX_PWR; // 0x0A + cdata[2] = TXPower; + addData(std::string(cdata, 3)); +} // setTXPower + + /** * @brief Retrieve the payload that is to be advertised. * @return The payload that is to be advertised. diff --git a/src/BLEAdvertising.h b/src/BLEAdvertising.h index 3128b50..9850ac1 100644 --- a/src/BLEAdvertising.h +++ b/src/BLEAdvertising.h @@ -30,6 +30,7 @@ class BLEAdvertisementData { void setPartialServices(BLEUUID uuid); void setServiceData(BLEUUID uuid, std::string data); void setShortName(std::string name); + void setTXPower(uint8_t TXPower); void addData(std::string data); // Add data to the payload. std::string getPayload(); // Retrieve the current advert payload.