Skip to content

Conversation

h2zero
Copy link
Owner

@h2zero h2zero commented Nov 19, 2024

  • General code cleanup.
  • NimBLEAdvertisementData moved to it's own .h and .cpp files.
  • Added new method, NimBLEAdvertising::setPreferredParams that takes the min and max preferred connection parameters as an alternative for setMinPreferred and setMaxPreferred.
  • Added new method, NimBLEAdvertising::setAdvertisingInterval Sets the advertisement interval for min and max to the same value instead of calling setMinInterval and setMaxInterval separately if there is not value difference.
  • NimBLEAdvertisementData payload is now stored in std::vector<uint8_t> instead of std::string.
  • NimBLEAdvertisementData::getPayload now returns std::vector<uint8_t> instead of std::string.
  • NimBLEAdvertisementData::addData now takes either a std::vector<uint8_t> or uint8_t* + length instead of std::string or char + length.
  • NimBLEAdvertisementData::setName now takes an optional bool parameter to indicate if the name is complete or incomplete, default = complete.
  • NimBLEAdvertising::start No longer takes a callback pointer parameter, instead the new method NimBLEAdvertising::setAdvertisingCompleteCallback should be used.
  • NimBLEAdvertising::setAdvertisementType has been renamed to NimBLEAdvertising::setConnectableMode to better reflect it's function.
  • Added new method, NimBLEAdvertising::setDiscoverableMode to allow applications to control the discoverability of the advertiser.
  • Advertising the name and TX power of the device will no longer happen by default and should be set manually by the application.
  • Added overload for NimBLEAdvertising::setManufacturerData that takes a const uint8_t* and , size_t` paramter.
  • Added overload for NimBLEAdvertising::setServiceData that takes const NimBLEUUID& uuid, const uint8_t* data, size_t length as parameters.
  • Added overload for NimBLEAdvertising::setServiceData that takes const NimBLEUUID& uuid, const std::vector<uint8_t>& as parameters.
  • All NimBLEAdvertisementData functions that change data values now return bool, true = success.
  • All NimBLEAdvertising functions that change data values now return bool, true = success.
  • NimBLEAdvertising::setMinPreferred and NimBLEAdvertising::setMaxPreferred have been removed, use NimBLEAdvertising::setPreferredParams instead.
  • All advertising data is now stored in instances of NimBLEAdvertisingData and vectors removed from NimBLEAdvertising.
  • NimBLEAdvertising::setAdvertisementData and NimBLEAdvertising::setScanResponseData now return bool, true = success.
  • Added new method, NimBLEAdvertisementData::removeData, which takes a parameter uint8_t type, the data type to remove.
  • Added new method, NimBLEAdvertisementData::toString, which will print the data in hex.
  • Added new method, NimBLEAdvertising::getAdvertisementData, which returns a reference to the currently set advertisement data.
  • Added new method, NimBLEAdvertising::getScanData, which returns a reference to the currently set scan response data.
  • Added overloads for NimBLEAdvertising::removeServiceUUID and NimBLEAdvertisementData::removeServiceUUID to accept a const char*
  • Added new method, NimBLEAdvertising::clearData, which will clear the advertisement and scan response data.

Fixes #646

@h2zero h2zero force-pushed the refactor-advertising branch from 2a2d008 to 8a1326b Compare November 21, 2024 01:05
@h2zero h2zero changed the title [BREAKING] - refactor advertising [BREAKING] - Refactor NimBLEAdvertiseing Nov 21, 2024
@h2zero h2zero changed the title [BREAKING] - Refactor NimBLEAdvertiseing [BREAKING] - Refactor NimBLEAdvertising Nov 21, 2024
@h2zero h2zero force-pushed the refactor-advertising branch 2 times, most recently from ccb817d to 8b8377f Compare November 24, 2024 00:27
@h2zero
Copy link
Owner Author

h2zero commented Nov 24, 2024

This one is huge, if anyone would like to test I'd really like the feedback!

@h2zero h2zero force-pushed the refactor-advertising branch 7 times, most recently from adce12d to 93f84d8 Compare November 27, 2024 17:16
* General code cleanup.
* `NimBLEAdvertisementData` moved to it's own .h and .cpp files.
* Added new method, `NimBLEAdvertising::setPreferredParams` that takes the min and max preferred connection parameters as an alternative for `setMinPreferred` and `setMaxPreferred`.
* Added new method, `NimBLEAdvertising::setAdvertisingInterval` Sets the advertisement interval for min and max to the same value instead of calling `setMinInterval` and `setMaxInterval` separately if there is not value difference.
* `NimBLEAdvertisementData` payload is now stored in `std::vector<uint8_t>` instead of `std::string`.
* `NimBLEAdvertisementData::getPayload` now returns `std::vector<uint8_t>` instead of `std::string`.
* `NimBLEAdvertisementData::addData` now takes either a `std::vector<uint8_t>` or `uint8_t* + length` instead of `std::string` or `char + length`.
* `NimBLEAdvertisementData::setName` now takes an optional `bool` parameter to indicate if the name is complete or incomplete, default = complete.
* `NimBLEAdvertising::start` No longer takes a callback pointer parameter, instead the new method `NimBLEAdvertising::setAdvertisingCompleteCallback` should be used.
* `NimBLEAdvertising::setAdvertisementType` has been renamed to `NimBLEAdvertising::setConnectableMode` to better reflect it's function.
* `NimBLEAdvertising::setScanResponse` has been renamed to `NimBLEAdvertising::enableScanResponse` to better reflect it's function.
* Scan response is no longer enabled by default.
* Added new method, `NimBLEAdvertising::setDiscoverableMode` to allow applications to control the discoverability of the advertiser.
* Advertising the name and TX power of the device will no longer happen by default and should be set manually by the application.
* Added overload for `NimBLEAdvertising::setManufacturerData` that takes a `const uint8_t*` and , size_t` paramter.
* Added overload for `NimBLEAdvertising::setServiceData` that takes `const NimBLEUUID& uuid`, ` const uint8_t* data`, ` size_t length` as parameters.
* Added overload for `NimBLEAdvertising::setServiceData` that takes `const NimBLEUUID& uuid`, `const std::vector<uint8_t>&` as parameters.
* All `NimBLEAdvertisementData` functions that change data values now return `bool`, true = success.
* All `NimBLEAdvertising` functions that change data values now return `bool`, true = success.
* `NimBLEAdvertising::setMinPreferred` and `NimBLEAdvertising::setMaxPreferred` have been removed, use `NimBLEAdvertising::setPreferredParams` instead.
* All advertising data is now stored in instances of `NimBLEAdvertisingData` and vectors removed from `NimBLEAdvertising`.
* `NimBLEAdvertising::setAdvertisementData` and `NimBLEAdvertising::setScanResponseData` now return `bool`, true = success.
* Added new method, `NimBLEAdvertisementData::removeData`, which takes a parameter `uint8_t type`, the data type to remove.
* Added new method, `NimBLEAdvertisementData::toString`, which will print the data in hex.
* Added new method, `NimBLEAdvertising::getAdvertisementData`, which returns a reference to the currently set advertisement data.
* Added new method, `NimBLEAdvertising::getScanData`, which returns a reference to the currently set scan response data.
* Added overloads for `NimBLEAdvertising::removeServiceUUID` and `NimBLEAdvertisementData::removeServiceUUID` to accept a `const char*`
* Added new method, `NimBLEAdvertising::clearData`, which will clear the advertisement and scan response data.
@h2zero h2zero force-pushed the refactor-advertising branch from e1799a1 to 38f2067 Compare November 27, 2024 18:23
@h2zero h2zero merged commit edc66e8 into master Nov 27, 2024
31 checks passed
@h2zero h2zero deleted the refactor-advertising branch November 27, 2024 18:47
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

Successfully merging this pull request may close these issues.

Set Manufacturer Data - Bug

1 participant