Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot understand reasons of next errors: #340

Open
SergeZon opened this issue Dec 29, 2024 · 3 comments
Open

Cannot understand reasons of next errors: #340

SergeZon opened this issue Dec 29, 2024 · 3 comments

Comments

@SergeZon
Copy link

In file included from D:\Arduino_Projects\RGT_BT_steering\RGT_BT_steering.ino:22:
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:131:60: error: expected class-name before ',' token
131 | class BleKeyboard : public Print, public BLEServerCallbacks, public BLECharacteristicCallbacks
| ^
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:19:36: error: 'NimBLEAdvertising' does not name a type; did you mean 'BLEAdvertising'?
19 | #define BLEAdvertising NimBLEAdvertising
| ^~~~~~~~~~~~~~~~~
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:138:3: note: in expansion of macro 'BLEAdvertising'
138 | BLEAdvertising* advertising;
| ^~~~~~~~~~~~~~
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:176:16: error: 'virtual void BleKeyboard::onConnect(NimBLEServer*)' marked 'override', but does not override
176 | virtual void onConnect(BLEServer* pServer) override;
| ^~~~~~~~~
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:177:16: error: 'virtual void BleKeyboard::onDisconnect(NimBLEServer*)' marked 'override', but does not override
177 | virtual void onDisconnect(BLEServer* pServer) override;
| ^~~~~~~~~~~~
d:\Users\Serge\Documents\Arduino\libraries\ESP32_BLE_Keyboard/BleKeyboard.h:178:16: error: 'virtual void BleKeyboard::onWrite(NimBLECharacteristic*)' marked 'override', but does not override
178 | virtual void onWrite(BLECharacteristic* me) override;
| ^~~~~~~

@StevT7
Copy link

StevT7 commented Jan 1, 2025

The NimBLE library's API has been updated, necessitating several modifications to both the .h and .cpp files to align with the new interface.

@StevT7
Copy link

StevT7 commented Jan 1, 2025

BleKeyboard.h:

Include additional libraries

IS:

#include "NimBLECharacteristic.h"
#include "NimBLEHIDDevice.h"

NEW:

#include "NimBLECharacteristic.h"
#include "NimBLEHIDDevice.h"
#include "NimBLEAdvertising.h"
#include "NimBLEServer.h"

Change the following lines

IS:

virtual void onConnect(BLEServer* pServer) override;
virtual void onDisconnect(BLEServer* pServer) override;
virtual void onWrite(BLECharacteristic* me) override;

NEW:

virtual void onConnect(BLEServer* pServer, NimBLEConnInfo & connInfo) override;
virtual void onDisconnect(BLEServer* pServer, NimBLEConnInfo & connInfo, int reason) override;
virtual void onWrite(BLECharacteristic* me, NimBLEConnInfo & connInfo) override;

@byerss
Copy link

byerss commented Jan 3, 2025

I've temporality worked around the issue by using the old version of NimBLE in PlatformIO like so:

lib_deps = 
    T-vk/ESP32 BLE Keyboard@^0.3.2-beta
    NimBLE-Arduino@^1.4.3
build_flags = 
    -D USE_NIMBLE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants