Releases: h2zero/NimBLE-Arduino
1.3.5
[1.3.5] - 2022-01-14
Added
- CONFIG_NIMBLE_CPP_DEBUG_LEVEL macro in nimconfig.h to allow setting the log level separately from the Arduino core log level.
Fixed
- Memory leak when initializing/deinitializing the BLE stack caused by new FreeRTOS timers be created on each initialization.
1.3.4
- Workaround for latest Arduino-esp32 core that causes tasks not to block when required, which caused functions to return prematurely resulting in exceptions/crashing.
- The wrong length value was being used to set the values read from peer attributes. This has been corrected to use the proper value size.
Full Changelog: 1.3.3...1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
Added
-
NimBLECharacteristic::removeDescriptor
: Dynamically remove a descriptor from a characterisic. Takes effect after all connections are closed and sends a service changed indication. -
NimBLEService::removeCharacteristic
: Dynamically remove a characteristic from a service. Takes effect after all connections are closed and sends a service changed indication -
NimBLEServerCallbacks::onMTUChange
: This is callback is called when the MTU is updated after connection with a client. -
ESP32C3 support
-
Whitelist API:
NimBLEDevice::whiteListAdd
: Add a device to the whitelist.NimBLEDevice::whiteListRemove
: Remove a device from the whitelist.NimBLEDevice::onWhiteList
: Check if the device is on the whitelist.NimBLEDevice::getWhiteListCount
: Gets the size of the whitelistNimBLEDevice::getWhiteListAddress
: Get the address of a device on the whitelist by index value.
-
Bond management API:
NimBLEDevice::getNumBonds
: Gets the number of bonds stored.NimBLEDevice::isBonded
: Checks if the device is bonded.NimBLEDevice::deleteAllBonds
: Deletes all bonds.NimBLEDevice::getBondedAddress
: Gets the address of a bonded device by the index value.
-
NimBLECharacteristic::getCallbacks
to retrieve the current callback handler. -
Connection Information class:
NimBLEConnInfo
. -
NimBLEScan::clearDuplicateCache
: This can be used to reset the cache of advertised devices so they will be immediately discovered again.
Changed
- FreeRTOS files have been removed as they are not used by the library.
- Services, characteristics and descriptors can now be created statically and added after.
- Excess logging and some asserts removed.
- Use ESP_LOGx macros to enable using local log level filtering.
Fixed
NimBLECharacteristicCallbacks::onSubscribe
Is now called after the connection is added to the vector.- Corrected bonding failure when reinitializing the BLE stack.
- Writing to a characterisic with a std::string value now correctly writes values with null characters.
- Retrieving remote descriptors now uses the characterisic end handle correctly.
- Missing data in long writes to remote descriptors.
- Hanging on task notification when sending an indication from the characteristic callback.
- BLE controller memory could be released when using Arduino as a component.
- Complile errors with NimBLE release 1.3.0.
Release version 1.2.0
Many additions and changes, check the changelog and documentation for complete details.
Release version 1.1.0
Many improvements and additions made, check CHANGELOG.md for details.
Release version 1.0.2
-
NimBLEAdvertising::start Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a
callback that is invoked when advertsing ends and takes a pointer to a NimBLEAdvertising object (similar to the NimBLEScan::start API). -
Maximum BLE connections can now be altered by only changing the value of CONFIG_BT_NIMBLE_MAX_CONNECTIONS in nimconfig.h.
Any changes to the controller max connection settings in sdkconfig.h will now have no effect when using this library. -
Revert the previous change to fix the advertising start delay. Instead a replacement fix that routes all BLE controller commands from
a task running on core 0 (same as the controller) has been implemented. This improves response times and reliability for all BLE functions.
Release version 1.0.1
Added:
- Empty
NimBLEAddress
constructor:NimBLEAddress()
produces an address of 00:00:00:00:00:00 type 0. - Documentation of the difference of NimBLEAddress::getNative vs the original bluedroid library.
Changed:
- notify_callback typedef is now defined as std::function to enable the use of std::bind to call a class member function.
Fixed
- Fix advertising start delay when first called.