esp-nimble-cpp/CHANGELOG.md
Deepak Singhal 36317e18db Allow subscribing to characteristics if CCCD does not exist on peer device.
- This changes NimBLERemoteCharacteristic::subscribe and NimBLERemoteCharacteristic::registerForNotify functionality
such that the notification callback will always be set.

Additionally these methods will always return true unless the descriptor write fails.

This allows for notifications to trigger the callback when a peer device sends them and does not have a CCCD.
Also it should not be flagged as a failure if the CCCD does not exist.
It should only be flagged when an acutal write operation fails.
2020-12-24 19:59:45 -07:00

3.2 KiB

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

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).

  • NimBLEClient::getCharacteristic(uint16_t handle) Enabling the use of the characteristic handle to be used to find the NimBLERemoteCharacteristic object.

  • NimBLEHIDDevice class added by wakwak-koba.

  • NimBLEServerCallbacks::onDisconnect overloaded callback added to provide a ble_gap_conn_desc parameter for the application
    to obtain information about the disconnected client.

  • Conditional checks in nimconfig.h for command line defined macros to support platformio config settings.

Changed

  • 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.

  • Advertising tx power level is now sent in the advertisement packet instead of scan response.

  • NimBLEScan When the scan ends the scan stopped flag is now set before calling the scan complete callback (if used)
    this allows the starting of a new scan from the callback function.

Fixed

  • 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.

  • Advertisement type now correctly set when using non-connectable (advertiser only) mode.

  • Advertising payload length correction, now accounts for appearance.

  • (Arduino) Ensure controller mode is set to BLE Only.

[1.0.2] - 2020-09-13

Changed

  • 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).

  • (Arduino) 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.

  • (Arduino) 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.

[1.0.1] - 2020-09-02

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.

[1.0.0] - 2020-08-22

First stable release.

All the original library functionality is complete and many extras added with full documentation.