arduino-libraries / ArduinoBLE

ArduinoBLE library for Arduino
GNU Lesser General Public License v2.1
310 stars 205 forks source link

Version problem #285

Closed FilipeFaria90 closed 1 year ago

FilipeFaria90 commented 1 year ago

Hello, I'm having some problems with the new version (1.3.2), if I use version 1.3.1, I don't have any problem. But when I compile with the new version I get this error log

In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src\utility\HCIVirtualTransport.cpp:22:0:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src\utility\HCIVirtualTransport.h:27:36: fatal error: freertos/stream_buffer.h: No such file or directory
compilation terminated.
Se encontraron varias bibliotecas para "BLEDevice.h"
  Usado: C:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE
  No utilizado: C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\BLE
exit status 1

Compilation error: exit status 1

Can you tell me what I am doing wrong? I even updated version after version to tried solve it, but I couldn't fix it this way.

per1234 commented 1 year ago

Hi @FilipeFaria90. The reason for this error is you are using an outdated version of the ESP32 boards platform. This library is not compatible with the version 1.0.6 you are using.

The solution is to use the Arduino IDE Boards Manager to update the platform. I'll provide instructions:

  1. Select File > Preferences from the Arduino IDE menus. The "Preferences" dialog will open.
  2. Click the icon on the right side of the "Additional Boards Manager URLs" field. An "Additional Boards Manager URLs" dialog will open. The field contains a list of any URLs you already configured.
  3. If the following URL is present on the list, delete it:
    https://dl.espressif.com/dl/package_esp32_index.json

    This is the old URL which Espressif no longer maintains so it doesn't provide the new versions of the platform.

  4. Add the following URL on a new line in the field:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  5. Click the OK button on the "Additional Boards Manager URLs" dialog.
  6. Click the OK button on the "Preferences" dialog.
  7. You will now see a "Downloading index: ..." notification at the bottom right corner of the IDE window. Wait for that notification to close.
  8. Select Tools > Board > Boards Manager from the Arduino IDE menus to open the "Boards Manager".
  9. Wait for the IDE to finish any index update operations, as shown in the notification area.
  10. Scroll down through the list of boards platforms until you see the "esp32 by Espressif Systems" entry.
  11. Make sure version 2.0.6 is selected from the version menu on the entry.
  12. Click the "INSTALL" button.
  13. Wait for the installation to finish.

You should now be able to compile sketches using the ArduinoBLE library for ESP32 boards without getting that "freertos/stream_buffer.h: No such file or directory" error.

FilipeFaria90 commented 1 year ago

Hello per1234, after doing as you say, I compile the file I have this log

