diff --git a/CHANGELOG.md b/CHANGELOG.md index a5a7971..128d3c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] ### Added +- `NimBLEDevice::setOwnAddrType` added to enable the use of random and random-resolvable addresses, by asukiaaa + +- New examples for securing and authenticating client/server connections, by mblasee. + +- `NimBLEAdvertiseing::SetMinPreferred` and `NimBLEAdvertiseing::SetMinPreferred` re-added. + - Conditional checks added for command line config options in `nimconfig.h` to support custom configuration in platformio. - `NimBLEClient::setValue` Now takes an extra bool parameter `response` to enable the use of write with response (default = false). @@ -20,8 +26,14 @@ to obtain information about the disconnected client. - Conditional checks in `nimconfig.h` for command line defined macros to support platformio config settings. ### Changed +- `NimBLEAdvertising::start` now returns a bool value to indicate success/failure. + +- Some asserts were removed in `NimBLEAdvertising::start` and replaced with better return code handling and logging. + +- If a host reset event occurs, scanning and advertising will now only be restarted if their previous duration was indefinite. + - `NimBLERemoteCharacteristic::subscribe` and `NimBLERemoteCharacteristic::registerForNotify` will now set the callback - regardless of the existance of the CCCD and return true unless the descriptor write operation failed. +regardless of the existance of the CCCD and return true unless the descriptor write operation failed. - Advertising tx power level is now sent in the advertisement packet instead of scan response. @@ -29,6 +41,26 @@ to obtain information about the disconnected client. this allows the starting of a new scan from the callback function. ### Fixed +- Sometimes `NimBLEClient::connect` would hang on the task block if no event arrived to unblock. +A time limit has been added to timeout appropriately. + +- When getting descriptors for a characterisic the end handle of the service was used as a proxy for the characteristic end +handle. This would be rejected by some devices and has been changed to use the next characteristic handle as the end when possible. + +- An exception could occur when deleting a client instance if a notification arrived while the attribute vectors were being +deleted. A flag has been added to prevent this. + +- An exception could occur after a host reset event when the host re-synced if the tasks that were stopped during the event did +not finish processing. A yield has been added after re-syncing to allow tasks to finish before proceeding. + +- Occasionally the controller would fail to send a disconnected event causing the client to indicate it is connected +and would be unable to reconnect. A timer has been added to reset the host/controller if it expires. + +- Occasionally the call to start scanning would get stuck in a loop on BLE_HS_EBUSY, this loop has been removed. + +- 16bit and 32bit UUID's in some cases were not discovered or compared correctly if the device +advertised them as 16/32bit but resolved them to 128bits. Both are now checked. + - `FreeRTOS` compile errors resolved in latest Ardruino core and IDF v3.3. - Multiple instances of `time()` called inside critical sections caused sporadic crashes, these have been moved out of critical regions.