Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 50 additions & 1 deletion src/NimBLEDevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -448,6 +448,20 @@ bool NimBLEDevice::setPower(int8_t dbm) {
NIMBLE_LOGD(LOG_TAG, ">> setPower: %d", dbm);
# ifdef ESP_PLATFORM
# ifndef CONFIG_IDF_TARGET_ESP32P4
# if defined(CONFIG_IDF_TARGET_ESP32S3) \
|| defined(CONFIG_IDF_TARGET_ESP32C3) \
|| defined(CONFIG_IDF_TARGET_ESP32C6) \
|| defined(CONFIG_IDF_TARGET_ESP32H2)
if (dbm >= 20)
dbm = ESP_PWR_LVL_P20;
else if (dbm >= 18)
dbm = ESP_PWR_LVL_P18;
else if (dbm >= 15)
dbm = ESP_PWR_LVL_P15;
else if (dbm >= 12)
dbm = ESP_PWR_LVL_P12;
else
# endif // CONFIG_IDF_TARGET_ESP32S3||C3||C6||H2
if (dbm >= 9) {
dbm = ESP_PWR_LVL_P9;
} else if (dbm >= 6) {
Expand All @@ -464,7 +478,26 @@ bool NimBLEDevice::setPower(int8_t dbm) {
dbm = ESP_PWR_LVL_N9;
} else if (dbm >= -12) {
dbm = ESP_PWR_LVL_N12;
} else {
}
# ifdef CONFIG_IDF_TARGET_ESP32C6
else if (dbm >= -15) {
dbm = ESP_PWR_LVL_N15;
}
# endif // CONFIG_IDF_TARGET_ESP32C6
# if defined(CONFIG_IDF_TARGET_ESP32S3) \
|| defined(CONFIG_IDF_TARGET_ESP32C3) \
|| defined(CONFIG_IDF_TARGET_ESP32H2)
else if (dbm >= -15) {
dbm = ESP_PWR_LVL_N15;
} else if (dbm >= -18) {
dbm = ESP_PWR_LVL_N18;
} else if (dbm >= -21) {
dbm = ESP_PWR_LVL_N21;
} else if (dbm >= -24) {
dbm = ESP_PWR_LVL_N24;
}
# endif // CONFIG_IDF_TARGET_ESP32S3||C3||H2
else {
NIMBLE_LOGE(LOG_TAG, "Unsupported power level");
return false;
}
Expand Down Expand Up @@ -501,6 +534,14 @@ int NimBLEDevice::getPower() {
# ifdef ESP_PLATFORM
# ifndef CONFIG_IDF_TARGET_ESP32P4
switch (esp_ble_tx_power_get(ESP_BLE_PWR_TYPE_DEFAULT)) {
case ESP_PWR_LVL_N24:
return -24;
case ESP_PWR_LVL_N21:
return -21;
case ESP_PWR_LVL_N18:
return -18;
case ESP_PWR_LVL_N15:
return -15;
case ESP_PWR_LVL_N12:
return -12;
case ESP_PWR_LVL_N9:
Expand All @@ -517,6 +558,14 @@ int NimBLEDevice::getPower() {
return 6;
case ESP_PWR_LVL_P9:
return 9;
case ESP_PWR_LVL_P12:
return 12;
case ESP_PWR_LVL_P15:
return 15;
case ESP_PWR_LVL_P18:
return 18;
case ESP_PWR_LVL_P20:
return 20;
default:
return 0xFF;
}
Expand Down
Loading