Releases: h2zero/esp-nimble-cpp
Releases · h2zero/esp-nimble-cpp
2.5.0
Fixed
NimBLEClientconnection state tracking.- Calling disconnect will no longer return false if the HCI response is "Unknown ID".
- Remote descriptors not found when characteristic vector handles out of order.
setValuewith char inputs now calculates the data length correctly.
Added
NimBLEServer::sendServiceChangedIndicationSends the service changed indication to peers so they refresh their database.NimBLEScanuser configuarable scan response timer added to prevent unreported devices on long duration scans.NimBLEClientConnection retry on connection establishment failure, retry count configurable by app, default 2.- ANCS Example
l2CapDisconnect API
2.4.0
Fixed
- GATT attribute handles are now assigned from the registration callback so duplicate UUID attributes are identified correctly.
- Dynamic service changes now properly remove characteristics/descriptors and reset the GATT database when advertising starts.
- Missing notification/indication payload data when the value spans multiple mbufs, such as values larger than 255 bytes with small ACL buffers.
NimBLEDevice::createServerwill longer crash when called before the stack is initialized.- Re-pairing after deleting all bonds now works by unpairing each stored bond instead of only deleting NVS data.
- Whitelist bounds checks.
NimBLEDevice::getBondedAddressindex bounds validation.- Compiler warnings when bonds are disabled.
- kconfig warnings, redefined macros.
Added
NimBLEStream,NimBLEStreamClient, andNimBLEStreamServerclasses and examples.NimBLECppVersion.hwith compile-time version macros.NimBLEDevice::getVersionruntime version string helper.- Matching passkey callbacks for both roles:
NimBLEServerCallbacks::onPassKeyEntryandNimBLEClientCallbacks::onPassKeyDisplay. - Bond migration helpers to convert bond storage between v1 and current formats while preserving existing bonds.
NimBLEUUIDconstructor overload forble_uuid_t*.- Optional
indexparameter forNimBLECharacteristic::getDescriptorByUUIDto access multiple descriptors with the same UUID. NimBLEConnInfo::toStringmethod to get a string representation of the connection info.
Changed
NimBLEService::startis deprecated; services are now added when the server starts.NimBLEHIDDevice::startServices()is deprecated; services are now added when the server starts.
2.3.4
Fixed
- Disconnect event not finding the client by address in some cases, use the connection handle instead.
- Notification/Indications will now be sent to server created clients.
- Attribute values will now consider type size when using a container.
- Descriptor searching will now correctly stop at the end handle of the characteristic.
Changed
- Build conditionals now use
MYNEWT_VAL_macros instead ofCONFIG_macros where applicable. - Sending of indications/notifications has been refactored for greater efficiency and tracks client subscription state locally instead uof relying on the stack.
Added
- Support for esp32c61.
NimBLECharacteristicCallbacks::onStatusoverload that takes aNimBLEConnInfo¶meter to indicate which client the status is for.NimBLEDevice::setCustomGapHandlernow takes avoid*parameter to allow for passing user data to the custom handler.
2.3.3
2.3.2
Fixed
- Build failures with esp-idf versions 4.x.
- Workaround for upstream issue causing onConnectFail to not be called.
- Build failures with idf v5.5+ and specific roles are not enabled.
Changed
- Allow peripheral and central roles to be used without broadcaster/observer roles.
- Where applicable,
MYNEWT_VAL_macros are used to control feature availability instead ofCONFIG_
2.3.1
What's Changed
- Allow
esp_wifi_remote>= 0.5.3 by @johnboiles in #337 - Fix builds when excluding roles by @h2zero in #339
- Fix server client read/write not returning when encryption is used. by @h2zero in #342
- [Bugfix] NimBLEScan delete. by @h2zero in #341
New Contributors
- @johnboiles made their first contribution in #337
Full Changelog: 2.3.0...2.3.1
2.3.0
Fixed
- Incorrect
NimBLECharacteristic::onSubscribevalue when indications are set. NimBLECharacteristic::onReadcallback not called in some cases.- Clear attribute value when zero length value is written.
- Notify/Indicate incorrectly returning success with custom value.
- Corrected NimBLEClient array initialization.
- Prevent potential exception when scan is restarted.
- Attribute getValue failing with some data types
- Incorrectly passing a pointer to a function taking const reference.
Added
- Support for esp32c5
- L2CAP infrastructure.
- Scan duplicate cache reset time.
Changed
- Cleaned up examples.
- Allow PHY updates without enabling extended advertising.