diff --git a/_h_i_d_keyboard_types_8h_source.html b/_h_i_d_keyboard_types_8h_source.html index b31495d..7f86c93 100644 --- a/_h_i_d_keyboard_types_8h_source.html +++ b/_h_i_d_keyboard_types_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_h_i_d_types_8h_source.html b/_h_i_d_types_8h_source.html index 39fb092..c68ff5f 100644 --- a/_h_i_d_types_8h_source.html +++ b/_h_i_d_types_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e2904_8h_source.html b/_nim_b_l_e2904_8h_source.html index 646a6d7..ca0fb80 100644 --- a/_nim_b_l_e2904_8h_source.html +++ b/_nim_b_l_e2904_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_address_8h_source.html b/_nim_b_l_e_address_8h_source.html index f56c1f1..560e43e 100644 --- a/_nim_b_l_e_address_8h_source.html +++ b/_nim_b_l_e_address_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_address_8h_source.html','')
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "nimble/ble.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/include/nimble/ble.h"
26# else
-
27# include "nimble/nimble/include/nimble/ble.h"
+
27# include "nimble/ble.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -155,8 +155,8 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_address_8h_source.html','')
64 bool operator==(const NimBLEAddress& rhs) const;
65 bool operator!=(const NimBLEAddress& rhs) const;
-
66 operator std::string() const;
-
67 operator uint64_t() const;
+
66 operator std::string() const;
+
67 operator uint64_t() const;
68};
69
diff --git a/_nim_b_l_e_advertised_device_8h_source.html b/_nim_b_l_e_advertised_device_8h_source.html index 0900baf..5494814 100644 --- a/_nim_b_l_e_advertised_device_8h_source.html +++ b/_nim_b_l_e_advertised_device_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -124,12 +124,12 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertised_device_8h_source
25# include "NimBLEScan.h"
26# include "NimBLEUUID.h"
27
-
28# if defined(CONFIG_NIMBLE_CPP_IDF)
-
29# include "host/ble_hs_adv.h"
-
30# include "host/ble_gap.h"
+
28# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
29# include "nimble/nimble/host/include/host/ble_hs_adv.h"
+
30# include "nimble/nimble/host/include/host/ble_gap.h"
31# else
-
32# include "nimble/nimble/host/include/host/ble_hs_adv.h"
-
33# include "nimble/nimble/host/include/host/ble_gap.h"
+
32# include "host/ble_hs_adv.h"
+
33# include "host/ble_gap.h"
34# endif
35
36# include <vector>
@@ -225,26 +225,28 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertised_device_8h_source
158 uint8_t findAdvField(uint8_t type, uint8_t index = 0, size_t* data_loc = nullptr) const;
159 size_t findServiceData(uint8_t index, uint8_t* bytes) const;
160
-
161 NimBLEAddress m_address{};
-
162 uint8_t m_advType{};
-
163 int8_t m_rssi{};
-
164 uint8_t m_callbackSent{};
-
165 uint16_t m_advLength{};
-
166
-
167# if MYNEWT_VAL(BLE_EXT_ADV)
-
168 bool m_isLegacyAdv{};
-
169 uint8_t m_dataStatus{};
-
170 uint8_t m_sid{};
-
171 uint8_t m_primPhy{};
-
172 uint8_t m_secPhy{};
-
173 uint16_t m_periodicItvl{};
-
174# endif
-
175
-
176 std::vector<uint8_t> m_payload;
-
177};
-
178
-
179#endif /* CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_OBSERVER) */
-
180#endif /* NIMBLE_CPP_ADVERTISED_DEVICE_H_ */
+
161 NimBLEAddress m_address{};
+
162 uint8_t m_advType{};
+
163 int8_t m_rssi{};
+
164 uint8_t m_callbackSent{};
+
165 uint16_t m_advLength{};
+
166 ble_npl_time_t m_time{};
+
167 NimBLEAdvertisedDevice* m_pNextWaiting{}; // intrusive list node; self-pointer means "not in list", set in ctor
+
168
+
169# if MYNEWT_VAL(BLE_EXT_ADV)
+
170 bool m_isLegacyAdv{};
+
171 uint8_t m_dataStatus{};
+
172 uint8_t m_sid{};
+
173 uint8_t m_primPhy{};
+
174 uint8_t m_secPhy{};
+
175 uint16_t m_periodicItvl{};
+
176# endif
+
177
+
178 std::vector<uint8_t> m_payload;
+
179};
+
180
+
181#endif /* CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_OBSERVER) */
+
182#endif /* NIMBLE_CPP_ADVERTISED_DEVICE_H_ */
A BLE device address.
Definition NimBLEAddress.h:42
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_advertisement_data_8h_source.html b/_nim_b_l_e_advertisement_data_8h_source.html index 053393f..8bc74e2 100644 --- a/_nim_b_l_e_advertisement_data_8h_source.html +++ b/_nim_b_l_e_advertisement_data_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_advertising_8h_source.html b/_nim_b_l_e_advertising_8h_source.html index a243275..46b7415 100644 --- a/_nim_b_l_e_advertising_8h_source.html +++ b/_nim_b_l_e_advertising_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertising_8h_source.html'
21#include "syscfg/syscfg.h"
22#if (CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_BROADCASTER) && !MYNEWT_VAL(BLE_EXT_ADV)) || defined(_DOXYGEN_)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_gap.h"
+
24#ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_gap.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_gap.h"
+
27# include "host/ble_gap.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -206,35 +206,35 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertising_8h_source.html'
A BLE device address.
Definition NimBLEAddress.h:42
Advertisement data set by the programmer to be published by the BLE server.
Definition NimBLEAdvertisementData.h:32
Perform and manage BLE advertising.
Definition NimBLEAdvertising.h:51
-
bool addTxPower()
Add the transmission power level to the advertisement packet.
Definition NimBLEAdvertising.cpp:500
-
const NimBLEAdvertisementData & getAdvertisementData()
Get the current advertisement data.
Definition NimBLEAdvertising.cpp:347
-
bool setAppearance(uint16_t appearance)
Set the device appearance in the advertising data.
Definition NimBLEAdvertising.cpp:467
-
void setAdvertisingInterval(uint16_t interval)
Set the advertising interval.
Definition NimBLEAdvertising.cpp:121
-
bool stop()
Stop advertising.
Definition NimBLEAdvertising.cpp:248
-
void setAdvertisingCompleteCallback(advCompleteCB_t callback)
Set the callback to be invoked when advertising stops.
Definition NimBLEAdvertising.cpp:262
-
bool addServiceUUID(const NimBLEUUID &serviceUUID)
Add a service uuid to exposed list of services.
Definition NimBLEAdvertising.cpp:409
-
void setMinInterval(uint16_t minInterval)
Set the minimum advertising interval.
Definition NimBLEAdvertising.cpp:130
-
void enableScanResponse(bool enable)
Enable scan response data.
Definition NimBLEAdvertising.cpp:147
-
bool setDiscoverableMode(uint8_t mode)
Set the discoverable mode to use.
Definition NimBLEAdvertising.cpp:97
-
bool setName(const std::string &name)
Set the advertised name of the device.
Definition NimBLEAdvertising.cpp:518
-
bool setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)
Set the service data advertised for the UUID.
Definition NimBLEAdvertising.cpp:591
-
bool start(uint32_t duration=0, const NimBLEAddress *dirAddr=nullptr)
Start advertising.
Definition NimBLEAdvertising.cpp:182
-
bool reset()
Stops the current advertising and resets the advertising data to the default values.
Definition NimBLEAdvertising.cpp:58
-
bool setScanResponseData(const NimBLEAdvertisementData &advertisementData)
Set the data that is to be provided in a scan response.
Definition NimBLEAdvertising.cpp:358
-
void setMaxInterval(uint16_t maxInterval)
Set the maximum advertising interval.
Definition NimBLEAdvertising.cpp:138
-
bool setPreferredParams(uint16_t minInterval, uint16_t maxInterval)
Set the preferred min and max connection intervals to advertise.
Definition NimBLEAdvertising.cpp:485
-
bool setURI(const std::string &uri)
Set the advertised URI.
Definition NimBLEAdvertising.cpp:572
-
void setScanFilter(bool scanRequestWhitelistOnly, bool connectWhitelistOnly)
Set the filtering for the scan filter.
Definition NimBLEAdvertising.cpp:157
-
bool setAdvertisementData(const NimBLEAdvertisementData &advertisementData)
Set the advertisement data that is to be broadcast in a regular advertisement.
Definition NimBLEAdvertising.cpp:330
-
bool removeServiceUUID(const NimBLEUUID &serviceUUID)
Remove a service UUID from the advertisement.
Definition NimBLEAdvertising.cpp:434
-
NimBLEAdvertising()
Construct a default advertising object.
Definition NimBLEAdvertising.cpp:36
-
bool isAdvertising()
Check if currently advertising.
Definition NimBLEAdvertising.cpp:270
-
bool setManufacturerData(const uint8_t *data, size_t length)
Set the advertised manufacturer data.
Definition NimBLEAdvertising.cpp:538
-
bool removeServices()
Remove all service UUIDs from the advertisement.
Definition NimBLEAdvertising.cpp:454
-
bool refreshAdvertisingData()
Refresh advertsing data dynamically without stop/start cycle. For instance allows refreshing manufact...
Definition NimBLEAdvertising.cpp:395
-
const NimBLEAdvertisementData & getScanData()
Get the current scan response data.
Definition NimBLEAdvertising.cpp:374
-
bool setConnectableMode(uint8_t mode)
Set the type of connectable mode to advertise.
Definition NimBLEAdvertising.cpp:75
-
void clearData()
Clear the advertisement and scan response data and set the flags to BLE_HS_ADV_F_DISC_GEN.
Definition NimBLEAdvertising.cpp:381
+
bool addTxPower()
Add the transmission power level to the advertisement packet.
Definition NimBLEAdvertising.cpp:501
+
const NimBLEAdvertisementData & getAdvertisementData()
Get the current advertisement data.
Definition NimBLEAdvertising.cpp:348
+
bool setAppearance(uint16_t appearance)
Set the device appearance in the advertising data.
Definition NimBLEAdvertising.cpp:468
+
void setAdvertisingInterval(uint16_t interval)
Set the advertising interval.
Definition NimBLEAdvertising.cpp:122
+
bool stop()
Stop advertising.
Definition NimBLEAdvertising.cpp:249
+
void setAdvertisingCompleteCallback(advCompleteCB_t callback)
Set the callback to be invoked when advertising stops.
Definition NimBLEAdvertising.cpp:263
+
bool addServiceUUID(const NimBLEUUID &serviceUUID)
Add a service uuid to exposed list of services.
Definition NimBLEAdvertising.cpp:410
+
void setMinInterval(uint16_t minInterval)
Set the minimum advertising interval.
Definition NimBLEAdvertising.cpp:131
+
void enableScanResponse(bool enable)
Enable scan response data.
Definition NimBLEAdvertising.cpp:148
+
bool setDiscoverableMode(uint8_t mode)
Set the discoverable mode to use.
Definition NimBLEAdvertising.cpp:98
+
bool setName(const std::string &name)
Set the advertised name of the device.
Definition NimBLEAdvertising.cpp:519
+
bool setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)
Set the service data advertised for the UUID.
Definition NimBLEAdvertising.cpp:592
+
bool start(uint32_t duration=0, const NimBLEAddress *dirAddr=nullptr)
Start advertising.
Definition NimBLEAdvertising.cpp:183
+
bool reset()
Stops the current advertising and resets the advertising data to the default values.
Definition NimBLEAdvertising.cpp:59
+
bool setScanResponseData(const NimBLEAdvertisementData &advertisementData)
Set the data that is to be provided in a scan response.
Definition NimBLEAdvertising.cpp:359
+
void setMaxInterval(uint16_t maxInterval)
Set the maximum advertising interval.
Definition NimBLEAdvertising.cpp:139
+
bool setPreferredParams(uint16_t minInterval, uint16_t maxInterval)
Set the preferred min and max connection intervals to advertise.
Definition NimBLEAdvertising.cpp:486
+
bool setURI(const std::string &uri)
Set the advertised URI.
Definition NimBLEAdvertising.cpp:573
+
void setScanFilter(bool scanRequestWhitelistOnly, bool connectWhitelistOnly)
Set the filtering for the scan filter.
Definition NimBLEAdvertising.cpp:158
+
bool setAdvertisementData(const NimBLEAdvertisementData &advertisementData)
Set the advertisement data that is to be broadcast in a regular advertisement.
Definition NimBLEAdvertising.cpp:331
+
bool removeServiceUUID(const NimBLEUUID &serviceUUID)
Remove a service UUID from the advertisement.
Definition NimBLEAdvertising.cpp:435
+
NimBLEAdvertising()
Construct a default advertising object.
Definition NimBLEAdvertising.cpp:37
+
bool isAdvertising()
Check if currently advertising.
Definition NimBLEAdvertising.cpp:271
+
bool setManufacturerData(const uint8_t *data, size_t length)
Set the advertised manufacturer data.
Definition NimBLEAdvertising.cpp:539
+
bool removeServices()
Remove all service UUIDs from the advertisement.
Definition NimBLEAdvertising.cpp:455
+
bool refreshAdvertisingData()
Refresh advertsing data dynamically without stop/start cycle. For instance allows refreshing manufact...
Definition NimBLEAdvertising.cpp:396
+
const NimBLEAdvertisementData & getScanData()
Get the current scan response data.
Definition NimBLEAdvertising.cpp:375
+
bool setConnectableMode(uint8_t mode)
Set the type of connectable mode to advertise.
Definition NimBLEAdvertising.cpp:76
+
void clearData()
Clear the advertisement and scan response data and set the flags to BLE_HS_ADV_F_DISC_GEN.
Definition NimBLEAdvertising.cpp:382
A model of a BLE Device from which all the BLE roles are created.
Definition NimBLEDevice.h:119
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_att_value_8h_source.html b/_nim_b_l_e_att_value_8h_source.html index 8e7fbd5..a5ecc94 100644 --- a/_nim_b_l_e_att_value_8h_source.html +++ b/_nim_b_l_e_att_value_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,320 +120,345 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_att_value_8h_source.html','
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED
23
-
24# ifdef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
-
25# include <Arduino.h>
-
26# endif
-
27
-
28# include <string>
-
29# include <vector>
-
30# include <ctime>
-
31# include <cstring>
-
32# include <cstdint>
-
33
-
34# ifndef MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
-
35# ifndef CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
-
36# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED 0
-
37# else
-
38# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
-
39# endif
-
40# endif
-
41
-
42# ifndef BLE_ATT_ATTR_MAX_LEN
-
43# define BLE_ATT_ATTR_MAX_LEN 512
-
44# endif
-
45
-
46# ifndef MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
-
47# ifndef CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
-
48# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH 20
-
49# else
-
50# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
-
51# endif
-
52# endif
-
53
-
54# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH) > BLE_ATT_ATTR_MAX_LEN
-
55# error NIMBLE_CPP_ATT_VALUE_INIT_LENGTH cannot be larger than 512 (BLE_ATT_ATTR_MAX_LEN)
-
56# elif MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH) < 1
-
57# error NIMBLE_CPP_ATT_VALUE_INIT_LENGTH cannot be less than 1; Range = 1 : 512
-
58# endif
-
59
-
60/* Used to determine if the type passed to a template has a data() and size() method. */
-
61template <typename T, typename = void, typename = void>
-
62struct Has_data_size : std::false_type {};
-
63
-
64template <typename T>
-
65struct Has_data_size<T, decltype(void(std::declval<T&>().data())), decltype(void(std::declval<T&>().size()))>
-
66 : std::true_type {};
-
67
-
68/* Used to determine if the type passed to a template has a c_str() and length() method. */
-
69template <typename T, typename = void, typename = void>
-
70struct Has_c_str_length : std::false_type {};
-
71
-
72template <typename T>
-
73struct Has_c_str_length<T, decltype(void(std::declval<T&>().c_str())), decltype(void(std::declval<T&>().length()))>
-
74 : std::true_type {};
-
75
-
76/* Used to determine if the type passed to a template has a value_type member (std::vector, std::array, std::string, etc.). */
-
77template <typename T, typename = void>
-
78struct Has_value_type : std::false_type {};
-
79
-
80template <typename T>
-
81struct Has_value_type<T, decltype(void(sizeof(typename T::value_type)))>
-
82 : std::true_type {};
-
83
-
- -
91 uint8_t* m_attr_value{};
-
92 uint16_t m_attr_max_len{};
-
93 uint16_t m_attr_len{};
-
94 uint16_t m_capacity{};
-
95# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
-
96 time_t m_timestamp{};
-
97# endif
-
98 void deepCopy(const NimBLEAttValue& source);
-
99
-
100 public:
-
106 NimBLEAttValue(uint16_t init_len = MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH), uint16_t max_len = BLE_ATT_ATTR_MAX_LEN);
-
107
-
114 NimBLEAttValue(const uint8_t* value, uint16_t len, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN);
-
115
-
-
121 NimBLEAttValue(const char* value, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
-
122 : NimBLEAttValue((uint8_t*)value, (uint16_t)strlen(value), max_len) {}
+
24/* Enables the use of Arduino String class for attribute values */
+
25# ifndef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
26# define NIMBLE_CPP_ARDUINO_STRING_AVAILABLE (__has_include(<Arduino.h>))
+
27# endif
+
28
+
29# if NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
30# include <WString.h>
+
31# endif
+
32
+
33# include <string>
+
34# include <vector>
+
35# include <ctime>
+
36# include <cstring>
+
37# include <cstdint>
+
38
+
39# ifndef MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
+
40# ifndef CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
+
41# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED 0
+
42# else
+
43# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED CONFIG_NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED
+
44# endif
+
45# endif
+
46
+
47# ifndef BLE_ATT_ATTR_MAX_LEN
+
48# define BLE_ATT_ATTR_MAX_LEN 512
+
49# endif
+
50
+
51# ifndef MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
+
52# ifndef CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
+
53# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH 20
+
54# else
+
55# define MYNEWT_VAL_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
+
56# endif
+
57# endif
+
58
+
59# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH) > BLE_ATT_ATTR_MAX_LEN
+
60# error NIMBLE_CPP_ATT_VALUE_INIT_LENGTH cannot be larger than 512 (BLE_ATT_ATTR_MAX_LEN)
+
61# elif MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH) < 1
+
62# error NIMBLE_CPP_ATT_VALUE_INIT_LENGTH cannot be less than 1; Range = 1 : 512
+
63# endif
+
64
+
65/* Used to determine if the type passed to a template has a data() and size() method. */
+
66template <typename T, typename = void, typename = void>
+
67struct Has_data_size : std::false_type {};
+
68
+
69template <typename T>
+
70struct Has_data_size<T, decltype(void(std::declval<T&>().data())), decltype(void(std::declval<T&>().size()))>
+
71 : std::true_type {};
+
72
+
73/* Used to determine if the type passed to a template has a c_str() and length() method. */
+
74template <typename T, typename = void, typename = void>
+
75struct Has_c_str_length : std::false_type {};
+
76
+
77template <typename T>
+
78struct Has_c_str_length<T, decltype(void(std::declval<T&>().c_str())), decltype(void(std::declval<T&>().length()))>
+
79 : std::true_type {};
+
80
+
81/* Used to determine if the type passed to a template has a value_type member (std::vector, std::array, std::string, etc.). */
+
82template <typename T, typename = void>
+
83struct Has_value_type : std::false_type {};
+
84
+
85template <typename T>
+
86struct Has_value_type<T, decltype(void(sizeof(typename T::value_type)))>
+
87 : std::true_type {};
+
88
+
+ +
96 uint8_t* m_attr_value{};
+
97 uint16_t m_attr_max_len{};
+
98 uint16_t m_attr_len{};
+
99 uint16_t m_capacity{};
+
100# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
+
101 time_t m_timestamp{};
+
102# endif
+
103 void deepCopy(const NimBLEAttValue& source);
+
104
+
105 public:
+
111 NimBLEAttValue(uint16_t init_len = MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_INIT_LENGTH), uint16_t max_len = BLE_ATT_ATTR_MAX_LEN);
+
112
+
119 NimBLEAttValue(const uint8_t* value, uint16_t len, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN);
+
120
+
+
126 NimBLEAttValue(const char* value, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
+
127 : NimBLEAttValue((uint8_t*)value, (uint16_t)strlen(value), max_len) {}
-
123
-
-
129 NimBLEAttValue(std::initializer_list<uint8_t> list, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
-
130 : NimBLEAttValue(list.begin(), list.size(), max_len) {}
+
128
+
+
134 NimBLEAttValue(std::initializer_list<uint8_t> list, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
+
135 : NimBLEAttValue(list.begin(), list.size(), max_len) {}
-
131
-
-
137 NimBLEAttValue(const std::string str, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
-
138 : NimBLEAttValue(reinterpret_cast<const uint8_t*>(&str[0]), str.length(), max_len) {}
+
136
+
+
142 NimBLEAttValue(const std::string str, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
+
143 : NimBLEAttValue(reinterpret_cast<const uint8_t*>(&str[0]), str.length(), max_len) {}
-
139
-
-
145 NimBLEAttValue(const std::vector<uint8_t> vec, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
-
146 : NimBLEAttValue(&vec[0], vec.size(), max_len) {}
+
144
+
+
150 NimBLEAttValue(const std::vector<uint8_t> vec, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
+
151 : NimBLEAttValue(&vec[0], vec.size(), max_len) {}
-
147
-
148# ifdef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
-
154 NimBLEAttValue(const String str, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
-
155 : NimBLEAttValue(reinterpret_cast<const uint8_t*>(str.c_str()), str.length(), max_len) {}
-
156# endif
-
157
-
159 NimBLEAttValue(const NimBLEAttValue& source) { deepCopy(source); }
-
160
-
162 NimBLEAttValue(NimBLEAttValue&& source) { *this = std::move(source); }
-
163
- -
166
-
168 uint16_t max_size() const { return m_attr_max_len; }
-
169
-
171 uint16_t capacity() const { return m_capacity; }
-
172
-
174 uint16_t length() const { return m_attr_len; }
-
175
-
177 uint16_t size() const { return m_attr_len; }
-
178
-
180 const uint8_t* data() const { return m_attr_value; }
-
181
-
183 const char* c_str() const { return reinterpret_cast<const char*>(m_attr_value); }
-
184
-
186 const uint8_t* begin() const { return m_attr_value; }
-
187
-
189 const uint8_t* end() const { return m_attr_value + m_attr_len; }
-
190
-
191# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
-
193 time_t getTimeStamp() const { return m_timestamp; }
-
194
-
196 void setTimeStamp() { m_timestamp = time(nullptr); }
-
197
-
202 void setTimeStamp(time_t t) { m_timestamp = t; }
-
203# else
-
204 time_t getTimeStamp() const { return 0; }
-
205 void setTimeStamp() {}
-
206 void setTimeStamp(time_t t) {}
-
207# endif
-
208
-
215 bool setValue(const uint8_t* value, uint16_t len);
-
216
-
-
222 bool setValue(const char* s, uint16_t len = 0) {
-
223 if (len == 0) {
-
224 len = strlen(s);
-
225 }
-
226 return setValue(reinterpret_cast<const uint8_t*>(s), len);
-
227 }
+
152
+
153# if NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
159 NimBLEAttValue(const String str, uint16_t max_len = BLE_ATT_ATTR_MAX_LEN)
+
160 : NimBLEAttValue(reinterpret_cast<const uint8_t*>(str.c_str()), str.length(), max_len) {}
+
161# endif
+
162
+
164 NimBLEAttValue(const NimBLEAttValue& source) { deepCopy(source); }
+
165
+
167 NimBLEAttValue(NimBLEAttValue&& source) { *this = std::move(source); }
+
168
+ +
171
+
173 uint16_t max_size() const { return m_attr_max_len; }
+
174
+
176 uint16_t capacity() const { return m_capacity; }
+
177
+
179 uint16_t length() const { return m_attr_len; }
+
180
+
182 uint16_t size() const { return m_attr_len; }
+
183
+
185 const uint8_t* data() const { return m_attr_value; }
+
186
+
188 const char* c_str() const { return reinterpret_cast<const char*>(m_attr_value); }
+
189
+
191 const uint8_t* begin() const { return m_attr_value; }
+
192
+
194 const uint8_t* end() const { return m_attr_value + m_attr_len; }
+
195
+
196# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
+
198 time_t getTimeStamp() const { return m_timestamp; }
+
199
+
201 void setTimeStamp() { m_timestamp = time(nullptr); }
+
202
+
207 void setTimeStamp(time_t t) { m_timestamp = t; }
+
208# else
+
209 time_t getTimeStamp() const { return 0; }
+
210 void setTimeStamp() {}
+
211 void setTimeStamp(time_t t) {}
+
212# endif
+
213
+
220 bool setValue(const uint8_t* value, uint16_t len);
+
221
+
+
227 bool setValue(const char* s, uint16_t len = 0) {
+
228 if (len == 0) {
+
229 len = strlen(s);
+
230 }
+
231 return setValue(reinterpret_cast<const uint8_t*>(s), len);
+
232 }
-
228
-
229 const NimBLEAttValue& getValue(time_t* timestamp = nullptr) const {
-
230 if (timestamp != nullptr) {
-
231# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
-
232 *timestamp = m_timestamp;
-
233# else
-
234 *timestamp = 0;
-
235# endif
-
236 }
-
237 return *this;
-
238 }
-
239
-
246 NimBLEAttValue& append(const uint8_t* value, uint16_t len);
-
247
-
248 /*********************** Template Functions ************************/
-
249
-
250# if __cplusplus < 201703L
-
257 template <typename T>
-
258# ifdef _DOXYGEN_
-
259 bool
-
260# else
-
261 typename std::enable_if<!std::is_pointer<T>::value && !Has_c_str_length<T>::value && !Has_data_size<T>::value, bool>::type
-
262# endif
-
-
263 setValue(const T& v) {
-
264 return setValue(reinterpret_cast<const uint8_t*>(&v), sizeof(T));
-
265 }
+
233
+
234 const NimBLEAttValue& getValue(time_t* timestamp = nullptr) const {
+
235 if (timestamp != nullptr) {
+
236# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
+
237 *timestamp = m_timestamp;
+
238# else
+
239 *timestamp = 0;
+
240# endif
+
241 }
+
242 return *this;
+
243 }
+
244
+
251 NimBLEAttValue& append(const uint8_t* value, uint16_t len);
+
252
+
253 /*********************** Template Functions ************************/
+
254
+
255# if __cplusplus < 201703L
+
261 template <typename T>
+
262# ifdef _DOXYGEN_
+
263 bool
+
264# else
+
265 typename std::enable_if<std::is_array<T>::value &&
+
266 std::is_same<typename std::remove_extent<T>::type, char>::value,
+
267 bool>::type
+
268# endif
+
+
269 setValue(const T& s) {
+
270 return setValue(reinterpret_cast<const uint8_t*>(s), strnlen(s, sizeof(T)));
+
271 }
-
266
-
272 template <typename T>
-
273# ifdef _DOXYGEN_
-
274 bool
-
275# else
-
276 typename std::enable_if<Has_c_str_length<T>::value && !Has_data_size<T>::value, bool>::type
-
277# endif
-
-
278 setValue(const T& s) {
-
279 return setValue(reinterpret_cast<const uint8_t*>(s.c_str()), s.length());
-
280 }
+
272
+
279 template <typename T>
+
280# ifdef _DOXYGEN_
+
281 bool
+
282# else
+
283 typename std::enable_if<!std::is_pointer<T>::value && !Has_c_str_length<T>::value && !Has_data_size<T>::value &&
+
284 !(std::is_array<T>::value &&
+
285 std::is_same<typename std::remove_extent<T>::type, char>::value),
+
286 bool>::type
+
287# endif
+
+
288 setValue(const T& v) {
+
289 return setValue(reinterpret_cast<const uint8_t*>(&v), sizeof(T));
+
290 }
-
281
-
288 template <typename T>
-
289# ifdef _DOXYGEN_
-
290 bool
-
291# else
-
292 typename std::enable_if<Has_data_size<T>::value && Has_value_type<T>::value, bool>::type
-
293# endif
-
-
294 setValue(const T& v) {
-
295 return setValue(
-
296 reinterpret_cast<const uint8_t*>(v.data()),
-
297 v.size() * sizeof(typename T::value_type)
-
298 );
-
299 }
+
291
+
297 template <typename T>
+
298# ifdef _DOXYGEN_
+
299 bool
+
300# else
+
301 typename std::enable_if<Has_c_str_length<T>::value && !Has_data_size<T>::value, bool>::type
+
302# endif
+
+
303 setValue(const T& s) {
+
304 return setValue(reinterpret_cast<const uint8_t*>(s.c_str()), s.length());
+
305 }
-
300
-
306 template <typename T>
-
307# ifdef _DOXYGEN_
-
308 bool
-
309# else
-
310 typename std::enable_if<Has_data_size<T>::value && !Has_value_type<T>::value, bool>::type
-
311# endif
-
-
312 setValue(const T& v) {
-
313 return setValue(reinterpret_cast<const uint8_t*>(v.data()), v.size());
-
314 }
+
306
+
313 template <typename T>
+
314# ifdef _DOXYGEN_
+
315 bool
+
316# else
+
317 typename std::enable_if<Has_data_size<T>::value && Has_value_type<T>::value, bool>::type
+
318# endif
+
+
319 setValue(const T& v) {
+
320 return setValue(
+
321 reinterpret_cast<const uint8_t*>(v.data()),
+
322 v.size() * sizeof(typename T::value_type)
+
323 );
+
324 }
-
315
-
316# else
-
322 template <typename T>
-
323 typename std::enable_if<!std::is_pointer<T>::value, bool>::type setValue(const T& s) {
-
324 if constexpr (Has_data_size<T>::value) {
-
325 if constexpr (Has_value_type<T>::value) {
-
326 return setValue(reinterpret_cast<const uint8_t*>(s.data()), s.size() * sizeof(typename T::value_type));
-
327 } else {
-
328 return setValue(reinterpret_cast<const uint8_t*>(s.data()), s.size());
-
329 }
-
330 } else if constexpr (Has_c_str_length<T>::value) {
-
331 return setValue(reinterpret_cast<const uint8_t*>(s.c_str()), s.length());
-
332 } else {
-
333 return setValue(reinterpret_cast<const uint8_t*>(&s), sizeof(s));
-
334 }
-
335 }
-
336# endif
-
337
-
348 template <typename T>
-
-
349 T getValue(time_t* timestamp = nullptr, bool skipSizeCheck = false) const {
-
350 if (timestamp != nullptr) {
-
351# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
-
352 *timestamp = m_timestamp;
-
353# else
-
354 *timestamp = 0;
-
355# endif
-
356 }
-
357
-
358 if (!skipSizeCheck && size() < sizeof(T)) {
-
359 return T();
-
360 }
-
361 return *(reinterpret_cast<const T*>(m_attr_value));
-
362 }
+
325
+
331 template <typename T>
+
332# ifdef _DOXYGEN_
+
333 bool
+
334# else
+
335 typename std::enable_if<Has_data_size<T>::value && !Has_value_type<T>::value, bool>::type
+
336# endif
+
+
337 setValue(const T& v) {
+
338 return setValue(reinterpret_cast<const uint8_t*>(v.data()), v.size());
+
339 }
-
363
-
364 /*********************** Operators ************************/
+
340
+
341# else
+
347 template <typename T>
+
348 typename std::enable_if<!std::is_pointer<T>::value, bool>::type setValue(const T& s) {
+
349 if constexpr (Has_data_size<T>::value) {
+
350 if constexpr (Has_value_type<T>::value) {
+
351 return setValue(reinterpret_cast<const uint8_t*>(s.data()), s.size() * sizeof(typename T::value_type));
+
352 } else {
+
353 return setValue(reinterpret_cast<const uint8_t*>(s.data()), s.size());
+
354 }
+
355 } else if constexpr (Has_c_str_length<T>::value) {
+
356 return setValue(reinterpret_cast<const uint8_t*>(s.c_str()), s.length());
+
357 } else if constexpr (std::is_array<T>::value &&
+
358 std::is_same<typename std::remove_extent<T>::type, char>::value) {
+
359 return setValue(reinterpret_cast<const uint8_t*>(s), strnlen(s, sizeof(s)));
+
360 } else {
+
361 return setValue(reinterpret_cast<const uint8_t*>(&s), sizeof(s));
+
362 }
+
363 }
+
364# endif
365
-
367 uint8_t operator[](int pos) const;
-
368
-
370 operator std::vector<uint8_t>() const { return std::vector<uint8_t>(m_attr_value, m_attr_value + m_attr_len); }
-
371
-
373 operator std::string() const { return std::string(reinterpret_cast<char*>(m_attr_value), m_attr_len); }
-
374
-
376 operator const uint8_t*() const { return m_attr_value; }
-
377
-
379 NimBLEAttValue& operator+=(const NimBLEAttValue& source) { return append(source.data(), source.size()); }
-
380
-
-
382 NimBLEAttValue& operator=(const std::string& source) {
-
383 setValue(reinterpret_cast<const uint8_t*>(&source[0]), source.size());
-
384 return *this;
-
385 }
+
376 template <typename T>
+
+
377 T getValue(time_t* timestamp = nullptr, bool skipSizeCheck = false) const {
+
378 if (timestamp != nullptr) {
+
379# if MYNEWT_VAL(NIMBLE_CPP_ATT_VALUE_TIMESTAMP_ENABLED)
+
380 *timestamp = m_timestamp;
+
381# else
+
382 *timestamp = 0;
+
383# endif
+
384 }
+
385
+
386 if (!skipSizeCheck && size() < sizeof(T)) {
+
387 return T();
+
388 }
+
389 return *(reinterpret_cast<const T*>(m_attr_value));
+
390 }
-
386
- -
389
- -
392
-
-
394 bool operator==(const NimBLEAttValue& source) const {
-
395 return (m_attr_len == source.size()) ? memcmp(m_attr_value, source.data(), m_attr_len) == 0 : false;
-
396 }
+
391
+
392 /*********************** Operators ************************/
+
393
+
395 uint8_t operator[](int pos) const;
+
396
+
398 operator std::vector<uint8_t>() const { return std::vector<uint8_t>(m_attr_value, m_attr_value + m_attr_len); }
+
399
+
401 operator std::string() const { return std::string(reinterpret_cast<char*>(m_attr_value), m_attr_len); }
+
402
+
404 operator const uint8_t*() const { return m_attr_value; }
+
405
+
407 NimBLEAttValue& operator+=(const NimBLEAttValue& source) { return append(source.data(), source.size()); }
+
408
+
+
410 NimBLEAttValue& operator=(const std::string& source) {
+
411 setValue(reinterpret_cast<const uint8_t*>(&source[0]), source.size());
+
412 return *this;
+
413 }
-
397
-
399 bool operator!=(const NimBLEAttValue& source) const { return !(*this == source); }
-
400
-
401# ifdef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
-
403 operator String() const { return String(reinterpret_cast<char*>(m_attr_value)); }
-
404# endif
-
405};
+
414
+ +
417
+ +
420
+
+
422 bool operator==(const NimBLEAttValue& source) const {
+
423 return (m_attr_len == source.size()) ? memcmp(m_attr_value, source.data(), m_attr_len) == 0 : false;
+
424 }
-
406
-
407#endif // CONFIG_BT_NIMBLE_ENABLED
-
408#endif // NIMBLE_CPP_ATTVALUE_H_
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
-
NimBLEAttValue(const std::vector< uint8_t > vec, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a std::vector<uint8_t>.
Definition NimBLEAttValue.h:145
+
425
+
427 bool operator!=(const NimBLEAttValue& source) const { return !(*this == source); }
+
428
+
429# if NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
431 operator String() const { return String(reinterpret_cast<char*>(m_attr_value)); }
+
432# endif
+
433};
+
+
434
+
435#endif // CONFIG_BT_NIMBLE_ENABLED
+
436#endif // NIMBLE_CPP_ATTVALUE_H_
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
+
NimBLEAttValue(const std::vector< uint8_t > vec, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a std::vector<uint8_t>.
Definition NimBLEAttValue.h:150
~NimBLEAttValue()
Destructor.
Definition NimBLEAttValue.cpp:58
-
uint16_t length() const
Returns the current length of the value in bytes.
Definition NimBLEAttValue.h:174
-
NimBLEAttValue(const char *value, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a const char string.
Definition NimBLEAttValue.h:121
-
uint16_t capacity() const
Returns the currently allocated capacity in bytes.
Definition NimBLEAttValue.h:171
-
const char * c_str() const
Returns a pointer to the internal buffer of the value as a const char*.
Definition NimBLEAttValue.h:183
-
NimBLEAttValue(const std::string str, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a std::string.
Definition NimBLEAttValue.h:137
+
uint16_t length() const
Returns the current length of the value in bytes.
Definition NimBLEAttValue.h:179
+
NimBLEAttValue(const char *value, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a const char string.
Definition NimBLEAttValue.h:126
+
uint16_t capacity() const
Returns the currently allocated capacity in bytes.
Definition NimBLEAttValue.h:176
+
const char * c_str() const
Returns a pointer to the internal buffer of the value as a const char*.
Definition NimBLEAttValue.h:188
+
NimBLEAttValue(const std::string str, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initial value from a std::string.
Definition NimBLEAttValue.h:142
bool setValue(const uint8_t *value, uint16_t len)
Set the value from a buffer.
Definition NimBLEAttValue.cpp:107
-
NimBLEAttValue(std::initializer_list< uint8_t > list, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initializer list.
Definition NimBLEAttValue.h:129
-
NimBLEAttValue & operator+=(const NimBLEAttValue &source)
Operator; Append another NimBLEAttValue.
Definition NimBLEAttValue.h:379
-
NimBLEAttValue(const NimBLEAttValue &source)
Copy constructor.
Definition NimBLEAttValue.h:159
-
NimBLEAttValue(NimBLEAttValue &&source)
Move constructor.
Definition NimBLEAttValue.h:162
-
const uint8_t * data() const
Returns a pointer to the internal buffer of the value.
Definition NimBLEAttValue.h:180
+
NimBLEAttValue(std::initializer_list< uint8_t > list, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
Construct with an initializer list.
Definition NimBLEAttValue.h:134
+
NimBLEAttValue & operator+=(const NimBLEAttValue &source)
Operator; Append another NimBLEAttValue.
Definition NimBLEAttValue.h:407
+
NimBLEAttValue(const NimBLEAttValue &source)
Copy constructor.
Definition NimBLEAttValue.h:164
+
NimBLEAttValue(NimBLEAttValue &&source)
Move constructor.
Definition NimBLEAttValue.h:167
+
const uint8_t * data() const
Returns a pointer to the internal buffer of the value.
Definition NimBLEAttValue.h:185
uint8_t operator[](int pos) const
Subscript operator.
Definition NimBLEAttValue.cpp:154
-
const uint8_t * end() const
Iterator end.
Definition NimBLEAttValue.h:189
-
bool setValue(const T &v)
Template to set value to the value of <type>val.
Definition NimBLEAttValue.h:263
+
const uint8_t * end() const
Iterator end.
Definition NimBLEAttValue.h:194
+
bool setValue(const T &v)
Template to set value to the value of <type>val.
Definition NimBLEAttValue.h:288
NimBLEAttValue & append(const uint8_t *value, uint16_t len)
Append data to the value.
Definition NimBLEAttValue.cpp:115
-
uint16_t size() const
Returns the current size of the value in bytes.
Definition NimBLEAttValue.h:177
-
bool setValue(const char *s, uint16_t len=0)
Set value to the value of const char*.
Definition NimBLEAttValue.h:222
-
T getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) const
Template to return the value as a <type>.
Definition NimBLEAttValue.h:349
-
uint16_t max_size() const
Returns the max size in bytes.
Definition NimBLEAttValue.h:168
-
bool setValue(const T &s)
Template to set value to the value of <type>val.
Definition NimBLEAttValue.h:278
-
bool operator==(const NimBLEAttValue &source) const
Equality operator.
Definition NimBLEAttValue.h:394
-
NimBLEAttValue & operator=(const std::string &source)
Operator; Set the value from a std::string source.
Definition NimBLEAttValue.h:382
-
const uint8_t * begin() const
Iterator begin.
Definition NimBLEAttValue.h:186
-
bool operator!=(const NimBLEAttValue &source) const
Inequality operator.
Definition NimBLEAttValue.h:399
+
uint16_t size() const
Returns the current size of the value in bytes.
Definition NimBLEAttValue.h:182
+
bool setValue(const char *s, uint16_t len=0)
Set value to the value of const char*.
Definition NimBLEAttValue.h:227
+
T getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) const
Template to return the value as a <type>.
Definition NimBLEAttValue.h:377
+
uint16_t max_size() const
Returns the max size in bytes.
Definition NimBLEAttValue.h:173
+
bool setValue(const T &s)
Template to set value to the value of a char array using strnlen.
Definition NimBLEAttValue.h:269
+
bool operator==(const NimBLEAttValue &source) const
Equality operator.
Definition NimBLEAttValue.h:422
+
NimBLEAttValue & operator=(const std::string &source)
Operator; Set the value from a std::string source.
Definition NimBLEAttValue.h:410
+
const uint8_t * begin() const
Iterator begin.
Definition NimBLEAttValue.h:191
+
bool operator!=(const NimBLEAttValue &source) const
Inequality operator.
Definition NimBLEAttValue.h:427
diff --git a/_nim_b_l_e_attribute_8h_source.html b/_nim_b_l_e_attribute_8h_source.html index 0190aae..8875b68 100644 --- a/_nim_b_l_e_attribute_8h_source.html +++ b/_nim_b_l_e_attribute_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_beacon_8h_source.html b/_nim_b_l_e_beacon_8h_source.html index 0cf7268..a4c76dd 100644 --- a/_nim_b_l_e_beacon_8h_source.html +++ b/_nim_b_l_e_beacon_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_characteristic_8h_source.html b/_nim_b_l_e_characteristic_8h_source.html index 37b0ca6..52c2e3c 100644 --- a/_nim_b_l_e_characteristic_8h_source.html +++ b/_nim_b_l_e_characteristic_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_client_8h_source.html b/_nim_b_l_e_client_8h_source.html index d7300be..c3e447a 100644 --- a/_nim_b_l_e_client_8h_source.html +++ b/_nim_b_l_e_client_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_client_8h_source.html','');
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_gap.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_gap.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_gap.h"
+
27# include "host/ble_gap.h"
28# endif
29
30# include "NimBLEAddress.h"
@@ -154,125 +154,145 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_client_8h_source.html','');
58 bool connect(bool deleteAttributes = true, bool asyncConnect = false, bool exchangeMTU = true);
59 bool disconnect(uint8_t reason = BLE_ERR_REM_USER_CONN_TERM);
60 bool cancelConnect() const;
-
61 void setSelfDelete(bool deleteOnDisconnect, bool deleteOnConnectFail);
-
62 NimBLEAddress getPeerAddress() const;
-
63 bool setPeerAddress(const NimBLEAddress& address);
-
64 int getRssi() const;
-
65 bool isConnected() const;
-
66 void setClientCallbacks(NimBLEClientCallbacks* pClientCallbacks, bool deleteCallbacks = true);
-
67 std::string toString() const;
-
68 uint16_t getConnHandle() const;
-
69 uint16_t getMTU() const;
-
70 bool exchangeMTU();
-
71 bool secureConnection(bool async = false) const;
-
72 void setConnectTimeout(uint32_t timeout);
-
73 bool setDataLen(uint16_t txOctets);
-
74 bool discoverAttributes();
-
75 NimBLEConnInfo getConnInfo() const;
-
76 int getLastError() const;
-
77 bool updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout);
-
78 void setConnectionParams(uint16_t minInterval,
-
79 uint16_t maxInterval,
-
80 uint16_t latency,
-
81 uint16_t timeout,
-
82 uint16_t scanInterval = 16,
-
83 uint16_t scanWindow = 16);
-
84 const std::vector<NimBLERemoteService*>& getServices(bool refresh = false);
-
85 std::vector<NimBLERemoteService*>::iterator begin();
-
86 std::vector<NimBLERemoteService*>::iterator end();
-
87 NimBLERemoteCharacteristic* getCharacteristic(uint16_t handle);
-
88 NimBLERemoteService* getService(const char* uuid);
-
89 NimBLERemoteService* getService(const NimBLEUUID& uuid);
-
90 void deleteServices();
-
91 size_t deleteService(const NimBLEUUID& uuid);
-
92 NimBLEAttValue getValue(const NimBLEUUID& serviceUUID, const NimBLEUUID& characteristicUUID);
-
93 bool setValue(const NimBLEUUID& serviceUUID,
-
94 const NimBLEUUID& characteristicUUID,
-
95 const NimBLEAttValue& value,
-
96 bool response = false);
-
97
-
98# if MYNEWT_VAL(BLE_EXT_ADV)
-
99 void setConnectPhy(uint8_t phyMask);
-
100# endif
-
101 bool updatePhy(uint8_t txPhysMask, uint8_t rxPhysMask, uint16_t phyOptions = 0);
-
102 bool getPhy(uint8_t* txPhy, uint8_t* rxPhy);
-
103
-
104 struct Config {
-
105 uint8_t deleteCallbacks : 1; // Delete the callback object when the client is deleted.
-
106 uint8_t deleteOnDisconnect : 1; // Delete the client when disconnected.
-
107 uint8_t deleteOnConnectFail : 1; // Delete the client when a connection attempt fails.
-
108 uint8_t asyncConnect : 1; // Connect asynchronously.
-
109 uint8_t exchangeMTU : 1; // Exchange MTU after connection.
-
110 };
-
111
-
112 Config getConfig() const;
-
113 void setConfig(Config config);
-
114
-
115 private:
-
116 NimBLEClient(const NimBLEAddress& peerAddress);
-
117 ~NimBLEClient();
-
118 NimBLEClient(const NimBLEClient&) = delete;
-
119 NimBLEClient& operator=(const NimBLEClient&) = delete;
-
120
-
121 bool retrieveServices(const NimBLEUUID* uuidFilter = nullptr);
-
122 static int handleGapEvent(struct ble_gap_event* event, void* arg);
-
123 static int exchangeMTUCb(uint16_t conn_handle, const ble_gatt_error* error, uint16_t mtu, void* arg);
-
124 static int serviceDiscoveredCB(uint16_t connHandle,
-
125 const struct ble_gatt_error* error,
-
126 const struct ble_gatt_svc* service,
-
127 void* arg);
-
128
-
129 NimBLEAddress m_peerAddress;
-
130 mutable int m_lastErr;
-
131 int32_t m_connectTimeout;
-
132 mutable NimBLETaskData* m_pTaskData;
-
133 std::vector<NimBLERemoteService*> m_svcVec;
-
134 NimBLEClientCallbacks* m_pClientCallbacks;
-
135 uint16_t m_connHandle;
-
136 uint8_t m_terminateFailCount;
-
137 mutable uint8_t m_asyncSecureAttempt;
-
138 Config m_config;
-
139
-
140# if MYNEWT_VAL(BLE_EXT_ADV)
-
141 uint8_t m_phyMask;
-
142# endif
-
143 ble_gap_conn_params m_connParams;
-
144
-
145 friend class NimBLEDevice;
-
146 friend class NimBLEServer;
-
147}; // class NimBLEClient
-
148
-
152class NimBLEClientCallbacks {
-
153 public:
-
154 virtual ~NimBLEClientCallbacks() {};
-
155
-
160 virtual void onConnect(NimBLEClient* pClient);
-
161
-
167 virtual void onConnectFail(NimBLEClient* pClient, int reason);
-
168
-
174 virtual void onDisconnect(NimBLEClient* pClient, int reason);
-
175
-
182 virtual bool onConnParamsUpdateRequest(NimBLEClient* pClient, const ble_gap_upd_params* params);
-
183
-
188 virtual void onPassKeyEntry(NimBLEConnInfo& connInfo);
-
189
-
195 virtual uint32_t onPassKeyDisplay(NimBLEConnInfo& connInfo);
-
196
-
202 virtual void onAuthenticationComplete(NimBLEConnInfo& connInfo);
-
203
-
209 virtual void onConfirmPasskey(NimBLEConnInfo& connInfo, uint32_t pin);
-
210
-
215 virtual void onIdentity(NimBLEConnInfo& connInfo);
-
216
-
223 virtual void onMTUChange(NimBLEClient* pClient, uint16_t MTU);
-
224
-
236 virtual void onPhyUpdate(NimBLEClient* pClient, uint8_t txPhy, uint8_t rxPhy);
-
237};
-
238
-
239#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
-
240#endif // NIMBLE_CPP_CLIENT_H_
+
61 void setConnectRetries(uint8_t numRetries);
+
62 void setSelfDelete(bool deleteOnDisconnect, bool deleteOnConnectFail);
+
63 NimBLEAddress getPeerAddress() const;
+
64 bool setPeerAddress(const NimBLEAddress& address);
+
65 int getRssi() const;
+
66 bool isConnected() const;
+
67 void setClientCallbacks(NimBLEClientCallbacks* pClientCallbacks, bool deleteCallbacks = true);
+
68 std::string toString() const;
+
69 uint16_t getConnHandle() const;
+
70 uint16_t getMTU() const;
+
71 bool exchangeMTU();
+
72 bool secureConnection(bool async = false) const;
+
73 void setConnectTimeout(uint32_t timeout);
+
74 bool setDataLen(uint16_t txOctets);
+
75 bool discoverAttributes();
+
76 NimBLEConnInfo getConnInfo() const;
+
77 int getLastError() const;
+
78 bool updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout);
+
79 void setConnectionParams(uint16_t minInterval,
+
80 uint16_t maxInterval,
+
81 uint16_t latency,
+
82 uint16_t timeout,
+
83 uint16_t scanInterval = 16,
+
84 uint16_t scanWindow = 16);
+
85 const std::vector<NimBLERemoteService*>& getServices(bool refresh = false);
+
86 std::vector<NimBLERemoteService*>::iterator begin();
+
87 std::vector<NimBLERemoteService*>::iterator end();
+
88 NimBLERemoteCharacteristic* getCharacteristic(uint16_t handle);
+
89 NimBLERemoteService* getService(const char* uuid);
+
90 NimBLERemoteService* getService(const NimBLEUUID& uuid);
+
91 void deleteServices();
+
92 size_t deleteService(const NimBLEUUID& uuid);
+
93 NimBLEAttValue getValue(const NimBLEUUID& serviceUUID, const NimBLEUUID& characteristicUUID);
+
94 bool setValue(const NimBLEUUID& serviceUUID,
+
95 const NimBLEUUID& characteristicUUID,
+
96 const NimBLEAttValue& value,
+
97 bool response = false);
+
98
+
99# if MYNEWT_VAL(BLE_EXT_ADV)
+
100 void setConnectPhy(uint8_t phyMask);
+
101# endif
+
102 bool updatePhy(uint8_t txPhysMask, uint8_t rxPhysMask, uint16_t phyOptions = 0);
+
103 bool getPhy(uint8_t* txPhy, uint8_t* rxPhy);
+
104
+
105 struct Config {
+
106 uint8_t deleteCallbacks : 1; // Delete the callback object when the client is deleted.
+
107 uint8_t deleteOnDisconnect : 1; // Delete the client when disconnected.
+
108 uint8_t deleteOnConnectFail : 1; // Delete the client when a connection attempt fails.
+
109 uint8_t asyncConnect : 1; // Connect asynchronously.
+
110 uint8_t exchangeMTU : 1; // Exchange MTU after connection.
+
111 uint8_t connectFailRetries : 3; // Number of retries for 0x3e (connection establishment) failures.
+
112
+
123 Config()
+
124 : deleteCallbacks(0),
+
125 deleteOnDisconnect(0),
+
126 deleteOnConnectFail(0),
+
127 asyncConnect(0),
+
128 exchangeMTU(1),
+
129 connectFailRetries(2) {}
+
130 };
+
131
+
132 Config getConfig() const;
+
133 void setConfig(Config config);
+
134
+
135 private:
+
136 enum ConnStatus : uint8_t { CONNECTED, DISCONNECTED, CONNECTING, DISCONNECTING };
+
137
+
138 NimBLEClient(const NimBLEAddress& peerAddress);
+
139 ~NimBLEClient();
+
140 NimBLEClient(const NimBLEClient&) = delete;
+
141 NimBLEClient& operator=(const NimBLEClient&) = delete;
+
142
+
143 bool retrieveServices(const NimBLEUUID* uuidFilter = nullptr);
+
144 int startConnectionAttempt(const ble_addr_t* peerAddr);
+
145 static int handleGapEvent(struct ble_gap_event* event, void* arg);
+
146 static void connectEstablishedTimerCb(struct ble_npl_event* event);
+
147 void startConnectEstablishedTimer(uint16_t connInterval);
+
148 bool completeConnectEstablished();
+
149 static int exchangeMTUCb(uint16_t conn_handle, const ble_gatt_error* error, uint16_t mtu, void* arg);
+
150 static int serviceDiscoveredCB(uint16_t connHandle,
+
151 const struct ble_gatt_error* error,
+
152 const struct ble_gatt_svc* service,
+
153 void* arg);
+
154
+
155 NimBLEAddress m_peerAddress;
+
156 mutable int m_lastErr;
+
157 int32_t m_connectTimeout;
+
158 mutable NimBLETaskData* m_pTaskData;
+
159 std::vector<NimBLERemoteService*> m_svcVec;
+
160 NimBLEClientCallbacks* m_pClientCallbacks;
+
161 uint16_t m_connHandle;
+
162 uint8_t m_terminateFailCount;
+
163 mutable uint8_t m_asyncSecureAttempt;
+
164 Config m_config;
+
165 ConnStatus m_connStatus;
+
166 ble_npl_callout m_connectEstablishedTimer{};
+
167 bool m_connectCallbackPending;
+
168 uint8_t m_connectFailRetryCount;
+
169
+
170# if MYNEWT_VAL(BLE_EXT_ADV)
+
171 uint8_t m_phyMask;
+
172# endif
+
173 ble_gap_conn_params m_connParams;
+
174
+
175 friend class NimBLEDevice;
+
176 friend class NimBLEServer;
+
177}; // class NimBLEClient
+
178
+
182class NimBLEClientCallbacks {
+
183 public:
+
184 virtual ~NimBLEClientCallbacks() {};
+
185
+
190 virtual void onConnect(NimBLEClient* pClient);
+
191
+
197 virtual void onConnectFail(NimBLEClient* pClient, int reason);
+
198
+
204 virtual void onDisconnect(NimBLEClient* pClient, int reason);
+
205
+
212 virtual bool onConnParamsUpdateRequest(NimBLEClient* pClient, const ble_gap_upd_params* params);
+
213
+
218 virtual void onPassKeyEntry(NimBLEConnInfo& connInfo);
+
219
+
225 virtual uint32_t onPassKeyDisplay(NimBLEConnInfo& connInfo);
+
226
+
232 virtual void onAuthenticationComplete(NimBLEConnInfo& connInfo);
+
233
+
239 virtual void onConfirmPasskey(NimBLEConnInfo& connInfo, uint32_t pin);
+
240
+
245 virtual void onIdentity(NimBLEConnInfo& connInfo);
+
246
+
253 virtual void onMTUChange(NimBLEClient* pClient, uint16_t MTU);
+
254
+
266 virtual void onPhyUpdate(NimBLEClient* pClient, uint8_t txPhy, uint8_t rxPhy);
+
267};
+
268
+
269#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
+
270#endif // NIMBLE_CPP_CLIENT_H_
A BLE device address.
Definition NimBLEAddress.h:42
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
Connection information.
Definition NimBLEConnInfo.h:33
A model of a BLE Device from which all the BLE roles are created.
Definition NimBLEDevice.h:119
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_conn_info_8h_source.html b/_nim_b_l_e_conn_info_8h_source.html index e687add..8398ddb 100644 --- a/_nim_b_l_e_conn_info_8h_source.html +++ b/_nim_b_l_e_conn_info_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -117,10 +117,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_conn_info_8h_source.html','
18#ifndef NIMBLE_CPP_CONNINFO_H_
19#define NIMBLE_CPP_CONNINFO_H_
20
-
21#if defined(CONFIG_NIMBLE_CPP_IDF)
-
22# include "host/ble_gap.h"
+
21#ifdef USING_NIMBLE_ARDUINO_HEADERS
+
22# include "nimble/nimble/host/include/host/ble_gap.h"
23#else
-
24# include "nimble/nimble/host/include/host/ble_gap.h"
+
24# include "host/ble_gap.h"
25#endif
26
27#include "NimBLEAddress.h"
diff --git a/_nim_b_l_e_cpp_version_8h_source.html b/_nim_b_l_e_cpp_version_8h_source.html index a155f69..62f3f98 100644 --- a/_nim_b_l_e_cpp_version_8h_source.html +++ b/_nim_b_l_e_cpp_version_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -119,7 +119,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_cpp_version_8h_source.html'
20
22#define NIMBLE_CPP_VERSION_MAJOR 2
23
-
25#define NIMBLE_CPP_VERSION_MINOR 4
+
25#define NIMBLE_CPP_VERSION_MINOR 5
26
28#define NIMBLE_CPP_VERSION_PATCH 0
29
diff --git a/_nim_b_l_e_descriptor_8h_source.html b/_nim_b_l_e_descriptor_8h_source.html index 85613dc..223a9f2 100644 --- a/_nim_b_l_e_descriptor_8h_source.html +++ b/_nim_b_l_e_descriptor_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_device_8h_source.html b/_nim_b_l_e_device_8h_source.html index c0d91b5..6a9178a 100644 --- a/_nim_b_l_e_device_8h_source.html +++ b/_nim_b_l_e_device_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -128,10 +128,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_device_8h_source.html','');
29 (CONFIG_BTDM_BLE_SCAN_DUPL || CONFIG_BT_LE_SCAN_DUPL || CONFIG_BT_CTRL_BLE_SCAN_DUPL)
30# endif
31
-
32# if defined(CONFIG_NIMBLE_CPP_IDF)
-
33# include <host/ble_gap.h>
+
32# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
33# include "nimble/nimble/host/include/host/ble_gap.h"
34# else
-
35# include <nimble/nimble/host/include/host/ble_gap.h>
+
35# include "host/ble_gap.h"
36# endif
37
38/**** FIX COMPILATION ****/
diff --git a/_nim_b_l_e_eddystone_t_l_m_8h_source.html b/_nim_b_l_e_eddystone_t_l_m_8h_source.html index 77c453e..e24d07e 100644 --- a/_nim_b_l_e_eddystone_t_l_m_8h_source.html +++ b/_nim_b_l_e_eddystone_t_l_m_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_ext_advertising_8h_source.html b/_nim_b_l_e_ext_advertising_8h_source.html index 756e9f6..09bbfd3 100644 --- a/_nim_b_l_e_ext_advertising_8h_source.html +++ b/_nim_b_l_e_ext_advertising_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_ext_advertising_8h_source.h
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_BROADCASTER) && MYNEWT_VAL(BLE_EXT_ADV)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_gap.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_gap.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_gap.h"
+
27# include "host/ble_gap.h"
28# endif
29
30/**** FIX COMPILATION ****/
diff --git a/_nim_b_l_e_h_i_d_device_8h_source.html b/_nim_b_l_e_h_i_d_device_8h_source.html index 73cfbe5..661cf2b 100644 --- a/_nim_b_l_e_h_i_d_device_8h_source.html +++ b/_nim_b_l_e_h_i_d_device_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_l2_c_a_p_channel_8h_source.html b/_nim_b_l_e_l2_c_a_p_channel_8h_source.html index 662ab98..fc401e9 100644 --- a/_nim_b_l_e_l2_c_a_p_channel_8h_source.html +++ b/_nim_b_l_e_l2_c_a_p_channel_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -108,12 +108,12 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_l2_c_a_p_channel_8h_source.
9#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM)
10
11# include "inttypes.h"
-
12# if defined(CONFIG_NIMBLE_CPP_IDF)
-
13# include "host/ble_l2cap.h"
-
14# include "os/os_mbuf.h"
+
12# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
13# include "nimble/nimble/host/include/host/ble_l2cap.h"
+
14# include "nimble/porting/nimble/include/os/os_mbuf.h"
15# else
-
16# include "nimble/nimble/host/include/host/ble_l2cap.h"
-
17# include "nimble/porting/nimble/include/os/os_mbuf.h"
+
16# include "host/ble_l2cap.h"
+
17# include "os/os_mbuf.h"
18# endif
19
20/**** FIX COMPILATION ****/
@@ -134,61 +134,65 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_l2_c_a_p_channel_8h_source.
49
57 bool write(const std::vector<uint8_t>& bytes);
58
-
60 bool isConnected() const { return !!channel; }
-
61
-
62 protected:
-
63 NimBLEL2CAPChannel(uint16_t psm, uint16_t mtu, NimBLEL2CAPChannelCallbacks* callbacks);
-
64 ~NimBLEL2CAPChannel();
-
65
-
66 int handleConnectionEvent(struct ble_l2cap_event* event);
-
67 int handleAcceptEvent(struct ble_l2cap_event* event);
-
68 int handleDataReceivedEvent(struct ble_l2cap_event* event);
-
69 int handleTxUnstalledEvent(struct ble_l2cap_event* event);
-
70 int handleDisconnectionEvent(struct ble_l2cap_event* event);
-
71
-
72 private:
-
73 friend class NimBLEL2CAPServer;
-
74 static constexpr const char* LOG_TAG = "NimBLEL2CAPChannel";
-
75
-
76 const uint16_t psm; // PSM of the channel
-
77 const uint16_t mtu; // The requested (local) MTU of the channel, might be larger than negotiated MTU
-
78 struct ble_l2cap_chan* channel = nullptr;
-
79 NimBLEL2CAPChannelCallbacks* callbacks;
-
80 uint8_t* receiveBuffer = nullptr; // buffers a full (local) MTU
-
81
-
82 // NimBLE memory pool
-
83 void* _coc_memory = nullptr;
-
84 struct os_mempool _coc_mempool;
-
85 struct os_mbuf_pool _coc_mbuf_pool;
-
86
-
87 // Runtime handling
-
88 std::atomic<bool> stalled{false};
-
89 NimBLETaskData* m_pTaskData{nullptr};
-
90
-
91 // Allocate / deallocate NimBLE memory pool
-
92 bool setupMemPool();
-
93 void teardownMemPool();
+
61 bool disconnect();
+
62
+
65 uint16_t getConnHandle() const;
+
66
+
68 bool isConnected() const { return !!channel; }
+
69
+
70 protected:
+
71 NimBLEL2CAPChannel(uint16_t psm, uint16_t mtu, NimBLEL2CAPChannelCallbacks* callbacks);
+
72 ~NimBLEL2CAPChannel();
+
73
+
74 int handleConnectionEvent(struct ble_l2cap_event* event);
+
75 int handleAcceptEvent(struct ble_l2cap_event* event);
+
76 int handleDataReceivedEvent(struct ble_l2cap_event* event);
+
77 int handleTxUnstalledEvent(struct ble_l2cap_event* event);
+
78 int handleDisconnectionEvent(struct ble_l2cap_event* event);
+
79
+
80 private:
+
81 friend class NimBLEL2CAPServer;
+
82 static constexpr const char* LOG_TAG = "NimBLEL2CAPChannel";
+
83
+
84 const uint16_t psm; // PSM of the channel
+
85 const uint16_t mtu; // The requested (local) MTU of the channel, might be larger than negotiated MTU
+
86 struct ble_l2cap_chan* channel = nullptr;
+
87 NimBLEL2CAPChannelCallbacks* callbacks;
+
88 uint8_t* receiveBuffer = nullptr; // buffers a full (local) MTU
+
89
+
90 // NimBLE memory pool
+
91 void* _coc_memory = nullptr;
+
92 struct os_mempool _coc_mempool;
+
93 struct os_mbuf_pool _coc_mbuf_pool;
94
-
95 // Writes data up to the size of the negotiated MTU to the channel.
-
96 int writeFragment(std::vector<uint8_t>::const_iterator begin, std::vector<uint8_t>::const_iterator end);
-
97
-
98 // L2CAP event handler
-
99 static int handleL2capEvent(struct ble_l2cap_event* event, void* arg);
-
100};
-
101
-
105class NimBLEL2CAPChannelCallbacks {
-
106 public:
-
107 NimBLEL2CAPChannelCallbacks() = default;
-
108 virtual ~NimBLEL2CAPChannelCallbacks() = default;
+
95 // Runtime handling
+
96 std::atomic<bool> stalled{false};
+
97 NimBLETaskData* m_pTaskData{nullptr};
+
98
+
99 // Allocate / deallocate NimBLE memory pool
+
100 bool setupMemPool();
+
101 void teardownMemPool();
+
102
+
103 // Writes data up to the size of the negotiated MTU to the channel.
+
104 int writeFragment(std::vector<uint8_t>::const_iterator begin, std::vector<uint8_t>::const_iterator end);
+
105
+
106 // L2CAP event handler
+
107 static int handleL2capEvent(struct ble_l2cap_event* event, void* arg);
+
108};
109
-
113 virtual bool shouldAcceptConnection(NimBLEL2CAPChannel* channel) { return true; }
-
116 virtual void onConnect(NimBLEL2CAPChannel* channel, uint16_t negotiatedMTU) {};
-
119 virtual void onRead(NimBLEL2CAPChannel* channel, std::vector<uint8_t>& data) {};
-
122 virtual void onDisconnect(NimBLEL2CAPChannel* channel) {};
-
123};
-
124
-
125#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM)
-
126#endif // NIMBLE_CPP_L2CAPCHANNEL_H_
+
113class NimBLEL2CAPChannelCallbacks {
+
114 public:
+
115 NimBLEL2CAPChannelCallbacks() = default;
+
116 virtual ~NimBLEL2CAPChannelCallbacks() = default;
+
117
+
121 virtual bool shouldAcceptConnection(NimBLEL2CAPChannel* channel) { return true; }
+
124 virtual void onConnect(NimBLEL2CAPChannel* channel, uint16_t negotiatedMTU) {};
+
127 virtual void onRead(NimBLEL2CAPChannel* channel, std::vector<uint8_t>& data) {};
+
130 virtual void onDisconnect(NimBLEL2CAPChannel* channel) {};
+
131};
+
132
+
133#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_L2CAP_COC_MAX_NUM)
+
134#endif // NIMBLE_CPP_L2CAPCHANNEL_H_
A structure to hold data for a task that is waiting for a response.
Definition NimBLEUtils.h:53
diff --git a/_nim_b_l_e_l2_c_a_p_server_8h_source.html b/_nim_b_l_e_l2_c_a_p_server_8h_source.html index e501066..9b13827 100644 --- a/_nim_b_l_e_l2_c_a_p_server_8h_source.html +++ b/_nim_b_l_e_l2_c_a_p_server_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_local_attribute_8h_source.html b/_nim_b_l_e_local_attribute_8h_source.html index 264441f..fba3c06 100644 --- a/_nim_b_l_e_local_attribute_8h_source.html +++ b/_nim_b_l_e_local_attribute_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_local_value_attribute_8h_source.html b/_nim_b_l_e_local_value_attribute_8h_source.html index 20667ab..6057038 100644 --- a/_nim_b_l_e_local_value_attribute_8h_source.html +++ b/_nim_b_l_e_local_value_attribute_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_local_value_attribute_8h_so
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_hs.h"
+
24#ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_hs.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_hs.h"
+
27# include "host/ble_hs.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -190,7 +190,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_local_value_attribute_8h_so
142
143#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
144#endif // NIMBLE_LOCAL_VALUE_ATTRIBUTE_H_
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
Connection information.
Definition NimBLEConnInfo.h:33
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_log_8h_source.html b/_nim_b_l_e_log_8h_source.html index d4204e2..c6fa6f0 100644 --- a/_nim_b_l_e_log_8h_source.html +++ b/_nim_b_l_e_log_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_log_8h_source.html',''); in
33# endif
34# endif
35
-
36# if defined(CONFIG_NIMBLE_CPP_IDF)
+
36# ifndef USING_NIMBLE_ARDUINO_HEADERS
37# include "esp_log.h"
38# include "console/console.h"
39
@@ -271,7 +271,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_log_8h_source.html',''); in
172# define NIMBLE_LOGE(tag, format, ...) (void)tag
173# endif
174
-
175# endif /* CONFIG_NIMBLE_CPP_IDF */
+
175# endif /* !USING_NIMBLE_ARDUINO_HEADERS */
176
177# define NIMBLE_LOGD_IF(cond, tag, format, ...) { if (cond) { NIMBLE_LOGD(tag, format, ##__VA_ARGS__); }}
178# define NIMBLE_LOGI_IF(cond, tag, format, ...) { if (cond) { NIMBLE_LOGI(tag, format, ##__VA_ARGS__); }}
diff --git a/_nim_b_l_e_remote_characteristic_8h_source.html b/_nim_b_l_e_remote_characteristic_8h_source.html index 5b17583..8760a81 100644 --- a/_nim_b_l_e_remote_characteristic_8h_source.html +++ b/_nim_b_l_e_remote_characteristic_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_remote_descriptor_8h_source.html b/_nim_b_l_e_remote_descriptor_8h_source.html index e347473..cd707e5 100644 --- a/_nim_b_l_e_remote_descriptor_8h_source.html +++ b/_nim_b_l_e_remote_descriptor_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_remote_service_8h_source.html b/_nim_b_l_e_remote_service_8h_source.html index 2cad4db..52eae20 100644 --- a/_nim_b_l_e_remote_service_8h_source.html +++ b/_nim_b_l_e_remote_service_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -149,7 +149,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_service_8h_source.ht
53
54 NimBLERemoteService(NimBLEClient* pClient, const struct ble_gatt_svc* service);
55 ~NimBLERemoteService();
-
56 bool retrieveCharacteristics(const NimBLEUUID* uuidFilter = nullptr) const;
+
56 bool retrieveCharacteristics(const NimBLEUUID* uuidFilter = nullptr, NimBLERemoteCharacteristic** ppChar = nullptr) const;
57 static int characteristicDiscCB(uint16_t conn_handle,
58 const struct ble_gatt_error* error,
59 const struct ble_gatt_chr* chr,
@@ -162,7 +162,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_service_8h_source.ht
66
67#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
68#endif // NIMBLE_CPP_REMOTE_SERVICE_H_
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_remote_value_attribute_8h_source.html b/_nim_b_l_e_remote_value_attribute_8h_source.html index d2c69fe..589c0bf 100644 --- a/_nim_b_l_e_remote_value_attribute_8h_source.html +++ b/_nim_b_l_e_remote_value_attribute_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_value_attribute_8h_s
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include <host/ble_gatt.h>
+
24#ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_gatt.h"
26# else
-
27# include <nimble/nimble/host/include/host/ble_gatt.h>
+
27# include "host/ble_gatt.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -227,7 +227,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_value_attribute_8h_s
197
198#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_CENTRAL)
199#endif // NIMBLE_CPP_REMOTE_VALUE_ATTRIBUTE_H_
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
diff --git a/_nim_b_l_e_scan_8h_source.html b/_nim_b_l_e_scan_8h_source.html index e53970f..f51cf32 100644 --- a/_nim_b_l_e_scan_8h_source.html +++ b/_nim_b_l_e_scan_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -123,92 +123,183 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_scan_8h_source.html',''); i
24# include "NimBLEAdvertisedDevice.h"
25# include "NimBLEUtils.h"
26
-
27# if defined(CONFIG_NIMBLE_CPP_IDF)
-
28# include "host/ble_gap.h"
+
27# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
28# include "nimble/nimble/host/include/host/ble_gap.h"
29# else
-
30# include "nimble/nimble/host/include/host/ble_gap.h"
+
30# include "host/ble_gap.h"
31# endif
32
33# include <vector>
-
34
-
35class NimBLEDevice;
-
36class NimBLEScan;
-
37class NimBLEAdvertisedDevice;
-
38class NimBLEScanCallbacks;
-
39class NimBLEAddress;
-
40
-
48class NimBLEScanResults {
-
49 public:
-
50 void dump() const;
-
51 int getCount() const;
-
52 const NimBLEAdvertisedDevice* getDevice(uint32_t idx) const;
-
53 const NimBLEAdvertisedDevice* getDevice(const NimBLEAddress& address) const;
-
54 std::vector<NimBLEAdvertisedDevice*>::const_iterator begin() const;
-
55 std::vector<NimBLEAdvertisedDevice*>::const_iterator end() const;
-
56
-
57 private:
-
58 friend NimBLEScan;
-
59 std::vector<NimBLEAdvertisedDevice*> m_deviceVec;
-
60};
-
61
-
67class NimBLEScan {
-
68 public:
-
69 bool start(uint32_t duration, bool isContinue = false, bool restart = true);
-
70 bool isScanning();
-
71 void setScanCallbacks(NimBLEScanCallbacks* pScanCallbacks, bool wantDuplicates = false);
-
72 void setActiveScan(bool active);
-
73 void setInterval(uint16_t intervalMs);
-
74 void setWindow(uint16_t windowMs);
-
75 void setDuplicateFilter(uint8_t enabled);
-
76 void setLimitedOnly(bool enabled);
-
77 void setFilterPolicy(uint8_t filter);
-
78 bool stop();
-
79 void clearResults();
-
80 NimBLEScanResults getResults();
-
81 NimBLEScanResults getResults(uint32_t duration, bool is_continue = false);
-
82 void setMaxResults(uint8_t maxResults);
-
83 void erase(const NimBLEAddress& address);
-
84 void erase(const NimBLEAdvertisedDevice* device);
-
85
-
86# if MYNEWT_VAL(BLE_EXT_ADV)
-
87 enum Phy { SCAN_1M = 0x01, SCAN_CODED = 0x02, SCAN_ALL = 0x03 };
-
88 void setPhy(Phy phyMask);
-
89 void setPeriod(uint32_t periodMs);
-
90# endif
-
91
-
92 private:
-
93 friend class NimBLEDevice;
-
94
-
95 NimBLEScan();
-
96 ~NimBLEScan();
-
97 static int handleGapEvent(ble_gap_event* event, void* arg);
-
98 void onHostSync();
-
99
-
100 NimBLEScanCallbacks* m_pScanCallbacks;
-
101 ble_gap_disc_params m_scanParams;
-
102 NimBLEScanResults m_scanResults;
-
103 NimBLETaskData* m_pTaskData;
-
104 uint8_t m_maxResults;
-
105
-
106# if MYNEWT_VAL(BLE_EXT_ADV)
-
107 uint8_t m_phy{SCAN_ALL};
-
108 uint16_t m_period{0};
-
109# endif
-
110};
-
111
-
115class NimBLEScanCallbacks {
-
116 public:
-
117 virtual ~NimBLEScanCallbacks() {}
-
118
-
123 virtual void onDiscovered(const NimBLEAdvertisedDevice* advertisedDevice);
-
124
-
129 virtual void onResult(const NimBLEAdvertisedDevice* advertisedDevice);
-
130
-
136 virtual void onScanEnd(const NimBLEScanResults& scanResults, int reason);
-
137};
-
138
-
139#endif // CONFIG_BT_NIMBLE_ENABLED MYNEWT_VAL(BLE_ROLE_OBSERVER)
-
140#endif // NIMBLE_CPP_SCAN_H_
+
34# include <cinttypes>
+
35# include <cstdio>
+
36
+
37class NimBLEDevice;
+
38class NimBLEScan;
+
39class NimBLEAdvertisedDevice;
+
40class NimBLEScanCallbacks;
+
41class NimBLEAddress;
+
42
+
50class NimBLEScanResults {
+
51 public:
+
52 void dump() const;
+
53 int getCount() const;
+
54 const NimBLEAdvertisedDevice* getDevice(uint32_t idx) const;
+
55 const NimBLEAdvertisedDevice* getDevice(const NimBLEAddress& address) const;
+
56 std::vector<NimBLEAdvertisedDevice*>::const_iterator begin() const;
+
57 std::vector<NimBLEAdvertisedDevice*>::const_iterator end() const;
+
58
+
59 private:
+
60 friend NimBLEScan;
+
61 std::vector<NimBLEAdvertisedDevice*> m_deviceVec;
+
62};
+
63
+
69class NimBLEScan {
+
70 public:
+
71 bool start(uint32_t duration, bool isContinue = false, bool restart = true);
+
72 bool isScanning();
+
73 void setScanCallbacks(NimBLEScanCallbacks* pScanCallbacks, bool wantDuplicates = false);
+
74 void setActiveScan(bool active);
+
75 void setInterval(uint16_t intervalMs);
+
76 void setWindow(uint16_t windowMs);
+
77 void setDuplicateFilter(uint8_t enabled);
+
78 void setLimitedOnly(bool enabled);
+
79 void setFilterPolicy(uint8_t filter);
+
80 bool stop();
+
81 void clearResults();
+
82 NimBLEScanResults getResults();
+
83 NimBLEScanResults getResults(uint32_t duration, bool is_continue = false);
+
84 void setMaxResults(uint8_t maxResults);
+
85 void erase(const NimBLEAddress& address);
+
86 void erase(const NimBLEAdvertisedDevice* device);
+
87 void setScanResponseTimeout(uint32_t timeoutMs);
+
88 std::string getStatsString() const { return m_stats.toString(); }
+
89
+
90# if MYNEWT_VAL(BLE_EXT_ADV)
+
91 enum Phy { SCAN_1M = 0x01, SCAN_CODED = 0x02, SCAN_ALL = 0x03 };
+
92 void setPhy(Phy phyMask);
+
93 void setPeriod(uint32_t periodMs);
+
94# endif
+
95
+
96 private:
+
97 friend class NimBLEDevice;
+
98
+
99 struct stats {
+
100# if MYNEWT_VAL(NIMBLE_CPP_LOG_LEVEL) >= 4
+
101 uint32_t devCount = 0; // unique devices seen for the first time
+
102 uint32_t dupCount = 0; // repeat advertisements from already-known devices
+
103 uint32_t srMinMs = UINT32_MAX;
+
104 uint32_t srMaxMs = 0;
+
105 uint64_t srTotalMs = 0; // uint64 to avoid overflow on long/busy scans
+
106 uint32_t srCount = 0; // matched scan responses (advertisement + SR pair)
+
107 uint32_t orphanedSrCount = 0; // scan responses received with no prior advertisement
+
108 uint32_t missedSrCount = 0; // scannable devices for which no SR ever arrived
+
109
+
110 void reset() {
+
111 devCount = 0;
+
112 dupCount = 0;
+
113 srMinMs = UINT32_MAX;
+
114 srMaxMs = 0;
+
115 srTotalMs = 0;
+
116 srCount = 0;
+
117 orphanedSrCount = 0;
+
118 missedSrCount = 0;
+
119 }
+
120
+
121 void incDevCount() { devCount++; }
+
122 void incDupCount() { dupCount++; }
+
123 void incMissedSrCount() { missedSrCount++; }
+
124 void incOrphanedSrCount() { orphanedSrCount++; }
+
125
+
126 std::string toString() const {
+
127 std::string out;
+
128 out.resize(400); // should be more than enough for the stats string
+
129 snprintf(&out[0],
+
130 out.size(),
+
131 "Scan stats:\n"
+
132 " Devices seen : %" PRIu32 "\n"
+
133 " Duplicate advs : %" PRIu32 "\n"
+
134 " Scan responses : %" PRIu32 "\n"
+
135 " SR timing (ms) : min=%" PRIu32 ", max=%" PRIu32 ", avg=%" PRIu64 "\n"
+
136 " Orphaned SR : %" PRIu32 "\n"
+
137 " Missed SR : %" PRIu32 "\n",
+
138 devCount,
+
139 dupCount,
+
140 srCount,
+
141 srCount ? srMinMs : 0,
+
142 srCount ? srMaxMs : 0,
+
143 srCount ? srTotalMs / srCount : 0,
+
144 orphanedSrCount,
+
145 missedSrCount);
+
146 return out;
+
147 }
+
148
+
149 // Records scan-response round-trip time.
+
150 void recordSrTime(uint32_t ticks) {
+
151 uint32_t ms;
+
152 ble_npl_time_ticks_to_ms(ticks, &ms);
+
153
+
154 if (ms < srMinMs) {
+
155 srMinMs = ms;
+
156 }
+
157 if (ms > srMaxMs) {
+
158 srMaxMs = ms;
+
159 }
+
160 srTotalMs += ms;
+
161 srCount++;
+
162 return;
+
163 }
+
164# else
+
165 void reset() {}
+
166 void incDevCount() {}
+
167 void incDupCount() {}
+
168 void incMissedSrCount() {}
+
169 void incOrphanedSrCount() {}
+
170 std::string toString() const { return ""; }
+
171 void recordSrTime(uint32_t ticks) {}
+
172# endif
+
173 } m_stats;
+
174
+
175 NimBLEScan();
+
176 ~NimBLEScan();
+
177 static int handleGapEvent(ble_gap_event* event, void* arg);
+
178 void onHostSync();
+
179 static void srTimerCb(ble_npl_event* event);
+
180
+
181 // Linked list helpers for devices awaiting scan responses
+
182 void addWaitingDevice(NimBLEAdvertisedDevice* pDev);
+
183 void removeWaitingDevice(NimBLEAdvertisedDevice* pDev);
+
184 void clearWaitingList();
+
185 void resetWaitingTimer();
+
186
+
187 NimBLEScanCallbacks* m_pScanCallbacks;
+
188 ble_gap_disc_params m_scanParams;
+
189 NimBLEScanResults m_scanResults;
+
190 NimBLETaskData* m_pTaskData;
+
191 ble_npl_callout m_srTimer{};
+
192 ble_npl_time_t m_srTimeoutTicks{};
+
193 uint8_t m_maxResults;
+
194 NimBLEAdvertisedDevice* m_pWaitingListHead{}; // head of linked list for devices awaiting scan responses
+
195 NimBLEAdvertisedDevice* m_pWaitingListTail{}; // tail of linked list for FIFO ordering
+
196
+
197# if MYNEWT_VAL(BLE_EXT_ADV)
+
198 uint8_t m_phy{SCAN_ALL};
+
199 uint16_t m_period{0};
+
200# endif
+
201};
+
202
+
206class NimBLEScanCallbacks {
+
207 public:
+
208 virtual ~NimBLEScanCallbacks() {}
+
209
+
214 virtual void onDiscovered(const NimBLEAdvertisedDevice* advertisedDevice);
+
215
+
220 virtual void onResult(const NimBLEAdvertisedDevice* advertisedDevice);
+
221
+
227 virtual void onScanEnd(const NimBLEScanResults& scanResults, int reason);
+
228};
+
229
+
230#endif // CONFIG_BT_NIMBLE_ENABLED MYNEWT_VAL(BLE_ROLE_OBSERVER)
+
231#endif // NIMBLE_CPP_SCAN_H_
A BLE device address.
Definition NimBLEAddress.h:42
A model of a BLE Device from which all the BLE roles are created.
Definition NimBLEDevice.h:119
A structure to hold data for a task that is waiting for a response.
Definition NimBLEUtils.h:53
diff --git a/_nim_b_l_e_server_8h_source.html b/_nim_b_l_e_server_8h_source.html index 99e1283..8190479 100644 --- a/_nim_b_l_e_server_8h_source.html +++ b/_nim_b_l_e_server_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_server_8h_source.html','');
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_gap.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_gap.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_gap.h"
+
27# include "host/ble_gap.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -180,89 +180,90 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_server_8h_source.html','');
84 void setDataLen(uint16_t connHandle, uint16_t tx_octets) const;
85 bool updatePhy(uint16_t connHandle, uint8_t txPhysMask, uint8_t rxPhysMask, uint16_t phyOptions);
86 bool getPhy(uint16_t connHandle, uint8_t* txPhy, uint8_t* rxPhy);
-
87
-
88# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
-
89 NimBLEClient* getClient(uint16_t connHandle);
-
90 NimBLEClient* getClient(const NimBLEConnInfo& connInfo);
-
91 void deleteClient();
-
92# endif
-
93
-
94# if MYNEWT_VAL(BLE_ROLE_BROADCASTER)
-
95# if MYNEWT_VAL(BLE_EXT_ADV)
-
96 NimBLEExtAdvertising* getAdvertising() const;
-
97 bool startAdvertising(uint8_t instanceId, int duration = 0, int maxEvents = 0) const;
-
98 bool stopAdvertising(uint8_t instanceId) const;
-
99# endif
-
100
-
101# if !MYNEWT_VAL(BLE_EXT_ADV) || defined(_DOXYGEN_)
-
102 NimBLEAdvertising* getAdvertising() const;
-
103 bool startAdvertising(uint32_t duration = 0) const;
-
104 bool stopAdvertising() const;
-
105# endif
-
106# endif
-
107
-
108 private:
-
109 friend class NimBLEDevice;
-
110 friend class NimBLEService;
-
111 friend class NimBLECharacteristic;
-
112# if MYNEWT_VAL(BLE_ROLE_BROADCASTER)
-
113# if MYNEWT_VAL(BLE_EXT_ADV)
-
114 friend class NimBLEExtAdvertising;
-
115# else
-
116 friend class NimBLEAdvertising;
-
117# endif
-
118# endif
-
119
-
120 NimBLEServer();
-
121 ~NimBLEServer();
-
122 static int handleGapEvent(struct ble_gap_event* event, void* arg);
-
123 static int handleGattEvent(uint16_t connHandle, uint16_t attrHandle, ble_gatt_access_ctxt* ctxt, void* arg);
-
124 static void gattRegisterCallback(struct ble_gatt_register_ctxt* ctxt, void* arg);
-
125 void serviceChanged();
-
126 bool resetGATT();
-
127
-
128 bool m_gattsStarted : 1;
-
129 bool m_svcChanged : 1;
-
130 bool m_deleteCallbacks : 1;
-
131# if !MYNEWT_VAL(BLE_EXT_ADV) && MYNEWT_VAL(BLE_ROLE_BROADCASTER)
-
132 bool m_advertiseOnDisconnect : 1;
-
133# endif
-
134 NimBLEServerCallbacks* m_pServerCallbacks;
-
135 std::vector<NimBLEService*> m_svcVec;
-
136 std::array<uint16_t, MYNEWT_VAL(BLE_MAX_CONNECTIONS)> m_connectedPeers;
-
137
-
138# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
-
139 NimBLEClient* m_pClient{nullptr};
-
140# endif
-
141}; // NimBLEServer
-
142
-
146class NimBLEServerCallbacks {
-
147 public:
-
148 virtual ~NimBLEServerCallbacks() {};
-
149
-
157 virtual void onConnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo);
-
158
-
167 virtual void onDisconnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason);
-
168
-
175 virtual void onMTUChange(uint16_t MTU, NimBLEConnInfo& connInfo);
-
176
-
181 virtual uint32_t onPassKeyDisplay();
-
182
-
190 virtual void onPassKeyEntry(NimBLEConnInfo& connInfo);
-
191
-
198 virtual void onConfirmPassKey(NimBLEConnInfo& connInfo, uint32_t pin);
-
199
-
205 virtual void onAuthenticationComplete(NimBLEConnInfo& connInfo);
-
206
-
211 virtual void onIdentity(NimBLEConnInfo& connInfo);
-
212
-
219 virtual void onConnParamsUpdate(NimBLEConnInfo& connInfo);
-
220
-
232 virtual void onPhyUpdate(NimBLEConnInfo& connInfo, uint8_t txPhy, uint8_t rxPhy);
-
233}; // NimBLEServerCallbacks
-
234
-
235#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
-
236#endif // NIMBLE_CPP_SERVER_H_
+
87 void sendServiceChangedIndication() const;
+
88
+
89# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
+
90 NimBLEClient* getClient(uint16_t connHandle);
+
91 NimBLEClient* getClient(const NimBLEConnInfo& connInfo);
+
92 void deleteClient();
+
93# endif
+
94
+
95# if MYNEWT_VAL(BLE_ROLE_BROADCASTER)
+
96# if MYNEWT_VAL(BLE_EXT_ADV)
+
97 NimBLEExtAdvertising* getAdvertising() const;
+
98 bool startAdvertising(uint8_t instanceId, int duration = 0, int maxEvents = 0) const;
+
99 bool stopAdvertising(uint8_t instanceId) const;
+
100# endif
+
101
+
102# if !MYNEWT_VAL(BLE_EXT_ADV) || defined(_DOXYGEN_)
+
103 NimBLEAdvertising* getAdvertising() const;
+
104 bool startAdvertising(uint32_t duration = 0) const;
+
105 bool stopAdvertising() const;
+
106# endif
+
107# endif
+
108
+
109 private:
+
110 friend class NimBLEDevice;
+
111 friend class NimBLEService;
+
112 friend class NimBLECharacteristic;
+
113# if MYNEWT_VAL(BLE_ROLE_BROADCASTER)
+
114# if MYNEWT_VAL(BLE_EXT_ADV)
+
115 friend class NimBLEExtAdvertising;
+
116# else
+
117 friend class NimBLEAdvertising;
+
118# endif
+
119# endif
+
120
+
121 NimBLEServer();
+
122 ~NimBLEServer();
+
123 static int handleGapEvent(struct ble_gap_event* event, void* arg);
+
124 static int handleGattEvent(uint16_t connHandle, uint16_t attrHandle, ble_gatt_access_ctxt* ctxt, void* arg);
+
125 static void gattRegisterCallback(struct ble_gatt_register_ctxt* ctxt, void* arg);
+
126 void setServiceChanged();
+
127 bool resetGATT();
+
128
+
129 bool m_gattsStarted : 1;
+
130 bool m_svcChanged : 1;
+
131 bool m_deleteCallbacks : 1;
+
132# if !MYNEWT_VAL(BLE_EXT_ADV) && MYNEWT_VAL(BLE_ROLE_BROADCASTER)
+
133 bool m_advertiseOnDisconnect : 1;
+
134# endif
+
135 NimBLEServerCallbacks* m_pServerCallbacks;
+
136 std::vector<NimBLEService*> m_svcVec;
+
137 std::array<uint16_t, MYNEWT_VAL(BLE_MAX_CONNECTIONS)> m_connectedPeers;
+
138
+
139# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
+
140 NimBLEClient* m_pClient{nullptr};
+
141# endif
+
142}; // NimBLEServer
+
143
+
147class NimBLEServerCallbacks {
+
148 public:
+
149 virtual ~NimBLEServerCallbacks() {};
+
150
+
158 virtual void onConnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo);
+
159
+
168 virtual void onDisconnect(NimBLEServer* pServer, NimBLEConnInfo& connInfo, int reason);
+
169
+
176 virtual void onMTUChange(uint16_t MTU, NimBLEConnInfo& connInfo);
+
177
+
182 virtual uint32_t onPassKeyDisplay();
+
183
+
191 virtual void onPassKeyEntry(NimBLEConnInfo& connInfo);
+
192
+
199 virtual void onConfirmPassKey(NimBLEConnInfo& connInfo, uint32_t pin);
+
200
+
206 virtual void onAuthenticationComplete(NimBLEConnInfo& connInfo);
+
207
+
212 virtual void onIdentity(NimBLEConnInfo& connInfo);
+
213
+
220 virtual void onConnParamsUpdate(NimBLEConnInfo& connInfo);
+
221
+
233 virtual void onPhyUpdate(NimBLEConnInfo& connInfo, uint8_t txPhy, uint8_t rxPhy);
+
234}; // NimBLEServerCallbacks
+
235
+
236#endif // CONFIG_BT_NIMBLE_ENABLED && MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
+
237#endif // NIMBLE_CPP_SERVER_H_
A BLE device address.
Definition NimBLEAddress.h:42
Perform and manage BLE advertising.
Definition NimBLEAdvertising.h:51
Connection information.
Definition NimBLEConnInfo.h:33
diff --git a/_nim_b_l_e_service_8h_source.html b/_nim_b_l_e_service_8h_source.html index 57ba200..5f15fb3 100644 --- a/_nim_b_l_e_service_8h_source.html +++ b/_nim_b_l_e_service_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_stream_8h_source.html b/_nim_b_l_e_stream_8h_source.html index 7a9dac6..f1993bb 100644 --- a/_nim_b_l_e_stream_8h_source.html +++ b/_nim_b_l_e_stream_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,205 +120,209 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_stream_8h_source.html','');
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED && (MYNEWT_VAL(BLE_ROLE_PERIPHERAL) || MYNEWT_VAL(BLE_ROLE_CENTRAL))
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "nimble/nimble_npl.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/include/nimble/nimble_npl.h"
26# else
-
27# include "nimble/nimble/include/nimble/nimble_npl.h"
+
27# include "nimble/nimble_npl.h"
28# endif
29
30# include <functional>
31# include <type_traits>
32# include <cstdarg>
33
-
34# if NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
-
35# include <Stream.h>
-
36# else
+
34# ifndef NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
35# define NIMBLE_CPP_ARDUINO_STRING_AVAILABLE (__has_include(<Arduino.h>))
+
36# endif
37
-
38// Minimal Stream/Print stubs when Arduino not available
-
39class Print {
-
40 public:
-
41 virtual ~Print() {}
-
42 virtual size_t write(uint8_t) = 0;
-
43 virtual size_t write(const uint8_t* buffer, size_t size) = 0;
-
44 size_t print(const char* s);
-
45 size_t println(const char* s);
-
46 size_t printf(const char* format, ...) __attribute__((format(printf, 2, 3)));
-
47};
-
48
-
49class Stream : public Print {
-
50 public:
-
51 virtual int available() = 0;
-
52 virtual int read() = 0;
-
53 virtual int peek() = 0;
-
54 virtual void flush() {}
-
55 void setTimeout(unsigned long timeout) { m_timeout = timeout; }
-
56 unsigned long getTimeout() const { return m_timeout; }
-
57
-
58 protected:
-
59 unsigned long m_timeout{0};
-
60};
-
61# endif
-
62
-
63class NimBLEStream : public Stream {
-
64 public:
-
65 enum RxOverflowAction {
-
66 DROP_OLDER_DATA, // Drop older buffered data to make room for new data
-
67 DROP_NEW_DATA // Drop new incoming data when buffer is full
-
68 };
-
69
-
70 using RxOverflowCallback = std::function<RxOverflowAction(const uint8_t* data, size_t len, void* userArg)>;
-
71
-
72 NimBLEStream() = default;
-
73 virtual ~NimBLEStream() { end(); }
-
74
-
75 // Print/Stream TX methods
-
76 virtual size_t write(const uint8_t* data, size_t len) override;
-
77 virtual size_t write(uint8_t data) override { return write(&data, 1); }
+
38# if NIMBLE_CPP_ARDUINO_STRING_AVAILABLE
+
39# include <Stream.h>
+
40# else
+
41
+
42// Minimal Stream/Print stubs when Arduino not available
+
43class Print {
+
44 public:
+
45 virtual ~Print() {}
+
46 virtual size_t write(uint8_t) = 0;
+
47 virtual size_t write(const uint8_t* buffer, size_t size) = 0;
+
48 size_t print(const char* s);
+
49 size_t println(const char* s);
+
50 size_t printf(const char* format, ...) __attribute__((format(printf, 2, 3)));
+
51};
+
52
+
53class Stream : public Print {
+
54 public:
+
55 virtual int available() = 0;
+
56 virtual int read() = 0;
+
57 virtual int peek() = 0;
+
58 virtual void flush() {}
+
59 void setTimeout(unsigned long timeout) { m_timeout = timeout; }
+
60 unsigned long getTimeout() const { return m_timeout; }
+
61
+
62 protected:
+
63 unsigned long m_timeout{0};
+
64};
+
65# endif
+
66
+
67class NimBLEStream : public Stream {
+
68 public:
+
69 enum RxOverflowAction {
+
70 DROP_OLDER_DATA, // Drop older buffered data to make room for new data
+
71 DROP_NEW_DATA // Drop new incoming data when buffer is full
+
72 };
+
73
+
74 using RxOverflowCallback = std::function<RxOverflowAction(const uint8_t* data, size_t len, void* userArg)>;
+
75
+
76 NimBLEStream() = default;
+
77 virtual ~NimBLEStream() { end(); }
78
-
79 // Template for other integral types (char, int, long, etc.)
-
80 template <typename T>
-
81 typename std::enable_if<std::is_integral<T>::value && !std::is_same<T, uint8_t>::value, size_t>::type write(T data) {
-
82 return write(static_cast<uint8_t>(data));
-
83 }
-
84
-
85 size_t availableForWrite() const;
-
86
-
87 // Read up to len bytes into buffer (non-blocking)
-
88 size_t read(uint8_t* buffer, size_t len);
-
89
-
90 // Stream RX methods
-
91 virtual int available() override;
-
92 virtual int read() override;
-
93 virtual int peek() override;
-
94 virtual bool ready() const = 0;
-
95
-
101 void setRxOverflowCallback(RxOverflowCallback cb, void* userArg = nullptr) {
-
102 m_rxOverflowCallback = cb;
-
103 m_rxOverflowUserArg = userArg;
-
104 }
-
105
-
106 operator bool() const { return ready(); }
-
107
-
108 using Print::write;
+
79 // Print/Stream TX methods
+
80 virtual size_t write(const uint8_t* data, size_t len) override;
+
81 virtual size_t write(uint8_t data) override { return write(&data, 1); }
+
82
+
83 // Template for other integral types (char, int, long, etc.)
+
84 template <typename T>
+
85 typename std::enable_if<std::is_integral<T>::value && !std::is_same<T, uint8_t>::value, size_t>::type write(T data) {
+
86 return write(static_cast<uint8_t>(data));
+
87 }
+
88
+
89 size_t availableForWrite() const;
+
90
+
91 // Read up to len bytes into buffer (non-blocking)
+
92 size_t read(uint8_t* buffer, size_t len);
+
93
+
94 // Stream RX methods
+
95 virtual int available() override;
+
96 virtual int read() override;
+
97 virtual int peek() override;
+
98 virtual bool ready() const = 0;
+
99
+
105 void setRxOverflowCallback(RxOverflowCallback cb, void* userArg = nullptr) {
+
106 m_rxOverflowCallback = cb;
+
107 m_rxOverflowUserArg = userArg;
+
108 }
109
-
110 struct ByteRingBuffer;
+
110 operator bool() const { return ready(); }
111
-
112 protected:
-
113 bool begin();
-
114 void drainTx();
-
115 size_t pushRx(const uint8_t* data, size_t len);
-
116 virtual void end();
-
117 virtual bool send() = 0;
-
118 static void txDrainEventCb(struct ble_npl_event* ev);
-
119 static void txDrainCalloutCb(struct ble_npl_event* ev);
-
120
-
121 ByteRingBuffer* m_txBuf{nullptr};
-
122 ByteRingBuffer* m_rxBuf{nullptr};
-
123 uint8_t m_txChunkBuf[MYNEWT_VAL(BLE_ATT_PREFERRED_MTU)];
-
124 uint32_t m_txBufSize{1024};
-
125 uint32_t m_rxBufSize{1024};
-
126 ble_npl_event m_txDrainEvent{};
-
127 ble_npl_callout m_txDrainCallout{};
-
128 RxOverflowCallback m_rxOverflowCallback{nullptr};
-
129 void* m_rxOverflowUserArg{nullptr};
-
130 bool m_coInitialized{false};
-
131 bool m_eventInitialized{false};
-
132};
-
133
-
134# if MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
-
135# include "NimBLECharacteristic.h"
-
136
-
137class NimBLEStreamServer : public NimBLEStream {
-
138 public:
-
139 NimBLEStreamServer() : m_charCallbacks(this) {}
-
140 ~NimBLEStreamServer() override { end(); }
-
141
-
142 // non-copyable
-
143 NimBLEStreamServer(const NimBLEStreamServer&) = delete;
-
144 NimBLEStreamServer& operator=(const NimBLEStreamServer&) = delete;
+
112 using Print::write;
+
113
+
114 struct ByteRingBuffer;
+
115
+
116 protected:
+
117 bool begin();
+
118 void drainTx();
+
119 size_t pushRx(const uint8_t* data, size_t len);
+
120 virtual void end();
+
121 virtual bool send() = 0;
+
122 static void txDrainEventCb(struct ble_npl_event* ev);
+
123 static void txDrainCalloutCb(struct ble_npl_event* ev);
+
124
+
125 ByteRingBuffer* m_txBuf{nullptr};
+
126 ByteRingBuffer* m_rxBuf{nullptr};
+
127 uint8_t m_txChunkBuf[MYNEWT_VAL(BLE_ATT_PREFERRED_MTU)];
+
128 uint32_t m_txBufSize{1024};
+
129 uint32_t m_rxBufSize{1024};
+
130 ble_npl_event m_txDrainEvent{};
+
131 ble_npl_callout m_txDrainCallout{};
+
132 RxOverflowCallback m_rxOverflowCallback{nullptr};
+
133 void* m_rxOverflowUserArg{nullptr};
+
134 bool m_coInitialized{false};
+
135 bool m_eventInitialized{false};
+
136};
+
137
+
138# if MYNEWT_VAL(BLE_ROLE_PERIPHERAL)
+
139# include "NimBLECharacteristic.h"
+
140
+
141class NimBLEStreamServer : public NimBLEStream {
+
142 public:
+
143 NimBLEStreamServer() : m_charCallbacks(this) {}
+
144 ~NimBLEStreamServer() override { end(); }
145
-
146 bool begin(NimBLECharacteristic* chr, uint32_t txBufSize = 1024, uint32_t rxBufSize = 1024);
-
147
-
148 // Convenience overload to create service/characteristic internally; service will be deleted on end()
-
149 bool begin(const NimBLEUUID& svcUuid,
-
150 const NimBLEUUID& chrUuid,
-
151 uint32_t txBufSize = 1024,
-
152 uint32_t rxBufSize = 1024,
-
153 bool secure = false);
-
154
-
155 void end() override;
-
156 size_t write(const uint8_t* data, size_t len) override;
-
157 uint16_t getPeerHandle() const { return m_charCallbacks.m_peerHandle; }
-
158 void setCallbacks(NimBLECharacteristicCallbacks* pCallbacks) { m_charCallbacks.m_userCallbacks = pCallbacks; }
-
159 bool ready() const override;
-
160 virtual void flush() override;
-
161
-
162 using NimBLEStream::write; // Inherit template write overloads
-
163
-
164 protected:
-
165 bool send() override;
-
166
-
167 struct ChrCallbacks : public NimBLECharacteristicCallbacks {
-
168 ChrCallbacks(NimBLEStreamServer* parent)
-
169 : m_parent(parent), m_userCallbacks(nullptr), m_peerHandle(BLE_HS_CONN_HANDLE_NONE) {}
-
170 void onWrite(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo) override;
-
171 void onSubscribe(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, uint16_t subValue) override;
-
172 void onStatus(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, int code) override;
-
173 // override this to avoid recursion when debug logs are enabled
-
174 void onStatus(NimBLECharacteristic* pCharacteristic, int code) override {
-
175 if (m_userCallbacks != nullptr) {
-
176 m_userCallbacks->onStatus(pCharacteristic, code);
-
177 }
-
178 }
-
179
-
180 NimBLEStreamServer* m_parent;
-
181 NimBLECharacteristicCallbacks* m_userCallbacks;
-
182 uint16_t m_peerHandle;
-
183 } m_charCallbacks;
-
184
-
185 NimBLECharacteristic* m_pChr{nullptr};
-
186 int m_rc{0};
-
187 // Whether to delete the BLE service when end() is called; set to false if service is managed externally
-
188 bool m_deleteSvcOnEnd{false};
-
189};
-
190# endif // BLE_ROLE_PERIPHERAL
-
191
-
192# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
-
193# include "NimBLERemoteCharacteristic.h"
-
194
-
195class NimBLEStreamClient : public NimBLEStream {
-
196 public:
-
197 NimBLEStreamClient() = default;
-
198 ~NimBLEStreamClient() override { end(); }
-
199
-
200 // non-copyable
-
201 NimBLEStreamClient(const NimBLEStreamClient&) = delete;
-
202 NimBLEStreamClient& operator=(const NimBLEStreamClient&) = delete;
+
146 // non-copyable
+
147 NimBLEStreamServer(const NimBLEStreamServer&) = delete;
+
148 NimBLEStreamServer& operator=(const NimBLEStreamServer&) = delete;
+
149
+
150 bool begin(NimBLECharacteristic* chr, uint32_t txBufSize = 1024, uint32_t rxBufSize = 1024);
+
151
+
152 // Convenience overload to create service/characteristic internally; service will be deleted on end()
+
153 bool begin(const NimBLEUUID& svcUuid,
+
154 const NimBLEUUID& chrUuid,
+
155 uint32_t txBufSize = 1024,
+
156 uint32_t rxBufSize = 1024,
+
157 bool secure = false);
+
158
+
159 void end() override;
+
160 size_t write(const uint8_t* data, size_t len) override;
+
161 uint16_t getPeerHandle() const { return m_charCallbacks.m_peerHandle; }
+
162 void setCallbacks(NimBLECharacteristicCallbacks* pCallbacks) { m_charCallbacks.m_userCallbacks = pCallbacks; }
+
163 bool ready() const override;
+
164 virtual void flush() override;
+
165
+
166 using NimBLEStream::write; // Inherit template write overloads
+
167
+
168 protected:
+
169 bool send() override;
+
170
+
171 struct ChrCallbacks : public NimBLECharacteristicCallbacks {
+
172 ChrCallbacks(NimBLEStreamServer* parent)
+
173 : m_parent(parent), m_userCallbacks(nullptr), m_peerHandle(BLE_HS_CONN_HANDLE_NONE) {}
+
174 void onWrite(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo) override;
+
175 void onSubscribe(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, uint16_t subValue) override;
+
176 void onStatus(NimBLECharacteristic* pCharacteristic, NimBLEConnInfo& connInfo, int code) override;
+
177 // override this to avoid recursion when debug logs are enabled
+
178 void onStatus(NimBLECharacteristic* pCharacteristic, int code) override {
+
179 if (m_userCallbacks != nullptr) {
+
180 m_userCallbacks->onStatus(pCharacteristic, code);
+
181 }
+
182 }
+
183
+
184 NimBLEStreamServer* m_parent;
+
185 NimBLECharacteristicCallbacks* m_userCallbacks;
+
186 uint16_t m_peerHandle;
+
187 } m_charCallbacks;
+
188
+
189 NimBLECharacteristic* m_pChr{nullptr};
+
190 int m_rc{0};
+
191 // Whether to delete the BLE service when end() is called; set to false if service is managed externally
+
192 bool m_deleteSvcOnEnd{false};
+
193};
+
194# endif // BLE_ROLE_PERIPHERAL
+
195
+
196# if MYNEWT_VAL(BLE_ROLE_CENTRAL)
+
197# include "NimBLERemoteCharacteristic.h"
+
198
+
199class NimBLEStreamClient : public NimBLEStream {
+
200 public:
+
201 NimBLEStreamClient() = default;
+
202 ~NimBLEStreamClient() override { end(); }
203
-
204 // Attach a discovered remote characteristic; app owns discovery/connection.
-
205 // Set subscribeNotify=true to receive notifications into RX buffer.
-
206 bool begin(NimBLERemoteCharacteristic* pChr,
-
207 bool subscribeNotify = false,
-
208 uint32_t txBufSize = 1024,
-
209 uint32_t rxBufSize = 1024);
-
210 void end() override;
-
211 void setNotifyCallback(NimBLERemoteCharacteristic::notify_callback cb) { m_userNotifyCallback = cb; }
-
212 bool ready() const override;
-
213 virtual void flush() override;
-
214
-
215 using NimBLEStream::write; // Inherit template write overloads
-
216
-
217 protected:
-
218 bool send() override;
-
219 void notifyCallback(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t len, bool isNotify);
+
204 // non-copyable
+
205 NimBLEStreamClient(const NimBLEStreamClient&) = delete;
+
206 NimBLEStreamClient& operator=(const NimBLEStreamClient&) = delete;
+
207
+
208 // Attach a discovered remote characteristic; app owns discovery/connection.
+
209 // Set subscribeNotify=true to receive notifications into RX buffer.
+
210 bool begin(NimBLERemoteCharacteristic* pChr,
+
211 bool subscribeNotify = false,
+
212 uint32_t txBufSize = 1024,
+
213 uint32_t rxBufSize = 1024);
+
214 void end() override;
+
215 void setNotifyCallback(NimBLERemoteCharacteristic::notify_callback cb) { m_userNotifyCallback = cb; }
+
216 bool ready() const override;
+
217 virtual void flush() override;
+
218
+
219 using NimBLEStream::write; // Inherit template write overloads
220
-
221 NimBLERemoteCharacteristic* m_pChr{nullptr};
-
222 NimBLERemoteCharacteristic::notify_callback m_userNotifyCallback{nullptr};
-
223};
-
224# endif // BLE_ROLE_CENTRAL
-
225
-
226#endif // CONFIG_BT_NIMBLE_ENABLED && (MYNEWT_VAL(BLE_ROLE_PERIPHERAL) || MYNEWT_VAL(BLE_ROLE_CENTRAL))
-
227#endif // NIMBLE_CPP_STREAM_H
+
221 protected:
+
222 bool send() override;
+
223 void notifyCallback(NimBLERemoteCharacteristic* pChar, uint8_t* pData, size_t len, bool isNotify);
+
224
+
225 NimBLERemoteCharacteristic* m_pChr{nullptr};
+
226 NimBLERemoteCharacteristic::notify_callback m_userNotifyCallback{nullptr};
+
227};
+
228# endif // BLE_ROLE_CENTRAL
+
229
+
230#endif // CONFIG_BT_NIMBLE_ENABLED && (MYNEWT_VAL(BLE_ROLE_PERIPHERAL) || MYNEWT_VAL(BLE_ROLE_CENTRAL))
+
231#endif // NIMBLE_CPP_STREAM_H
Connection information.
Definition NimBLEConnInfo.h:33
A model of a BLE UUID.
Definition NimBLEUUID.h:41
diff --git a/_nim_b_l_e_u_u_i_d_8h_source.html b/_nim_b_l_e_u_u_i_d_8h_source.html index 5832c36..da13c57 100644 --- a/_nim_b_l_e_u_u_i_d_8h_source.html +++ b/_nim_b_l_e_u_u_i_d_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_u_u_i_d_8h_source.html','')
21#include "syscfg/syscfg.h"
22#if CONFIG_BT_NIMBLE_ENABLED
23
-
24# if defined(CONFIG_NIMBLE_CPP_IDF)
-
25# include "host/ble_uuid.h"
+
24# ifdef USING_NIMBLE_ARDUINO_HEADERS
+
25# include "nimble/nimble/host/include/host/ble_uuid.h"
26# else
-
27# include "nimble/nimble/host/include/host/ble_uuid.h"
+
27# include "host/ble_uuid.h"
28# endif
29
30/**** FIX COMPILATION ****/
@@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_u_u_i_d_8h_source.html','')
65
66 bool operator==(const NimBLEUUID& rhs) const;
67 bool operator!=(const NimBLEUUID& rhs) const;
-
68 operator std::string() const;
+
68 operator std::string() const;
69
70 private:
71 ble_uuid_any_t m_uuid{};
diff --git a/_nim_b_l_e_utils_8h_source.html b/_nim_b_l_e_utils_8h_source.html index d4ba554..0faf2fe 100644 --- a/_nim_b_l_e_utils_8h_source.html +++ b/_nim_b_l_e_utils_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/_nim_b_l_e_value_attribute_8h_source.html b/_nim_b_l_e_value_attribute_8h_source.html index 5c368aa..0bb71fd 100644 --- a/_nim_b_l_e_value_attribute_8h_source.html +++ b/_nim_b_l_e_value_attribute_8h_source.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -152,8 +152,8 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_value_attribute_8h_source.h
84
85#endif // CONFIG_BT_NIMBLE_ENABLED && (MYNEWT_VAL(BLE_ROLE_PERIPHERAL) || MYNEWT_VAL(BLE_ROLE_CENTRAL))
86#endif // NIMBLE_CPP_ATTRIBUTE_H_
-
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:90
-
uint16_t size() const
Returns the current size of the value in bytes.
Definition NimBLEAttValue.h:177
+
A specialized container class to hold BLE attribute values.
Definition NimBLEAttValue.h:95
+
uint16_t size() const
Returns the current size of the value in bytes.
Definition NimBLEAttValue.h:182
diff --git a/annotated.html b/annotated.html index cc7ecdb..656242a 100644 --- a/annotated.html +++ b/annotated.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_address-members.html b/class_nim_b_l_e_address-members.html index 00aba66..4c48acd 100644 --- a/class_nim_b_l_e_address-members.html +++ b/class_nim_b_l_e_address-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_address.html b/class_nim_b_l_e_address.html index aba5b27..d34944b 100644 --- a/class_nim_b_l_e_address.html +++ b/class_nim_b_l_e_address.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_advertisement_data-members.html b/class_nim_b_l_e_advertisement_data-members.html index abd4cc6..1970578 100644 --- a/class_nim_b_l_e_advertisement_data-members.html +++ b/class_nim_b_l_e_advertisement_data-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_advertisement_data.html b/class_nim_b_l_e_advertisement_data.html index 080ef0e..40f0425 100644 --- a/class_nim_b_l_e_advertisement_data.html +++ b/class_nim_b_l_e_advertisement_data.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_advertising-members.html b/class_nim_b_l_e_advertising-members.html index a1cec64..2ef34fd 100644 --- a/class_nim_b_l_e_advertising-members.html +++ b/class_nim_b_l_e_advertising-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_advertising.html b/class_nim_b_l_e_advertising.html index e8907a8..699aabb 100644 --- a/class_nim_b_l_e_advertising.html +++ b/class_nim_b_l_e_advertising.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_att_value-members.html b/class_nim_b_l_e_att_value-members.html index 52b6cc9..31a1588 100644 --- a/class_nim_b_l_e_att_value-members.html +++ b/class_nim_b_l_e_att_value-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -124,12 +124,13 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_att_value.html',''); i operator[](int pos) constNimBLEAttValue setValue(const uint8_t *value, uint16_t len)NimBLEAttValue setValue(const char *s, uint16_t len=0)NimBLEAttValueinline - setValue(const T &v)NimBLEAttValueinline - setValue(const T &s)NimBLEAttValueinline - setValue(const T &v)NimBLEAttValueinline + setValue(const T &s)NimBLEAttValueinline setValue(const T &v)NimBLEAttValueinline - size() constNimBLEAttValueinline - ~NimBLEAttValue()NimBLEAttValue + setValue(const T &s)NimBLEAttValueinline + setValue(const T &v)NimBLEAttValueinline + setValue(const T &v)NimBLEAttValueinline + size() constNimBLEAttValueinline + ~NimBLEAttValue()NimBLEAttValue
diff --git a/class_nim_b_l_e_att_value.html b/class_nim_b_l_e_att_value.html index f232bf6..6667618 100644 --- a/class_nim_b_l_e_att_value.html +++ b/class_nim_b_l_e_att_value.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -174,6 +174,10 @@ const uint8_t * end () NimBLEAttValueappend (const uint8_t *value, uint16_t len)  Append data to the value.
  +template<typename T > +bool setValue (const T &s) + Template to set value to the value of a char array using strnlen.
+  template<typename T > bool setValue (const T &v)  Template to set value to the value of <type>val.
@@ -599,7 +603,7 @@ less than sizeof(<type>).
-

◆ setValue() [1/6]

+

◆ setValue() [1/7]

@@ -644,7 +648,44 @@ less than sizeof(<type>).
-

◆ setValue() [2/6]

+

◆ setValue() [2/7]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
bool NimBLEAttValue::setValue (const T & s)
+
+inline
+
+ +

Template to set value to the value of a char array using strnlen.

+
Parameters
+ + +
[in]sA reference to a char array.
+
+
+

Only used for char array types to correctly determine length via strnlen.

+ +
+
+ +

◆ setValue() [3/7]

@@ -681,7 +722,7 @@ template<typename T >
-

◆ setValue() [3/6]

+

◆ setValue() [4/7]

@@ -718,7 +759,7 @@ template<typename T >
-

◆ setValue() [4/6]

+

◆ setValue() [5/7]

@@ -755,7 +796,7 @@ template<typename T >
-

◆ setValue() [5/6]

+

◆ setValue() [6/7]

@@ -792,7 +833,7 @@ template<typename T >
-

◆ setValue() [6/6]

+

◆ setValue() [7/7]

diff --git a/class_nim_b_l_e_att_value.js b/class_nim_b_l_e_att_value.js index cad685e..0d28010 100644 --- a/class_nim_b_l_e_att_value.js +++ b/class_nim_b_l_e_att_value.js @@ -30,6 +30,7 @@ var class_nim_b_l_e_att_value = [ "operator[]", "class_nim_b_l_e_att_value.html#a8ca8d07c06a79e30bf6279e6817e4881", null ], [ "setValue", "class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b", null ], [ "setValue", "class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8", null ], + [ "setValue", "class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8", null ], [ "setValue", "class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79", null ], [ "setValue", "class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79", null ], [ "setValue", "class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79", null ], diff --git a/class_nim_b_l_e_conn_info-members.html b/class_nim_b_l_e_conn_info-members.html index f51a4bb..349ce01 100644 --- a/class_nim_b_l_e_conn_info-members.html +++ b/class_nim_b_l_e_conn_info-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_conn_info.html b/class_nim_b_l_e_conn_info.html index a668d6f..0225e99 100644 --- a/class_nim_b_l_e_conn_info.html +++ b/class_nim_b_l_e_conn_info.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_device-members.html b/class_nim_b_l_e_device-members.html index 9d1b52d..dd0142c 100644 --- a/class_nim_b_l_e_device-members.html +++ b/class_nim_b_l_e_device-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_device.html b/class_nim_b_l_e_device.html index 46b48b8..5d462b4 100644 --- a/class_nim_b_l_e_device.html +++ b/class_nim_b_l_e_device.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_device_callbacks-members.html b/class_nim_b_l_e_device_callbacks-members.html index 93b8f63..b3a8efb 100644 --- a/class_nim_b_l_e_device_callbacks-members.html +++ b/class_nim_b_l_e_device_callbacks-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_device_callbacks.html b/class_nim_b_l_e_device_callbacks.html index acbfe60..de63ac9 100644 --- a/class_nim_b_l_e_device_callbacks.html +++ b/class_nim_b_l_e_device_callbacks.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_u_u_i_d-members.html b/class_nim_b_l_e_u_u_i_d-members.html index fa32a70..4103016 100644 --- a/class_nim_b_l_e_u_u_i_d-members.html +++ b/class_nim_b_l_e_u_u_i_d-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_u_u_i_d.html b/class_nim_b_l_e_u_u_i_d.html index c3f6c46..6a9ca51 100644 --- a/class_nim_b_l_e_u_u_i_d.html +++ b/class_nim_b_l_e_u_u_i_d.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_utils-members.html b/class_nim_b_l_e_utils-members.html index 1dff189..af33ecd 100644 --- a/class_nim_b_l_e_utils-members.html +++ b/class_nim_b_l_e_utils-members.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/class_nim_b_l_e_utils.html b/class_nim_b_l_e_utils.html index 8839f88..4eb997d 100644 --- a/class_nim_b_l_e_utils.html +++ b/class_nim_b_l_e_utils.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/classes.html b/classes.html index 6b24ce6..3a83a34 100644 --- a/classes.html +++ b/classes.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/deprecated.html b/deprecated.html index 0d55cea..7827d21 100644 --- a/deprecated.html +++ b/deprecated.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 0250981..6ff1f0c 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/files.html b/files.html index a4807d4..5575da5 100644 --- a/files.html +++ b/files.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
diff --git a/functions.html b/functions.html index 48a8d48..78caf61 100644 --- a/functions.html +++ b/functions.html @@ -25,7 +25,7 @@ -
esp-nimble-cpp 2.4.0 +
esp-nimble-cpp 2.5.0
@@ -242,7 +242,7 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
  • setDeviceName() : NimBLEDevice
  • setDiscoverableMode() : NimBLEAdvertising
  • setFlags() : NimBLEAdvertisementData
  • -
  • setManufacturerData() : NimBLEAdvertisementData, NimBLEAdvertising
  • +
  • setManufacturerData() : NimBLEAdvertisementData, NimBLEAdvertising
  • setMaxInterval() : NimBLEAdvertising
  • setMinInterval() : NimBLEAdvertising
  • setMTU() : NimBLEDevice
  • @@ -261,7 +261,7 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
  • setSecurityIOCap() : NimBLEDevice
  • setSecurityPasskey() : NimBLEDevice
  • setSecurityRespKey() : NimBLEDevice
  • -
  • setServiceData() : NimBLEAdvertisementData, NimBLEAdvertising
  • +
  • setServiceData() : NimBLEAdvertisementData, NimBLEAdvertising
  • setShortName() : NimBLEAdvertisementData
  • setURI() : NimBLEAdvertisementData, NimBLEAdvertising
  • setValue() : NimBLEAttValue
  • diff --git a/functions_func.html b/functions_func.html index 0a3fad4..4d5074e 100644 --- a/functions_func.html +++ b/functions_func.html @@ -25,7 +25,7 @@ -
    esp-nimble-cpp 2.4.0 +
    esp-nimble-cpp 2.5.0
    @@ -242,7 +242,7 @@ $(document).ready(function(){initNavTree('functions_func.html',''); initResizabl
  • setDeviceName() : NimBLEDevice
  • setDiscoverableMode() : NimBLEAdvertising
  • setFlags() : NimBLEAdvertisementData
  • -
  • setManufacturerData() : NimBLEAdvertisementData, NimBLEAdvertising
  • +
  • setManufacturerData() : NimBLEAdvertisementData, NimBLEAdvertising
  • setMaxInterval() : NimBLEAdvertising
  • setMinInterval() : NimBLEAdvertising
  • setMTU() : NimBLEDevice
  • @@ -261,7 +261,7 @@ $(document).ready(function(){initNavTree('functions_func.html',''); initResizabl
  • setSecurityIOCap() : NimBLEDevice
  • setSecurityPasskey() : NimBLEDevice
  • setSecurityRespKey() : NimBLEDevice
  • -
  • setServiceData() : NimBLEAdvertisementData, NimBLEAdvertising
  • +
  • setServiceData() : NimBLEAdvertisementData, NimBLEAdvertising
  • setShortName() : NimBLEAdvertisementData
  • setURI() : NimBLEAdvertisementData, NimBLEAdvertising
  • setValue() : NimBLEAttValue
  • diff --git a/index.html b/index.html index 3809e1c..399fd54 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@ -
    esp-nimble-cpp 2.4.0 +
    esp-nimble-cpp 2.5.0
    diff --git a/md_1_8x__to2_8x__migration__guide.html b/md_1_8x__to2_8x__migration__guide.html index 0519fa5..16f827d 100644 --- a/md_1_8x__to2_8x__migration__guide.html +++ b/md_1_8x__to2_8x__migration__guide.html @@ -25,7 +25,7 @@ -
    esp-nimble-cpp 2.4.0 +
    esp-nimble-cpp 2.5.0
    diff --git a/md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html b/md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html index b747a24..3531111 100644 --- a/md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html +++ b/md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html @@ -25,7 +25,7 @@ -
    esp-nimble-cpp 2.4.0 +
    esp-nimble-cpp 2.5.0
    @@ -93,9 +93,28 @@ $(document).ready(function(){initNavTree('md__2github_2workspace_2_c_h_a_n_g_e_l

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

    +

    +[2.5.0] 2026-04-01

    +

    +Fixed

    +
      +
    • NimBLEClient connection 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.
    • +
    • setValue with char inputs now calculates the data length correctly.
    • +
    +

    +Added

    +
      +
    • NimBLEServer::sendServiceChangedIndication Sends the service changed indication to peers so they refresh their database.
    • +
    • NimBLEScan user configuarable scan response timer added to prevent unreported devices on long duration scans.
    • +
    • NimBLEClient Connection retry on connection establishment failure, retry count configurable by app, default 2.
    • +
    • ANCS Example
    • +
    • l2Cap Disconnect API
    • +

    [2.4.0] 2026-03-20

    -

    +

    Fixed

    • GATT attribute handles are now assigned from the registration callback so duplicate UUID attributes are identified correctly.
    • @@ -108,7 +127,7 @@ Fixed
    • Compiler warnings when bonds are disabled.
    • kconfig warnings, redefined macros.
    -

    +

    Added

    • NimBLEStream, NimBLEStreamClient, and NimBLEStreamServer classes and examples.
    • @@ -128,7 +147,7 @@ Changed

    [2.3.4] 2025-12-27

    -

    +

    Fixed

    • Disconnect event not finding the client by address in some cases, use the connection handle instead.
    • @@ -142,7 +161,7 @@ Changed
    • Build conditionals now use MYNEWT_VAL_ macros instead of CONFIG_ 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.
    • @@ -151,20 +170,20 @@ Added

    [2.3.3] 2025-09-05

    -

    +

    Fixed

    • NimBLEAdvertisedDevice::isConnectable returning incorrect result.
    • Extended advertisements not reporting full data.
    -

    +

    Added

    • Support up to 1650 bytes of advertisement with extended advertising

    [2.3.2] 2025-09-02

    -

    +

    Fixed

    • Build failures with esp-idf versions 4.x.
    • @@ -179,21 +198,21 @@ Changed

    [2.3.1] 2025-06-11

    -

    +

    Fixed

    • Build errors when disabling BLE roles.
    • NimBLEClient::readValue call not returning when the instance was created with aNimBLEServer and reading a secured characteristic.
    • NimBLEScan destructor potentially causing a crash.
    -

    +

    Added

    [2.3.0] 2025-05-19

    -

    +

    Fixed

    • Incorrect NimBLECharacteristic::onSubscribe value when indications are set.
    • @@ -205,7 +224,7 @@ Fixed
    • Attribute getValue failing with some data types
    • Incorrectly passing a pointer to a function taking const reference.
    -

    +

    Added

    • Support for esp32c5
    • @@ -220,7 +239,7 @@ Changed

    [2.2.1] 2025-02-28

    -

    +

    Fixed

    • Added back NimBLEClient::connect overload with NimBLEAdvertisedDevice parameter to resolve connection error due to NULL address.
    • @@ -228,12 +247,12 @@ Fixed

    [2.2.0] 2025-02-24

    -

    +

    Fixed

    • Crash when calling NimBLEClient::DiscoverAttributes.
    -

    +

    Added

    • Conditional macros for logging.
    • @@ -241,7 +260,7 @@ Added

    [2.1.1] 2025-01-26

    -

    +

    Fixed

    • remote descriptor discovery error when no descriptors exist.
    • @@ -250,7 +269,7 @@ Fixed

    [2.1.0] 2025-01-12

    -

    +

    Fixed

    • Crash when retrieving descriptors if more than one exists.
    • @@ -264,7 +283,7 @@ Changed
    • If privacy is not enabled identity keys will not be shared.
    • NimBLEDevice::setPower and NimBLEDevice::getPower now take an additional parameter NimBLETxPowerType to set/get the power level for different operations.
    -

    +

    Added

    • Config option CONFIG_NIMBLE_CPP_ADDR_FMT_EXCLUDE_DELIMITER, if defined will remove the ":" delimiter from the BLE address string.
    • @@ -272,7 +291,7 @@ Added

    [2.0.3] 2025-01-05

    -

    +

    Fixed

    • Unused variable warning when log level is below info.
    • @@ -287,7 +306,7 @@ Changed
      • NimBLEHIDDevice now allows for the same report ID in multiple input/output/feature reports.
      -

      +

      Added

      • Config for custom log colors pre level.
      • @@ -297,7 +316,7 @@ Added

      [2.0.2] 2024-12-21

      -

      +

      Fixed

      • Compile error when only advertising role is enabled.
      • @@ -310,7 +329,7 @@ Changed

      [2.0.1] 2024-12-16

      -

      +

      Fixed

      • NimBLEHIDDevice::getOutputReport will now return the correct characteristic.
      • @@ -362,7 +381,7 @@ Changed
      • -NimBLEScanCallbacks::onScanEnd, replaces the scanEnded callback passed toNimBLEScan::startand now takes aconst NimBLEScanResults&andint reasonparameter.
      • -NimBLEScanCallbacks::onDiscovered, This is called immediately when a device is first scanned, before any scan response data is available and takes aconst NimBLEAdvertisedDevice*parameter. -NimBLEScan::stopwill no longer call theonScanEndcallback as the caller should know its been stopped when this is called. -NimBLEScan::clearDuplicateCachehas been removed as it was problematic and only for the esp32. Stop and start the scanner for the same effect. -NimBLEScanResults::getDevicemethods now returnconst NimBLEAdvertisedDevice*. -NimBLEScanResultsiterators are nowconst_iterator. -NimBLEAdvertisedDevice::hasRSSIremoved as redundant, RSSI is always available. -NimBLEAdvertisedDevice::getPayloadnow returnsconst std::vector<uint8_t>instead of a pointer to internal memory. -NimBLEAdvertisedDeviceTimestamp removed, if needed then the app should track the time from the callback. -NimBLECharacteristic::notifyno longer takes abool is_notificationparameter, insteadindicate()should be called to send indications. -NimBLECharacteristicCallbacks::onNotifyremoved as unnecessary, the library does not call notify without app input. -NimBLECharacteristicCallbacks::onStatusNo longer takes astatusparameter, refer to the return code for success/failure. -NimBLERemoteCharacteristic::getRemoteServicenow returns aconst NimBLERemoteService*instead of non-const. -NimBLERemoteCharacteristic::readUInt32Has been removed. -NimBLERemoteCharacteristic::readUInt16Has been removed. -NimBLERemoteCharacteristic::readUInt8Has been removed. -NimBLERemoteCharacteristic::readFloatHas been removed. -NimBLERemoteCharacteristic::registerForNotifyHas been removed. -NimBLERemoteService::getCharacteristicsnow returns aconst std::vector<NimBLERemoteCharacteristic*>&instead of non-conststd::vector<NimBLERemoteCharacteristic*>*. -NimBLERemoteService::getValuenow returnsNimBLEAttValueinstead ofstd::string. -NimBLEService::getCharacteristicsnow returns aconst std::vector<NimBLECharacteristic*>&instead of std::vector<NimBLECharacteristic *>. -NimBLEUUID::getNativemethod replaced withNimBLEUUID::getBasewhich returns a read-only pointer to the underlyingble_uuid_tstruct. -NimBLEUUID;msbFirstparameter has been removed from constructor, caller should reverse the data first or call the newreverseByteOrdermethod after. -NimBLEAddressconstructor; default value for thetypeparameter removed, caller should know the address type and specify it. -NimBLEAddress::getNativereplaced withNimBLEAddress::getBaseand now returns a pointer toconst ble_addr_tinstead of a pointer to the address value. -NimBLEAddress::equalsmethod andNimBLEAddress::== operatorwill now also test if the address types are the same. -NimBLEUtils::dumpGapEventfunction removed. -NimBLEUtils::buildHexDatareplaced withNimBLEUtils::dataToHexString, which returns astd::stringcontaining the hex string. -NimBLEEddystoneTLM::setTempnow takes anint16_tparameter instead of float to be friendly to devices without floating point support. -NimBLEEddystoneTLM::getTempnow returnsint16_tto work with devices that don't have floating point support. -NimBLEEddystoneTLM::setDatanow takes a reference to *NimBLEEddystoneTLM::BeaconDatainstead ofstd::string. -NimBLEEddystoneTLM::getDatanow returns a reference to *NimBLEEddystoneTLM::BeaconDatainstead ofstd::string. -NimBLEBeacon::setDatanow takesconst NimBLEBeacon::BeaconData&instead ofstd::string. -NimBLEBeacon::getDatanow returnsconst NimBLEBeacon::BeaconData&instead ofstd::string. -NimBLEHIDDevice::reportMaprenamed toNimBLEHIDDevice::getReportMap. -NimBLEHIDDevice::hidControlrenamed toNimBLEHIDDevice::getHidControl. -NimBLEHIDDevice::inputReportrenamed toNimBLEHIDDevice::getInputReport. -NimBLEHIDDevice::outputReportrenamed toNimBLEHIDDevice::getOutputReport. -NimBLEHIDDevice::featureReportrenamed toNimBLEHIDDevice::getFeatureReport. -NimBLEHIDDevice::protocolModerenamed toNimBLEHIDDevice::getProtocolMode. -NimBLEHIDDevice::bootOutputrenamed toNimBLEHIDDevice::getBootOutput. -NimBLEHIDDevice::pnprenamed toNimBLEHIDDevice::setPnp. -NimBLEHIDDevice::hidInforenamed toNimBLEHIDDevice::setHidInfo. -NimBLEHIDDevice::deviceInforenamed toNimBLEHIDDevice::getDeviceInfoService. -NimBLEHIDDevice::hidServicerenamed toNimBLEHIDDevice::getHidService. -NimBLEHIDDevice::batteryServicerenamed toNimBLEHIDDevice::getBatteryService`.
      -

      +

      Fixed

      • NimBLEDevice::getPower and NimBLEDevice::getPowerLevel bug worked around for the esp32s3 and esp32c3.
      • @@ -430,7 +449,7 @@ Changed
      • NimBLEAttValue cleanup and optimization.
      • cleaned up code, removed assert/abort calls, replaced with a configurable option to enable debug asserts.
      -

      +

      Added

      • (esp32 specific) NimBLEDevice::setPowerLevel and NimBLEDevice::getPowerLevel which take and return the related esp_power_level* types.
      • @@ -483,7 +502,7 @@ Added

      [1.4.1] - 2022-10-30

      -

      +

      Fixed

      • NimBLEDevice::getPower incorrect value when power level is -3db.
      • @@ -494,7 +513,7 @@ Changed
        • Revert previous change that forced writing with response when subscribing in favor of allowing the application to decide.
        -

        +

        Added

        • Added NimBLEHIDDevice::batteryLevel.
        • @@ -503,7 +522,7 @@ Added

        [1.4.0] - 2022-07-31

        -

        +

        Fixed

        • Fixed missing data from long notification values.
        • @@ -520,7 +539,7 @@ Changed
        • NimBLEClient::discoverAttributes now returns a bool value to indicate success/failure.
        • Scan result callbacks are no longer called when the scan response data is updated in order to reduce duplicates.
        -

        +

        Added

        • Preliminary support for non-esp devices, NRF51 and NRF52 devices supported with n-able arduino core
        • @@ -535,7 +554,7 @@ Changed
          • If attribute retrieval fails with a "not found" try again with the 16 bit version if a 128 bit base uuid is used.
          -

          +

          Fixed

          • Memory leak when deleting client instance.
          • @@ -545,7 +564,7 @@ Fixed

          [1.3.2] - 2022-01-15

          -

          +

          Fixed

          • Initialize advertising complete callback in NimBLEAdvertising constructor.
          • @@ -554,7 +573,7 @@ Fixed
          • Fix missing data in notifications when using a large MTU size and more than 270 bytes of data are sent.
          • Workaround fix added for cases when the task notification value is not cleared, causing various functions that should block not to block.
          -

          +

          Added

          • NimBLEClient::getLastError : Gets the error code of the last function call that produces a return code from the stack.
          • @@ -572,14 +591,14 @@ Changed

          [1.3.1] - 2021-08-04

          -

          +

          Fixed

          • Corrected a compiler/linker error when an application or a library uses bluetooth classic due to the redefinition of btInUse.

          [1.3.0] - 2021-08-02

          -

          +

          Added

          • NimBLECharacteristic::removeDescriptor: Dynamically remove a descriptor from a characteristic. Takes effect after all connections are closed and sends a service changed indication.
          • @@ -613,7 +632,7 @@ Changed
          • 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.
          • @@ -627,7 +646,7 @@ Fixed

          [1.2.0] - 2021-02-08

          -

          +

          Added

          • NimBLECharacteristic::getDescriptorByHandle: Return the BLE Descriptor for the given handle.
          • @@ -676,14 +695,14 @@ Changed
          • NimBLEScan Now uses the controller duplicate filter.
          • NimBLEAdvertisedDevice Has been refactored to store the complete advertisement payload and no longer parses the data from each advertisement. Instead the data will be parsed on-demand when the user application asks for specific data.
          -

          +

          Fixed

          • NimBLEHIDDevice Characteristics now use encryption, this resolves an issue with communicating with devices requiring encryption for HID devices.

          [1.1.0] - 2021-01-20

          -

          +

          Added

          • NimBLEDevice::setOwnAddrType added to enable the use of random and random-resolvable addresses, by asukiaaa
          • @@ -706,7 +725,7 @@ Changed
          • 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

          • Sometimes NimBLEClient::connect would hang on the task block if no event arrived to unblock. A time limit has been added to timeout appropriately.
          • @@ -733,7 +752,7 @@ Changed

          [1.0.1] - 2020-09-02

          -

          +

          Added

          • Empty NimBLEAddress constructor: NimBLEAddress() produces an address of 00:00:00:00:00:00 type 0.
          • @@ -744,7 +763,7 @@ 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.
            • diff --git a/md__bluetooth_015_01features.html b/md__bluetooth_015_01features.html index ca77966..925256d 100644 --- a/md__bluetooth_015_01features.html +++ b/md__bluetooth_015_01features.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/md__migration__guide.html b/md__migration__guide.html index 99fbbb1..4b53c6c 100644 --- a/md__migration__guide.html +++ b/md__migration__guide.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/md__new__user__guide.html b/md__new__user__guide.html index 31dccd1..1bcc583 100644 --- a/md__new__user__guide.html +++ b/md__new__user__guide.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/md__usage__tips.html b/md__usage__tips.html index 5c9affc..d029fd8 100644 --- a/md__usage__tips.html +++ b/md__usage__tips.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/navtreedata.js b/navtreedata.js index e5de63a..802c80a 100644 --- a/navtreedata.js +++ b/navtreedata.js @@ -27,98 +27,101 @@ var NAVTREE = [ "esp-nimble-cpp", "index.html", [ [ "Overview", "index.html", "index" ], [ "Changelog", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html", [ - [ "[2.4.0] 2026-03-20", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20", null ], + [ "[2.5.0] 2026-04-01", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added", null ], + [ "[2.4.0] 2026-03-20", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed", null ], [ "[2.3.4] 2025-12-27", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-1", null ], - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1", null ], - [ "[2.3.3] 2025-09-05", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-2", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-1", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-2", null ], - [ "[2.3.2] 2025-09-02", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02", null ], + [ "[2.3.3] 2025-09-05", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-3", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3", null ], + [ "[2.3.2] 2025-09-02", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-4", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-2", null ], [ "[2.3.1] 2025-06-11", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-4", null ], - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3", null ], - [ "[2.3.0] 2025-05-19", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-5", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-4", null ], + [ "[2.3.0] 2025-05-19", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-3", null ], [ "[2.2.1] 2025-02-28", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6", null ], - [ "[2.2.0] 2025-02-24", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-7", null ], - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5", null ], - [ "[2.1.1] 2025-01-26", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26", null ], + [ "[2.2.0] 2025-02-24", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-8", null ], - [ "[2.1.0] 2025-01-12", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-4", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-6", null ], - [ "[2.0.3] 2025-01-05", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05", null ], + [ "[2.1.1] 2025-01-26", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9", null ], + [ "[2.1.0] 2025-01-12", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-10", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-5", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-4", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7", null ], - [ "[2.0.2] 2024-12-21", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21", null ], + [ "[2.0.3] 2025-01-05", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-11", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-5", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8", null ], + [ "[2.0.2] 2024-12-21", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-12", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-6", null ], [ "[2.0.1] 2024-12-16", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md201-2024-12-16", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-12", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-7", null ], [ "[2.0.0] 2024-12-14", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md200-2024-12-14", null ], [ "Breaking changes", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#breaking-changes", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13", [ + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14", [ [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-8", null ], - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8", null ] - ] ], - [ "[1.4.1] - 2022-10-30", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30", [ - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-9", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9", null ] ] ], - [ "[1.4.0] - 2022-07-31", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31", [ + [ "[1.4.1] - 2022-10-30", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30", [ [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-15", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-10", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-9", null ], [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-10", null ] ] ], + [ "[1.4.0] - 2022-07-31", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31", [ + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-10", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11", null ] + ] ], [ "[1.3.3] - 2022-02-15", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15", [ [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-11", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16", null ] + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17", null ] ] ], [ "[1.3.2] - 2022-01-15", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15", [ - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17", null ], - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-12", null ] ] ], [ "[1.3.1] - 2021-08-04", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04", [ - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18", null ] - ] ], - [ "[1.3.0] - 2021-08-02", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02", [ - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-13", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-19", null ] ] ], - [ "[1.2.0] - 2021-02-08", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08", [ + [ "[1.3.0] - 2021-08-02", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02", [ [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-13", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-14", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-13", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-20", null ] ] ], - [ "[1.1.0] - 2021-01-20", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20", [ + [ "[1.2.0] - 2021-02-08", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08", [ [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-14", null ], - [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-15", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-14", null ], [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-21", null ] ] ], + [ "[1.1.0] - 2021-01-20", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20", [ + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15", null ], + [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-15", null ], + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22", null ] + ] ], [ "[1.0.2] - 2020-09-13", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13", [ [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-16", null ] ] ], [ "[1.0.1] - 2020-09-02", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02", [ - [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15", null ], + [ "Added", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-16", null ], [ "Changed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-17", null ], - [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22", null ] + [ "Fixed", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-23", null ] ] ], [ "[1.0.0] - 2020-08-22", "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22", null ] ] ], @@ -218,7 +221,7 @@ var NAVTREE = var NAVTREEINDEX = [ "_h_i_d_keyboard_types_8h_source.html", -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9" +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/navtreeindex0.js b/navtreeindex0.js index dbe6670..4f3ec91 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -137,7 +137,7 @@ var NAVTREEINDEX0 = "class_nim_b_l_e_att_value.html#a49a8a126d0b534c999c4a341cdcf7ba2":[8,0,3,12], "class_nim_b_l_e_att_value.html#a4d18b6e6839afc943f11200e76414c17":[8,0,3,11], "class_nim_b_l_e_att_value.html#a584cac329cd5d3c0a14aa855e6e6143e":[8,0,3,4], -"class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa":[8,0,3,33], +"class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa":[8,0,3,34], "class_nim_b_l_e_att_value.html#a5edd484c83c5efa62916add8927a6371":[8,0,3,19], "class_nim_b_l_e_att_value.html#a61813a898f1bfb1b00e670a7fbb413df":[8,0,3,3], "class_nim_b_l_e_att_value.html#a643f989881afd01a25f9d102421c36ec":[8,0,3,22], @@ -146,15 +146,16 @@ var NAVTREEINDEX0 = "class_nim_b_l_e_att_value.html#a86acbb5ab3a35b3d5692c2e05fdccadd":[8,0,3,13], "class_nim_b_l_e_att_value.html#a8ca8d07c06a79e30bf6279e6817e4881":[8,0,3,27], "class_nim_b_l_e_att_value.html#a91cbe0ba44781943390a80514383ee58":[8,0,3,14], -"class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79":[8,0,3,32], -"class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79":[8,0,3,30], "class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79":[8,0,3,31], +"class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79":[8,0,3,32], +"class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79":[8,0,3,33], "class_nim_b_l_e_att_value.html#aa217dfc649daed50eb75c7168442f86e":[8,0,3,9], "class_nim_b_l_e_att_value.html#aa53ee00be956c25596cf7cce71b502ba":[8,0,3,23], -"class_nim_b_l_e_att_value.html#aa8c75101d9898c3ff4646d84521ed61c":[8,0,3,34], +"class_nim_b_l_e_att_value.html#aa8c75101d9898c3ff4646d84521ed61c":[8,0,3,35], "class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b":[8,0,3,28], "class_nim_b_l_e_att_value.html#ab16b9901e6ff9374c7d2e1afa5aa4671":[8,0,3,15], "class_nim_b_l_e_att_value.html#ac7abc6cd08adb0b654e051d62af725d5":[8,0,3,17], +"class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8":[8,0,3,30], "class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8":[8,0,3,29], "class_nim_b_l_e_att_value.html#ad01c8ae4ce617b5ed31733ac245b2e91":[8,0,3,26], "class_nim_b_l_e_att_value.html#ad0bbdf17e7861cbb4bb2cadae9cbe32c":[8,0,3,1], @@ -207,8 +208,8 @@ var NAVTREEINDEX0 = "files.html":[9,0], "functions.html":[8,2,0], "functions_func.html":[8,2,1], -"index.html":[], "index.html":[0], +"index.html":[], "index.html#acknowledgments":[0,4], "index.html#esp-idf-installation":[0,1], "index.html#sponsors":[0,3], @@ -236,18 +237,17 @@ var NAVTREEINDEX0 = "md_1_8x__to2_8x__migration__guide.html#utilities":[2,9], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html":[1], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added":[1,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1":[1,7], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-10":[1,46,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11":[1,48,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12":[1,50,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-13":[1,51,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-14":[1,52,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15":[1,54,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1":[1,5], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-10":[1,48,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11":[1,49,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12":[1,51,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-13":[1,53,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-14":[1,54,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15":[1,55,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-16":[1,57,0], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-2":[1,10], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3":[1,16], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3":[1,13], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-4":[1,19], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5":[1,25], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-6":[1,31], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7":[1,35], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8":[1,44,1] +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5":[1,22], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-6":[1,28] }; diff --git a/navtreeindex1.js b/navtreeindex1.js index 43c980d..7464d24 100644 --- a/navtreeindex1.js +++ b/navtreeindex1.js @@ -1,73 +1,77 @@ var NAVTREEINDEX1 = { -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9":[1,45,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22":[1,55], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02":[1,54], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13":[1,53], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20":[1,52], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08":[1,51], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02":[1,50], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04":[1,49], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15":[1,48], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15":[1,47], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31":[1,46], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30":[1,45], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md200-2024-12-14":[1,42], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md201-2024-12-16":[1,39], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21":[1,36], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05":[1,32], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12":[1,28], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26":[1,26], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24":[1,23], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28":[1,21], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19":[1,17], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11":[1,14], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02":[1,11], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05":[1,8], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27":[1,4], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20":[1,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#breaking-changes":[1,43], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed":[1,3], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-1":[1,6], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-10":[1,46,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-11":[1,47,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-12":[1,48,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-13":[1,50,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-14":[1,51,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-15":[1,52,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-16":[1,53,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-17":[1,54,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-2":[1,13], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-3":[1,20], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-4":[1,30], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-5":[1,34], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-6":[1,38], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-7":[1,41], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-8":[1,44,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-9":[1,45,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7":[1,34], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8":[1,38], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9":[1,47,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22":[1,58], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02":[1,57], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13":[1,56], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20":[1,55], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08":[1,54], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02":[1,53], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04":[1,52], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15":[1,51], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15":[1,50], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31":[1,49], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30":[1,48], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md200-2024-12-14":[1,45], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md201-2024-12-16":[1,42], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21":[1,39], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05":[1,35], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12":[1,31], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26":[1,29], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24":[1,26], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28":[1,24], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19":[1,20], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11":[1,17], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02":[1,14], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05":[1,11], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27":[1,7], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20":[1,3], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01":[1,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#breaking-changes":[1,46], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed":[1,6], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-1":[1,9], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-10":[1,49,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-11":[1,50,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-12":[1,51,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-13":[1,53,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-14":[1,54,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-15":[1,55,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-16":[1,56,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-17":[1,57,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-2":[1,16], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-3":[1,23], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-4":[1,33], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-5":[1,37], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-6":[1,41], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-7":[1,44], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-8":[1,47,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#changed-9":[1,48,1], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed":[1,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1":[1,5], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-10":[1,33], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-11":[1,37], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1":[1,4], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-10":[1,32], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-11":[1,36], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-12":[1,40], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13":[1,44], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14":[1,45,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-15":[1,46,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16":[1,47,1], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17":[1,48,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18":[1,49,0], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-19":[1,50,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-2":[1,9], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-20":[1,51,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-21":[1,52,2], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22":[1,54,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13":[1,43], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14":[1,47], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-15":[1,48,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16":[1,49,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17":[1,50,1], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18":[1,51,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-19":[1,52,0], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-2":[1,8], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-20":[1,53,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-21":[1,54,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22":[1,55,2], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-23":[1,57,2], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-3":[1,12], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-4":[1,15], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-5":[1,18], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6":[1,22], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-7":[1,24], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6":[1,21], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-7":[1,25], "md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-8":[1,27], -"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9":[1,29], +"md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9":[1,30], "md__bluetooth_015_01features.html":[3], "md__bluetooth_015_01features.html#about-extended-advertising":[3,0], "md__bluetooth_015_01features.html#enabling-extended-advertising":[3,1], diff --git a/pages.html b/pages.html index 08315d4..bb91ce6 100644 --- a/pages.html +++ b/pages.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/search/all_0.js b/search/all_0.js index 3fca67b..cf8c35c 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -15,28 +15,31 @@ var searchData= ['0_202025_2002_2024_12',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], ['0_202025_2005_2019_13',['[2.3.0] 2025-05-19',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19',1,'']]], ['0_202026_2003_2020_14',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], - ['0_203_202025_2001_2005_15',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], - ['01_2005_16',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], - ['01_2012_17',['[2.1.0] 2025-01-12',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12',1,'']]], - ['01_2015_18',['[1.3.2] - 2022-01-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15',1,'']]], - ['01_2020_19',['[1.1.0] - 2021-01-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'']]], - ['01_2026_20',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], - ['02_21',['02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'[1.0.1] - 2020-09-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'[1.3.0] - 2021-08-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'[2.3.2] 2025-09-02']]], - ['02_2008_22',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], - ['02_2015_23',['[1.3.3] - 2022-02-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15',1,'']]], - ['02_2024_24',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], - ['02_2028_25',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]], - ['03_2020_26',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], - ['04_27',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], - ['05_28',['05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'[2.0.3] 2025-01-05'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'[2.3.3] 2025-09-05']]], - ['05_2019_29',['[2.3.0] 2025-05-19',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19',1,'']]], - ['06_2011_30',['[2.3.1] 2025-06-11',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11',1,'']]], - ['07_2031_31',['[1.4.0] - 2022-07-31',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31',1,'']]], - ['08_32',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], - ['08_2002_33',['[1.3.0] - 2021-08-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'']]], - ['08_2004_34',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], - ['08_2022_35',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], - ['09_2002_36',['09 02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'[1.0.1] - 2020-09-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'[2.3.2] 2025-09-02']]], - ['09_2005_37',['[2.3.3] 2025-09-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'']]], - ['09_2013_38',['[1.0.2] - 2020-09-13',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13',1,'']]] + ['0_202026_2004_2001_15',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['0_203_202025_2001_2005_16',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], + ['01_17',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['01_2005_18',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], + ['01_2012_19',['[2.1.0] 2025-01-12',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12',1,'']]], + ['01_2015_20',['[1.3.2] - 2022-01-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15',1,'']]], + ['01_2020_21',['[1.1.0] - 2021-01-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'']]], + ['01_2026_22',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], + ['02_23',['02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'[1.0.1] - 2020-09-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'[1.3.0] - 2021-08-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'[2.3.2] 2025-09-02']]], + ['02_2008_24',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], + ['02_2015_25',['[1.3.3] - 2022-02-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15',1,'']]], + ['02_2024_26',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], + ['02_2028_27',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]], + ['03_2020_28',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], + ['04_29',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], + ['04_2001_30',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['05_31',['05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'[2.0.3] 2025-01-05'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'[2.3.3] 2025-09-05']]], + ['05_2019_32',['[2.3.0] 2025-05-19',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19',1,'']]], + ['06_2011_33',['[2.3.1] 2025-06-11',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11',1,'']]], + ['07_2031_34',['[1.4.0] - 2022-07-31',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31',1,'']]], + ['08_35',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], + ['08_2002_36',['[1.3.0] - 2021-08-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'']]], + ['08_2004_37',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], + ['08_2022_38',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], + ['09_2002_39',['09 02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'[1.0.1] - 2020-09-02'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'[2.3.2] 2025-09-02']]], + ['09_2005_40',['[2.3.3] 2025-09-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'']]], + ['09_2013_41',['[1.0.2] - 2020-09-13',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13',1,'']]] ]; diff --git a/search/all_15.js b/search/all_15.js index bb1eb34..e0a3b43 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -44,7 +44,7 @@ var searchData= ['setservicedata_41',['setservicedata',['../class_nim_b_l_e_advertisement_data.html#a0399149f6359d33ca4781c8282844394',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertisement_data.html#ae179e55a5a133a66858047b29343bd75',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a2efe483f50ee2013d1eea015c90ba4f5',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertising.html#a815faed49fb4f29337fda94bd39c0bbc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertising.html#a708384c4b9af3006893afbdef74362bc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertising.html#a65123182c5218758433e4acf0432fc84',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)']]], ['setshortname_42',['setShortName',['../class_nim_b_l_e_advertisement_data.html#a32922b53631443b92463c8942b8d0839',1,'NimBLEAdvertisementData']]], ['seturi_43',['seturi',['../class_nim_b_l_e_advertising.html#a9fe23a52ac3f699095d84d2ba8f90c28',1,'NimBLEAdvertising::setURI()'],['../class_nim_b_l_e_advertisement_data.html#a852969e05a7884faf6cfcd2001f80ec9',1,'NimBLEAdvertisementData::setURI()']]], - ['setvalue_44',['setvalue',['../class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa',1,'NimBLEAttValue::setValue(const uint8_t *value, uint16_t len)'],['../class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b',1,'NimBLEAttValue::setValue(const char *s, uint16_t len=0)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)']]], + ['setvalue_44',['setvalue',['../class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa',1,'NimBLEAttValue::setValue(const uint8_t *value, uint16_t len)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b',1,'NimBLEAttValue::setValue(const char *s, uint16_t len=0)'],['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)']]], ['size_45',['size',['../class_nim_b_l_e_att_value.html#aa8c75101d9898c3ff4646d84521ed61c',1,'NimBLEAttValue']]], ['sponsors_46',['Sponsors',['../index.html#sponsors',1,'']]], ['start_47',['start',['../class_nim_b_l_e_advertising.html#a8a5c880ee36fd44e0c72c14c47c8e15e',1,'NimBLEAdvertising']]], diff --git a/search/all_2.js b/search/all_2.js index a4f6cd0..7225ca1 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -17,37 +17,39 @@ var searchData= ['2_203_203_202025_2009_2005_14',['[2.3.3] 2025-09-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'']]], ['2_203_204_202025_2012_2027_15',['[2.3.4] 2025-12-27',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27',1,'']]], ['2_204_200_202026_2003_2020_16',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], - ['2_20x_17',['Migrating from 1.x to 2.x',['../md_1_8x__to2_8x__migration__guide.html',1,'']]], - ['20_18',['20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'[1.1.0] - 2021-01-20'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'[2.4.0] 2026-03-20']]], - ['2020_2008_2022_19',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], - ['2020_2009_2002_20',['[1.0.1] - 2020-09-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'']]], - ['2020_2009_2013_21',['[1.0.2] - 2020-09-13',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13',1,'']]], - ['2021_2001_2020_22',['[1.1.0] - 2021-01-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'']]], - ['2021_2002_2008_23',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], - ['2021_2008_2002_24',['[1.3.0] - 2021-08-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'']]], - ['2021_2008_2004_25',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], - ['2022_2001_2015_26',['[1.3.2] - 2022-01-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15',1,'']]], - ['2022_2002_2015_27',['[1.3.3] - 2022-02-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15',1,'']]], - ['2022_2007_2031_28',['[1.4.0] - 2022-07-31',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31',1,'']]], - ['2022_2010_2030_29',['[1.4.1] - 2022-10-30',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30',1,'']]], - ['2024_2012_2014_30',['[2.0.0] 2024-12-14',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md200-2024-12-14',1,'']]], - ['2024_2012_2016_31',['[2.0.1] 2024-12-16',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md201-2024-12-16',1,'']]], - ['2024_2012_2021_32',['[2.0.2] 2024-12-21',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21',1,'']]], - ['2025_2001_2005_33',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], - ['2025_2001_2012_34',['[2.1.0] 2025-01-12',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12',1,'']]], - ['2025_2001_2026_35',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], - ['2025_2002_2024_36',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], - ['2025_2002_2028_37',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]], - ['2025_2005_2019_38',['[2.3.0] 2025-05-19',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19',1,'']]], - ['2025_2006_2011_39',['[2.3.1] 2025-06-11',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11',1,'']]], - ['2025_2009_2002_40',['[2.3.2] 2025-09-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'']]], - ['2025_2009_2005_41',['[2.3.3] 2025-09-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'']]], - ['2025_2012_2027_42',['[2.3.4] 2025-12-27',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27',1,'']]], - ['2026_2003_2020_43',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], - ['21_44',['[2.0.2] 2024-12-21',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21',1,'']]], - ['22_45',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], - ['24_46',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], - ['26_47',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], - ['27_48',['[2.3.4] 2025-12-27',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27',1,'']]], - ['28_49',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]] + ['2_205_200_202026_2004_2001_17',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['2_20x_18',['Migrating from 1.x to 2.x',['../md_1_8x__to2_8x__migration__guide.html',1,'']]], + ['20_19',['20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'[1.1.0] - 2021-01-20'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'[2.4.0] 2026-03-20']]], + ['2020_2008_2022_20',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], + ['2020_2009_2002_21',['[1.0.1] - 2020-09-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md101---2020-09-02',1,'']]], + ['2020_2009_2013_22',['[1.0.2] - 2020-09-13',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md102---2020-09-13',1,'']]], + ['2021_2001_2020_23',['[1.1.0] - 2021-01-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md110---2021-01-20',1,'']]], + ['2021_2002_2008_24',['[1.2.0] - 2021-02-08',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md120---2021-02-08',1,'']]], + ['2021_2008_2002_25',['[1.3.0] - 2021-08-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md130---2021-08-02',1,'']]], + ['2021_2008_2004_26',['[1.3.1] - 2021-08-04',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md131---2021-08-04',1,'']]], + ['2022_2001_2015_27',['[1.3.2] - 2022-01-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md132---2022-01-15',1,'']]], + ['2022_2002_2015_28',['[1.3.3] - 2022-02-15',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md133---2022-02-15',1,'']]], + ['2022_2007_2031_29',['[1.4.0] - 2022-07-31',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md140---2022-07-31',1,'']]], + ['2022_2010_2030_30',['[1.4.1] - 2022-10-30',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md141---2022-10-30',1,'']]], + ['2024_2012_2014_31',['[2.0.0] 2024-12-14',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md200-2024-12-14',1,'']]], + ['2024_2012_2016_32',['[2.0.1] 2024-12-16',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md201-2024-12-16',1,'']]], + ['2024_2012_2021_33',['[2.0.2] 2024-12-21',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21',1,'']]], + ['2025_2001_2005_34',['[2.0.3] 2025-01-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md203-2025-01-05',1,'']]], + ['2025_2001_2012_35',['[2.1.0] 2025-01-12',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md210-2025-01-12',1,'']]], + ['2025_2001_2026_36',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], + ['2025_2002_2024_37',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], + ['2025_2002_2028_38',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]], + ['2025_2005_2019_39',['[2.3.0] 2025-05-19',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md230-2025-05-19',1,'']]], + ['2025_2006_2011_40',['[2.3.1] 2025-06-11',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md231-2025-06-11',1,'']]], + ['2025_2009_2002_41',['[2.3.2] 2025-09-02',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md232-2025-09-02',1,'']]], + ['2025_2009_2005_42',['[2.3.3] 2025-09-05',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md233-2025-09-05',1,'']]], + ['2025_2012_2027_43',['[2.3.4] 2025-12-27',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27',1,'']]], + ['2026_2003_2020_44',['[2.4.0] 2026-03-20',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md240-2026-03-20',1,'']]], + ['2026_2004_2001_45',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['21_46',['[2.0.2] 2024-12-21',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md202-2024-12-21',1,'']]], + ['22_47',['[1.0.0] - 2020-08-22',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md100---2020-08-22',1,'']]], + ['24_48',['[2.2.0] 2025-02-24',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md220-2025-02-24',1,'']]], + ['26_49',['[2.1.1] 2025-01-26',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md211-2025-01-26',1,'']]], + ['27_50',['[2.3.4] 2025-12-27',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md234-2025-12-27',1,'']]], + ['28_51',['[2.2.1] 2025-02-28',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md221-2025-02-28',1,'']]] ]; diff --git a/search/all_5.js b/search/all_5.js index 2d3080b..4b6696e 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -1,4 +1,5 @@ var searchData= [ - ['5_20x_20features_0',['Bluetooth 5.x features',['../md__bluetooth_015_01features.html',1,'']]] + ['5_200_202026_2004_2001_0',['[2.5.0] 2026-04-01',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#autotoc_md250-2026-04-01',1,'']]], + ['5_20x_20features_1',['Bluetooth 5.x features',['../md__bluetooth_015_01features.html',1,'']]] ]; diff --git a/search/all_6.js b/search/all_6.js index 7df4d8d..eab9689 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -5,10 +5,10 @@ var searchData= ['about_20extended_20advertising_2',['About extended advertising',['../md__bluetooth_015_01features.html#about-extended-advertising',1,'']]], ['acknowledgments_3',['Acknowledgments',['../index.html#acknowledgments',1,'']]], ['adddata_4',['adddata',['../class_nim_b_l_e_advertisement_data.html#a051d8f4ae66d2caa39351af8277bf0ed',1,'NimBLEAdvertisementData::addData(const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertisement_data.html#a67f4d6869eb2797bc78389adf20cb59e',1,'NimBLEAdvertisementData::addData(const uint8_t *data, size_t length)']]], - ['added_5',['added',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-14',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-13',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-10',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-6',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-4',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-2',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5',1,'Added']]], - ['addresses_6',['addresses',['../md_1_8x__to2_8x__migration__guide.html#ble-addresses',1,'BLE Addresses'],['../md__migration__guide.html#ble-addresses-1',1,'BLE Addresses']]], - ['addserviceuuid_7',['addserviceuuid',['../class_nim_b_l_e_advertisement_data.html#acbea9f95711b329a427919ecd9cbeb23',1,'NimBLEAdvertisementData::addServiceUUID(const NimBLEUUID &serviceUUID)'],['../class_nim_b_l_e_advertisement_data.html#a4119cfc1dafeee9c32f9a08dbb213139',1,'NimBLEAdvertisementData::addServiceUUID(const char *serviceUUID)'],['../class_nim_b_l_e_advertising.html#a1bacfa32690f7e0c6f1172ea03c68c0d',1,'NimBLEAdvertising::addServiceUUID(const char *serviceUUID)'],['../class_nim_b_l_e_advertising.html#a67c9589dff7e0ee3ec24f2c930d56c06',1,'NimBLEAdvertising::addServiceUUID(const NimBLEUUID &serviceUUID)']]], - ['addtxpower_8',['addtxpower',['../class_nim_b_l_e_advertising.html#a0d3c5cb3a93416a4206abb1f8e443ebf',1,'NimBLEAdvertising::addTxPower()'],['../class_nim_b_l_e_advertisement_data.html#a3f227c597ec00f639e4bd26b80ce404b',1,'NimBLEAdvertisementData::addTxPower()']]], + ['added_5',['added',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-12',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-16',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-15',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-14',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-13',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-11',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-10',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-9',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-8',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-7',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-5',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-4',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-3',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-2',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-1',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added',1,'Added'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#added-6',1,'Added']]], + ['addresses_6',['addresses',['../md__migration__guide.html#ble-addresses-1',1,'BLE Addresses'],['../md_1_8x__to2_8x__migration__guide.html#ble-addresses',1,'BLE Addresses']]], + ['addserviceuuid_7',['addserviceuuid',['../class_nim_b_l_e_advertising.html#a1bacfa32690f7e0c6f1172ea03c68c0d',1,'NimBLEAdvertising::addServiceUUID()'],['../class_nim_b_l_e_advertisement_data.html#acbea9f95711b329a427919ecd9cbeb23',1,'NimBLEAdvertisementData::addServiceUUID(const NimBLEUUID &serviceUUID)'],['../class_nim_b_l_e_advertisement_data.html#a4119cfc1dafeee9c32f9a08dbb213139',1,'NimBLEAdvertisementData::addServiceUUID(const char *serviceUUID)'],['../class_nim_b_l_e_advertising.html#a67c9589dff7e0ee3ec24f2c930d56c06',1,'NimBLEAdvertising::addServiceUUID()']]], + ['addtxpower_8',['addtxpower',['../class_nim_b_l_e_advertisement_data.html#a3f227c597ec00f639e4bd26b80ce404b',1,'NimBLEAdvertisementData::addTxPower()'],['../class_nim_b_l_e_advertising.html#a0d3c5cb3a93416a4206abb1f8e443ebf',1,'NimBLEAdvertising::addTxPower()']]], ['advertised_20device_9',['Advertised Device',['../md_1_8x__to2_8x__migration__guide.html#advertised-device',1,'']]], ['advertising_10',['advertising',['../md__bluetooth_015_01features.html#about-extended-advertising',1,'About extended advertising'],['../md_1_8x__to2_8x__migration__guide.html#advertising',1,'Advertising'],['../md__bluetooth_015_01features.html#enabling-extended-advertising',1,'Enabling extended advertising']]], ['advertising_20api_11',['Advertising API',['../md__migration__guide.html#advertising-api',1,'']]], diff --git a/search/all_b.js b/search/all_b.js index 90e20fe..38d4514 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -2,7 +2,7 @@ var searchData= [ ['features_0',['Bluetooth 5.x features',['../md__bluetooth_015_01features.html',1,'']]], ['files_1',['files',['../md__migration__guide.html#header-files',1,'Header Files'],['../md__new__user__guide.html#include-files',1,'Include Files']]], - ['fixed_2',['fixed',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-11',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-21',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-20',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-19',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-15',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-12',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-10',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-8',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-7',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-5',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-4',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-3',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-2',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed',1,'Fixed']]], + ['fixed_2',['fixed',['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-11',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-23',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-22',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-21',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-20',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-19',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-18',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-17',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-16',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-15',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-14',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-13',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-12',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-10',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-9',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-8',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-7',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-6',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-5',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-4',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-3',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-2',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed-1',1,'Fixed'],['../md__2github_2workspace_2_c_h_a_n_g_e_l_o_g.html#fixed',1,'Fixed']]], ['from_201_20x_20to_202_20x_3',['Migrating from 1.x to 2.x',['../md_1_8x__to2_8x__migration__guide.html',1,'']]], ['from_20bluedroid_20to_20nimble_4',['Migrating from Bluedroid to NimBLE',['../md__migration__guide.html',1,'']]], ['fromstring_5',['fromString',['../class_nim_b_l_e_u_u_i_d.html#ae09acdc52e23a3a38c57aaf859c278c2',1,'NimBLEUUID']]], diff --git a/search/functions_e.js b/search/functions_e.js index 501abc0..f067ffd 100644 --- a/search/functions_e.js +++ b/search/functions_e.js @@ -13,7 +13,7 @@ var searchData= ['setdevicename_10',['setDeviceName',['../class_nim_b_l_e_device.html#aaa64b6baff54c010eb8b4d0ba338cc01',1,'NimBLEDevice']]], ['setdiscoverablemode_11',['setDiscoverableMode',['../class_nim_b_l_e_advertising.html#a710eacfc97ecea1bf9a9a3569c58d410',1,'NimBLEAdvertising']]], ['setflags_12',['setFlags',['../class_nim_b_l_e_advertisement_data.html#afa3e54526ad926e0d13cb31c620361c6',1,'NimBLEAdvertisementData']]], - ['setmanufacturerdata_13',['setmanufacturerdata',['../class_nim_b_l_e_advertisement_data.html#a9eb01ecb3973fa592effe6fdce39f602',1,'NimBLEAdvertisementData::setManufacturerData()'],['../class_nim_b_l_e_advertising.html#aac1b5e560aa497a274985a22083bfc97',1,'NimBLEAdvertising::setManufacturerData(const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertising.html#ac9f3a7270e1cefedf8547c5188d06120',1,'NimBLEAdvertising::setManufacturerData(const std::string &data)'],['../class_nim_b_l_e_advertising.html#ac433e3458ac5259ae21c4bdbd1198781',1,'NimBLEAdvertising::setManufacturerData(const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertisement_data.html#a043d49566c5d7a3e0808554587ad051b',1,'NimBLEAdvertisementData::setManufacturerData(const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a0b076298058755149b4351727d70b198',1,'NimBLEAdvertisementData::setManufacturerData(const uint8_t *data, size_t length)']]], + ['setmanufacturerdata_13',['setmanufacturerdata',['../class_nim_b_l_e_advertising.html#ac433e3458ac5259ae21c4bdbd1198781',1,'NimBLEAdvertising::setManufacturerData(const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertising.html#aac1b5e560aa497a274985a22083bfc97',1,'NimBLEAdvertising::setManufacturerData(const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertising.html#ac9f3a7270e1cefedf8547c5188d06120',1,'NimBLEAdvertising::setManufacturerData(const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a9eb01ecb3973fa592effe6fdce39f602',1,'NimBLEAdvertisementData::setManufacturerData(const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertisement_data.html#a043d49566c5d7a3e0808554587ad051b',1,'NimBLEAdvertisementData::setManufacturerData(const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a0b076298058755149b4351727d70b198',1,'NimBLEAdvertisementData::setManufacturerData(const uint8_t *data, size_t length)']]], ['setmaxinterval_14',['setMaxInterval',['../class_nim_b_l_e_advertising.html#a97bf63603b9aabdf0a5284269dfc5549',1,'NimBLEAdvertising']]], ['setmininterval_15',['setMinInterval',['../class_nim_b_l_e_advertising.html#a6b5be947a5e188d512e3338d36a039cb',1,'NimBLEAdvertising']]], ['setmtu_16',['setMTU',['../class_nim_b_l_e_device.html#a43b83de25635b69cfd663a7f0e7784d6',1,'NimBLEDevice']]], @@ -24,7 +24,7 @@ var searchData= ['setpartialservices16_21',['setPartialServices16',['../class_nim_b_l_e_advertisement_data.html#a91671d595cfed4547df670884633a7a4',1,'NimBLEAdvertisementData']]], ['setpartialservices32_22',['setPartialServices32',['../class_nim_b_l_e_advertisement_data.html#a736480e1e778ed93890d2071f558f186',1,'NimBLEAdvertisementData']]], ['setpower_23',['setPower',['../class_nim_b_l_e_device.html#ac4c78fbf7344fbc0d6189e92a756db91',1,'NimBLEDevice']]], - ['setpreferredparams_24',['setpreferredparams',['../class_nim_b_l_e_advertisement_data.html#acee3a78f4c8d69a1dc3df1f9af16632f',1,'NimBLEAdvertisementData::setPreferredParams()'],['../class_nim_b_l_e_advertising.html#a9dbb66ca66aa040731fcfd737f881469',1,'NimBLEAdvertising::setPreferredParams(uint16_t minInterval, uint16_t maxInterval)']]], + ['setpreferredparams_24',['setpreferredparams',['../class_nim_b_l_e_advertising.html#a9dbb66ca66aa040731fcfd737f881469',1,'NimBLEAdvertising::setPreferredParams()'],['../class_nim_b_l_e_advertisement_data.html#acee3a78f4c8d69a1dc3df1f9af16632f',1,'NimBLEAdvertisementData::setPreferredParams()']]], ['setscanfilter_25',['setScanFilter',['../class_nim_b_l_e_advertising.html#aa3da80c7d17a7824484ee254076e4790',1,'NimBLEAdvertising']]], ['setscanresponsedata_26',['setScanResponseData',['../class_nim_b_l_e_advertising.html#a97798e6d9d7721eb588c5e67d54e97ef',1,'NimBLEAdvertising']]], ['setsecurityauth_27',['setsecurityauth',['../class_nim_b_l_e_device.html#aa8e340c02418771ce72dec758d560938',1,'NimBLEDevice::setSecurityAuth(bool bonding, bool mitm, bool sc)'],['../class_nim_b_l_e_device.html#abbf642ac4ce4023c7c4d9a1e4333b328',1,'NimBLEDevice::setSecurityAuth(uint8_t auth)']]], @@ -32,10 +32,10 @@ var searchData= ['setsecurityiocap_29',['setSecurityIOCap',['../class_nim_b_l_e_device.html#ab9fee9e810d5fa18bc8a37053eb9b5d0',1,'NimBLEDevice']]], ['setsecuritypasskey_30',['setSecurityPasskey',['../class_nim_b_l_e_device.html#ab62da4d606355b20539e37e881f4044d',1,'NimBLEDevice']]], ['setsecurityrespkey_31',['setSecurityRespKey',['../class_nim_b_l_e_device.html#ab769a5f5afb3ee486527d41b8c445566',1,'NimBLEDevice']]], - ['setservicedata_32',['setservicedata',['../class_nim_b_l_e_advertising.html#a708384c4b9af3006893afbdef74362bc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertising.html#a65123182c5218758433e4acf0432fc84',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertising.html#a815faed49fb4f29337fda94bd39c0bbc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertisement_data.html#a2efe483f50ee2013d1eea015c90ba4f5',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertisement_data.html#ae179e55a5a133a66858047b29343bd75',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a0399149f6359d33ca4781c8282844394',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)']]], + ['setservicedata_32',['setservicedata',['../class_nim_b_l_e_advertising.html#a65123182c5218758433e4acf0432fc84',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)'],['../class_nim_b_l_e_advertising.html#a708384c4b9af3006893afbdef74362bc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertising.html#a815faed49fb4f29337fda94bd39c0bbc',1,'NimBLEAdvertising::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertisement_data.html#ae179e55a5a133a66858047b29343bd75',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a0399149f6359d33ca4781c8282844394',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const uint8_t *data, size_t length)'],['../class_nim_b_l_e_advertisement_data.html#a2efe483f50ee2013d1eea015c90ba4f5',1,'NimBLEAdvertisementData::setServiceData(const NimBLEUUID &uuid, const std::vector< uint8_t > &data)']]], ['setshortname_33',['setShortName',['../class_nim_b_l_e_advertisement_data.html#a32922b53631443b92463c8942b8d0839',1,'NimBLEAdvertisementData']]], ['seturi_34',['seturi',['../class_nim_b_l_e_advertisement_data.html#a852969e05a7884faf6cfcd2001f80ec9',1,'NimBLEAdvertisementData::setURI()'],['../class_nim_b_l_e_advertising.html#a9fe23a52ac3f699095d84d2ba8f90c28',1,'NimBLEAdvertising::setURI()']]], - ['setvalue_35',['setvalue',['../class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa',1,'NimBLEAttValue::setValue(const uint8_t *value, uint16_t len)'],['../class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b',1,'NimBLEAttValue::setValue(const char *s, uint16_t len=0)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)']]], + ['setvalue_35',['setvalue',['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8',1,'NimBLEAttValue::setValue(const T &s)'],['../class_nim_b_l_e_att_value.html#a98da1765d9cfd2d93cdac2fb7a108a79',1,'NimBLEAttValue::setValue(const T &v)'],['../class_nim_b_l_e_att_value.html#aade512f55c6f962941aee7078677356b',1,'NimBLEAttValue::setValue(const char *s, uint16_t len=0)'],['../class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa',1,'NimBLEAttValue::setValue(const uint8_t *value, uint16_t len)']]], ['size_36',['size',['../class_nim_b_l_e_att_value.html#aa8c75101d9898c3ff4646d84521ed61c',1,'NimBLEAttValue']]], ['start_37',['start',['../class_nim_b_l_e_advertising.html#a8a5c880ee36fd44e0c72c14c47c8e15e',1,'NimBLEAdvertising']]], ['startsecurity_38',['startSecurity',['../class_nim_b_l_e_device.html#a8b6b4bedfe37725ed9c20e91a3470005',1,'NimBLEDevice']]], diff --git a/struct_nim_b_l_e_task_data-members.html b/struct_nim_b_l_e_task_data-members.html index 18258c8..93cd01e 100644 --- a/struct_nim_b_l_e_task_data-members.html +++ b/struct_nim_b_l_e_task_data-members.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0
              diff --git a/struct_nim_b_l_e_task_data.html b/struct_nim_b_l_e_task_data.html index 4e47811..08eb988 100644 --- a/struct_nim_b_l_e_task_data.html +++ b/struct_nim_b_l_e_task_data.html @@ -25,7 +25,7 @@ -
              esp-nimble-cpp 2.4.0 +
              esp-nimble-cpp 2.5.0