Skip to content

Commit ac43af7

Browse files
committed
Fix compilation with esp32p4
1 parent 6c85cfa commit ac43af7

File tree

6 files changed

+24
-21
lines changed

6 files changed

+24
-21
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@ jobs:
1717
# See https://hub.docker.com/r/espressif/idf/tags and
1818
# https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html
1919
# for details.
20-
idf_ver: ["release-v4.4", "release-v5.1"]
21-
idf_target: ["esp32", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"]
20+
idf_ver: ["release-v4.4", "release-v5.1", "release-v5.3"]
21+
idf_target: ["esp32", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32p4"]
2222
example:
2323
- Advanced/NimBLE_Client
2424
- Advanced/NimBLE_Server
25-
- Continuous_scan
2625
- Bluetooth_5/NimBLE_extended_client
2726
- Bluetooth_5/NimBLE_extended_server
28-
- Bluetooth_5/NimBLE_multi_advertiser
29-
- NimBLE_server_get_client_name
3027
exclude:
3128
- idf_target: "esp32"
3229
example: Bluetooth_5/NimBLE_extended_client
@@ -40,6 +37,10 @@ jobs:
4037
idf_target: "esp32c6"
4138
- idf_ver: release-v4.4
4239
idf_target: "esp32h2"
40+
- idf_ver: release-v4.4
41+
idf_target: "esp32p4"
42+
- idf_ver: release-v5.1
43+
idf_target: "esp32p4"
4344

4445
container: espressif/idf:${{ matrix.idf_ver }}
4546
steps:

examples/Advanced/NimBLE_Client/main/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ void app_main (void){
341341
NimBLEDevice::setSecurityAuth(/*BLE_SM_PAIR_AUTHREQ_BOND | BLE_SM_PAIR_AUTHREQ_MITM |*/ BLE_SM_PAIR_AUTHREQ_SC);
342342

343343
/** Optional: set the transmit power, default is -3db */
344-
NimBLEDevice::setPower(ESP_PWR_LVL_P9); /** 12db */
344+
NimBLEDevice::setPower(9); // 9dbm
345345

346346
/** create new scan */
347347
NimBLEScan* pScan = NimBLEDevice::getScan();

examples/Bluetooth_5/NimBLE_extended_client/main/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ extern "C" void app_main(void);
1414
#define SERVICE_UUID "ABCD"
1515
#define CHARACTERISTIC_UUID "1234"
1616

17-
static NimBLEAdvertisedDevice* advDevice;
17+
static const NimBLEAdvertisedDevice* advDevice;
1818
static bool doConnect = false;
1919
static uint32_t scanTime = 10 * 1000; // In milliseconds, 0 = scan forever
2020

@@ -37,7 +37,7 @@ class ClientCallbacks : public NimBLEClientCallbacks {
3737

3838
/* Define a class to handle the callbacks when advertisements are received */
3939
class scanCallbacks: public NimBLEScanCallbacks {
40-
void onResult(NimBLEAdvertisedDevice* advertisedDevice) {
40+
void onResult(const NimBLEAdvertisedDevice* advertisedDevice) {
4141
printf("Advertised Device found: %s\n", advertisedDevice->toString().c_str());
4242
if(advertisedDevice->isAdvertisingService(NimBLEUUID("ABCD")))
4343
{
@@ -52,7 +52,7 @@ class scanCallbacks: public NimBLEScanCallbacks {
5252
}
5353

5454
/** Callback to process the results of the completed scan or restart it */
55-
void onScanEnd(NimBLEScanResults results) {
55+
void onScanEnd(const NimBLEScanResults& results, int rc) {
5656
printf("Scan Ended\n");
5757
}
5858
};

examples/NimBLE_Async_Client/main/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class scanCallbacks : public NimBLEScanCallbacks {
4848
}
4949
}
5050

51-
void onScanEnd(NimBLEScanResults results) {
51+
void onScanEnd(NimBLEScanResults results, int reason) {
5252
printf("Scan Ended\n");
5353
NimBLEDevice::getScan()->start(scanTimeMs);
5454
}

src/NimBLEDevice.cpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -422,16 +422,13 @@ std::vector<NimBLEClient*> NimBLEDevice::getConnectedClients() {
422422
/* -------------------------------------------------------------------------- */
423423

424424
# ifdef ESP_PLATFORM
425+
# ifndef CONFIG_IDF_TARGET_ESP32P4
425426
/**
426427
* @brief Get the transmission power.
427428
* @return The power level currently used in esp_power_level_t.
428429
*/
429430
esp_power_level_t NimBLEDevice::getPowerLevel(esp_ble_power_type_t powerType) {
430-
# ifdef CONFIG_IDF_TARGET_ESP32P4
431-
return 0xFF; // CONFIG_IDF_TARGET_ESP32P4 does not support esp_ble_tx_power_get
432-
# else
433431
return esp_ble_tx_power_get(powerType);
434-
# endif
435432
} // getPowerLevel
436433

437434
/**
@@ -440,30 +437,31 @@ esp_power_level_t NimBLEDevice::getPowerLevel(esp_ble_power_type_t powerType) {
440437
* @return True if the power level was set successfully.
441438
*/
442439
bool NimBLEDevice::setPowerLevel(esp_power_level_t powerLevel, esp_ble_power_type_t powerType) {
443-
# ifdef CONFIG_IDF_TARGET_ESP32P4
444-
return false; // CONFIG_IDF_TARGET_ESP32P4 does not support esp_ble_tx_power_set
445-
# else
446440
esp_err_t errRc = esp_ble_tx_power_set(powerType, powerLevel);
447441
if (errRc != ESP_OK) {
448442
NIMBLE_LOGE(LOG_TAG, "esp_ble_tx_power_set: rc=%d", errRc);
449443
}
450444

451445
return errRc == ESP_OK;
452-
# endif
453446
} // setPowerLevel
447+
# endif // !CONFIG_IDF_TARGET_ESP32P4
448+
# endif // ESP_PLATFORM
454449

455-
# endif
456450
/**
457451
* @brief Set the transmission power.
458452
* @param [in] dbm The power level to set in dBm.
459453
* @return True if the power level was set successfully.
460454
*/
461455
bool NimBLEDevice::setPower(int8_t dbm) {
462456
# ifdef ESP_PLATFORM
457+
# ifdef CONFIG_IDF_TARGET_ESP32P4
458+
return false; // CONFIG_IDF_TARGET_ESP32P4 does not support esp_ble_tx_power_set
459+
# else
463460
if (dbm % 3 == 2) {
464461
dbm++; // round up to the next multiple of 3 to be able to target 20dbm
465462
}
466463
return setPowerLevel(static_cast<esp_power_level_t>(dbm / 3 + ESP_PWR_LVL_N0));
464+
# endif
467465
# else
468466
NIMBLE_LOGD(LOG_TAG, ">> setPower: %d", dbm);
469467
ble_hci_vs_set_tx_pwr_cp cmd{dbm};

src/NimBLEDevice.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
#include "nimconfig.h"
1919
#if defined(CONFIG_BT_ENABLED)
2020
# ifdef ESP_PLATFORM
21-
# include <esp_bt.h>
21+
# ifndef CONFIG_IDF_TARGET_ESP32P4
22+
# include <esp_bt.h>
23+
# endif
2224
# endif
2325

2426
# if defined(CONFIG_NIMBLE_CPP_IDF)
@@ -136,9 +138,11 @@ class NimBLEDevice {
136138
static int getPower();
137139
static bool setPower(int8_t dbm);
138140

139-
# if defined(ESP_PLATFORM)
141+
# ifdef ESP_PLATFORM
142+
# ifndef CONFIG_IDF_TARGET_ESP32P4
140143
static esp_power_level_t getPowerLevel(esp_ble_power_type_t powerType = ESP_BLE_PWR_TYPE_DEFAULT);
141144
static bool setPowerLevel(esp_power_level_t powerLevel, esp_ble_power_type_t powerType = ESP_BLE_PWR_TYPE_DEFAULT);
145+
# endif
142146
# endif
143147

144148
# if CONFIG_BT_NIMBLE_EXT_ADV

0 commit comments

Comments
 (0)