Compilation error: 'startAdvertising' is not a member of 'BLEDevice'
In file included from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLECharacteristic.h:17,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEService.h:15,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEClient.h:20,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEUtils.h:16,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:15:
C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEDescriptor.h:25:7: error: redefinition of 'class BLEDescriptor'
 class BLEDescriptor {
       ^~~~~~~~~~~~~
In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:25,
                 from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
                 from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:14:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDescriptor.h:28:7: note: previous definition of 'class BLEDescriptor'
 class BLEDescriptor {
       ^~~~~~~~~~~~~
In file included from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEService.h:15,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEClient.h:20,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEUtils.h:16,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:15:
C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLECharacteristic.h:53:7: error: redefinition of 'class BLECharacteristic'
 class BLECharacteristic {
       ^~~~~~~~~~~~~~~~~
In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
                 from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:14:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:45:7: note: previous definition of 'class BLECharacteristic'
 class BLECharacteristic  {
       ^~~~~~~~~~~~~~~~~
In file included from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEClient.h:20,
                 from C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEUtils.h:16,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:15:
C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE\src/BLEService.h:49:7: error: redefinition of 'class BLEService'
 class BLEService {
       ^~~~~~~~~~
In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:14:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:28:7: note: previous definition of 'class BLEService'
 class BLEService {
       ^~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino: In member function 'virtual void SecurityCallback::onAuthenticationComplete(esp_ble_auth_cmpl_t)':
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:134:18: error: 'startAdvertising' is not a member of 'BLEDevice'
       BLEDevice::startAdvertising();
                  ^~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino: In member function 'virtual void MyCallbacks1::onWrite(BLECharacteristic*)':
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:169:46: error: 'class BLECharacteristic' has no member named 'getValue'; did you mean 'setValue'?
       std::string value = pCharacteristic_1->getValue();
                                              ^~~~~~~~
                                              setValue
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino: In function 'void setup()':
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:250:14: error: 'init' is not a member of 'BLEDevice'
   BLEDevice::init(nameAndModel.c_str());
              ^~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:251:14: error: 'setEncryptionLevel' is not a member of 'BLEDevice'
   BLEDevice::setEncryptionLevel(ESP_BLE_SEC_ENCRYPT);
              ^~~~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:252:14: error: 'setSecurityCallbacks' is not a member of 'BLEDevice'
   BLEDevice::setSecurityCallbacks(new SecurityCallback());
              ^~~~~~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:254:24: error: 'createServer' is not a member of 'BLEDevice'
   pServer = BLEDevice::createServer();
                        ^~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:256:33: error: 'class BLEService' has no member named 'createCharacteristic'; did you mean 'addCharacteristic'?
   pCharacteristic_1 = pService->createCharacteristic(
                                 ^~~~~~~~~~~~~~~~~~~~
                                 addCharacteristic
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:258:44: error: 'PROPERTY_WRITE' is not a member of 'BLECharacteristic'
                         BLECharacteristic::PROPERTY_WRITE
                                            ^~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:260:33: error: 'class BLEService' has no member named 'createCharacteristic'; did you mean 'addCharacteristic'?
   pCharacteristic_2 = pService->createCharacteristic(
                                 ^~~~~~~~~~~~~~~~~~~~
                                 addCharacteristic
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:262:44: error: 'PROPERTY_READ' is not a member of 'BLECharacteristic'
                         BLECharacteristic::PROPERTY_READ |
                                            ^~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:263:44: error: 'PROPERTY_NOTIFY' is not a member of 'BLECharacteristic'
                         BLECharacteristic::PROPERTY_NOTIFY
                                            ^~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:265:33: error: 'class BLEService' has no member named 'createCharacteristic'; did you mean 'addCharacteristic'?
   pCharacteristic_3 = pService->createCharacteristic(
                                 ^~~~~~~~~~~~~~~~~~~~
                                 addCharacteristic
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:267:44: error: 'PROPERTY_READ' is not a member of 'BLECharacteristic'
                         BLECharacteristic::PROPERTY_READ |
                                            ^~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:268:44: error: 'PROPERTY_NOTIFY' is not a member of 'BLECharacteristic'
                         BLECharacteristic::PROPERTY_NOTIFY
                                            ^~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:270:22: error: 'class BLECharacteristic' has no member named 'setAccessPermissions'
   pCharacteristic_1->setAccessPermissions(ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE);
                      ^~~~~~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:271:22: error: 'class BLECharacteristic' has no member named 'setAccessPermissions'
   pCharacteristic_2->setAccessPermissions(ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE);
                      ^~~~~~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:272:22: error: 'class BLECharacteristic' has no member named 'setAccessPermissions'
   pCharacteristic_3->setAccessPermissions(ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE);
                      ^~~~~~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:273:52: error: no matching function for call to 'BLECharacteristic::addDescriptor(BLE2902*)'
   pCharacteristic_2  -> addDescriptor(new BLE2902());//Habilites Notify
                                                    ^
In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
                 from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:14:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:91:8: note: candidate: 'void BLECharacteristic::addDescriptor(BLEDescriptor&)'
   void addDescriptor(BLEDescriptor& descriptor);
        ^~~~~~~~~~~~~
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:91:8: note:   no known conversion for argument 1 from 'BLE2902*' to 'BLEDescriptor&'
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:274:52: error: no matching function for call to 'BLECharacteristic::addDescriptor(BLE2902*)'
   pCharacteristic_3  -> addDescriptor(new BLE2902());//Habilites Notify
                                                    ^
In file included from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEService.h:23,
                 from c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLEDevice.h:25,
                 from C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:14:
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:91:8: note: candidate: 'void BLECharacteristic::addDescriptor(BLEDescriptor&)'
   void addDescriptor(BLEDescriptor& descriptor);
        ^~~~~~~~~~~~~
c:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE\src/BLECharacteristic.h:91:8: note:   no known conversion for argument 1 from 'BLE2902*' to 'BLEDescriptor&'
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:276:22: error: 'class BLECharacteristic' has no member named 'setCallbacks'
   pCharacteristic_1->setCallbacks(new MyCallbacks1());
                      ^~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:277:22: error: 'class BLECharacteristic' has no member named 'setCallbacks'
   pCharacteristic_2->setCallbacks(new MyCallbacks2());
                      ^~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:278:22: error: 'class BLECharacteristic' has no member named 'setCallbacks'
   pCharacteristic_3->setCallbacks(new MyCallbacks3());
                      ^~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:279:13: error: 'class BLEService' has no member named 'start'
   pService->start();
             ^~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:280:45: error: 'getAdvertising' is not a member of 'BLEDevice'
   BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
                                             ^~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:286:14: error: 'startAdvertising' is not a member of 'BLEDevice'
   BLEDevice::startAdvertising();
              ^~~~~~~~~~~~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino: In function 'void loop()':
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:431:26: error: 'class BLECharacteristic' has no member named 'notify'
       pCharacteristic_3->notify();
                          ^~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:436:26: error: 'class BLECharacteristic' has no member named 'notify'
       pCharacteristic_3->notify();
                          ^~~~~~
C:\Users\fimartin\Documents\Repo_GIT\esp32_BLE\esp32_BLE.ino:460:26: error: 'class BLECharacteristic' has no member named 'notify'
       pCharacteristic_2->notify();
                          ^~~~~~
Se encontraron varias bibliotecas para "BLEDevice.h"
  Usado: C:\Users\fimartin\Documents\Arduino\libraries\ArduinoBLE
  No utilizado: C:\Users\fimartin\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.6\libraries\BLE
exit status 1

Compilation error: 'startAdvertising' is not a member of 'BLEDevice'

Do I have to change something in the code?

per1234 commented 1 year ago

Do I have to change something in the code?

It must be. The ArduinoBLE library itself compiles just fine for ESP32 with the latest version of the platform installed. So the error is caused by something in your sketch.

Since it is not directly related to the library codebase hosted in this repository, it will be better to use Arduino Forum for further discussion. Please make a post on the Arduino Forum, including your full sketch code:

https://forum.arduino.cc/c/using-arduino/programming-questions/20

I'm sure we'll be able to help you out over there.


UPDATE: the forum thread: https://forum.arduino.cc/t/startadvertising-is-not-a-member-of-bledevice/1086837