From a116f0d0c01c911e9783b077cc0a44f3ff06d6dc Mon Sep 17 00:00:00 2001
From: h2zero Descriptor for Characteristic Presentation Format. A representation of a BLE advertised device found by a scan. Get the length of the advertisement data in the payload. Get the advertisement type. Get the appearance. A BLE device can declare its own appearance. The appearance is how it would like to be shown to an end user typcially in the form of an icon. A BLE device can declare its own appearance. The appearance is how it would like to be shown to an end user typically in the form of an icon. Get the length of the payload advertised by the device. Get the periodic interval of the advertisement. Get the primary PHY used by this advertisement. Get the scan object that created this advertised device. Get the primary PHY used by this advertisement. Get the UUID of the serice data at the index. Get the UUID of the service data at the index. Get the number of services advertised. Get the set ID of the extended advertisement. Check advertised services for existance of the required UUID. Check advertised services for existence of the required UUID. Check if this device is advertising as connectable. Check if this advertisement is a legacy or extended type. Stop advertising. This is the complete list of members for NimBLEAttValue, including all inherited members. A specialized container class to hold BLE attribute values.
+ More... A specialized container class to hold BLE attribute values. This class is designed to be more memory efficient than using Default constructor. Construct with an initial value from a buffer. Construct with an initializer list. Construct with an initial value from a const char string. Construct with an initial value from a std::string. Construct with an initial value from a std::vector<uint8_t>. Append data to the value. Get a pointer to the value buffer with timestamp. Template to return the value as a <type>. Use: Set value to the value of const char*. Template to set value to the value of <type>val. Only used for types without a Template to set value to the value of <type>val. Only used if the <type> has a Set the value from a buffer. This is the complete list of members for NimBLECharacteristic, including all inherited members. The model of a BLE Characteristic. A BLE Characteristic is an identified value container that manages a value. It is exposed by a BLE server and can be read and written to by a BLE client. Retrieve the current value of the characteristic. A template to convert the characteristic data to <type>. Template to convert the characteristic data to <type>. Use: Send an indication. Template to send an indication from a class type that has a c_str() and length() method. Only used if the <type> has a Send an indication. Send a notification. Send a notification or indication. Send a notification. Send a notification or indication. Template to send a notification from a class type that has a c_str() and length() method. Only used if the <type> has a Send a notification or indication. Remove a descriptor from the characterisitc. Remove a descriptor from the characteristic. Set the value of the characteristic from string data. Set the value of the characteristic from a Convenience template to set the characteristic value to <type>val. Template to set the characteristic value to <type>val. Set the value of the characteristic. Set the value of the characteristic from a data buffer . This is the complete list of members for NimBLEClient, including all inherited members. A model of a BLE client. Disconnect from the peer. Retrieves the full database of attributes that the peripheral has available. Set the connection paramaters to use when connecting to a server. Set the connection parameters to use when connecting to a server. Set the PHY types to use when connecting to a server. A model of a BLE descriptor. Construct a descriptor. Construct a descriptor. Get the value of this descriptor. Template to convert the descriptor data to <type>. Use: Set the value of the descriptor. Set the value of the descriptor from a Convenience template to set the descriptor value to <type>val. Template to set the characteristic value to <type>val. Convenience function to begin advertising. Convenience function to stop all advertising. Convenience function to stop advertising a data set. Get the count of advertisments sent. Get the count of advertisements sent. Get the advertisment time. Get the advertisement time. Set the advertisment count. Set the advertisement count. Set the raw data for the beacon advertisment. Set the raw data for the beacon advertisement. Set the advertisment time. Set the advertisement time. Set the raw data for the beacon advertisment. Set the raw data for the beacon advertisement. This is the complete list of members for NimBLEExtAdvertisement, including all inherited members. Extended advertisement data.
+ More... Extended advertisement data. Construct a BLE extended advertisement. Add data to the payload to be advertised. Add data to the payload to be advertised. Clears the data stored in this instance, does not change settings. This will clear all data but preserves advertising parameter settings. Sets whether the scan response request callback should be called. Set the address to use for this advertisement. Sets whether the advertisement should be anonymous. Anonymous advertising omits the device's address from the advertisement. Set the appearance. Set a single service to advertise as a complete list of services. Set the complete list of 16 bit services to advertise. Set the complete list of 32 bit services to advertise. Sets wether this advertisement should advertise as a connectable device. Set the advertisement data. This will completely replace any data that was previously set. Enable or disable direct advertisements to the peer set with Sets the peer to directly advertise to. Set the advertisement flags. Sets wether the advertisement should use legacy (BLE 4.0, 31 bytes max) advertising. Set manufacturer specific data. Set the maximum advertising interval. Set the minimum advertising interval. Set the complete name of this device. Set a single service to advertise as a partial list of services. Set the partial list of services to advertise. Set the partial list of services to advertise. Set the preferred connection interval parameters. Sets The primary channels to advertise on. This will set a bitmask using the input parameters to allow different Set the primary advertising PHY to use. Set the filtering for the scan filter. Sets wether the advertisement has scan response data available. Set the secondary advertising PHY to use. Set the service data (UUID + data) Set the short name. Sets the transmission power level for this advertisement. The allowable value range depends on device hardware. Set the URI to advertise. This is the complete list of members for NimBLEExtAdvertising, including all inherited members. Extended advertising class.
+ More... Extended advertising class. Check if currently advertising. Check if any instances are currently advertising. Stop and remove all advertising instance data. Stop and remove this instance data from the advertisement set. Set a callback to call when the advertisement stops. Register the extended advertisement data. Set the scan response data for a legacy advertisement. Start extended advertising. Stop all advertisements. Stop advertising this instance data. This is the complete list of members for NimBLEExtAdvertisingCallbacks, including all inherited members. Callbacks associated with NimBLEExtAdvertising class.
+ More... Callbacks associated with NimBLEExtAdvertising class. Handle a scan response request. This is called when a scanning device requests a scan response. Handle an advertising stop event. Default callback handlers Sets the Plug n Play characterisc value. Sets the Plug n Play characteristic value. A model of a remote BLE characteristic. A template to convert the remote characteristic data to <type>. Template to convert the remote characteristic data to <type>. Read an unsigned 16 bit value. Read an unsigned 32 bit value. Read a byte value. A template to convert the remote characteristic data to <type>. Template to convert the remote characteristic data to <type>. Write the new value for the characteristic. Write a new value to the remote characteristic from a const char*. Write a new value to the remote characteristic from a std::vector<uint8_t>. Convenience template to set the remote characteristic value to <type>val. Template to set the remote characteristic value to <type>val. Only used for non-arrays and types without a Template to set the remote characteristic value to <type>val. Only used if the <type> has a Write the new value for the characteristic from a data buffer. Write a new value to the remote characteristic from a data buffer. A model of remote BLE descriptor. Read an unsigned 16 bit value. Read an unsigned 32 bit value. Read a byte value. A template to convert the remote descriptor data to <type>. Template to convert the remote descriptor data to <type>. Write data represented as a string to the BLE Remote Descriptor. Write a new value to the remote descriptor from a const char*. Write a new value to a remote descriptor from a std::vector<uint8_t>. Convenience template to set the remote descriptor value to <type>val. Template to set the remote descriptor value to <type>val. Only used for non-arrays and types without a Template to set the remote descriptor value to <type>val. Only used if the <type> has a Write data to the BLE Remote Descriptor. Write a new value to a remote descriptor. Sets the keys we will distibute during encryption. Sets the keys we will distribute during encryption.
diff --git a/_h_i_d_types_8h_source.html b/_h_i_d_types_8h_source.html
index 2954560..dfe4099 100644
--- a/_h_i_d_types_8h_source.html
+++ b/_h_i_d_types_8h_source.html
@@ -5,7 +5,7 @@
-
diff --git a/_nim_b_l_e2904_8h_source.html b/_nim_b_l_e2904_8h_source.html
index c00b2bd..592a073 100644
--- a/_nim_b_l_e2904_8h_source.html
+++ b/_nim_b_l_e2904_8h_source.html
@@ -5,7 +5,7 @@
-
@@ -167,8 +167,8 @@ $(document).ready(function(){initNavTree('_nim_b_l_e2904_8h_source.html',''); in
@@ -147,10 +147,10 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_address_8h_source.html','')
@@ -145,7 +145,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertised_device_8h_source
-
+
@@ -167,9 +167,9 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertised_device_8h_source
-
+
-
+
@@ -189,80 +189,107 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertised_device_8h_source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -103,162 +103,166 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_advertising_8h_source.html'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/_nim_b_l_e_characteristic_8h_source.html b/_nim_b_l_e_characteristic_8h_source.html
index 54f269f..c46c2a5 100644
--- a/_nim_b_l_e_characteristic_8h_source.html
+++ b/_nim_b_l_e_characteristic_8h_source.html
@@ -5,7 +5,7 @@
-
@@ -132,163 +132,185 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_characteristic_8h_source.ht
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -109,151 +109,160 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_client_8h_source.html','');
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_conn_info_8h_source.html','
-
+
@@ -108,102 +108,103 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_descriptor_8h_source.html',
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
@@ -111,246 +111,269 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_device_8h_source.html','');
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
@@ -143,17 +143,17 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_eddystone_t_l_m_8h_source.h
-
@@ -141,7 +141,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_eddystone_u_r_l_8h_source.h
+
+
+
+
+
+
+
+
@@ -169,7 +169,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_h_i_d_device_8h_source.html
-
+
diff --git a/_nim_b_l_e_remote_characteristic_8h_source.html b/_nim_b_l_e_remote_characteristic_8h_source.html
index 393a7b1..ff79d7d 100644
--- a/_nim_b_l_e_remote_characteristic_8h_source.html
+++ b/_nim_b_l_e_remote_characteristic_8h_source.html
@@ -5,7 +5,7 @@
-
@@ -111,154 +111,174 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_characteristic_8h_so
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -114,56 +114,78 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_descriptor_8h_source
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
@@ -168,20 +168,20 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_remote_service_8h_source.ht
-
-
@@ -178,31 +178,31 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_scan_8h_source.html',''); i
-
@@ -191,7 +191,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_security_8h_source.html',''
@@ -113,137 +113,158 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_server_8h_source.html','');
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
@@ -131,59 +131,61 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_service_8h_source.html','')
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
@@ -133,27 +133,29 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_u_u_i_d_8h_source.html','')
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -117,7 +117,7 @@ $(document).ready(function(){initNavTree('_nim_b_l_e_utils_8h_source.html','');
-
+
diff --git a/annotated.html b/annotated.html
index abda9c5..29317f0 100644
--- a/annotated.html
+++ b/annotated.html
@@ -26,7 +26,7 @@
@@ -94,30 +94,34 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
CNimBLEAdvertisedDeviceCallbacks A callback handler for callbacks associated device scanning CNimBLEAdvertisementData Advertisement data set by the programmer to be published by the BLE server
- CNimBLEAdvertising Perform and manage BLE advertising
- CNimBLEBeacon Representation of a beacon. See:
- CNimBLECharacteristic The model of a BLE Characteristic
- CNimBLECharacteristicCallbacks Callbacks that can be associated with a BLE characteristic to inform of events
- CNimBLEClient A model of a BLE client
- CNimBLEClientCallbacks Callbacks associated with a BLE client
- CNimBLEConnInfo Connection information
- CNimBLEDescriptor A model of a BLE descriptor
- CNimBLEDescriptorCallbacks Callbacks that can be associated with a BLE descriptors to inform of events
- CNimBLEDevice A model of a BLE Device from which all the BLE roles are created
- CNimBLEEddystoneTLM Representation of a beacon. See:
- CNimBLEEddystoneURL Representation of a beacon. See:
- CNimBLEHIDDevice A model of a BLE Human Interface Device
- CNimBLERemoteCharacteristic A model of a remote BLE characteristic
- CNimBLERemoteDescriptor A model of remote BLE descriptor
- CNimBLERemoteService A model of a remote BLE service
- CNimBLEScan Perform and manage BLE scans
- CNimBLEScanResults A class that contains and operates on the results of a BLE scan
- CNimBLESecurity A class to handle BLE security operations. Deprecated - provided for backward compatibility only.
- CNimBLESecurityCallbacks Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only.
- CNimBLEServer The model of a BLE server
- CNimBLEServerCallbacks Callbacks associated with the operation of a BLE server
- CNimBLEService The model of a BLE service
- CNimBLEUtils A BLE Utility class with methods for debugging and general purpose use
+ CNimBLEUUID A model of a BLE UUID
+ CNimBLEAttValue A specialized container class to hold BLE attribute values
+ CNimBLEBeacon Representation of a beacon. See:
+ CNimBLECharacteristic The model of a BLE Characteristic
+ CNimBLECharacteristicCallbacks Callbacks that can be associated with a BLE characteristic to inform of events
+ CNimBLEClient A model of a BLE client
+ CNimBLEClientCallbacks Callbacks associated with a BLE client
+ CNimBLEConnInfo Connection information
+ CNimBLEDescriptor A model of a BLE descriptor
+ CNimBLEDescriptorCallbacks Callbacks that can be associated with a BLE descriptors to inform of events
+ CNimBLEDevice A model of a BLE Device from which all the BLE roles are created
+ CNimBLEEddystoneTLM Representation of a beacon. See:
+ CNimBLEEddystoneURL Representation of a beacon. See:
+ CNimBLEExtAdvertisement Extended advertisement data
+ CNimBLEExtAdvertising Extended advertising class
+ CNimBLEExtAdvertisingCallbacks Callbacks associated with NimBLEExtAdvertising class
+ CNimBLEHIDDevice A model of a BLE Human Interface Device
+ CNimBLERemoteCharacteristic A model of a remote BLE characteristic
+ CNimBLERemoteDescriptor A model of remote BLE descriptor
+ CNimBLERemoteService A model of a remote BLE service
+ CNimBLEScan Perform and manage BLE scans
+ CNimBLEScanResults A class that contains and operates on the results of a BLE scan
+ CNimBLESecurity A class to handle BLE security operations. Deprecated - provided for backward compatibility only.
+ CNimBLESecurityCallbacks Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only.
+ CNimBLEServer The model of a BLE server
+ CNimBLEServerCallbacks Callbacks associated with the operation of a BLE server
+ CNimBLEService The model of a BLE service
+ CNimBLEUtils A BLE Utility class with methods for debugging and general purpose use
diff --git a/annotated_dup.js b/annotated_dup.js
index fa1a6ed..55222ee 100644
--- a/annotated_dup.js
+++ b/annotated_dup.js
@@ -6,6 +6,7 @@ var annotated_dup =
[ "NimBLEAdvertisedDeviceCallbacks", "class_nim_b_l_e_advertised_device_callbacks.html", "class_nim_b_l_e_advertised_device_callbacks" ],
[ "NimBLEAdvertisementData", "class_nim_b_l_e_advertisement_data.html", "class_nim_b_l_e_advertisement_data" ],
[ "NimBLEAdvertising", "class_nim_b_l_e_advertising.html", "class_nim_b_l_e_advertising" ],
+ [ "NimBLEAttValue", "class_nim_b_l_e_att_value.html", "class_nim_b_l_e_att_value" ],
[ "NimBLEBeacon", "class_nim_b_l_e_beacon.html", "class_nim_b_l_e_beacon" ],
[ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html", "class_nim_b_l_e_characteristic" ],
[ "NimBLECharacteristicCallbacks", "class_nim_b_l_e_characteristic_callbacks.html", "class_nim_b_l_e_characteristic_callbacks" ],
@@ -17,6 +18,9 @@ var annotated_dup =
[ "NimBLEDevice", "class_nim_b_l_e_device.html", null ],
[ "NimBLEEddystoneTLM", "class_nim_b_l_e_eddystone_t_l_m.html", "class_nim_b_l_e_eddystone_t_l_m" ],
[ "NimBLEEddystoneURL", "class_nim_b_l_e_eddystone_u_r_l.html", "class_nim_b_l_e_eddystone_u_r_l" ],
+ [ "NimBLEExtAdvertisement", "class_nim_b_l_e_ext_advertisement.html", "class_nim_b_l_e_ext_advertisement" ],
+ [ "NimBLEExtAdvertising", "class_nim_b_l_e_ext_advertising.html", "class_nim_b_l_e_ext_advertising" ],
+ [ "NimBLEExtAdvertisingCallbacks", "class_nim_b_l_e_ext_advertising_callbacks.html", "class_nim_b_l_e_ext_advertising_callbacks" ],
[ "NimBLEHIDDevice", "class_nim_b_l_e_h_i_d_device.html", "class_nim_b_l_e_h_i_d_device" ],
[ "NimBLERemoteCharacteristic", "class_nim_b_l_e_remote_characteristic.html", "class_nim_b_l_e_remote_characteristic" ],
[ "NimBLERemoteDescriptor", "class_nim_b_l_e_remote_descriptor.html", "class_nim_b_l_e_remote_descriptor" ],
diff --git a/class_nim_b_l_e2904-members.html b/class_nim_b_l_e2904-members.html
index ec12f29..bb12b92 100644
--- a/class_nim_b_l_e2904-members.html
+++ b/class_nim_b_l_e2904-members.html
@@ -26,7 +26,7 @@
CNimBLEUUID A model of a BLE UUID
@@ -94,20 +94,21 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e2904.html',''); initRes
getLength() NimBLEDescriptor getStringValue() NimBLEDescriptor
- getUUID() NimBLEDescriptor
- getValue() NimBLEDescriptor
- NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
- NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
- setCallbacks(NimBLEDescriptorCallbacks *pCallbacks) NimBLEDescriptor
- setDescription(uint16_t) NimBLE2904
- setExponent(int8_t exponent) NimBLE2904
- setFormat(uint8_t format) NimBLE2904
- setNamespace(uint8_t namespace_value) NimBLE2904
- setUnit(uint16_t unit) NimBLE2904
- setValue(const uint8_t *data, size_t size) NimBLEDescriptor
- setValue(const std::string &value) NimBLEDescriptor
- setValue(const T &s) NimBLEDescriptor inline
- toString() NimBLEDescriptor
+ ~NimBLEDescriptor() NimBLEDescriptor
+ getValue(time_t *timestamp=nullptr) NimBLEDescriptor
+ getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLEDescriptor inline
+ NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
+ NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
+ setCallbacks(NimBLEDescriptorCallbacks *pCallbacks) NimBLEDescriptor
+ setDescription(uint16_t) NimBLE2904
+ setExponent(int8_t exponent) NimBLE2904
+ setFormat(uint8_t format) NimBLE2904
+ setNamespace(uint8_t namespace_value) NimBLE2904
+ setUnit(uint16_t unit) NimBLE2904
+ setValue(const uint8_t *data, size_t size) NimBLEDescriptor
+ setValue(const std::vector< uint8_t > &vec) NimBLEDescriptor
+ setValue(const T &s) NimBLEDescriptor inline
+ toString() NimBLEDescriptor
diff --git a/class_nim_b_l_e2904.html b/class_nim_b_l_e2904.html
index 7c92591..b3f3645 100644
--- a/class_nim_b_l_e2904.html
+++ b/class_nim_b_l_e2904.html
@@ -26,7 +26,7 @@
~NimBLEDescriptor() NimBLEDescriptor
@@ -117,13 +117,11 @@ void
Set the units for this value. It should be one of the encoded values defined here: https://www.bluetooth.com/specifications/assigned-numbers/units. More...
- Public Member Functions inherited from NimBLEDescriptor
-
- NimBLEDescriptor (const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
+ NimBLEDescriptor constructor.
+ NimBLEDescriptor (const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) Construct a descriptor. More...
-
-
- NimBLEDescriptor (NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
+ NimBLEDescriptor constructor.
+ NimBLEDescriptor (NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) Construct a descriptor. More...
@@ -142,28 +140,33 @@ void
~NimBLEDescriptor () void setCallbacks (NimBLEDescriptorCallbacks *pCallbacks)
Set the callback handlers for this descriptor. More...
+
+NimBLECharacteristic * getCharacteristic ()
+ Get the characteristic this descriptor belongs to. More... size_t getLength () Get the length of the value of this descriptor. More...
-
-uint8_t * getValue ()
- Get the value of this descriptor. More...
+
+NimBLEAttValue getValue (time_t *timestamp=nullptr)
+ Get the value of this descriptor. More... std::string getStringValue () Get the value of this descriptor as a string. More... void setValue (const uint8_t *data, size_t size) Set the value of the descriptor. More...
-
-void setValue (const std::string &value)
- Set the value of the descriptor. More...
-
-NimBLECharacteristic * getCharacteristic ()
- Get the characteristic this descriptor belongs to. More...
+
+void setValue (const std::vector< uint8_t > &vec)
+ Set the value of the descriptor from a std::vector<uint8_t>
.
+. More... template<typename T >
-void setValue (const T &s)
+ Convenience template to set the descriptor value to <type>val. More... Template to set the characteristic value to <type>val. More...
+
+template<typename T >
+T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to convert the descriptor data to <type>. More... Detailed Description
diff --git a/class_nim_b_l_e_address.html b/class_nim_b_l_e_address.html
index 616fa82..27c61ae 100644
--- a/class_nim_b_l_e_address.html
+++ b/class_nim_b_l_e_address.html
@@ -26,7 +26,7 @@
@@ -126,18 +126,18 @@ Use the same byte order, so use 0xa4c1385def16 for "a4:c1:38:5d:ef:16".
-
bool operator== (const NimBLEAddress &rhs) const
+ Convienience operator to check if this address is equal to another. Convenience operator to check if this address is equal to another.
-
bool operator!= (const NimBLEAddress &rhs) const
+ Convienience operator to check if this address is not equal to another. Convenience operator to check if this address is not equal to another. operator std::string () const Convienience operator to convert this address to string representation. More...
-
operator uint64_t () const
+ Convienience operator to convert the native address representation to uint_64. Convenience operator to convert the native address representation to uint_64. Detailed Description
diff --git a/class_nim_b_l_e_advertised_device-members.html b/class_nim_b_l_e_advertised_device-members.html
index 4993cfd..d787364 100644
--- a/class_nim_b_l_e_advertised_device-members.html
+++ b/class_nim_b_l_e_advertised_device-members.html
@@ -26,7 +26,7 @@
@@ -102,18 +102,22 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_advertised_device.html
getName() NimBLEAdvertisedDevice getPayload() NimBLEAdvertisedDevice
+ getPayloadLength() NimBLEAdvertisedDevice
+ getPeriodicInterval() NimBLEAdvertisedDevice getPrimaryPhy() NimBLEAdvertisedDevice getRSSI() NimBLEAdvertisedDevice
- getScan() NimBLEAdvertisedDevice
- getServiceData(uint8_t index=0) NimBLEAdvertisedDevice
- getServiceData(const NimBLEUUID &uuid) NimBLEAdvertisedDevice
- getServiceData(uint8_t index=0, bool skipSizeCheck=false) NimBLEAdvertisedDevice inline
- getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false) NimBLEAdvertisedDevice inline
- getServiceDataCount() NimBLEAdvertisedDevice
- getServiceDataUUID(uint8_t index=0) NimBLEAdvertisedDevice
- getServiceUUID(uint8_t index=0) NimBLEAdvertisedDevice
+ getServiceUUIDCount() NimBLEAdvertisedDevice
+ getSecondaryPhy() NimBLEAdvertisedDevice
+ getServiceData(uint8_t index=0) NimBLEAdvertisedDevice
+ getServiceData(const NimBLEUUID &uuid) NimBLEAdvertisedDevice
+ getServiceData(uint8_t index=0, bool skipSizeCheck=false) NimBLEAdvertisedDevice inline
+ getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false) NimBLEAdvertisedDevice inline
+ getServiceDataCount() NimBLEAdvertisedDevice
+ getServiceDataUUID(uint8_t index=0) NimBLEAdvertisedDevice
+ getServiceUUID(uint8_t index=0) NimBLEAdvertisedDevice
+ getServiceUUIDCount() NimBLEAdvertisedDevice getSetId() NimBLEAdvertisedDevice
- getTargetAddress(uint8_t index=0) NimBLEAdvertisedDevice
+ getTargetAddressCount() NimBLEAdvertisedDevice getTargetAddressCount() NimBLEAdvertisedDevice getTimestamp() NimBLEAdvertisedDevice getTXPower() NimBLEAdvertisedDevice
@@ -129,6 +133,8 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_advertised_device.html
getURI() NimBLEAdvertisedDevice haveTXPower() NimBLEAdvertisedDevice haveURI() NimBLEAdvertisedDevice
+ isAdvertisingService(const NimBLEUUID &uuid) NimBLEAdvertisedDevice
+ isConnectable() NimBLEAdvertisedDevice isLegacyAdvertisement() NimBLEAdvertisedDevice NimBLEAdvertisedDevice() NimBLEAdvertisedDevice toString() NimBLEAdvertisedDevice
@@ -136,9 +136,9 @@ Public Member Functions
NimBLEScan * getScan () Get the scan object that created this advertised device. More...
-
-size_t getServiceDataCount ()
- Get the count of advertised service data UUIDS. More...
+
+uint8_t getServiceDataCount ()
+ Get the count of advertised service data UUIDS. More... std::string getServiceData (uint8_t index=0) Get the service data. More...
@@ -154,20 +154,20 @@ Public Member Functions
A template to convert the service data to <type>
. More...
-NimBLEUUID getServiceDataUUID (uint8_t index=0)
+ Get the UUID of the serice data at the index. More... Get the UUID of the service data at the index. More... NimBLEUUID getServiceUUID (uint8_t index=0) Get the Service UUID. More...
-
-size_t getServiceUUIDCount ()
- Get the number of services advertised. More...
+
+uint8_t getServiceUUIDCount ()
+ Get the number of services advertised. More... NimBLEAddress getTargetAddress (uint8_t index=0) Get the target address at the index. More...
-
-size_t getTargetAddressCount ()
- Get the number of target addresses. More...
+
+uint8_t getTargetAddressCount ()
+ Get the number of target addresses. More... int8_t getTXPower () Get the TX Power. More...
@@ -187,7 +187,7 @@ Public Member Functions
Get the timeStamp of when the device last advertised. More...
-bool isAdvertisingService (const NimBLEUUID &uuid)
+ Check advertised services for existance of the required UUID. More... Check advertised services for existence of the required UUID. More... bool haveAppearance ()
@@ -225,6 +225,24 @@ Public Member Functions
Does this advertisement have an appearance value? More... std::string toString () Create a string representation of this device. More...
+
+bool isConnectable ()
+ Check if this device is advertising as connectable. More...
+
+bool isLegacyAdvertisement ()
+ Check if this advertisement is a legacy or extended type. More...
+
+uint8_t getSetId ()
+ Get the set ID of the extended advertisement. More...
+
+uint8_t getPrimaryPhy ()
+ Get the primary PHY used by this advertisement. More...
+
+uint8_t getSecondaryPhy ()
+ Get the primary PHY used by this advertisement. More...
+
+uint16_t getPeriodicInterval ()
+ Get the periodic interval of the advertisement. More... Detailed Description
+
@@ -359,7 +377,7 @@ Public Member Functions
+
+
+
+◆ getPeriodicInterval()
+
+
+
+
+
+ uint16_t NimBLEAdvertisedDevice::getPeriodicInterval
+ (
+ )
+
+
+
+◆ getPrimaryPhy()
+
+
+
+
+
+ uint8_t NimBLEAdvertisedDevice::getPrimaryPhy
+ (
+ )
+
+
+
+
+
+
+
+
+◆ getSecondaryPhy()
+
+
+
+
+
+ uint8_t NimBLEAdvertisedDevice::getSecondaryPhy
+ (
+ )
+
+
+
+
+◆ getServiceDataCount()
+
+◆ getServiceDataCount()
- size_t NimBLEAdvertisedDevice::getServiceDataCount
+ uint8_t NimBLEAdvertisedDevice::getServiceDataCount
(
)
@@ -768,7 +855,7 @@ template<typename T >
@@ -806,14 +893,14 @@ template<typename T >
-
-[in] index The index of the service data UUID requested. ◆ getServiceUUIDCount()
+
+◆ getServiceUUIDCount()
- size_t NimBLEAdvertisedDevice::getServiceUUIDCount
+ uint8_t NimBLEAdvertisedDevice::getServiceUUIDCount
(
)
@@ -824,6 +911,26 @@ template<typename T >
+
+
+
+◆ getSetId()
+
+
+
+
+
+ uint8_t NimBLEAdvertisedDevice::getSetId
+ (
+ )
+
+
+
◆ getTargetAddressCount()
+
+◆ getTargetAddressCount()
- size_t NimBLEAdvertisedDevice::getTargetAddressCount
+ uint8_t NimBLEAdvertisedDevice::getTargetAddressCount
(
)
@@ -1169,7 +1276,7 @@ template<typename T >
@@ -1178,6 +1285,46 @@ template<typename T >
[in] uuid The service uuid to look for in the advertisement.
+
+
+
+◆ isConnectable()
+
+
+
+
+
+ bool NimBLEAdvertisedDevice::isConnectable
+ (
+ )
+
+
+
+◆ isLegacyAdvertisement()
+
+
+
+
+
+ bool NimBLEAdvertisedDevice::isLegacyAdvertisement
+ (
+ )
+
+
+
diff --git a/class_nim_b_l_e_advertised_device_callbacks.html b/class_nim_b_l_e_advertised_device_callbacks.html
index b1c7b2e..193a3dc 100644
--- a/class_nim_b_l_e_advertised_device_callbacks.html
+++ b/class_nim_b_l_e_advertised_device_callbacks.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_advertisement_data-members.html b/class_nim_b_l_e_advertisement_data-members.html
index aab8be9..883babf 100644
--- a/class_nim_b_l_e_advertisement_data-members.html
+++ b/class_nim_b_l_e_advertisement_data-members.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_advertisement_data.html b/class_nim_b_l_e_advertisement_data.html
index 94e778b..951424e 100644
--- a/class_nim_b_l_e_advertisement_data.html
+++ b/class_nim_b_l_e_advertisement_data.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_advertising-members.html b/class_nim_b_l_e_advertising-members.html
index 8c85992..0674c3a 100644
--- a/class_nim_b_l_e_advertising-members.html
+++ b/class_nim_b_l_e_advertising-members.html
@@ -26,7 +26,7 @@
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_advertising.html','');
setServiceData(const NimBLEUUID &uuid, const std::string &data) NimBLEAdvertising setURI(const std::string &uri) NimBLEAdvertising
- start(uint32_t duration=0, void(*advCompleteCB)(NimBLEAdvertising *pAdv)=nullptr) NimBLEAdvertising
+ stop() NimBLEAdvertising stop() NimBLEAdvertising
@@ -111,10 +111,9 @@ Public Member Functions
bool start (uint32_t duration=0, void(*advCompleteCB)(NimBLEAdvertising *pAdv)=nullptr) Start advertising. More...
-
-
-void stop ()
- Stop advertising.
+
+bool stop ()
+ Stop advertising. More... void setAppearance (uint16_t appearance)
@@ -714,6 +713,26 @@ When using custom scan response data you must also use custom advertisement data
Set the device appearance in the advertising data. The codes for distinct appearances can be found here:
https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml. More...
+
+
+
+◆ stop()
+
+
+
+
+
+ bool NimBLEAdvertising::stop
+ (
+ )
+
+
+
+
+
+
+
+
+
+
+
+
+ append(const uint8_t *value, uint16_t len) NimBLEAttValue inline
+ begin() const NimBLEAttValue inline
+ c_str() const NimBLEAttValue inline
+ capacity() const NimBLEAttValue inline
+ data() const NimBLEAttValue inline
+ end() const NimBLEAttValue inline
+ getValue(time_t *timestamp) NimBLEAttValue inline
+ getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLEAttValue inline
+ length() const NimBLEAttValue inline
+ max_size() const NimBLEAttValue inline
+ NimBLEAttValue(uint16_t init_len=CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(const uint8_t *value, uint16_t len, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(std::initializer_list< uint8_t > list, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(const char *value, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(const std::string str, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(const std::vector< uint8_t > vec, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLEAttValue inline
+ NimBLEAttValue(const NimBLEAttValue &source) NimBLEAttValue inline
+ NimBLEAttValue(NimBLEAttValue &&source) NimBLEAttValue inline
+ operator const uint8_t *() const NimBLEAttValue inline
+ operator std::string() const NimBLEAttValue inline
+ operator std::vector< uint8_t >() const NimBLEAttValue inline
+ operator!=(const NimBLEAttValue &source) NimBLEAttValue inline
+ operator+=(const NimBLEAttValue &source) NimBLEAttValue inline
+ operator=(const std::string &source) NimBLEAttValue inline
+ operator=(NimBLEAttValue &&source) NimBLEAttValue inline
+ operator=(const NimBLEAttValue &source) NimBLEAttValue inline
+ operator==(const NimBLEAttValue &source) NimBLEAttValue inline
+ operator[](int pos) const NimBLEAttValue inline
+ setValue(const uint8_t *value, uint16_t len) NimBLEAttValue inline
+ setValue(const char *s) NimBLEAttValue inline
+ setValue(const T &s) NimBLEAttValue inline
+ setValue(const T &s) NimBLEAttValue inline
+ size() const NimBLEAttValue inline
+~NimBLEAttValue() NimBLEAttValue inline
+
+
+
+
+
+
+
+
+
+
+
+Public Member Functions
+ NimBLEAttValue (uint16_t init_len=CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Default constructor. More...
+
+ NimBLEAttValue (const uint8_t *value, uint16_t len, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Construct with an initial value from a buffer. More...
+
+ NimBLEAttValue (std::initializer_list< uint8_t > list, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Construct with an initializer list. More...
+
+ NimBLEAttValue (const char *value, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Construct with an initial value from a const char string. More...
+
+ NimBLEAttValue (const std::string str, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Construct with an initial value from a std::string. More...
+
+ 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>. More...
+
+
+ NimBLEAttValue (const NimBLEAttValue &source)
+ Copy constructor.
+
+
+ NimBLEAttValue (NimBLEAttValue &&source)
+ Move constructor.
+
+
+ ~NimBLEAttValue ()
+ Destructor.
+
+
+uint16_t max_size () const
+ Returns the max size in bytes.
+
+
+uint16_t capacity () const
+ Returns the currently allocated capacity in bytes.
+
+
+uint16_t length () const
+ Returns the current length of the value in bytes.
+
+
+uint16_t size () const
+ Returns the current size of the value in bytes.
+
+
+const uint8_t * data () const
+ Returns a pointer to the internal buffer of the value.
+
+
+const char * c_str () const
+ Returns a pointer to the internal buffer of the value as a const char*.
+
+
+const uint8_t * begin () const
+ Iterator begin.
+
+
+const uint8_t * end () const
+ Iterator end.
+
+bool setValue (const uint8_t *value, uint16_t len)
+ Set the value from a buffer. More...
+
+bool setValue (const char *s)
+ Set value to the value of const char*. More...
+
+const uint8_t * getValue (time_t *timestamp)
+ Get a pointer to the value buffer with timestamp. More...
+
+NimBLEAttValue & append (const uint8_t *value, uint16_t len)
+ Append data to the value. More...
+
+template<typename T >
+bool setValue (const T &s)
+ Template to set value to the value of <type>val. More...
+
+template<typename T >
+bool setValue (const T &s)
+ Template to set value to the value of <type>val. More...
+
+template<typename T >
+T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to return the value as a <type>. More...
+
+
+uint8_t operator[] (int pos) const
+ Subscript operator.
+
+
+ operator std::vector< uint8_t > () const
+ Operator; Get the value as a std::vector<uint8_t>.
+
+
+ operator std::string () const
+ Operator; Get the value as a std::string.
+
+
+ operator const uint8_t * () const
+ Operator; Get the value as a const uint8_t*.
+
+
+NimBLEAttValue & operator+= (const NimBLEAttValue &source)
+ Operator; Append another NimBLEAttValue.
+
+
+NimBLEAttValue & operator= (const std::string &source)
+ Operator; Set the value from a std::string source.
+
+
+NimBLEAttValue & operator= (NimBLEAttValue &&source)
+ Move assignment operator.
+
+
+NimBLEAttValue & operator= (const NimBLEAttValue &source)
+ Copy assignment operator.
+
+
+bool operator== (const NimBLEAttValue &source)
+ Equality operator.
+
+
+bool operator!= (const NimBLEAttValue &source)
+ Inequality operator.
+ Detailed Description
+
+standard container types for value storage, while being convertible to
+many different container classes. Constructor & Destructor Documentation
+
+◆ NimBLEAttValue() [1/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ uint16_t
+ init_len =
+ CONFIG_NIMBLE_CPP_ATT_VALUE_INIT_LENGTH
,
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ [in] init_len The initial size in bytes.
+ [in] max_len The max size in bytes that the value can be. ◆ NimBLEAttValue() [2/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ const uint8_t *
+ value,
+
+
+
+
+ uint16_t
+ len,
+
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ value A pointer to the initial value to set.
+ [in] len The size in bytes of the value to set.
+ [in] max_len The max size in bytes that the value can be. ◆ NimBLEAttValue() [3/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ std::initializer_list< uint8_t >
+ list,
+
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ list An initializer list containing the initial value to set.
+ [in] max_len The max size in bytes that the value can be. ◆ NimBLEAttValue() [4/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ const char *
+ value,
+
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ value A pointer to the initial value to set.
+ [in] max_len The max size in bytes that the value can be. ◆ NimBLEAttValue() [5/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ const std::string
+ str,
+
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ str A std::string containing to the initial value to set.
+ [in] max_len The max size in bytes that the value can be. ◆ NimBLEAttValue() [6/6]
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue::NimBLEAttValue
+ (
+ const std::vector< uint8_t >
+ vec,
+
+
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
+
+
+ )
+
+
+inline
+
+
+
+
+
+ vec A std::vector<uint8_t> containing to the initial value to set.
+ [in] max_len The max size in bytes that the value can be. Member Function Documentation
+
+◆ append()
+
+
+
+
+
+
+
+
+
+
+
+ NimBLEAttValue & NimBLEAttValue::append
+ (
+ const uint8_t *
+ value,
+
+
+
+
+ uint16_t
+ len
+
+
+
+ )
+
+
+inline
+
+
+
+
+ [in] value A ponter to a data buffer with the value to append.
+ [in] len The length of the value to append in bytes.
+
+◆ getValue() [1/2]
+
+
+
+
+
+
+
+
+
+
+
+ const uint8_t * NimBLEAttValue::getValue
+ (
+ time_t *
+ timestamp )
+
+
+inline
+
+
+
+
+ [in] timestamp A ponter to a time_t variable to store the timestamp.
+
+◆ getValue() [2/2]
+
+
+
+
+
+
+
+
+
+
+
+ T NimBLEAttValue::getValue
+ (
+ time_t *
+ timestamp =
+ nullptr
,
+
+
+
+ bool
+ skipSizeCheck =
+ false
+
+
+ )
+
+
+inline
+
+
+
+
+ T The type to convert the data to.
+
+
+
+ [in] timestamp A pointer to a time_t struct to store the time the value was read.
+ [in] skipSizeCheck If true it will skip checking if the data size is less than
+sizeof(<type>)
.
+
+less than sizeof(<type>)
.getValue<type>(×tamp, skipSizeCheck);
◆ setValue() [1/4]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEAttValue::setValue
+ (
+ const char *
+ s )
+
+
+inline
+
+
+
+
+
+ [in] s A ponter to a const char value to set. ◆ setValue() [2/4]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEAttValue::setValue
+ (
+ const T &
+ s )
+
+
+inline
+
+
+
+
+ [in] s The <type>value to set. c_str()
method. ◆ setValue() [3/4]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEAttValue::setValue
+ (
+ const T &
+ s )
+
+
+inline
+
+
+
+
+ [in] s The <type>value to set. c_str()
method. ◆ setValue() [4/4]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEAttValue::setValue
+ (
+ const uint8_t *
+ value,
+
+
+
+
+ uint16_t
+ len
+
+
+
+ )
+
+
+inline
+
+
+
+
+ [in] value A ponter to a buffer containing the value.
+ [in] len The length of the value in bytes.
+
+
diff --git a/class_nim_b_l_e_beacon.html b/class_nim_b_l_e_beacon.html
index d2a3335..e8a349c 100644
--- a/class_nim_b_l_e_beacon.html
+++ b/class_nim_b_l_e_beacon.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_characteristic-members.html b/class_nim_b_l_e_characteristic-members.html
index a1f62d9..4d85ad2 100644
--- a/class_nim_b_l_e_characteristic-members.html
+++ b/class_nim_b_l_e_characteristic-members.html
@@ -26,7 +26,7 @@
@@ -90,8 +90,8 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_characteristic.html','
diff --git a/class_nim_b_l_e_characteristic.html b/class_nim_b_l_e_characteristic.html
index 11ddbfa..84c4864 100644
--- a/class_nim_b_l_e_characteristic.html
+++ b/class_nim_b_l_e_characteristic.html
@@ -26,7 +26,7 @@
- addDescriptor(NimBLEDescriptor *pDescriptor) NimBLECharacteristic
- createDescriptor(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100) NimBLECharacteristic
+ createDescriptor(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100) NimBLECharacteristic
+ createDescriptor(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLECharacteristic createDescriptor(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) NimBLECharacteristic getCallbacks() NimBLECharacteristic getDataLength() NimBLECharacteristic
@@ -102,20 +102,25 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_characteristic.html','
getDescriptorByHandle(uint16_t handle) NimBLECharacteristic getService() NimBLECharacteristic getSubscribedCount() NimBLECharacteristic
- getUUID() NimBLECharacteristic
+ getValue(time_t *timestamp=nullptr) NimBLECharacteristic getValue(time_t *timestamp=nullptr) NimBLECharacteristic getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLECharacteristic inline
- indicate() NimBLECharacteristic
- NimBLECharacteristic(const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr) NimBLECharacteristic
- NimBLECharacteristic(const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr) NimBLECharacteristic
- notify(bool is_notification=true) NimBLECharacteristic
- notify(std::string value, bool is_notification=true) NimBLECharacteristic
- removeDescriptor(NimBLEDescriptor *pDescriptor, bool deleteDsc=false) NimBLECharacteristic
- setCallbacks(NimBLECharacteristicCallbacks *pCallbacks) NimBLECharacteristic
- setValue(const uint8_t *data, size_t size) NimBLECharacteristic
- setValue(const std::string &value) NimBLECharacteristic
- setValue(const T &s) NimBLECharacteristic inline
- toString() NimBLECharacteristic
+ ~NimBLECharacteristic() NimBLECharacteristic
+ indicate(const uint8_t *value, size_t length) NimBLECharacteristic
+ indicate(const std::vector< uint8_t > &value) NimBLECharacteristic
+ indicate(const T &value) NimBLECharacteristic inline
+ NimBLECharacteristic(const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN, NimBLEService *pService=nullptr) NimBLECharacteristic
+ NimBLECharacteristic(const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN, NimBLEService *pService=nullptr) NimBLECharacteristic
+ notify(bool is_notification=true) NimBLECharacteristic
+ notify(const uint8_t *value, size_t length, bool is_notification=true) NimBLECharacteristic
+ notify(const std::vector< uint8_t > &value, bool is_notification=true) NimBLECharacteristic
+ notify(const T &value, bool is_notification=true) NimBLECharacteristic inline
+ removeDescriptor(NimBLEDescriptor *pDescriptor, bool deleteDsc=false) NimBLECharacteristic
+ setCallbacks(NimBLECharacteristicCallbacks *pCallbacks) NimBLECharacteristic
+ setValue(const uint8_t *data, size_t size) NimBLECharacteristic
+ setValue(const std::vector< uint8_t > &vec) NimBLECharacteristic
+ setValue(const T &s) NimBLECharacteristic inline
+ toString() NimBLECharacteristic ~NimBLECharacteristic() NimBLECharacteristic
@@ -95,12 +95,12 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_characteristic.html','
-
Public Member Functions
- NimBLECharacteristic (const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)
- Construct a characteristic. More...
-
- NimBLECharacteristic (const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)
- Construct a characteristic. More...
+
+ NimBLECharacteristic (const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN, NimBLEService *pService=nullptr)
+ Construct a characteristic. More...
+
+ NimBLECharacteristic (const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN, NimBLEService *pService=nullptr)
+ Construct a characteristic. More...
~NimBLECharacteristic ()
@@ -114,38 +114,28 @@ Public Member Functions
Destructor. std::string toString () Return a string representation of the characteristic. More...
-
-void setCallbacks (NimBLECharacteristicCallbacks *pCallbacks)
- Set the callback handlers for this characteristic. More...
-
-
-NimBLECharacteristicCallbacks * getCallbacks ()
- Get the callback handlers for this characteristic.
-
void indicate ()
+ Send an indication.
-An indication is a transmission of up to the first 20 bytes of the characteristic value.
-An indication will block waiting for a positive confirmation from the client. Send an indication.
+
+void indicate (const uint8_t *value, size_t length)
+ Send an indication. More...
+
+void indicate (const std::vector< uint8_t > &value)
+ Send an indication. More...
-void notify (bool is_notification=true)
+ Send a notification.
-A notification is a transmission of up to the first 20 bytes of the characteristic value.
-A notification will not block; it is a fire and forget. More... Send a notification or indication. More...
-
-void notify (std::string value, bool is_notification=true)
- Send a notification.
-A notification is a transmission of up to the first 20 bytes of the characteristic value.
-A notification will not block; it is a fire and forget. More...
+
+void notify (const uint8_t *value, size_t length, bool is_notification=true)
+ Send a notification or indication. More...
+
+void notify (const std::vector< uint8_t > &value, bool is_notification=true)
+ Send a notification or indication. More... size_t getSubscribedCount () Get the number of clients subscribed to the characteristic. More...
-
-NimBLEDescriptor * createDescriptor (const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)
- Create a new BLE Descriptor associated with this characteristic. More...
-
-NimBLEDescriptor * createDescriptor (const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)
- Create a new BLE Descriptor associated with this characteristic. More... void addDescriptor (NimBLEDescriptor *pDescriptor) Add a descriptor to the characteristic. More...
@@ -159,29 +149,8 @@ A notification will not block; it is a fire and forget. Return the BLE Descriptor for the given handle. More...
-void removeDescriptor (NimBLEDescriptor *pDescriptor, bool deleteDsc=false)
+ Remove a descriptor from the characterisitc. More... Remove a descriptor from the characteristic. More...
-
-std::string getValue (time_t *timestamp=nullptr)
- Retrieve the current value of the characteristic. More...
-
-size_t getDataLength ()
- Retrieve the the current data length of the characteristic. More...
-
-template<typename T >
-T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
- A template to convert the characteristic data to <type>. More...
-
-void setValue (const uint8_t *data, size_t size)
- Set the value of the characteristic. More...
-
-void setValue (const std::string &value)
- Set the value of the characteristic from string data.
-We set the value of the characteristic from the bytes contained in the string. More...
-
-template<typename T >
-void setValue (const T &s)
- Convenience template to set the characteristic value to <type>val. More...
NimBLEService * getService ()
@@ -189,13 +158,55 @@ We set the value of the characteristic from the bytes contained in the string.
Get the service associated with this characteristic. uint16_t getProperties () Get the properties of the characteristic. More...
+
+NimBLEAttValue getValue (time_t *timestamp=nullptr)
+ Retrieve the current value of the characteristic. More...
+
+size_t getDataLength ()
+ Retrieve the the current data length of the characteristic. More...
+
+void setValue (const uint8_t *data, size_t size)
+ Set the value of the characteristic from a data buffer . More...
+
+void setValue (const std::vector< uint8_t > &vec)
+ Set the value of the characteristic from a std::vector<uint8_t>
.
+. More...
+
+void setCallbacks (NimBLECharacteristicCallbacks *pCallbacks)
+ Set the callback handlers for this characteristic. More...
+
+NimBLEDescriptor * createDescriptor (const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Create a new BLE Descriptor associated with this characteristic. More...
+
+NimBLEDescriptor * createDescriptor (const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN)
+ Create a new BLE Descriptor associated with this characteristic. More...
+
+
+NimBLECharacteristicCallbacks * getCallbacks ()
+ Get the callback handlers for this characteristic.
+
+template<typename T >
+void setValue (const T &s)
+ Template to set the characteristic value to <type>val. More...
+
+template<typename T >
+T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to convert the characteristic data to <type>. More...
+
+template<typename T >
+void notify (const T &value, bool is_notification=true)
+ Template to send a notification from a class type that has a c_str() and length() method. More...
+
+template<typename T >
+void indicate (const T &value)
+ Template to send an indication from a class type that has a c_str() and length() method. More... Detailed Description
Constructor & Destructor Documentation
-
-◆ NimBLECharacteristic() [1/2]
+
+◆ NimBLECharacteristic() [1/2]
uint16_t
properties =
+ NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
,
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
,
+
@@ -231,6 +248,7 @@ We set the value of the characteristic from the bytes contained in the string.
@@ -238,8 +256,8 @@ We set the value of the characteristic from the bytes contained in the string.
-
-[in] uuid - UUID (const char*) for the characteristic.
+ [in] properties - Properties for the characteristic. [in] max_len - The maximum length in bytes that the characteristic value can hold. (Default: 512 bytes for esp32, 20 for all others). [in] pService - pointer to the service instance this characteristic belongs to. ◆ NimBLECharacteristic() [2/2]
+
+◆ NimBLECharacteristic() [2/2]
uint16_t
properties =
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
,
+
+
+ uint16_t
+ max_len =
+ BLE_ATT_ATTR_MAX_LEN
,
@@ -275,6 +299,7 @@ We set the value of the characteristic from the bytes contained in the string.
@@ -309,8 +334,8 @@ We set the value of the characteristic from the bytes contained in the string.
-
-[in] uuid - UUID for the characteristic.
+ [in] properties - Properties for the characteristic. [in] max_len - The maximum length in bytes that the characteristic value can hold. (Default: 512 bytes for esp32, 20 for all others). [in] pService - pointer to the service instance this characteristic belongs to. ◆ createDescriptor() [1/2]
+
+◆ createDescriptor() [1/2]
uint16_t
- max_len =
+ 100
max_len =
BLE_ATT_ATTR_MAX_LEN
@@ -354,8 +379,8 @@ We set the value of the characteristic from the bytes contained in the string.
-
- ◆ createDescriptor() [2/2]
+
+◆ createDescriptor() [2/2]
uint16_t
- max_len =
+ 100
max_len =
BLE_ATT_ATTR_MAX_LEN
@@ -580,14 +605,14 @@ We set the value of the characteristic from the bytes contained in the string.
-
- ◆ getValue() [1/2]
+
+◆ getValue() [1/2]
- std::string NimBLECharacteristic::getValue
+ NimBLEAttValue NimBLECharacteristic::getValue
(
time_t *
timestamp = nullptr
)
@@ -597,7 +622,7 @@ We set the value of the characteristic from the bytes contained in the string.
+
@@ -646,18 +671,124 @@ template<typename T >
T The type to convert the data to.
-
- [in] timestamp A pointer to a time_t struct to store the time the value was read.
+ [in] skipSizeCheck If true it will skip checking if the data size is less than sizeof(<type>)
.
+ [in] timestamp (Optional) A pointer to a time_t struct to store the time the value was read. [in] skipSizeCheck (Optional) If true it will skip checking if the data size is less than sizeof(<type>)
. sizeof(<type>)
.getValue<type>(×tamp, skipSizeCheck);
◆ indicate() [1/3]
+
+
+
+
+
+ void NimBLECharacteristic::indicate
+ (
+ const std::vector< uint8_t > &
+ value )
+
+
+
+
+
+
+ [in] value A std::vector<uint8_t> containing the value to send as the notification value. ◆ indicate() [2/3]
+
+
+
+
+
+
+
+
+
+
+
+ void NimBLECharacteristic::indicate
+ (
+ const T &
+ value )
+
+
+inline
+
+
+
+
+ T The a reference to a class containing the data to send.
+
+
+
+ [in] value The <type>value to set. c_str()
method. ◆ indicate() [3/3]
+
+
+
+
+
+ void NimBLECharacteristic::indicate
+ (
+ const uint8_t *
+ value,
+
+
+
+
+ size_t
+ length
+
+
+
+ )
+
+
+
+
+
+ [in] value A pointer to the data to send.
+ [in] length The length of the data to send. ◆ notify() [1/2]
+◆ notify() [1/4]
-A notification is a transmission of up to the first 20 bytes of the characteristic value.
-A notification will not block; it is a fire and forget.
@@ -684,8 +813,8 @@ A notification will not block; it is a fire and forget.
-
-[in] is_notification if true sends a notification, false sends an indication. ◆ notify() [2/2]
+
+◆ notify() [2/4]
void NimBLECharacteristic::notify
(
- std::string
+ const std::vector< uint8_t > &
value,
@@ -710,12 +839,108 @@ A notification will not block; it is a fire and forget.
-A notification is a transmission of up to the first 20 bytes of the characteristic value.
-A notification will not block; it is a fire and forget.
+
+
-
+
+ [in] value An optional value to send as the notification, else the current characteristic value is used.
+ [in] value A std::vector<uint8_t> containing the value to send as the notification value.
+ [in] is_notification if true sends a notification, false sends an indication. ◆ notify() [3/4]
+
+
+
+
+
+
+
+
+
+
+
+ void NimBLECharacteristic::notify
+ (
+ const T &
+ value,
+
+
+
+
+ bool
+ is_notification =
+ true
+
+
+ )
+
+
+inline
+
+
+
+
+ T The a reference to a class containing the data to send.
+
+
+
+ [in] value The <type>value to set.
+ [in] is_notification if true sends a notification, false sends an indication. c_str()
method. ◆ notify() [4/4]
+
+
+
+
+
+ void NimBLECharacteristic::notify
+ (
+ const uint8_t *
+ value,
+
+
+
+
+ size_t
+ length,
+
+
+
+
+ bool
+ is_notification =
+ true
+
+
+ )
+
+
+
+ [in] value A pointer to the data to send. [in] length The length of the data to send. [in] is_notification if true sends a notification, false sends an indication.
-
+ [in] pDescriptor A pointer to the descriptor instance to remove from the characterisitc. [in] pDescriptor A pointer to the descriptor instance to remove from the characteristic. [in] deleteDsc If true it will delete the descriptor instance and free it's resources. ◆ setValue() [1/3]
+
+◆ setValue() [1/3]
void NimBLECharacteristic::setValue
(
- const std::string &
- value )
+ const std::vector< uint8_t > &
+ vec )
-We set the value of the characteristic from the bytes contained in the string. std::vector<uint8_t>
.
+.
@@ -840,7 +1065,7 @@ template<typename T >
-
+ [in] value the std::string value of the characteristic. [in] vec The std::vector<uint8_t> reference to set the characteristic value from.
@@ -876,11 +1101,11 @@ template<typename T >
[in] s The value to set.
diff --git a/class_nim_b_l_e_characteristic.js b/class_nim_b_l_e_characteristic.js
index f218e28..37a5ca4 100644
--- a/class_nim_b_l_e_characteristic.js
+++ b/class_nim_b_l_e_characteristic.js
@@ -1,11 +1,11 @@
var class_nim_b_l_e_characteristic =
[
- [ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html#a942b2d29d77fcef233549d0c4fd798da", null ],
- [ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html#acdbd57f7e97646403e520edc35c34c8b", null ],
+ [ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html#aa32224e69115e9ba60ac614e8f37a871", null ],
+ [ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html#ae2053d941cf8574acbdceb8b549b8264", null ],
[ "~NimBLECharacteristic", "class_nim_b_l_e_characteristic.html#a7fe29c5ec571d0513c51b8cbac942f4a", null ],
[ "addDescriptor", "class_nim_b_l_e_characteristic.html#aed4b2241c89ad2a8f49117e2b9433e5b", null ],
- [ "createDescriptor", "class_nim_b_l_e_characteristic.html#aae014669e9ce1ad01520d68fe0cc0fda", null ],
- [ "createDescriptor", "class_nim_b_l_e_characteristic.html#a6523266a751a778a2c04fea19fed4de5", null ],
+ [ "createDescriptor", "class_nim_b_l_e_characteristic.html#a1fc55adb9d62d8b5fe1be2b172686353", null ],
+ [ "createDescriptor", "class_nim_b_l_e_characteristic.html#a67a1fb8bddfbd47007ccb8b6f5e5611a", null ],
[ "getCallbacks", "class_nim_b_l_e_characteristic.html#a1747ac4889c7adbb93a2d88a10327a47", null ],
[ "getDataLength", "class_nim_b_l_e_characteristic.html#a580ad0133fd82a673027c91cbb1c74fa", null ],
[ "getDescriptorByHandle", "class_nim_b_l_e_characteristic.html#a062f52918f13c49a37ce8e58b9e7382a", null ],
@@ -16,14 +16,19 @@ var class_nim_b_l_e_characteristic =
[ "getService", "class_nim_b_l_e_characteristic.html#a84aa251a612810ec8d07e77ab03cb483", null ],
[ "getSubscribedCount", "class_nim_b_l_e_characteristic.html#aced225d46153b6969f6ded30c0190e39", null ],
[ "getUUID", "class_nim_b_l_e_characteristic.html#a28b03617fe753133582ba4e58c60e52e", null ],
- [ "getValue", "class_nim_b_l_e_characteristic.html#a37e908d114f6ad2b4bf19c7cc4db9c54", null ],
+ [ "getValue", "class_nim_b_l_e_characteristic.html#a78484a01350300176033a09180f7207f", null ],
[ "getValue", "class_nim_b_l_e_characteristic.html#a7d09c29b26362f6ddcaf51a9c9dc8be4", null ],
[ "indicate", "class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434", null ],
+ [ "indicate", "class_nim_b_l_e_characteristic.html#a2e827aba484add48e52c8eebf80b4a78", null ],
+ [ "indicate", "class_nim_b_l_e_characteristic.html#af2940e8c314a1ecee1750d20a60c459d", null ],
+ [ "indicate", "class_nim_b_l_e_characteristic.html#a8c1875611a1beb192e6c24dff35d0655", null ],
[ "notify", "class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813", null ],
- [ "notify", "class_nim_b_l_e_characteristic.html#ad44ce481c0341abe32b1e0f823c520d4", null ],
+ [ "notify", "class_nim_b_l_e_characteristic.html#a15a9f056e5a3e85d5cb0bdc7adbdd970", null ],
+ [ "notify", "class_nim_b_l_e_characteristic.html#aed1432c11fadec203104b13aaaf7060d", null ],
+ [ "notify", "class_nim_b_l_e_characteristic.html#a9ce09408a307a6b62a91418ea7723ebf", null ],
[ "removeDescriptor", "class_nim_b_l_e_characteristic.html#a2c0ed8932ee257a8632e3d72e353489b", null ],
[ "setCallbacks", "class_nim_b_l_e_characteristic.html#a29dc2505e1d3b4a7d6800d1547965d17", null ],
- [ "setValue", "class_nim_b_l_e_characteristic.html#a3e77647e4c9bd02c96b761639c4d206f", null ],
+ [ "setValue", "class_nim_b_l_e_characteristic.html#a9daeb13599265cb0f8ea94b7ac4ef053", null ],
[ "setValue", "class_nim_b_l_e_characteristic.html#aba05898f446e31222fbe509fa357c730", null ],
[ "setValue", "class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677", null ],
[ "toString", "class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89", null ]
diff --git a/class_nim_b_l_e_characteristic_callbacks-members.html b/class_nim_b_l_e_characteristic_callbacks-members.html
index 3184c53..6a6caa9 100644
--- a/class_nim_b_l_e_characteristic_callbacks-members.html
+++ b/class_nim_b_l_e_characteristic_callbacks-members.html
@@ -26,7 +26,7 @@
-
- [in] data The data to set for the characteristic.
+ [in] length The length of the data in bytes.
+ [in] data The data buffer to set for the characteristic. [in] length The number of bytes in the data buffer.
diff --git a/class_nim_b_l_e_characteristic_callbacks.html b/class_nim_b_l_e_characteristic_callbacks.html
index 11913e3..be6e502 100644
--- a/class_nim_b_l_e_characteristic_callbacks.html
+++ b/class_nim_b_l_e_characteristic_callbacks.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_characteristic_callbacks.js b/class_nim_b_l_e_characteristic_callbacks.js
index 8aeffc7..f614674 100644
--- a/class_nim_b_l_e_characteristic_callbacks.js
+++ b/class_nim_b_l_e_characteristic_callbacks.js
@@ -1,8 +1,8 @@
var class_nim_b_l_e_characteristic_callbacks =
[
[ "Status", "class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f", [
- [ "Example", "md__migration_guide.html#autotoc_md55", null ],
- [ "Example", "md__migration_guide.html#autotoc_md56", null ]
+ [ "Example", "md__migration_guide.html#autotoc_md61", null ],
+ [ "Example", "md__migration_guide.html#autotoc_md62", null ]
] ],
[ "onNotify", "class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9", null ],
[ "onRead", "class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93", null ],
diff --git a/class_nim_b_l_e_client-members.html b/class_nim_b_l_e_client-members.html
index 899b9fc..f8259ca 100644
--- a/class_nim_b_l_e_client-members.html
+++ b/class_nim_b_l_e_client-members.html
@@ -26,7 +26,7 @@
@@ -90,13 +90,13 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_client.html',''); init
- begin() NimBLEClient
- connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true) NimBLEClient
- connect(const NimBLEAddress &address, bool deleteAttibutes=true) NimBLEClient
+ connect(bool deleteAttibutes=true) NimBLEClient
+ connect(NimBLEAdvertisedDevice *device, bool deleteAttributes=true) NimBLEClient
+ connect(const NimBLEAddress &address, bool deleteAttributes=true) NimBLEClient connect(bool deleteAttributes=true) NimBLEClient deleteService(const NimBLEUUID &uuid) NimBLEClient deleteServices() NimBLEClient
- disconnect(uint8_t reason=BLE_ERR_REM_USER_CONN_TERM) NimBLEClient
+ discoverAttributes() NimBLEClient discoverAttributes() NimBLEClient end() NimBLEClient getCharacteristic(const uint16_t handle) NimBLEClient
@@ -108,17 +108,18 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_client.html',''); init
getConnId() NimBLEClient getService(const char *uuid) NimBLEClient getService(const NimBLEUUID &uuid) NimBLEClient
- getServices(bool refresh=false) NimBLEClient
+ getValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID) NimBLEClient getValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID) NimBLEClient isConnected() NimBLEClient secureConnection() NimBLEClient setClientCallbacks(NimBLEClientCallbacks *pClientCallbacks, bool deleteCallbacks=true) NimBLEClient
- setConnectionParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout, uint16_t scanInterval=16, uint16_t scanWindow=16) NimBLEClient
- setConnectTimeout(uint8_t timeout) NimBLEClient
- setDataLen(uint16_t tx_octets) NimBLEClient
- setPeerAddress(const NimBLEAddress &address) NimBLEClient
- setValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID, const std::string &value, bool response=false) NimBLEClient
- toString() NimBLEClient
+ updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout) NimBLEClient
+ setConnectPhy(uint8_t mask) NimBLEClient
+ setConnectTimeout(uint8_t timeout) NimBLEClient
+ setDataLen(uint16_t tx_octets) NimBLEClient
+ setPeerAddress(const NimBLEAddress &address) NimBLEClient
+ setValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID, const NimBLEAttValue &value, bool response=false) NimBLEClient
+ toString() NimBLEClient updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout) NimBLEClient
@@ -95,15 +95,15 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_client.html',''); init
-
Public Member Functions
-bool connect (NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)
- Connect to an advertising device. More...
-
-bool connect (const NimBLEAddress &address, bool deleteAttibutes=true)
- Connect to the BLE Server. More...
-
-bool connect (bool deleteAttibutes=true)
- Connect to the BLE Server. More...
+
+bool connect (NimBLEAdvertisedDevice *device, bool deleteAttributes=true)
+ Connect to an advertising device. More...
+
+bool connect (const NimBLEAddress &address, bool deleteAttributes=true)
+ Connect to the BLE Server. More...
+
+bool connect (bool deleteAttributes=true)
+ Connect to the BLE Server. More... int disconnect (uint8_t reason=BLE_ERR_REM_USER_CONN_TERM) Disconnect from the peer. More...
@@ -139,12 +139,12 @@ void size_t deleteService (const NimBLEUUID &uuid)
Delete service by UUID. More...
-
-std::string getValue (const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID)
- Get the value of a specific characteristic associated with a specific service. More...
-
-bool setValue (const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID, const std::string &value, bool response=false)
- Set the value of a specific characteristic associated with a specific service. More...
+
+NimBLEAttValue getValue (const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID)
+ Get the value of a specific characteristic associated with a specific service. More...
+
+bool setValue (const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID, const NimBLEAttValue &value, bool response=false)
+ Set the value of a specific characteristic associated with a specific service. More... NimBLERemoteCharacteristic * getCharacteristic (const uint16_t handle) Get the remote characteristic with the specified handle. More...
@@ -171,7 +171,7 @@ Called automatically when a characteristic or descriptor requires encryption or
Set the timeout to wait for connection attempt to complete. More...
-void setConnectionParams (uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout, uint16_t scanInterval=16, uint16_t scanWindow=16)
+ Set the connection paramaters to use when connecting to a server. More... Set the connection parameters to use when connecting to a server. More... void updateConnParams (uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
@@ -179,10 +179,9 @@ Called automatically when a characteristic or descriptor requires encryption or
Update the connection parameters: More... void setDataLen (uint16_t tx_octets) Request an update of the data packet length. More...
-
-
-void discoverAttributes ()
- Retrieves the full database of attributes that the peripheral has available.
+
+bool discoverAttributes ()
+ Retrieves the full database of attributes that the peripheral has available. More...
NimBLEConnInfo getConnInfo ()
@@ -190,6 +189,9 @@ void Get detailed information about the current peer connection. int getLastError ()
Get the last error code reported by the NimBLE host. More...
+
+void setConnectPhy (uint8_t mask)
+ Set the PHY types to use when connecting to a server. More... Detailed Description
- ◆ connect() [1/3]
+
+◆ connect() [1/3]
bool NimBLEClient::connect
(
bool
- deleteAttibutes = true
)
+ deleteAttributes = true
)
@@ -233,7 +235,7 @@ void
-
[in] deleteAttibutes If true this will delete any attribute objects this client may already
+ [in] deleteAttributes If true this will delete any attribute objects this client may already
have created and clears the vectors after successful connection. ◆ connect() [2/3]
+
+◆ connect() [2/3]
bool
- deleteAttibutes =
+ true
deleteAttributes =
true
@@ -272,7 +274,7 @@ have created and clears the vectors after successful connection.
- [in] address The address of the server. [in] deleteAttibutes If true this will delete any attribute objects this client may already
+ [in] deleteAttributes If true this will delete any attribute objects this client may already
have created and clears the vectors after successful connection. ◆ connect() [3/3]
+
+◆ connect() [3/3]
bool
- deleteAttibutes =
+ true
deleteAttributes =
true
@@ -311,7 +313,7 @@ have created and clears the vectors after successful connection.
- [in] device The device to connect to. [in] deleteAttibutes If true this will delete any attribute objects this client may already
+ [in] deleteAttributes If true this will delete any attribute objects this client may already
have created and clears the vectors after successful connection.
+◆ discoverAttributes()
+
+
+
+
+
+ bool NimBLEClient::discoverAttributes
+ (
+ )
+
+
+
◆ getValue()
+
+◆ getValue()
- std::string NimBLEClient::getValue
+ NimBLEAttValue NimBLEClient::getValue
(
const NimBLEUUID &
serviceUUID,
@@ -744,7 +766,7 @@ Called automatically when a characteristic or descriptor requires encryption or
-
@@ -757,6 +779,38 @@ Called automatically when a characteristic or descriptor requires encryption or
+
+
+
+[in] minInterval The minimum connection interval in 1.25ms units. ◆ setConnectPhy()
+
+
+
+
+
+ void NimBLEClient::setConnectPhy
+ (
+ uint8_t
+ mask )
+
+
+
+
+
+ [in] mask A bitmask indicating what PHYS to connect with.
+The available bits are:
+
+◆ setValue()
+
+◆ setValue()
- const std::string &
+ const NimBLEAttValue &
value,
diff --git a/class_nim_b_l_e_client.js b/class_nim_b_l_e_client.js
index b63a8e3..22c41f1 100644
--- a/class_nim_b_l_e_client.js
+++ b/class_nim_b_l_e_client.js
@@ -1,13 +1,13 @@
var class_nim_b_l_e_client =
[
[ "begin", "class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5", null ],
- [ "connect", "class_nim_b_l_e_client.html#a836438fc9d5c2001207249661ad10e01", null ],
- [ "connect", "class_nim_b_l_e_client.html#a9188741bf29d58d5ff1352383c959b7b", null ],
- [ "connect", "class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a", null ],
+ [ "connect", "class_nim_b_l_e_client.html#a1f9d4ad6d3d03b819bfad82d1f39b684", null ],
+ [ "connect", "class_nim_b_l_e_client.html#a026d7e04557b4821a7da2c1a1caa46eb", null ],
+ [ "connect", "class_nim_b_l_e_client.html#ae9b3e8a9b47c7eaad040b485bda958a1", null ],
[ "deleteService", "class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb", null ],
[ "deleteServices", "class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3", null ],
[ "disconnect", "class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c", null ],
- [ "discoverAttributes", "class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d", null ],
+ [ "discoverAttributes", "class_nim_b_l_e_client.html#a1019178a12799ca2c3a84f523b3a7db9", null ],
[ "end", "class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe", null ],
[ "getCharacteristic", "class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009", null ],
[ "getConnId", "class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896", null ],
@@ -19,15 +19,16 @@ var class_nim_b_l_e_client =
[ "getService", "class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366", null ],
[ "getService", "class_nim_b_l_e_client.html#ad8ba10522d79af1136019606802f0978", null ],
[ "getServices", "class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a", null ],
- [ "getValue", "class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3", null ],
+ [ "getValue", "class_nim_b_l_e_client.html#a3903fb7589e2b8b781f8f81f9e0f2a83", null ],
[ "isConnected", "class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c", null ],
[ "secureConnection", "class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4", null ],
[ "setClientCallbacks", "class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c", null ],
[ "setConnectionParams", "class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267", null ],
+ [ "setConnectPhy", "class_nim_b_l_e_client.html#a3ab0a864d8fc7f91ea27f459e2c76b9e", null ],
[ "setConnectTimeout", "class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e", null ],
[ "setDataLen", "class_nim_b_l_e_client.html#a33a0114a126e0e58f7b4359c74f4ed41", null ],
[ "setPeerAddress", "class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07", null ],
- [ "setValue", "class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767", null ],
+ [ "setValue", "class_nim_b_l_e_client.html#a967d0c75083706f336f2283eac6d0de2", null ],
[ "toString", "class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab", null ],
[ "updateConnParams", "class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526", null ]
];
\ No newline at end of file
diff --git a/class_nim_b_l_e_client_callbacks-members.html b/class_nim_b_l_e_client_callbacks-members.html
index 91d8c63..9386deb 100644
--- a/class_nim_b_l_e_client_callbacks-members.html
+++ b/class_nim_b_l_e_client_callbacks-members.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_client_callbacks.html b/class_nim_b_l_e_client_callbacks.html
index 97966f2..39d5f3b 100644
--- a/class_nim_b_l_e_client_callbacks.html
+++ b/class_nim_b_l_e_client_callbacks.html
@@ -26,7 +26,7 @@
@@ -263,7 +263,7 @@ This can be used to check the status of the connection encryption/pairing.
+
diff --git a/class_nim_b_l_e_conn_info.html b/class_nim_b_l_e_conn_info.html
index b537f5f..cab6304 100644
--- a/class_nim_b_l_e_conn_info.html
+++ b/class_nim_b_l_e_conn_info.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_descriptor-members.html b/class_nim_b_l_e_descriptor-members.html
index 2b6ed0c..9dd505d 100644
--- a/class_nim_b_l_e_descriptor-members.html
+++ b/class_nim_b_l_e_descriptor-members.html
@@ -26,7 +26,7 @@
@@ -94,15 +94,16 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_descriptor.html','');
getLength() NimBLEDescriptor getStringValue() NimBLEDescriptor
- getUUID() NimBLEDescriptor
- getValue() NimBLEDescriptor
- NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
- NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
- setCallbacks(NimBLEDescriptorCallbacks *pCallbacks) NimBLEDescriptor
- setValue(const uint8_t *data, size_t size) NimBLEDescriptor
- setValue(const std::string &value) NimBLEDescriptor
- setValue(const T &s) NimBLEDescriptor inline
- toString() NimBLEDescriptor
+ ~NimBLEDescriptor() NimBLEDescriptor
+ getValue(time_t *timestamp=nullptr) NimBLEDescriptor
+ getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLEDescriptor inline
+ NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
+ NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) NimBLEDescriptor
+ setCallbacks(NimBLEDescriptorCallbacks *pCallbacks) NimBLEDescriptor
+ setValue(const uint8_t *data, size_t size) NimBLEDescriptor
+ setValue(const std::vector< uint8_t > &vec) NimBLEDescriptor
+ setValue(const T &s) NimBLEDescriptor inline
+ toString() NimBLEDescriptor
diff --git a/class_nim_b_l_e_descriptor.html b/class_nim_b_l_e_descriptor.html
index 25c29e2..dd31c08 100644
--- a/class_nim_b_l_e_descriptor.html
+++ b/class_nim_b_l_e_descriptor.html
@@ -26,7 +26,7 @@
~NimBLEDescriptor() NimBLEDescriptor
@@ -97,13 +97,11 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_descriptor.html','');
-
Public Member Functions
-
- NimBLEDescriptor (const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
+ NimBLEDescriptor constructor.
+ NimBLEDescriptor (const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) Construct a descriptor. More...
-
-
- NimBLEDescriptor (NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
+ NimBLEDescriptor constructor.
+ NimBLEDescriptor (NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr) Construct a descriptor. More...
@@ -122,32 +120,140 @@ Public Member Functions
~NimBLEDescriptor () void setCallbacks (NimBLEDescriptorCallbacks *pCallbacks) Set the callback handlers for this descriptor. More...
+
+NimBLECharacteristic * getCharacteristic ()
+ Get the characteristic this descriptor belongs to. More... size_t getLength () Get the length of the value of this descriptor. More...
-
-uint8_t * getValue ()
- Get the value of this descriptor. More...
+
+NimBLEAttValue getValue (time_t *timestamp=nullptr)
+ Get the value of this descriptor. More... std::string getStringValue () Get the value of this descriptor as a string. More... void setValue (const uint8_t *data, size_t size) Set the value of the descriptor. More...
-
-void setValue (const std::string &value)
- Set the value of the descriptor. More...
-
-NimBLECharacteristic * getCharacteristic ()
- Get the characteristic this descriptor belongs to. More...
+
+void setValue (const std::vector< uint8_t > &vec)
+ Set the value of the descriptor from a std::vector<uint8_t>
.
+. More... template<typename T >
-void setValue (const T &s)
+ Convenience template to set the descriptor value to <type>val. More... Template to set the characteristic value to <type>val. More...
+
+template<typename T >
+T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to convert the descriptor data to <type>. More... Detailed Description
Member Function Documentation
+Constructor & Destructor Documentation
+
+◆ NimBLEDescriptor() [1/2]
+
+
+
+
+
+ NimBLEDescriptor::NimBLEDescriptor
+ (
+ const char *
+ uuid,
+
+
+
+
+ uint16_t
+ properties,
+
+
+
+
+ uint16_t
+ max_len,
+
+
+
+
+ NimBLECharacteristic *
+ pCharacteristic =
+ nullptr
+
+
+ )
+
+
+
+
+
+
+ [in] uuid - UUID (const char*) for the descriptor.
+ [in] properties - Properties for the descriptor.
+ [in] max_len - The maximum length in bytes that the descriptor value can hold. (Default: 512 bytes for esp32, 20 for all others).
+ [in] pCharacteristic - pointer to the characteristic instance this descriptor belongs to. ◆ NimBLEDescriptor() [2/2]
+
+
+
+
+
+ NimBLEDescriptor::NimBLEDescriptor
+ (
+ NimBLEUUID
+ uuid,
+
+
+
+
+ uint16_t
+ properties,
+
+
+
+
+ uint16_t
+ max_len,
+
+
+
+
+ NimBLECharacteristic *
+ pCharacteristic =
+ nullptr
+
+
+ )
+
+
+
+
+
+
+ [in] uuid - UUID (const char*) for the descriptor.
+ [in] properties - Properties for the descriptor.
+ [in] max_len - The maximum length in bytes that the descriptor value can hold. (Default: 512 bytes for esp32, 20 for all others).
+ [in] pCharacteristic - pointer to the characteristic instance this descriptor belongs to. Member Function Documentation
◆ getCharacteristic()
@@ -228,23 +334,79 @@ Public Member Functions
-
-◆ getValue()
+
+◆ getValue() [1/2]
-
uint8_t * NimBLEDescriptor::getValue
+ NimBLEAttValue NimBLEDescriptor::getValue
(
- )
+ time_t *
+ timestamp = nullptr
)
+
+
+◆ getValue() [2/2]
+
+
+
+
+
+
+
+
+
+
+
+ T NimBLEDescriptor::getValue
+ (
+ time_t *
+ timestamp =
+ nullptr
,
+
+
+
+ bool
+ skipSizeCheck =
+ false
+
+
+ )
+
+
+inline
+
+
+
+
+ T The type to convert the data to.
+
+
+
+ [in] timestamp (Optional) A pointer to a time_t struct to store the time the value was read.
+ [in] skipSizeCheck (Optional) If true it will skip checking if the data size is less than sizeof(<type>)
.
+sizeof(<type>)
.getValue<type>(×tamp, skipSizeCheck);
◆ setValue() [1/3]
+
+◆ setValue() [1/3]
void NimBLEDescriptor::setValue
(
- const std::string &
- value )
+ const std::vector< uint8_t > &
+ vec )
std::vector<uint8_t>
.
+.
@@ -326,7 +489,7 @@ template<typename T >
-
+ [in] value The value of the descriptor in string form. [in] vec The std::vector<uint8_t> reference to set the descriptor value from.
diff --git a/class_nim_b_l_e_descriptor.js b/class_nim_b_l_e_descriptor.js
index c4ee90e..4bc416a 100644
--- a/class_nim_b_l_e_descriptor.js
+++ b/class_nim_b_l_e_descriptor.js
@@ -8,9 +8,10 @@ var class_nim_b_l_e_descriptor =
[ "getLength", "class_nim_b_l_e_descriptor.html#a378346f59afb706d4c1d961227b98c5d", null ],
[ "getStringValue", "class_nim_b_l_e_descriptor.html#a7153e051e5808469c23e2207fa6711db", null ],
[ "getUUID", "class_nim_b_l_e_descriptor.html#abc5398a570edc197fbadad3f5b45e186", null ],
- [ "getValue", "class_nim_b_l_e_descriptor.html#ac54fd0830ceb64b91037b623dbc427b5", null ],
+ [ "getValue", "class_nim_b_l_e_descriptor.html#a8f64c733c8848948fe9123bd7cd3fd53", null ],
+ [ "getValue", "class_nim_b_l_e_descriptor.html#a61062547f21ca8e102ec5d8e0843c9f9", null ],
[ "setCallbacks", "class_nim_b_l_e_descriptor.html#aa9cb8727f9e17cf8050cf619e5fe3096", null ],
- [ "setValue", "class_nim_b_l_e_descriptor.html#ad14bda7d046b5f814ed599c8157c7e51", null ],
+ [ "setValue", "class_nim_b_l_e_descriptor.html#a644f739b6621702856be8db93035e9a0", null ],
[ "setValue", "class_nim_b_l_e_descriptor.html#a9136cc9e4b41110b3dd99d1c9553a477", null ],
[ "setValue", "class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923", null ],
[ "toString", "class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5", null ]
diff --git a/class_nim_b_l_e_descriptor_callbacks-members.html b/class_nim_b_l_e_descriptor_callbacks-members.html
index 2828a9e..f3c174b 100644
--- a/class_nim_b_l_e_descriptor_callbacks-members.html
+++ b/class_nim_b_l_e_descriptor_callbacks-members.html
@@ -26,7 +26,7 @@
[in] s The value to set.
diff --git a/class_nim_b_l_e_descriptor_callbacks.html b/class_nim_b_l_e_descriptor_callbacks.html
index 593707c..ac87b47 100644
--- a/class_nim_b_l_e_descriptor_callbacks.html
+++ b/class_nim_b_l_e_descriptor_callbacks.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_device-members.html b/class_nim_b_l_e_device-members.html
index 2ce765d..152949d 100644
--- a/class_nim_b_l_e_device-members.html
+++ b/class_nim_b_l_e_device-members.html
@@ -26,7 +26,7 @@
@@ -126,12 +126,13 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_device.html',''); init
setSecurityIOCap(uint8_t iocap) NimBLEDevice static setSecurityPasskey(uint32_t pin) NimBLEDevice static
- setSecurityRespKey(uint8_t init_key) NimBLEDevice static
+ startAdvertising() NimBLEDevice static startAdvertising(uint8_t inst_id, int duration=0, int max_events=0) NimBLEDevice static
- startSecurity(uint16_t conn_id) NimBLEDevice static
- stopAdvertising() NimBLEDevice static
- toString() NimBLEDevice static
- whiteListAdd(const NimBLEAddress &address) NimBLEDevice static
+ whiteListRemove(const NimBLEAddress &address) NimBLEDevice static
+ stopAdvertising(uint8_t inst_id) NimBLEDevice static
+ stopAdvertising() NimBLEDevice static
+ toString() NimBLEDevice static
+ whiteListAdd(const NimBLEAddress &address) NimBLEDevice static whiteListRemove(const NimBLEAddress &address) NimBLEDevice static
@@ -179,17 +179,18 @@ Static Public Member Functions
static void removeIgnored (const NimBLEAddress &address) Remove a device from the ignore list. More...
-
+static NimBLEAdvertising * getAdvertising () static NimBLEExtAdvertising * getAdvertising () Get the instance of the advertising object. More...
-
-
-static void startAdvertising ()
- Convenience function to begin advertising.
-
-
-static void stopAdvertising ()
- Convenience function to stop advertising.
+
+static bool startAdvertising (uint8_t inst_id, int duration=0, int max_events=0)
+ Convenience function to begin advertising. More...
+
+static bool stopAdvertising (uint8_t inst_id)
+ Convenience function to stop advertising a data set. More...
+
+static bool stopAdvertising ()
+ Convenience function to stop all advertising. More... static NimBLEClient * createClient (NimBLEAddress peerAddress=NimBLEAddress("")) Creates a new client object and maintains a list of all client objects each client can connect to 1 peripheral device. More...
@@ -294,7 +295,7 @@ static void Creates a new client object and maintains a list of all client objects each client can connect to 1 peripheral device.
@@ -1409,6 +1410,61 @@ The available bits are defined as:
-
+ [in] peerAddress An optional peer address that is copied to the new client object, allows for calling NimBLEClient::connect(bool) without a device or address parameter. [in] peerAddress An optional peer address that is copied to the new client object, allows for calling NimBLEClient::connect(bool) without a device or address parameter.
+
+
+
+
◆ startAdvertising()
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEDevice::startAdvertising
+ (
+ uint8_t
+ inst_id,
+
+
+
+
+ int
+ duration =
+ 0
,
+
+
+
+ int
+ max_events =
+ 0
+
+
+ )
+
+
+static
+
+
+
+
+ [in] inst_id The extended advertisement instance ID to start.
+ [in] duration How long to advertise for in milliseconds, 0 = forever (default).
+ [in] max_events Maximum number of advertisement events to send, 0 = no limit (default).
+
+
+
+
+◆ stopAdvertising() [1/2]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEDevice::stopAdvertising
+ (
+ )
+
+
+static
+
+
+◆ stopAdvertising() [2/2]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLEDevice::stopAdvertising
+ (
+ uint8_t
+ inst_id )
+
+
+static
+
+
+
+
+ [in] inst_id The extended advertisement instance ID to stop advertising.
+
diff --git a/class_nim_b_l_e_eddystone_t_l_m.html b/class_nim_b_l_e_eddystone_t_l_m.html
index 252ae53..7b53329 100644
--- a/class_nim_b_l_e_eddystone_t_l_m.html
+++ b/class_nim_b_l_e_eddystone_t_l_m.html
@@ -26,7 +26,7 @@
@@ -115,16 +115,16 @@ Public Member Functions
Get the temperature being advertised. More...
-uint32_t getCount ()
+ Get the count of advertisments sent. More... Get the count of advertisements sent. More...
-uint32_t getTime ()
+ Get the advertisment time. More... Get the advertisement time. More... std::string toString () Get a string representation of the beacon. More...
-void setData (const std::string &data)
+ Set the raw data for the beacon advertisment. More... Set the raw data for the beacon advertisement. More... void setUUID (const NimBLEUUID &l_uuid)
@@ -139,10 +139,10 @@ Public Member Functions
Set the UUID to advertise. More... Set the temperature to advertise. More...
-void setCount (uint32_t advCount)
+ Set the advertisment count. More... Set the advertisement count. More...
-void setTime (uint32_t tmil)
+ Set the advertisment time. More... Set the advertisement time. More... Detailed Description
@@ -166,8 +166,8 @@ Public Member Functions
+
+
@@ -333,7 +333,7 @@ Public Member Functions
-
+ [in] advCount The advertisment number. [in] advCount The advertisement number.
@@ -385,10 +385,10 @@ Public Member Functions
[in] data The raw data to advertise.
diff --git a/class_nim_b_l_e_eddystone_u_r_l-members.html b/class_nim_b_l_e_eddystone_u_r_l-members.html
index 8c1605f..b127b22 100644
--- a/class_nim_b_l_e_eddystone_u_r_l-members.html
+++ b/class_nim_b_l_e_eddystone_u_r_l-members.html
@@ -26,7 +26,7 @@
-
+ [in] tmil The advertisment time in milliseconds. [in] tmil The advertisement time in milliseconds.
diff --git a/class_nim_b_l_e_eddystone_u_r_l.html b/class_nim_b_l_e_eddystone_u_r_l.html
index e74c887..676b429 100644
--- a/class_nim_b_l_e_eddystone_u_r_l.html
+++ b/class_nim_b_l_e_eddystone_u_r_l.html
@@ -26,7 +26,7 @@
@@ -115,7 +115,7 @@ Public Member Functions
Get the full URL being advertised. More...
-void setData (const std::string &data)
+ Set the raw data for the beacon advertisment. More... Set the raw data for the beacon advertisement. More... void setUUID (const NimBLEUUID &l_uuid)
@@ -249,7 +249,7 @@ Public Member Functions
Set the UUID to advertise. More...
diff --git a/class_nim_b_l_e_ext_advertisement-members.html b/class_nim_b_l_e_ext_advertisement-members.html
new file mode 100644
index 0000000..482b1dc
--- /dev/null
+++ b/class_nim_b_l_e_ext_advertisement-members.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+[in] data The raw data to advertise.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Public Member Functions
+ NimBLEExtAdvertisement (uint8_t priPhy=BLE_HCI_LE_PHY_1M, uint8_t secPhy=BLE_HCI_LE_PHY_1M)
+ Construct a BLE extended advertisement. More...
+
+void setAppearance (uint16_t appearance)
+ Set the appearance. More...
+
+void setCompleteServices (const NimBLEUUID &uuid)
+ Set a single service to advertise as a complete list of services. More...
+
+void setCompleteServices16 (const std::vector< NimBLEUUID > &v_uuid)
+ Set the complete list of 16 bit services to advertise. More...
+
+void setCompleteServices32 (const std::vector< NimBLEUUID > &v_uuid)
+ Set the complete list of 32 bit services to advertise. More...
+
+void setFlags (uint8_t flag)
+ Set the advertisement flags. More...
+
+void setManufacturerData (const std::string &data)
+ Set manufacturer specific data. More...
+
+void setURI (const std::string &uri)
+ Set the URI to advertise. More...
+
+void setName (const std::string &name)
+ Set the complete name of this device. More...
+
+void setPartialServices (const NimBLEUUID &uuid)
+ Set a single service to advertise as a partial list of services. More...
+
+void setPartialServices16 (const std::vector< NimBLEUUID > &v_uuid)
+ Set the partial list of services to advertise. More...
+
+void setPartialServices32 (const std::vector< NimBLEUUID > &v_uuid)
+ Set the partial list of services to advertise. More...
+
+void setServiceData (const NimBLEUUID &uuid, const std::string &data)
+ Set the service data (UUID + data) More...
+
+void setShortName (const std::string &name)
+ Set the short name. More...
+
+void setData (const uint8_t *data, size_t length)
+ Set the advertisement data. More...
+
+void addData (const std::string &data)
+ Add data to the payload to be advertised. More...
+
+void addData (const uint8_t *data, size_t length)
+ Add data to the payload to be advertised. More...
+
+
+void addTxPower ()
+ Adds Tx power level to the advertisement data.
+
+void setPreferredParams (uint16_t min, uint16_t max)
+ Set the preferred connection interval parameters. More...
+
+void setLegacyAdvertising (bool val)
+ Sets wether the advertisement should use legacy (BLE 4.0, 31 bytes max) advertising. More...
+
+void setConnectable (bool val)
+ Sets wether this advertisement should advertise as a connectable device. More...
+
+void setScannable (bool val)
+ Sets wether the advertisement has scan response data available. More...
+
+void setMinInterval (uint32_t mininterval)
+ Set the minimum advertising interval. More...
+
+void setMaxInterval (uint32_t maxinterval)
+ Set the maximum advertising interval. More...
+
+void setPrimaryPhy (uint8_t phy)
+ Set the primary advertising PHY to use. More...
+
+void setSecondaryPhy (uint8_t phy)
+ Set the secondary advertising PHY to use. More...
+
+void setScanFilter (bool scanRequestWhitelistOnly, bool connectWhitelistOnly)
+ Set the filtering for the scan filter. More...
+
+void setDirectedPeer (const NimBLEAddress &addr)
+ Sets the peer to directly advertise to. More...
+
+void setDirected (bool val, bool high_duty=true)
+ Enable or disable direct advertisements to the peer set with NimBLEExtAdvertisement::setDirectedPeer
More...
+
+void setAnonymous (bool val)
+ Sets whether the advertisement should be anonymous. More...
+
+void setPrimaryChannels (bool ch37, bool ch38, bool ch39)
+ Sets The primary channels to advertise on. More...
+
+void setTxPower (int8_t dbm)
+ Sets the transmission power level for this advertisement. More...
+
+void setAddress (const NimBLEAddress &addr)
+ Set the address to use for this advertisement. More...
+
+void enableScanRequestCallback (bool enable)
+ Sets whether the scan response request callback should be called. More...
+
+void clearData ()
+ Clears the data stored in this instance, does not change settings. More...
+
+
+size_t getDataSize ()
+ Get the size of the current data.
+ Detailed Description
+Constructor & Destructor Documentation
+
+◆ NimBLEExtAdvertisement()
+
+
+
+
+
+ NimBLEExtAdvertisement::NimBLEExtAdvertisement
+ (
+ uint8_t
+ priPhy =
+ BLE_HCI_LE_PHY_1M
,
+
+
+
+ uint8_t
+ secPhy =
+ BLE_HCI_LE_PHY_1M
+
+
+ )
+
+
+
+
+
+
+ [in] priPhy The primary Phy to advertise on, can be one of:
+
+
+ [in] secPhy The secondary Phy to advertise on, can be one of:
+
+Member Function Documentation
+
+◆ addData() [1/2]
+
+
+
+
+
+ void NimBLEExtAdvertisement::addData
+ (
+ const std::string &
+ data )
+
+
+
+
+
+
+ [in] data The data to be added to the payload. ◆ addData() [2/2]
+
+
+
+
+
+ void NimBLEExtAdvertisement::addData
+ (
+ const uint8_t *
+ data,
+
+
+
+
+ size_t
+ length
+
+
+
+ )
+
+
+
+
+
+
+ [in] data The data to be added to the payload.
+ [in] length The size of data to be added to the payload. ◆ clearData()
+
+
+
+
+
+ void NimBLEExtAdvertisement::clearData
+ (
+ )
+
+ ◆ enableScanRequestCallback()
+
+
+
+
+
+ void NimBLEExtAdvertisement::enableScanRequestCallback
+ (
+ bool
+ enable )
+
+
+
+
+
+
+ [in] enable If true the scan response request callback will be called for this advertisement. ◆ setAddress()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setAddress
+ (
+ const NimBLEAddress &
+ addr )
+
+
+
+
+
+
+ [in] addr The address to use. ◆ setAnonymous()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setAnonymous
+ (
+ bool
+ val )
+
+
+
+
+
+ [in] val Set to true to enable anonymous advertising. ◆ setAppearance()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setAppearance
+ (
+ uint16_t
+ appearance )
+
+
+
+
+
+
+
+ [in] appearance The appearance code value. ◆ setCompleteServices()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setCompleteServices
+ (
+ const NimBLEUUID &
+ uuid )
+
+
+
+
+
+
+ [in] uuid The service to advertise. ◆ setCompleteServices16()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setCompleteServices16
+ (
+ const std::vector< NimBLEUUID > &
+ v_uuid )
+
+
+
+
+
+
+ [in] v_uuid A vector of 16 bit UUID's to advertise. ◆ setCompleteServices32()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setCompleteServices32
+ (
+ const std::vector< NimBLEUUID > &
+ v_uuid )
+
+
+
+
+
+
+ [in] v_uuid A vector of 32 bit UUID's to advertise. ◆ setConnectable()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setConnectable
+ (
+ bool
+ val )
+
+
+
+
+
+
+ [in] val True = connectable. ◆ setData()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setData
+ (
+ const uint8_t *
+ data,
+
+
+
+
+ size_t
+ length
+
+
+
+ )
+
+
+
+
+
+ [in] data The data to be set as the payload.
+ [in] length The size of data. ◆ setDirected()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setDirected
+ (
+ bool
+ val,
+
+
+
+
+ bool
+ high_duty =
+ true
+
+
+ )
+
+ NimBLEExtAdvertisement::setDirectedPeer
+
+
+
+
+ [in] val true = send directed advertisements to peer.
+ [in] high_duty true = use fast advertising rate, default - true. ◆ setDirectedPeer()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setDirectedPeer
+ (
+ const NimBLEAddress &
+ addr )
+
+
+
+
+
+
+ [in] addr The address of the peer to direct the advertisements. ◆ setFlags()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setFlags
+ (
+ uint8_t
+ flag )
+
+
+
+
+
+
+ [in] flag The flags to be set in the advertisement.
+
+◆ setLegacyAdvertising()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setLegacyAdvertising
+ (
+ bool
+ val )
+
+
+
+
+
+
+ [in] val true = using legacy advertising. ◆ setManufacturerData()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setManufacturerData
+ (
+ const std::string &
+ data )
+
+
+
+
+
+
+ [in] data The manufacturer data to advertise. ◆ setMaxInterval()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setMaxInterval
+ (
+ uint32_t
+ maxinterval )
+
+
+
+
+
+
+ [in] maxinterval Maximum value for advertising interval in 0.625ms units, 0 = use default. ◆ setMinInterval()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setMinInterval
+ (
+ uint32_t
+ mininterval )
+
+
+
+
+
+
+ [in] mininterval Minimum value for advertising interval in 0.625ms units, 0 = use default. ◆ setName()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setName
+ (
+ const std::string &
+ name )
+
+
+
+
+
+
+ [in] name The name to advertise. ◆ setPartialServices()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPartialServices
+ (
+ const NimBLEUUID &
+ uuid )
+
+
+
+
+
+
+ [in] uuid The service to advertise. ◆ setPartialServices16()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPartialServices16
+ (
+ const std::vector< NimBLEUUID > &
+ v_uuid )
+
+
+
+
+
+
+ [in] v_uuid A vector of 16 bit UUID's to advertise. ◆ setPartialServices32()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPartialServices32
+ (
+ const std::vector< NimBLEUUID > &
+ v_uuid )
+
+
+
+
+
+
+ [in] v_uuid A vector of 32 bit UUID's to advertise. ◆ setPreferredParams()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPreferredParams
+ (
+ uint16_t
+ min,
+
+
+
+
+ uint16_t
+ max
+
+
+
+ )
+
+
+
+
+
+
+ [in] min The minimum interval desired.
+ [in] max The maximum interval desired. ◆ setPrimaryChannels()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPrimaryChannels
+ (
+ bool
+ ch37,
+
+
+
+
+ bool
+ ch38,
+
+
+
+
+ bool
+ ch39
+
+
+
+ )
+
+
+
+
+
+ [in] ch37 Advertise on channel 37.
+ [in] ch38 Advertise on channel 38.
+ [in] ch39 Advertise on channel 39.
+combinations. If all inputs are false then all 3 channels will be used. ◆ setPrimaryPhy()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setPrimaryPhy
+ (
+ uint8_t
+ phy )
+
+
+
+
+
+
+ [in] phy Can be one of following constants:
+
+◆ setScanFilter()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setScanFilter
+ (
+ bool
+ scanRequestWhitelistOnly,
+
+
+
+
+ bool
+ connectWhitelistOnly
+
+
+
+ )
+
+
+
+
+
+
+ [in] scanRequestWhitelistOnly If true, only allow scan requests from those on the white list.
+ [in] connectWhitelistOnly If true, only allow connections from those on the white list. ◆ setScannable()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setScannable
+ (
+ bool
+ val )
+
+
+
+
+
+
+ [in] val true = scan response is available. ◆ setSecondaryPhy()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setSecondaryPhy
+ (
+ uint8_t
+ phy )
+
+
+
+
+
+
+ [in] phy Can be one of following constants:
+
+◆ setServiceData()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setServiceData
+ (
+ const NimBLEUUID &
+ uuid,
+
+
+
+
+ const std::string &
+ data
+
+
+
+ )
+
+
+
+
+
+
+ [in] uuid The UUID to set with the service data.
+ [in] data The data to be associated with the service data advertised. ◆ setShortName()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setShortName
+ (
+ const std::string &
+ name )
+
+
+
+
+
+
+ [in] name The short name of the device. ◆ setTxPower()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setTxPower
+ (
+ int8_t
+ dbm )
+
+
+
+
+
+ [in] dbm the transmission power to use in dbm.
+The ESP32C3 and ESP32S3 have a range of -27 to +18. ◆ setURI()
+
+
+
+
+
+ void NimBLEExtAdvertisement::setURI
+ (
+ const std::string &
+ uri )
+
+
+
+
+
+
+ [in] uri The uri to advertise.
+
+
+
+
+
+
+
+
+
+ isActive(uint8_t inst_id) NimBLEExtAdvertising
+ isAdvertising() NimBLEExtAdvertising
+ NimBLEExtAdvertising() NimBLEExtAdvertising inline
+ removeAll() NimBLEExtAdvertising
+ removeInstance(uint8_t inst_id) NimBLEExtAdvertising
+ setCallbacks(NimBLEExtAdvertisingCallbacks *callbacks, bool deleteCallbacks=true) NimBLEExtAdvertising
+ setInstanceData(uint8_t inst_id, NimBLEExtAdvertisement &adv) NimBLEExtAdvertising
+ setScanResponseData(uint8_t inst_id, NimBLEExtAdvertisement &data) NimBLEExtAdvertising
+ start(uint8_t inst_id, int duration=0, int max_events=0) NimBLEExtAdvertising
+ stop(uint8_t inst_id) NimBLEExtAdvertising
+ stop() NimBLEExtAdvertising
+~NimBLEExtAdvertising() NimBLEExtAdvertising
+
+
+
+
+
+
+
+
+
+
+
+Public Member Functions
+
+ NimBLEExtAdvertising ()
+ Construct an extended advertising object.
+
+
+ ~NimBLEExtAdvertising ()
+ Destructor: deletes callback instances if requested.
+
+bool start (uint8_t inst_id, int duration=0, int max_events=0)
+ Start extended advertising. More...
+
+bool setInstanceData (uint8_t inst_id, NimBLEExtAdvertisement &adv)
+ Register the extended advertisement data. More...
+
+bool setScanResponseData (uint8_t inst_id, NimBLEExtAdvertisement &data)
+ Set the scan response data for a legacy advertisement. More...
+
+bool removeInstance (uint8_t inst_id)
+ Stop and remove this instance data from the advertisement set. More...
+
+bool removeAll ()
+ Stop and remove all advertising instance data. More...
+
+bool stop (uint8_t inst_id)
+ Stop advertising this instance data. More...
+
+bool stop ()
+ Stop all advertisements. More...
+
+bool isActive (uint8_t inst_id)
+ Check if currently advertising. More...
+
+bool isAdvertising ()
+ Check if any instances are currently advertising. More...
+
+void setCallbacks (NimBLEExtAdvertisingCallbacks *callbacks, bool deleteCallbacks=true)
+ Set a callback to call when the advertisement stops. More...
+ Detailed Description
+Member Function Documentation
+
+◆ isActive()
+
+
+
+
+
+ bool NimBLEExtAdvertising::isActive
+ (
+ uint8_t
+ inst_id )
+
+
+
+
+
+ [in] inst_id The instance ID of the advertised data to get the status of.
+
+◆ isAdvertising()
+
+
+
+
+
+ bool NimBLEExtAdvertising::isAdvertising
+ (
+ )
+
+
+
+◆ removeAll()
+
+
+
+
+
+ bool NimBLEExtAdvertising::removeAll
+ (
+ )
+
+
+
+◆ removeInstance()
+
+
+
+
+
+ bool NimBLEExtAdvertising::removeInstance
+ (
+ uint8_t
+ inst_id )
+
+
+
+
+
+ [in] inst_id The extended advertisement instance to stop advertising.
+
+◆ setCallbacks()
+
+
+
+
+
+ void NimBLEExtAdvertising::setCallbacks
+ (
+ NimBLEExtAdvertisingCallbacks *
+ pCallbacks,
+
+
+
+
+ bool
+ deleteCallbacks =
+ true
+
+
+ )
+
+
+
+
+
+
+ [in] pCallbacks A pointer to a callback to be invoked when an advertisement stops.
+ [in] deleteCallbacks if true callback class will be deleted when advertising is destructed. ◆ setInstanceData()
+
+
+
+
+
+ bool NimBLEExtAdvertising::setInstanceData
+ (
+ uint8_t
+ inst_id,
+
+
+
+
+ NimBLEExtAdvertisement &
+ adv
+
+
+
+ )
+
+
+
+
+
+ [in] inst_id The extended advertisement instance ID to assign to this data.
+ [in] adv The extended advertisement instance with the data to set.
+
+◆ setScanResponseData()
+
+
+
+
+
+ bool NimBLEExtAdvertising::setScanResponseData
+ (
+ uint8_t
+ inst_id,
+
+
+
+
+ NimBLEExtAdvertisement &
+ lsr
+
+
+
+ )
+
+
+
+
+
+
+ [in] inst_id The extended advertisement instance ID to assign to this data.
+ [in] lsr A reference to a NimBLEExtAdvertisement that contains the data. ◆ start()
+
+
+
+
+
+ bool NimBLEExtAdvertising::start
+ (
+ uint8_t
+ inst_id,
+
+
+
+
+ int
+ duration =
+ 0
,
+
+
+
+ int
+ max_events =
+ 0
+
+
+ )
+
+
+
+
+
+ [in] inst_id The extended advertisement instance ID to start.
+ [in] duration How long to advertise for in milliseconds, 0 = forever (default).
+ [in] max_events Maximum number of advertisement events to send, 0 = no limit (default).
+
+◆ stop() [1/2]
+
+
+
+
+
+ bool NimBLEExtAdvertising::stop
+ (
+ )
+
+
+
+◆ stop() [2/2]
+
+
+
+
+
+ bool NimBLEExtAdvertising::stop
+ (
+ uint8_t
+ inst_id )
+
+
+
+
+
+ [in] inst_id The extended advertisement instance to stop advertising.
+
+
+
+
+
+
+
+
+
+
+
+ onScanRequest(NimBLEExtAdvertising *pAdv, uint8_t inst_id, NimBLEAddress addr) NimBLEExtAdvertisingCallbacks virtual
+onStopped(NimBLEExtAdvertising *pAdv, int reason, uint8_t inst_id) NimBLEExtAdvertisingCallbacks virtual
+
+
+
+
+
+
+
+
+
+
+
+Public Member Functions
+virtual void onStopped (NimBLEExtAdvertising *pAdv, int reason, uint8_t inst_id)
+ Handle an advertising stop event. More...
+
+virtual void onScanRequest (NimBLEExtAdvertising *pAdv, uint8_t inst_id, NimBLEAddress addr)
+ Handle a scan response request. This is called when a scanning device requests a scan response. More...
+ Detailed Description
+Member Function Documentation
+
+◆ onScanRequest()
+
+
+
+
+
+
+
+
+
+
+
+ void NimBLEExtAdvertisingCallbacks::onScanRequest
+ (
+ NimBLEExtAdvertising *
+ pAdv,
+
+
+
+
+ uint8_t
+ inst_id,
+
+
+
+
+ NimBLEAddress
+ addr
+
+
+
+ )
+
+
+virtual
+
+
+
+
+
+ [in] pAdv A convenience pointer to the extended advertising interface.
+ [in] inst_id The instance ID of the advertisement that the scan response request was made.
+ [in] addr The address of the device making the request. ◆ onStopped()
+
+
+
+
+
+
+
+
+
+
+
+ void NimBLEExtAdvertisingCallbacks::onStopped
+ (
+ NimBLEExtAdvertising *
+ pAdv,
+
+
+
+
+ int
+ reason,
+
+
+
+
+ uint8_t
+ inst_id
+
+
+
+ )
+
+
+virtual
+
+
+
+
+ [in] pAdv A convenience pointer to the extended advertising interface.
+ [in] reason The reason code for stopping the advertising.
+ [in] inst_id The instance ID of the advertisement that was stopped.
diff --git a/class_nim_b_l_e_h_i_d_device.html b/class_nim_b_l_e_h_i_d_device.html
index b2d1672..432ea6f 100644
--- a/class_nim_b_l_e_h_i_d_device.html
+++ b/class_nim_b_l_e_h_i_d_device.html
@@ -26,7 +26,7 @@
@@ -126,7 +126,7 @@ This function called when all the services have been created.
Set manufacturer name. More...
-void pnp (uint8_t sig, uint16_t vid, uint16_t pid, uint16_t version)
+ Sets the Plug n Play characterisc value. More... Sets the Plug n Play characteristic value. More... void hidInfo (uint8_t country, uint8_t flags)
@@ -372,7 +372,7 @@ This function called when all the services have been created. Sets the HID Information characteristic value. More...
diff --git a/class_nim_b_l_e_remote_characteristic-members.html b/class_nim_b_l_e_remote_characteristic-members.html
index c5b1519..b5e89f1 100644
--- a/class_nim_b_l_e_remote_characteristic-members.html
+++ b/class_nim_b_l_e_remote_characteristic-members.html
@@ -26,7 +26,7 @@
[in] sig The vendor ID source number.
@@ -105,20 +105,22 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_remote_characteristic.
getHandle() NimBLERemoteCharacteristic getRemoteService() NimBLERemoteCharacteristic
- getUUID() NimBLERemoteCharacteristic
+ getValue(time_t *timestamp=nullptr) NimBLERemoteCharacteristic getValue(time_t *timestamp=nullptr) NimBLERemoteCharacteristic getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLERemoteCharacteristic inline readFloat() __attribute__((deprecated("Use template readValue<float>()"))) NimBLERemoteCharacteristic readUInt16() __attribute__((deprecated("Use template readValue<uint16_t>()"))) NimBLERemoteCharacteristic readUInt32() __attribute__((deprecated("Use template readValue<uint32_t>()"))) NimBLERemoteCharacteristic
- readUInt8() __attribute__((deprecated("Use template readValue<uint8_t>()"))) NimBLERemoteCharacteristic
+ readValue(time_t *timestamp=nullptr) NimBLERemoteCharacteristic readValue(time_t *timestamp=nullptr) NimBLERemoteCharacteristic readValue(time_t *timestamp=nullptr, bool skipSizeCheck=false) NimBLERemoteCharacteristic inline
- registerForNotify(notify_callback notifyCallback, bool notifications=true, bool response=true) __attribute__((deprecated("Use subscribe()/unsubscribe()"))) NimBLERemoteCharacteristic
+ subscribe(bool notifications=true, notify_callback notifyCallback=nullptr, bool response=false) NimBLERemoteCharacteristic subscribe(bool notifications=true, notify_callback notifyCallback=nullptr, bool response=true) NimBLERemoteCharacteristic
- toString() NimBLERemoteCharacteristic
+ unsubscribe(bool response=false) NimBLERemoteCharacteristic unsubscribe(bool response=true) NimBLERemoteCharacteristic
- writeValue(const uint8_t *data, size_t length, bool response=false) NimBLERemoteCharacteristic
+ writeValue(const std::string &newValue, bool response=false) NimBLERemoteCharacteristic
+ writeValue(const std::vector< uint8_t > &v, bool response=false) NimBLERemoteCharacteristic
+ writeValue(const char *s, bool response=false) NimBLERemoteCharacteristic writeValue(const T &s, bool response=false) NimBLERemoteCharacteristic inline writeValue(const T &s, bool response=false) NimBLERemoteCharacteristic inline ~NimBLERemoteCharacteristic() NimBLERemoteCharacteristic
@@ -144,57 +144,64 @@ Public Member Functions
NimBLEUUID getUUID () Get the UUID for this characteristic. More...
-
-std::string readValue (time_t *timestamp=nullptr)
- Read the value of the remote characteristic. More...
-
-template<typename T >
-T readValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
- A template to convert the remote characteristic data to <type>. More...
-
-uint8_t readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()")))
- Read a byte value. More...
-
-uint16_t readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()")))
- Read an unsigned 16 bit value. More...
-
-uint32_t readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()")))
- Read an unsigned 32 bit value. More...
-
-float readFloat () __attribute__((deprecated("Use template readValue<float>()")))
- Read a float value. More...
-
-std::string getValue (time_t *timestamp=nullptr)
- Get the value of the remote characteristic. More...
-
-template<typename T >
-T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
- A template to convert the remote characteristic data to <type>. More...
-
-bool subscribe (bool notifications=true, notify_callback notifyCallback=nullptr, bool response=false)
- Subscribe for notifications or indications. More...
-
-bool unsubscribe (bool response=false)
- Unsubscribe for notifications or indications. More...
-
-bool registerForNotify (notify_callback notifyCallback, bool notifications=true, bool response=true) __attribute__((deprecated("Use subscribe()/unsubscribe()")))
- backward-compatibility method for subscribe/unsubscribe notifications/indications More...
-
-bool writeValue (const uint8_t *data, size_t length, bool response=false)
- Write the new value for the characteristic from a data buffer. More...
-
-bool writeValue (const std::string &newValue, bool response=false)
- Write the new value for the characteristic. More...
-
-template<typename T >
-bool writeValue (const T &s, bool response=false)
- Convenience template to set the remote characteristic value to <type>val. More...
+
+NimBLEAttValue readValue (time_t *timestamp=nullptr)
+ Read the value of the remote characteristic. More... std::string toString () Convert a NimBLERemoteCharacteristic to a string representation;. More... NimBLERemoteService * getRemoteService () Get the remote service associated with this characteristic. More...
+
+uint8_t readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()")))
+ Read a byte value. More...
+
+uint16_t readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()")))
+ Read an unsigned 16 bit value. More...
+
+uint32_t readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()")))
+ Read an unsigned 32 bit value. More...
+
+float readFloat () __attribute__((deprecated("Use template readValue<float>()")))
+ Read a float value. More...
+
+NimBLEAttValue getValue (time_t *timestamp=nullptr)
+ Get the value of the remote characteristic. More...
+
+bool subscribe (bool notifications=true, notify_callback notifyCallback=nullptr, bool response=true)
+ Subscribe for notifications or indications. More...
+
+bool unsubscribe (bool response=true)
+ Unsubscribe for notifications or indications. More...
+
+bool registerForNotify (notify_callback notifyCallback, bool notifications=true, bool response=true) __attribute__((deprecated("Use subscribe()/unsubscribe()")))
+ backward-compatibility method for subscribe/unsubscribe notifications/indications More...
+
+bool writeValue (const uint8_t *data, size_t length, bool response=false)
+ Write a new value to the remote characteristic from a data buffer. More...
+
+bool writeValue (const std::vector< uint8_t > &v, bool response=false)
+ Write a new value to the remote characteristic from a std::vector<uint8_t>. More...
+
+bool writeValue (const char *s, bool response=false)
+ Write a new value to the remote characteristic from a const char*. More...
+
+template<typename T >
+bool writeValue (const T &s, bool response=false)
+ Template to set the remote characteristic value to <type>val. More...
+
+template<typename T >
+bool writeValue (const T &s, bool response=false)
+ Template to set the remote characteristic value to <type>val. More...
+
+template<typename T >
+T getValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to convert the remote characteristic data to <type>. More...
+
+template<typename T >
+T readValue (time_t *timestamp=nullptr, bool skipSizeCheck=false)
+ Template to convert the remote characteristic data to <type>. More... Detailed Description
◆ getValue() [1/2]
+
+◆ getValue() [1/2]
- std::string NimBLERemoteCharacteristic::getValue
+ NimBLEAttValue NimBLERemoteCharacteristic::getValue
(
time_t *
timestamp = nullptr
)
@@ -605,7 +612,7 @@ template<typename T >
@@ -661,7 +668,7 @@ template<typename T >
T The type to convert the data to.
-
+
@@ -682,7 +689,7 @@ template<typename T >
-
+
@@ -703,18 +710,18 @@ template<typename T >
-
+
-
-◆ readValue() [1/2]
+
+◆ readValue() [1/2]
- std::string NimBLERemoteCharacteristic::readValue
+ NimBLEAttValue NimBLERemoteCharacteristic::readValue
(
time_t *
timestamp = nullptr
)
@@ -770,7 +777,7 @@ template<typename T >
@@ -927,8 +934,8 @@ template<typename T >
@@ -831,12 +838,12 @@ template<typename T >
T The type to convert the data to.
-
+
-
-◆ subscribe()
+
+◆ subscribe()
◆ writeValue() [1/3]
+
+◆ writeValue() [1/5]
bool NimBLERemoteCharacteristic::writeValue
(
- const std::string &
- newValue,
+ const char *
+ char_s,
@@ -953,20 +960,58 @@ template<typename T >
-
-
- [in] newValue The new value to write.
+ [in] response Do we expect a response?
+ [in] char_s A character string to write to the remote characteristic. [in] response Whether we require a response from the write.
+
+
+◆ writeValue() [2/5]
+
+
+
+
+
+ bool NimBLERemoteCharacteristic::writeValue
+ (
+ const std::vector< uint8_t > &
+ vec,
+
+
+
+
+ bool
+ response =
+ false
+
+
+ )
+
+
+
+
+
+ [in] vec A std::vector<uint8_t> value to write to the remote characteristic.
+ [in] response Whether we require a response from the write. ◆ writeValue() [2/3]
+◆ writeValue() [3/5]
+
- [in] s The value to write.
+ [in] response True == request write response. [in] response True == request write response. c_str()
method. ◆ writeValue() [4/5]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLERemoteCharacteristic::writeValue
+ (
+ const T &
+ s,
+
+
+
+
+ bool
+ response =
+ false
+
+
+ )
+
+
+inline
+
+
+
+
+ [in] s The value to write.
+ [in] response True == request write response. c_str()
method. ◆ writeValue() [3/3]
+◆ writeValue() [5/5]
-
@@ -1053,7 +1147,7 @@ template<typename T >
[in] data A pointer to a data buffer.
+
@@ -95,11 +95,13 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_remote_descriptor.html
readUInt16() __attribute__((deprecated("Use template readValue<uint16_t>()"))) NimBLERemoteDescriptor readUInt32() __attribute__((deprecated("Use template readValue<uint32_t>()"))) NimBLERemoteDescriptor
- readUInt8() __attribute__((deprecated("Use template readValue<uint8_t>()"))) NimBLERemoteDescriptor
+ readValue() NimBLERemoteDescriptor readValue() NimBLERemoteDescriptor readValue(bool skipSizeCheck=false) NimBLERemoteDescriptor inline toString(void) NimBLERemoteDescriptor
- writeValue(const uint8_t *data, size_t length, bool response=false) NimBLERemoteDescriptor
+ writeValue(const std::string &newValue, bool response=false) NimBLERemoteDescriptor
+ writeValue(const std::vector< uint8_t > &v, bool response=false) NimBLERemoteDescriptor
+ writeValue(const char *s, bool response=false) NimBLERemoteDescriptor writeValue(const T &s, bool response=false) NimBLERemoteDescriptor inline
diff --git a/class_nim_b_l_e_remote_descriptor.html b/class_nim_b_l_e_remote_descriptor.html
index 0f1c324..cf49d37 100644
--- a/class_nim_b_l_e_remote_descriptor.html
+++ b/class_nim_b_l_e_remote_descriptor.html
@@ -26,7 +26,7 @@
writeValue(const T &s, bool response=false) NimBLERemoteDescriptor inline
@@ -104,35 +104,42 @@ Public Member Functions
NimBLEUUID getUUID () Retrieve the UUID associated this remote descriptor. More...
-
-std::string readValue ()
- Read the value of the remote descriptor. More...
-
-template<typename T >
-T readValue (bool skipSizeCheck=false)
- A template to convert the remote descriptor data to <type>. More...
-
+uint8_t readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()")))
+NimBLEAttValue readValue ()
+ Read the value of the remote descriptor. More...
+ uint8_t readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()"))) Read a byte value. More...
-
+uint16_t readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()"))) uint16_t readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()"))) Read an unsigned 16 bit value. More...
-
+uint32_t readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()"))) uint32_t readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()"))) Read an unsigned 32 bit value. More... std::string toString (void) Return a string representation of this Remote Descriptor. More...
-bool writeValue (const uint8_t *data, size_t length, bool response=false)
+ Write data to the BLE Remote Descriptor. More... Write a new value to a remote descriptor. More...
-
-bool writeValue (const std::string &newValue, bool response=false)
- Write data represented as a string to the BLE Remote Descriptor. More...
+
+bool writeValue (const std::vector< uint8_t > &v, bool response=false)
+ Write a new value to a remote descriptor from a std::vector<uint8_t>. More...
+
+bool writeValue (const char *s, bool response=false)
+ Write a new value to the remote descriptor from a const char*. More... template<typename T >
-bool writeValue (const T &s, bool response=false)
+ Convenience template to set the remote descriptor value to <type>val. More... Template to set the remote descriptor value to <type>val. More...
+
+template<typename T >
+bool writeValue (const T &s, bool response=false)
+ Template to set the remote descriptor value to <type>val. More...
+
+template<typename T >
+T readValue (bool skipSizeCheck=false)
+ Template to convert the remote descriptor data to <type>. More... Detailed Description
-
+
-
+
@@ -256,18 +263,18 @@ Public Member Functions
-
+
-
-◆ readValue() [1/2]
+
+◆ readValue() [1/2]
- std::string NimBLERemoteDescriptor::readValue
+ NimBLEAttValue NimBLERemoteDescriptor::readValue
(
)
@@ -306,7 +313,7 @@ template<typename T >
@@ -345,8 +352,8 @@ template<typename T >
-
-T The type to convert the data to. ◆ writeValue() [1/3]
+
+◆ writeValue() [1/5]
bool NimBLERemoteDescriptor::writeValue
(
- const std::string &
- newValue,
+ const char *
+ char_s,
@@ -371,20 +378,58 @@ template<typename T >
-
-
- [in] newValue The data to send to the remote descriptor.
+ [in] response True if we expect a response.
+ [in] char_s A character string to write to the remote descriptor. [in] response Whether we require a response from the write.
+
+
+◆ writeValue() [2/5]
+
+
+
+
+
+ bool NimBLERemoteDescriptor::writeValue
+ (
+ const std::vector< uint8_t > &
+ vec,
+
+
+
+
+ bool
+ response =
+ false
+
+
+ )
+
+
+
+
+
+ [in] vec A std::vector<uint8_t> value to write to the remote descriptor.
+ [in] response Whether we require a response from the write. ◆ writeValue() [2/3]
+◆ writeValue() [3/5]
+
- [in] s The value to write.
+ [in] response True == request write response. [in] response True == request write response. c_str()
method. ◆ writeValue() [4/5]
+
+
+
+
+
+
+
+
+
+
+
+ bool NimBLERemoteDescriptor::writeValue
+ (
+ const T &
+ s,
+
+
+
+
+ bool
+ response =
+ false
+
+
+ )
+
+
+inline
+
+
+
+
+ [in] s The value to write.
+ [in] response True == request write response. c_str()
method. ◆ writeValue() [3/3]
+◆ writeValue() [5/5]
-
@@ -471,7 +565,7 @@ template<typename T >
[in] data The data to send to the remote descriptor.
+
diff --git a/class_nim_b_l_e_remote_service.html b/class_nim_b_l_e_remote_service.html
index 690b913..21dc4c4 100644
--- a/class_nim_b_l_e_remote_service.html
+++ b/class_nim_b_l_e_remote_service.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_scan-members.html b/class_nim_b_l_e_scan-members.html
index f94d17c..397b2a4 100644
--- a/class_nim_b_l_e_scan-members.html
+++ b/class_nim_b_l_e_scan-members.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_scan.html b/class_nim_b_l_e_scan.html
index bcb6fda..cbce8b0 100644
--- a/class_nim_b_l_e_scan.html
+++ b/class_nim_b_l_e_scan.html
@@ -26,7 +26,7 @@
@@ -303,7 +303,7 @@ void
diff --git a/class_nim_b_l_e_scan_results.html b/class_nim_b_l_e_scan_results.html
index e2491ba..d53de97 100644
--- a/class_nim_b_l_e_scan_results.html
+++ b/class_nim_b_l_e_scan_results.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_security-members.html b/class_nim_b_l_e_security-members.html
index 0b52b26..04ca90e 100644
--- a/class_nim_b_l_e_security-members.html
+++ b/class_nim_b_l_e_security-members.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_security.html b/class_nim_b_l_e_security.html
index 673e09e..e44cbff 100644
--- a/class_nim_b_l_e_security.html
+++ b/class_nim_b_l_e_security.html
@@ -26,7 +26,7 @@
@@ -102,7 +102,7 @@ Public Member Functions
Set our device IO capability to let end user perform authorization either by displaying or entering generated 6-digit pin code or use "just works". More...
-void setInitEncryptionKey (uint8_t init_key)
+ Sets the keys we will distibute during encryption. More... Sets the keys we will distribute during encryption. More... void setRespEncryptionKey (uint8_t resp_key)
@@ -203,10 +203,10 @@ Can be set to one of: Sets the keys we will accept during encryption. More...
-
[in] init_key A bitmask of the keys we will distibute.
+ [in] init_key A bitmask of the keys we will distribute.
Can be one or more of:
diff --git a/class_nim_b_l_e_security_callbacks.html b/class_nim_b_l_e_security_callbacks.html
index 46ac9fe..7c17af5 100644
--- a/class_nim_b_l_e_security_callbacks.html
+++ b/class_nim_b_l_e_security_callbacks.html
@@ -26,7 +26,7 @@
diff --git a/class_nim_b_l_e_server-members.html b/class_nim_b_l_e_server-members.html
index ae1c9ee..e6216fd 100644
--- a/class_nim_b_l_e_server-members.html
+++ b/class_nim_b_l_e_server-members.html
@@ -26,7 +26,7 @@
@@ -108,9 +108,10 @@ $(document).ready(function(){initNavTree('class_nim_b_l_e_server.html',''); init
setCallbacks(NimBLEServerCallbacks *pCallbacks, bool deleteCallbacks=true) NimBLEServer setDataLen(uint16_t conn_handle, uint16_t tx_octets) NimBLEServer
- start() NimBLEServer
- startAdvertising() NimBLEServer
- stopAdvertising() NimBLEServer
+ updateConnParams(uint16_t conn_handle, uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout) NimBLEServer
+ startAdvertising(uint8_t inst_id, int duration=0, int max_events=0) NimBLEServer
+ stopAdvertising(uint8_t inst_id) NimBLEServer
+ stopAdvertising() NimBLEServer updateConnParams(uint16_t conn_handle, uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout) NimBLEServer
@@ -111,19 +111,21 @@ Public Member Functions
Adds a service which was either already created but removed from availability,
or created and later added to services list. More...
-
-NimBLEAdvertising * getAdvertising ()
- Retrieve the advertising object that can be used to advertise the existence of the server. More... void setCallbacks (NimBLEServerCallbacks *pCallbacks, bool deleteCallbacks=true) Set the server callbacks. More...
-
-void startAdvertising ()
- Start advertising. More...
-
-
-void stopAdvertising ()
- Stop advertising.
+
+NimBLEExtAdvertising * getAdvertising ()
+ Retrieve the advertising object that can be used to advertise the existence of the server. More...
+
+bool startAdvertising (uint8_t inst_id, int duration=0, int max_events=0)
+ Start advertising. More...
+
+bool stopAdvertising (uint8_t inst_id)
+ Convenience function to stop advertising a data set. More...
+
+bool stopAdvertising ()
+ Stop advertising. More...
void start ()
@@ -584,7 +586,7 @@ or created and later added to services list. Start the GATT server. Required to be called after setup of all services and characteristics / descriptors for the NimBLE host to register them.
Remove a service from the server.
-Immediately removes access to the service by clients, sends a service changed indication, and removes the service (if applicable) from the advertisments. The service is not deleted unless the deleteSvc parameter is true, otherwise the service remains available and can be re-added in the future. If desired a removed but not deleted service can be deleted later by calling this method with deleteSvc set to true.
+Immediately removes access to the service by clients, sends a service changed indication, and removes the service (if applicable) from the advertisements. The service is not deleted unless the deleteSvc parameter is true, otherwise the service remains available and can be re-added in the future. If desired a removed but not deleted service can be deleted later by calling this method with deleteSvc set to true.
void NimBLEServer::startAdvertising | +bool NimBLEServer::startAdvertising | +( | +uint8_t | +inst_id, | +
+ | + | int | +duration = 0 , |
+ |
+ | + | int | +max_events = 0 |
+ |
+ | ) | ++ |
Start advertising.
+[in] | inst_id | The extended advertisement instance ID to start. |
[in] | duration | How long to advertise for in milliseconds, 0 = forever (default). |
[in] | max_events | Maximum number of advertisement events to send, 0 = no limit (default). |
Start the server advertising its existence. This is a convenience function and is equivalent to retrieving the advertising object and invoking start upon it.
+Start the server advertising its existence. This is a convenience function and is equivalent to retrieving the advertising object and invoking start upon it.
+ +bool NimBLEServer::stopAdvertising | ( | ) | @@ -692,8 +742,35 @@ Advertising will need to be restarted by the user after calling this as we must |
Start advertising.
-Start the server advertising its existence. This is a convenience function and is equivalent to retrieving the advertising object and invoking start upon it.
+Stop advertising.
+bool NimBLEServer::stopAdvertising | +( | +uint8_t | +inst_id | ) | ++ |
Convenience function to stop advertising a data set.
+[in] | inst_id | The extended advertisement instance ID to stop advertising. |
[in] | pServer | A pointer to the BLE server that received the client disconnection. |
[in] | desc | A pointer to the connection description structure containig information about the connection. |
[in] | desc | A pointer to the connection description structure containing information about the connection. |
[in] | MTU | The new MTU value. |
[in] | desc | A pointer to the connection description structure containig information about the connection. |
[in] | desc | A pointer to the connection description structure containing information about the connection. |
This is the complete list of members for NimBLEService, including all inherited members.
addCharacteristic(NimBLECharacteristic *pCharacteristic) | NimBLEService | ||
createCharacteristic(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE) | NimBLEService | ||
createCharacteristic(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE) | NimBLEService | ||
createCharacteristic(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) | NimBLEService | ||
createCharacteristic(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) | NimBLEService | ||
dump() | NimBLEService | ||
getCharacteristic(const char *uuid, uint16_t instanceId=0) | NimBLEService | ||
getCharacteristic(const NimBLEUUID &uuid, uint16_t instanceId=0) | NimBLEService | ||
esp-nimble-cpp
- 1.3.2
+ 1.4.0
|
|||
bool | start () | ||
Builds the database of characteristics/descriptors for the service and registers it with the NimBLE stack. More... | |||
NimBLECharacteristic * | createCharacteristic (const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE) | ||
Create a new BLE Characteristic associated with this service. More... | |||
NimBLECharacteristic * | createCharacteristic (const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE) | ||
Create a new BLE Characteristic associated with this service. More... | |||
NimBLECharacteristic * | createCharacteristic (const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) | ||
Create a new BLE Characteristic associated with this service. More... | |||
NimBLECharacteristic * | createCharacteristic (const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=BLE_ATT_ATTR_MAX_LEN) | ||
Create a new BLE Characteristic associated with this service. More... | |||
void | addCharacteristic (NimBLECharacteristic *pCharacteristic) | ||
Add a characteristic to the service. More... | |||
uint32_t | -properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE |
+ properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE , |
+
+ |
+ | + | uint16_t | +max_len = BLE_ATT_ATTR_MAX_LEN |
@@ -260,6 +266,7 @@ Public Member Functions |
[in] | uuid | - The UUID of the characteristic. |
[in] | properties | - The properties of the characteristic. |
[in] | max_len | - The maximum length in bytes that the characteristic value can hold. |
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
, BLE_ATT_ATTR_MAX_LEN
[in] | uuid | - The UUID of the characteristic. |
[in] | properties | - The properties of the characteristic. |
[in] | max_len | - The maximum length in bytes that the characteristic value can hold. |
@@ -473,7 +476,7 @@ Static Public Member Functions |
Convienience operator to convert this UUID to string representation.
+Convenience operator to convert this UUID to string representation.
This allows passing NimBLEUUID to functions that accept std::string and/or or it's methods as a parameter.
Convert a UUID to its 128 bit representation.
-A UUID can be internally represented as 16bit, 32bit or the full 128bit. This method will convert 16 or 32 bit representations to the full 128bit.
A UUID can be internally represented as 16bit, 32bit or the full 128bit. This method will convert 16 or 32bit representations to the full 128bit.
const NimBLEUUID & NimBLEUUID::to16 | +( | +) | ++ |
Convert 128 bit UUID to its 16 bit representation.
+A UUID can be internally represented as 16bit, 32bit or the full 128bit. This method will convert a 128bit uuid to 16bit if it contains the ble base uuid.
+ esp-nimble-cpp
+ 1.4.0
+
+ |
+
+ esp-nimble-cpp
+ 1.4.0
+
+ |
+
NimBLE is a completely open source Bluetooth Low Energy stack produced by Apache.
It is more suited to resource constrained devices than bluedroid and has now been ported to the ESP32 by Espressif.
Arduino Library manager: Go to sketch
-> Include Library
-> Manage Libraries
and search for NimBLE and install.
-
Alternatively: Download as .zip and extract to Arduino/libraries folder, or in Arduino IDE from Sketch menu -> Include library -> Add .Zip library.
-
#include "NimBLEDevice.h"
at the beginning of your sketch.
-
Call NimBLEDevice::init
in setup
.
Tested and working with esp32-arduino in Arduino IDE and platform IO.
-
-
-
Download as .zip and extract or clone into the components folder in your esp-idf project.
Run menuconfig, go to Component config->Bluetooth
enable Bluetooth and in Bluetooth host
NimBLE.
@@ -124,7 +111,7 @@ v4.0+
Call NimBLEDevice::init
in app_main
.
The NimBLE component does not come with these versions of IDF (now included in 3.3.2 and above).
A backport that works in these versions has been created and is available here.
@@ -135,7 +122,7 @@ v3.2 & v3.3
This library is intended to be compatible with the original ESP32 BLE functions and types with minor changes.
For more advanced usage see Usage tips for more performance and optimization.
See the Refactored_original_examples in the examples folder for highlights of the differences with the original library.
-
More advanced examples highlighting many available features are in examples/NimBLE_Server, NimBLE_Client.
-
Beacon examples provided by beegee-tokyo are in examples/BLE_Beacon_Scanner, BLE_EddystoneTLM_Beacon, BLE_EddystoneURL_Beacon.
-
Change the settings in the nimconfig.h file to customize NimBLE to your project, such as increasing max connections (default is 3).
-
-
As an alternative to changing the configuration in nimconfig.h, Arduino command line and platformio.ini options are available.
- See the command line configuration options available in Command line config.
-
-
-
Come chat on gitter or open an issue at NimBLE-Arduino or esp-nimble-cpp
+ esp-nimble-cpp
+ 1.4.0
+
+ |
+
Extended advertising allows for much more capability and flexibility.
+Extended advertising is supported when enabled with the config option CONFIG_BT_NIMBLE_EXT_ADV
set to a value of 1. This is done in menuconfig under Component config > Bluetooth > NimBLE options > Enable extended advertising
, or set in nimconfig.h
for Arduino, or in build_flags
in PlatformIO.
When enabled the following will occur:
NimBLEScan::start
method will scan on both the 1M PHY and the coded PHY standards automatically.NimBLEClient::connect
will use the primary PHY the device is listening on, unless specified (see below).NimBLEClient::setConnectPhy
becomes available to specify the PHY's to connect with (default is all).NimBLEAdvertising
is no longer available for use and is replaced by NimBLEExtAdvertising
. NimBLEDevice::getAdvertising
will now return an instance of NimBLEExtAdvertising
.NimBLEAdvertisementData
is no longer available for use and is replaced by NimBLEExtAdvertisement
. This new class is where everything about the advertisement is configured, including the advertisement intervals and advertisement ended callback.
- esp-nimble-cpp
- 1.3.2
-
- |
-
CONFIG_BT_NIMBLE_MAX_CONNECTIONS
-
Sets the number of simultaneous connections (esp controller max is 9)
-
CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
-
Sets the default MTU size.
-
CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
-
Set the default device name
-
CONFIG_BT_NIMBLE_DEBUG
-
If defined, enables debug log messages from the NimBLE host
-
CONFIG_NIMBLE_CPP_DEBUG_LEVEL
-
Define to set the debug log message level from the NimBLE CPP Wrapper.
- If not defined it will use the same value as the Arduino core debug level.
- Values: 0 = NONE, 1 = ERROR, 2 = WARNING, 3 = INFO, 4+ = DEBUG
-
-
CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT
-
If defined, NimBLE host return codes will be printed as text in debug log messages.
-
CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT
-
If defined, GAP event codes will be printed as text in debug log messages.
-
CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT
-
If defined, advertisment types will be printed as text while scanning in debug log messages.
-
CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
-
Set the default appearance.
-
CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED
-
If defined, NimBLE Client functions will not be included.
-
CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED
-
If defined, NimBLE Scan functions will not be included.
-
CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED
-
If defined NimBLE Server functions will not be included.
-
CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED
-
If defined, NimBLE Advertising functions will not be included.
-
CONFIG_BT_NIMBLE_MAX_BONDS
-
Sets the number of devices allowed to store/bond with
-
CONFIG_BT_NIMBLE_MAX_CCCDS
-
Sets the maximum number of CCCD subscriptions to store
-
CONFIG_BT_NIMBLE_RPA_TIMEOUT
-
Sets the random address refresh time in seconds.
-
CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT
-
Set the number of msys blocks For prepare write & prepare responses. This may need to be increased if
- you are sending large blocks of data with a low MTU. E.g: 512 bytes with 23 MTU will fail.
-
CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
-
Sets the NimBLE stack to use external PSRAM will be loaded
-
CONFIG_BT_NIMBLE_PINNED_TO_CORE
-
Sets the core the NimBLE host stack will run on
-
CONFIG_BT_NIMBLE_TASK_STACK_SIZE
-
Set the task stack size for the NimBLE core.
-
Many improvements have been made to this library vs the original, this is a brief overview of the most significant changes.
- Refer to the class documentation for futher information on class specifics.
-
Many improvements have been made to this library vs the original, this is a brief overview of the most significant changes. Refer to the class documentation for further information on class specifics.
NimBLECharacteristic::setValue(const T &s)
- NimBLEDescriptor::setValue(const T &s)
+
NimBLEService::NimBLEService::createCharacteristic
takes a 3rd parameter to specify the maximum data size that can be stored by the characteristic. This allows for limiting the RAM use of the characteristic in cases where small amounts of data are expected.
+
Now use a template to accomodate standard and custom types/values.
-
Example
NimBLECharacteristic::setValue(const T &s)
NimBLEDescriptor::setValue(const T &s)
Now use the NimbleAttValue
class and templates to accommodate standard and custom types/values.
Example
This will send the struct to the recieving client when read or a notification sent.
-
NimBLECharacteristic::getValue
now takes an optional timestamp parameter which will update it's value with
- the time the last value was recieved. In addition an overloaded template has been added to retrieve the value
- as a type specified by the user.
-
This will send the struct to the receiving client when read or a notification sent.
+NimBLECharacteristic::getValue
now takes an optional timestamp parameter which will update it's value with the time the last value was received. In addition an overloaded template has been added to retrieve the value as a type specified by the user.
Example
Advertising will automatically start when a client disconnects.
-
Advertising will automatically start when a client disconnects.
A new method NimBLEServer::advertiseOnDisconnect(bool)
has been implemented to control this, true(default) = enabled.
NimBLEServer::removeService
takes an additional parameter bool deleteSvc
that if true will delete the service
- and all characteristics / descriptors belonging to it and invalidating any pointers to them.
-
If false the service is only removed from visibility by clients. The pointers to the service and
- it's characteristics / descriptors will remain valid and the service can be re-added in the future
- using NimBLEServer::addService
.
+
NimBLEServer::removeService
takes an additional parameter bool deleteSvc
that if true will delete the service and all characteristics / descriptors belonging to it and invalidating any pointers to them.
If false the service is only removed from visibility by clients. The pointers to the service and it's characteristics / descriptors will remain valid and the service can be re-added in the future using NimBLEServer::addService
.
Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a callback
- that is invoked when advertsing ends and takes a pointer to a NimBLEAdvertising
object (similar to the NimBLEScan::start
API).
-
This provides an opportunity to update the advertisment data if desired.
-
Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a callback that is invoked when advertising ends and takes a pointer to a NimBLEAdvertising
object (similar to the NimBLEScan::start
API).
This provides an opportunity to update the advertisement data if desired.
Also now returns a bool value to indicate if advertising successfully started or not.
NimBLERemoteCharacteristic::readValue(time_t\*, bool)
- NimBLERemoteDescriptor::readValue(bool)
-
Have been added as templates to allow reading the values as any specified type.
-
NimBLERemoteCharacteristic::readValue(time_t\*, bool)
NimBLERemoteDescriptor::readValue(bool)
Have been added as templates to allow reading the values as any specified type.
Example
NimBLERemoteCharacteristic::registerForNotify
- Has been deprecated as now the internally stored characteristic value is updated when notification/indication is recieved.
-
NimBLERemoteCharacteristic::subscribe
and NimBLERemoteCharacteristic::unsubscribe
have been implemented to replace it.
- A callback is no longer requred to get the most recent value unless timing is important. Instead, the application can call NimBLERemoteCharacteristic::getValue
to
- get the last updated value any time.
-
+
NimBLERemoteCharacteristic::registerForNotify
Has been deprecated as now the internally stored characteristic value is updated when notification/indication is received.
NimBLERemoteCharacteristic::subscribe
and NimBLERemoteCharacteristic::unsubscribe
have been implemented to replace it. A callback is no longer required to get the most recent value unless timing is important. Instead, the application can call NimBLERemoteCharacteristic::getValue
to get the last updated value any time.
The notifiy_callback
function is now defined as a std::function
to take advantage of using std::bind
to specifiy a class member function for the callback.
-
Example:
-
The notify_callback
function is now defined as a std::function
to take advantage of using std::bind
to specify a class member function for the callback.
Example:
NimBLERemoteCharacteristic::readValue
and NimBLERemoteCharacteristic::getValue
take an optional timestamp parameter which will update it's value with
- the time the last value was recieved.
-
NimBLERemoteCharacteristic::readValue
and NimBLERemoteCharacteristic::getValue
take an optional timestamp parameter which will update it's value with the time the last value was received.
-NimBLEClient::getService
+ NimBLERemoteCharacteristic::getDescriptor
NimBLERemoteService::getCharacteristic
- NimBLERemoteCharacteristic::getDescriptor
-
These methods will now check the respective vectors for the attribute object and, if not found, will retrieve (only)
- the specified attribute from the peripheral.
-
These methods will now check the respective vectors for the attribute object and, if not found, will retrieve (only) the specified attribute from the peripheral.
These changes allow more control for the user to manage the resources used for the attributes.
NimBLEClient::connect()
can now be called without an address or advertised device parameter. This will connect to the
- device with the address previously set when last connected or set with NimBLEDevice::setPeerAddress()
.
NimBLEClient::connect()
can now be called without an address or advertised device parameter. This will connect to the device with the address previously set when last connected or set with NimBLEDevice::setPeerAddress()
.
To reduce resource use all instances of std::map
have been replaced with std::vector
.
-
Use of FreeRTOS::Semaphore
has been removed as it was consuming too much ram, the related files have been left in place to accomodate application use.
-
Operators ==
, !=
and std::string
have been added to NimBLEAddress
and NimBLEUUID
for easier comparison and logging.
-
New constructor for NimBLEUUID(uint32_t, uint16_t, uint16_t, uint64_t)
added to lower memory use vs string construction. See: #21.
-
Security/pairing operations are now handled in the respective NimBLEClientCallbacks
and NimBLEServerCallbacks
classes, NimBLESecurity
(deprecated) remains for backward compatibility.
-
Configuration options have been added to add or remove debugging information, when disabled (default) significatly reduces binary size.
- In ESP-IDF the options are in menuconfig: Main menu -> ESP-NimBLE-cpp configuration
.
- For Arduino the options must be commented / uncommented in nimconfig.h.
-
-
-
To reduce resource use all instances of std::map
have been replaced with std::vector
.
Use of FreeRTOS::Semaphore
has been removed as it was consuming too much ram, the related files have been left in place to accomodate application use.
Operators ==
, !=
and std::string
have been added to NimBLEAddress
and NimBLEUUID
for easier comparison and logging.
New constructor for NimBLEUUID(uint32_t, uint16_t, uint16_t, uint64_t)
added to lower memory use vs string construction. See: #21.
Security/pairing operations are now handled in the respective NimBLEClientCallbacks
and NimBLEServerCallbacks
classes, NimBLESecurity
(deprecated) remains for backward compatibility.
Configuration options have been added to add or remove debugging information, when disabled (default) significantly reduces binary size. In ESP-IDF the options are in menuconfig: Main menu -> ESP-NimBLE-cpp configuration
.
+ For Arduino the options must be commented / uncommented in nimconfig.h.
Characteristics and descriptors now use the NimBLEAttValue
class to store their data. This is a polymorphic container class capable of converting to/from many different types efficiently. See: #286
All notable changes to this project will be documented in this file.
NimBLEClient::discoverAttributes
now returns a bool value to indicate success/failure.NimBLEServerCallbacks::onMTUChange
to onMtuChanged
in order to support porting code from original library.NimBLEAttValue
Class added to reduce and control RAM footprint of characteristic/descriptor values and support conversions from Arduino Strings and many other data types.NimBLEClient::getLastError
: Gets the error code of the last function call that produces a return code from the stack.NimBLECharacteristic::notify
: Overload method to send notifications/indications with custom values.NimBLECharacteristic::notify
: Overload method to send notifications/indications with custom values.onMtuChanged
.NimBLEClient::setDataLen
and NimBLEServer::setDataLen
: Data length extension support (IDF version >= 4.3.2 only)portMUX_TYPE
variable in the class definitions.NimBLEService
and changed the constructor no no longer accept numHandles
and inst_id
parameters.btInUse
.NimBLECharacteristic::removeDescriptor
: Dynamically remove a descriptor from a characterisic. Takes effect after all connections are closed and sends a service changed indication.NimBLECharacteristic::removeDescriptor
: Dynamically remove a descriptor from a characterisic. Takes effect after all connections are closed and sends a service changed indication.NimBLEService::removeCharacteristic
: Dynamically remove a characteristic from a service. Takes effect after all connections are closed and sends a service changed indicationNimBLEServerCallbacks::onMTUChange
: This is callback is called when the MTU is updated after connection with a client.NimBLEConnInfo
.NimBLEScan::clearDuplicateCache
: This can be used to reset the cache of advertised devices so they will be immediately discovered again.NimBLECharacteristicCallbacks::onSubscribe
Is now called after the connection is added to the vector.NimBLECharacteristic::getDescriptorByHandle
: Return the BLE Descriptor for the given handle.nimconfig.h
(Arduino) is now easier to use.NimBLEHIDDevice
Characteristics now use encryption, this resolves an issue with communicating with devices requiring encryption for HID devices.NimBLEDevice::setOwnAddrType
added to enable the use of random and random-resolvable addresses, by asukiaaa nimconfig.h
to support custom configuration in platformio. NimBLEClient::setValue
Now takes an extra bool parameter response
to enable the use of write with response (default = false). NimBLEClient::setValue
Now takes an extra bool parameter response
to enable the use of write with response (default = false). NimBLEClient::getCharacteristic(uint16_t handle)
Enabling the use of the characteristic handle to be used to find the NimBLERemoteCharacteristic object. nimconfig.h
for command line defined macros to support platformio config settings. NimBLEAdvertising::start
now returns a bool value to indicate success/failure. NimBLERemoteCharacteristic::subscribe
and NimBLERemoteCharacteristic::registerForNotify
will now set the callback regardless of the existance of the CCCD and return true unless the descriptor write operation failed. NimBLERemoteCharacteristic::subscribe
and NimBLERemoteCharacteristic::registerForNotify
will now set the callback regardless of the existance of the CCCD and return true unless the descriptor write operation failed. NimBLEClient::connect
would hang on the task block if no event arrived to unblock. NimBLEClient::connect
would hang on the task block if no event arrived to unblock. NimBLEAdvertising::start
Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a NimBLEAddress
constructor: NimBLEAddress()
produces an address of 00:00:00:00:00:00 type 0.First stable release.
All the original library functionality is complete and many extras added with full documentation.
diff --git a/md__migration_guide.html b/md__migration_guide.html index cd84f9e..3a05925 100644 --- a/md__migration_guide.html +++ b/md__migration_guide.html @@ -26,7 +26,7 @@This guide describes the required changes to existing projects migrating from the original bluedroid API to NimBLE.
-
The changes listed here are only the required changes that must be made, and a short overview of options for migrating existing applications.
-
For more information on the improvements and additions please refer to the class documentation and Improvements and updates
-
This guide describes the required changes to existing projects migrating from the original bluedroid API to NimBLE.
+The changes listed here are only the required changes that must be made, and a short overview of options for migrating existing applications.
+For more information on the improvements and additions please refer to the class documentation and Improvements and updates
All classes are accessible by including NimBLEDevice.h
in your application, no further headers need to be included.
+
All classes are accessible by including NimBLEDevice.h
in your application, no further headers need to be included.
(Mainly for Arduino) You may choose to include NimBLELog.h
in your application if you want to use the NIMBLE_LOGx
macros for debugging. These macros are used the same way as the ESP_LOGx
macros.
(Mainly for Arduino) You may choose to include NimBLELog.h
in your appplication if you want to use the NIMBLE_LOGx
macros for debugging.
- These macros are used the same way as the ESP_LOGx
macros.
-
-
Class names remain the same as the original with the addition of a "Nim" prefix.
- For example BLEDevice
is now NimBLEDevice
and BLEServer
is now NimBLEServer
etc.
+
Class names remain the same as the original with the addition of a "Nim" prefix. For example BLEDevice
is now NimBLEDevice
and BLEServer
is now NimBLEServer
etc.
For convenience definitions have been added to allow applications to use either name for all classes this means no class names need to be changed in existing code and makes migrating easier.
For convienience definitions have been added to allow applications to use either name for all classes
- this means no class names need to be changed in existing code and makes migrating easier.
-
-
BLEAddress
(NimBLEAddress
) When constructing an address the constructor now takes an *(optional)* uint8_t type
paramameter
- to specify the address type. Default is (0) Public static address.
-
For example BLEAddress addr(11:22:33:44:55:66, 1)
will create the address object with an address type of: 1 (Random).
-
As this paramameter is optional no changes to existing code are needed, it is mentioned here for information.
-
- BLEAddress::getNative
(NimBLEAddress::getNative
) returns a uint8_t pointer to the native address byte array.
- In this library the address bytes are stored in reverse order from the original library. This is due to the way
- the NimBLE stack expects addresses to be presented to it. All other functions such as toString
are
- not affected as the endian change is made within them.
-
+
BLEAddress
(NimBLEAddress
) When constructing an address the constructor now takes an *(optional)* uint8_t type
parameter to specify the address type. Default is (0) Public static address.
For example BLEAddress addr(11:22:33:44:55:66, 1)
will create the address object with an address type of: 1 (Random).
As this parameter is optional no changes to existing code are needed, it is mentioned here for information.
+BLEAddress::getNative
(NimBLEAddress::getNative
) returns a uint8_t pointer to the native address byte array. In this library the address bytes are stored in reverse order from the original library. This is due to the way the NimBLE stack expects addresses to be presented to it. All other functions such as toString
are not affected as the endian change is made within them.
Creating a BLEServer
instance is the same as original, no changes required. For example BLEDevice::createServer()
will work just as it did before.
-
BLEServerCallbacks
(NimBLEServerCallbacks
) has new methods for handling security operations.
- Note: All callback methods have default implementations which allows the application to implement only the methods applicable.
-
+
Creating a BLEServer
instance is the same as original, no changes required. For example BLEDevice::createServer()
will work just as it did before.
BLEServerCallbacks
(NimBLEServerCallbacks
) has new methods for handling security operations. Note: All callback methods have default implementations which allows the application to implement only the methods applicable.
Creating a BLEService
(NimBLEService
) instance is the same as original, no changes required.
- For example BLEServer::createService(SERVICE_UUID)
will work just as it did before.
-
Creating a BLEService
(NimBLEService
) instance is the same as original, no changes required. For example BLEServer::createService(SERVICE_UUID)
will work just as it did before.
BLEService::createCharacteristic
(NimBLEService::createCharacteristic
) is used the same way as originally except the properties parameter has changed.
-
BLEService::createCharacteristic
(NimBLEService::createCharacteristic
) is used the same way as originally except the properties parameter has changed.
When creating a characteristic the properties are now set with NIMBLE_PROPERTY::XXXX
instead of BLECharacteristic::XXXX
.
--BLECharacteristic::PROPERTY_READ |
+
- BLECharacteristic::PROPERTY_WRITE
-BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE
-NIMBLE_PROPERTY::READ |
+
- NIMBLE_PROPERTY::WRITE
-NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
-NIMBLE_PROPERTY::READ
+
- NIMBLE_PROPERTY::READ_ENC
- NIMBLE_PROPERTY::READ_AUTHEN
- NIMBLE_PROPERTY::READ_AUTHOR
- NIMBLE_PROPERTY::WRITE
- NIMBLE_PROPERTY::WRITE_NR
- NIMBLE_PROPERTY::WRITE_ENC
- NIMBLE_PROPERTY::WRITE_AUTHEN
- NIMBLE_PROPERTY::WRITE_AUTHOR
- NIMBLE_PROPERTY::BROADCAST
- NIMBLE_PROPERTY::NOTIFY
- NIMBLE_PROPERTY::INDICATE
-NIMBLE_PROPERTY::READ NIMBLE_PROPERTY::READ_ENC NIMBLE_PROPERTY::READ_AUTHEN NIMBLE_PROPERTY::READ_AUTHOR NIMBLE_PROPERTY::WRITE NIMBLE_PROPERTY::WRITE_NR NIMBLE_PROPERTY::WRITE_ENC NIMBLE_PROPERTY::WRITE_AUTHEN NIMBLE_PROPERTY::WRITE_AUTHOR NIMBLE_PROPERTY::BROADCAST NIMBLE_PROPERTY::NOTIFY NIMBLE_PROPERTY::INDICATE
Example:
Needs to be changed to:
BLECharacteristicCallbacks
(NimBLECharacteristicCallbacks
) has a new method NimBLECharacteristicCallbacks::onSubscribe
- which is called when a client subscribes to notifications/indications.
-
BLECharacteristicCallbacks
(NimBLECharacteristicCallbacks
) has a new method NimBLECharacteristicCallbacks::onSubscribe
which is called when a client subscribes to notifications/indications.
Note: All callback methods have default implementations which allows the application to implement only the methods applicable.
-
--BLECharacteristic::getData
+
-BLECharacteristic::getData
Has been removed from the API.
- Originally this returned a uint8_t*
to the internal data, which is volatile.
- To prevent possibly throwing exceptions this has been removed and NimBLECharacteristic::getValue
should be used
- to get a copy of the data first which can then safely be accessed via pointer.
-
Has been removed from the API. Originally this returned a uint8_t*
to the internal data, which is volatile. To prevent possibly throwing exceptions this has been removed and NimBLECharacteristic::getValue
should be used to get a copy of the data first which can then safely be accessed via pointer.
Example:
Alternatively use the getValue
template:
The previous method BLECharacteristic::addDescriptor()
has been removed.
-
Descriptors are now created using the NimBLECharacteristic::createDescriptor
method.
BLE2902 or NimBLE2902 class has been removed.
- NimBLE automatically creates the 0x2902 descriptor if a characteristic has a notification or indication property assigned to it.
-
It was no longer useful to have a class for the 0x2902 descriptor as a new callback NimBLECharacteristicCallbacks::onSubscribe
was added
- to handle callback functionality and the client subscription status is handled internally.
-
Descriptors are now created using the NimBLECharacteristic::createDescriptor
method.
BLE2902 or NimBLE2902 class has been removed. NimBLE automatically creates the 0x2902 descriptor if a characteristic has a notification or indication property assigned to it.
+It was no longer useful to have a class for the 0x2902 descriptor as a new callback NimBLECharacteristicCallbacks::onSubscribe
was added to handle callback functionality and the client subscription status is handled internally.
Note: Attempting to create a 0x2902 descriptor will trigger an assert to notify the error, allowing the creation of it would cause a fault in the NimBLE stack.
-All other descriptors are now created just as characteristics are by using the NimBLECharacteristic::createDescriptor
method (except 0x2904, see below).
- Which are defined as:
All other descriptors are now created just as characteristics are by using the NimBLECharacteristic::createDescriptor
method (except 0x2904, see below). Which are defined as:
Would create a descriptor with the UUID 0xABCD, publicly readable but only writable if paired/bonded (encrypted) and has a max value length of 25 bytes.
-
For the 0x2904, there is a special class that is created when you call `createDescriptor("2904").
-The pointer returned is of the base class NimBLEDescriptor
but the call will create the derived class of NimBLE2904
so you must cast the returned pointer to
- NimBLE2904
to access the specific class methods.
The pointer returned is of the base class NimBLEDescriptor
but the call will create the derived class of NimBLE2904
so you must cast the returned pointer to NimBLE2904
to access the specific class methods.
Security is set on the characteristic or descriptor properties by applying one of the following:
--NIMBLE_PROPERTY::READ_ENC
+
- NIMBLE_PROPERTY::READ_AUTHEN
- NIMBLE_PROPERTY::READ_AUTHOR
- NIMBLE_PROPERTY::WRITE_ENC
- NIMBLE_PROPERTY::WRITE_AUTHEN
- NIMBLE_PROPERTY::WRITE_AUTHOR
-NIMBLE_PROPERTY::READ_ENC NIMBLE_PROPERTY::READ_AUTHEN NIMBLE_PROPERTY::READ_AUTHOR NIMBLE_PROPERTY::WRITE_ENC NIMBLE_PROPERTY::WRITE_AUTHEN NIMBLE_PROPERTY::WRITE_AUTHOR
When a peer wants to read or write a characteristic or descriptor with any of these properties applied
- it will trigger the pairing process. By default the "just-works" pairing will be performed automatically.
- This can be changed to use passkey authentication or numeric comparison. See Security API for details.
-
+
+
When a peer wants to read or write a characteristic or descriptor with any of these properties applied it will trigger the pairing process. By default the "just-works" pairing will be performed automatically.
+This can be changed to use passkey authentication or numeric comparison. See Security API for details.
Advertising works the same as the original API except:
-
--BLEAdvertising::setMinPreferred
-
- BLEAdvertising::setMaxPreferred
-
These methods were found to not provide useful functionality and consumed valuable advertising space (6 bytes of 31) if used unknowingly.
- If you wish to advertise these parameters you can still do so manually via BLEAdvertisementData::addData
(NimBLEAdvertisementData::addData
).
-
-
Calling NimBLEAdvertising::setAdvertisementData
will entirely replace any data set with NimBLEAdvertising::addServiceUUID
, or
- NimBLEAdvertising::setAppearance
or similar methods. You should set all the data you wish to advertise within the NimBLEAdvertisementData
instead.
-
Calling NimBLEAdvertising::setScanResponseData
without also calling NimBLEAdvertising::setAdvertisementData
will have no effect.
- When using custom scan response data you must also use custom advertisement data.
- No longer true as of release 1.2.0 and above, custom scan response is now supported without custom advertisement data.
-
+
Advertising works the same as the original API except:
+Calling NimBLEAdvertising::setAdvertisementData
will entirely replace any data set with NimBLEAdvertising::addServiceUUID
, or NimBLEAdvertising::setAppearance
or similar methods. You should set all the data you wish to advertise within the NimBLEAdvertisementData
instead.
-BLEAdvertising::start (NimBLEAdvertising::start)
Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a callback
- that is invoked when advertsing ends and takes a pointer to a NimBLEAdvertising
object (similar to the NimBLEScan::start
API).
-
This provides an opportunity to update the advertisment data if desired.
-
+
Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a callback that is invoked when advertising ends and takes a pointer to a NimBLEAdvertising
object (similar to the NimBLEScan::start
API). This provides an opportunity to update the advertisement data if desired.
Client instances are created just as before with BLEDevice::createClient
(NimBLEDevice::createClient
).
-
Multiple client instances can be created, up to the maximum number of connections set in the config file (default: 3).
- To delete a client instance you must use NimBLEDevice::deleteClient
.
-
BLEClient::connect
(NimBLEClient::connect
) Has had it's parameters altered.
- Defined as:
-NimBLEClient::connect(bool deleteServices = true);
+
- NimBLEClient::connect(NimBLEAdvertisedDevice* device, bool deleteServices = true);
- NimBLEClient::connect(NimBLEAddress address, bool deleteServices = true);
-Client instances are created just as before with
+BLEDevice::createClient
(NimBLEDevice::createClient
).Multiple client instances can be created, up to the maximum number of connections set in the config file (default: 3). To delete a client instance you must use
+NimBLEDevice::deleteClient
.
BLEClient::connect
(NimBLEClient::connect
) Has had it's parameters altered. Defined as:+-NimBLEClient::connect(bool deleteServices = true); NimBLEClient::connect(NimBLEAdvertisedDevice* device, bool deleteServices = true); NimBLEClient::connect(NimBLEAddress address, bool deleteServices = true);
The type parameter has been removed and a new bool parameter has been added to indicate if the client should
- delete the attribute database previously retrieved (if applicable) for the peripheral, default value is true.
- If set to false the client will use the attribute database it retrieved from the peripheral when previously connected.
- This allows for faster connections and power saving if the devices dropped connection and are reconnecting.
-
+The type parameter has been removed and a new bool parameter has been added to indicate if the client should delete the attribute database previously retrieved (if applicable) for the peripheral, default value is true.
+If set to false the client will use the attribute database it retrieved from the peripheral when previously connected.
+This allows for faster connections and power saving if the devices dropped connection and are reconnecting.
--+
BLEClient::getServices
(NimBLEClient::getServices
)
-
BLEClient::getServices
(NimBLEClient::getServices
)This method now takes an optional (bool) parameter to indicate if the services should be retrieved from the server (true) or
- the currently known database returned (false : default).
- Also now returns a pointer tostd::vector
instead ofstd::map
.
-
+This method now takes an optional (bool) parameter to indicate if the services should be retrieved from the server (true) or the currently known database returned (false : default). Also now returns a pointer to
-std::vector
instead ofstd::map
.
Removed: the automatic discovery of all peripheral attributes as they consumed time and resources for data
-
- the user may not be interested in.
-Added:
NimBLEClient::discoverAttributes
for the user to discover all the peripheral attributes
- to replace the the removed automatic functionality.
-
+Removed: the automatic discovery of all peripheral attributes as they consumed time and resources for data the user may not be interested in.
+Added:
-NimBLEClient::discoverAttributes
for the user to discover all the peripheral attributes to replace the the removed automatic functionality.
+
Remote Services
-+
BLERemoteService
(NimBLERemoteService
) Methods remain mostly unchanged with the exceptions of:
-
BLERemoteService
(NimBLERemoteService
) Methods remain mostly unchanged with the exceptions of:BLERemoteService::getCharacteristicsByHandle
This method has been removed.
-
-
BLERemoteService::getCharacteristics
(NimBLERemoteService::getCharacteristics
)This method now takes an optional (bool) parameter to indicate if the characteristics should be retrieved from the server (true) or
- the currently known database returned (false : default).
- Also now returns a pointer tostd::vector
instead ofstd::map
.
-
+This method now takes an optional (bool) parameter to indicate if the characteristics should be retrieved from the server (true) or the currently known database returned (false : default). Also now returns a pointer to
-std::vector
instead ofstd::map
.
+
Remote Characteristics
-+
BLERemoteCharacteristic
(NimBLERemoteCharacteristic
) There have been a few changes to the methods in this class:
-
BLERemoteCharacteristic
(NimBLERemoteCharacteristic
) There have been a few changes to the methods in this class:-+
BLERemoteCharacteristic::writeValue
(NimBLERemoteCharacteristic::writeValue
)
-BLERemoteCharacteristic::registerForNotify
(NimBLERemoteCharacteristic::registerForNotify
)
-
BLERemoteCharacteristic::writeValue
(NimBLERemoteCharacteristic::writeValue
)BLERemoteCharacteristic::registerForNotify
(NimBLERemoteCharacteristic::registerForNotify
)Now return true or false to indicate success or failure so you can choose to disconnect or try again.
-
--+
BLERemoteCharacteristic::registerForNotify
(NimBLERemoteCharacteristic::registerForNotify
)
-
BLERemoteCharacteristic::registerForNotify
(NimBLERemoteCharacteristic::registerForNotify
)Is now deprecated.
--+
NimBLERemoteCharacteristic::subscribe
-NimBLERemoteCharacteristic::unsubscribe
-Is now deprecated.
+
NimBLERemoteCharacteristic::subscribe
NimBLERemoteCharacteristic::unsubscribe
Are the new methods added to replace it.
-
--+
BLERemoteCharacteristic::readUInt8
(NimBLERemoteCharacteristic::readUInt8
)
-BLERemoteCharacteristic::readUInt16
(NimBLERemoteCharacteristic::readUInt16
)
-BLERemoteCharacteristic::readUInt32
(NimBLERemoteCharacteristic::readUInt32
)
-BLERemoteCharacteristic::readFloat
(NimBLERemoteCharacteristic::readFloat
)
-
BLERemoteCharacteristic::readUInt8
(NimBLERemoteCharacteristic::readUInt8
)BLERemoteCharacteristic::readUInt16
(NimBLERemoteCharacteristic::readUInt16
)BLERemoteCharacteristic::readUInt32
(NimBLERemoteCharacteristic::readUInt32
)BLERemoteCharacteristic::readFloat
(NimBLERemoteCharacteristic::readFloat
)Are deprecated a template: NimBLERemoteCharacteristic::readValue<type>(time_t*, bool) has been added to replace them.
-
+Are deprecated a template:
NimBLERemoteCharacteristic::readValue<type\>(time_t\*, bool)
has been added to replace them.
--+
BLERemoteCharacteristic::readRawData
-
BLERemoteCharacteristic::readRawData
Has been removed from the API
- Originally it stored an unnecessary copy of the data and was returning auint8_t
pointer to volatile internal data.
- The user application should useNimBLERemoteCharacteristic::readValue
orNimBLERemoteCharacteristic::getValue
.
- To obatain a copy of the data, then cast the returned std::string to the type required such as:
-std::string value = pChr->readValue();+Has been removed from the API Originally it stored an unnecessary copy of the data and was returning a
uint8_t
pointer to volatile internal data. The user application should useNimBLERemoteCharacteristic::readValue
orNimBLERemoteCharacteristic::getValue
. To obtain a copy of the data, then cast the returned std::string to the type required such as:std::string value = pChr->readValue();uint8_t *data = (uint8_t*)value.data();Alternatively use the
readValue
template:my_struct_t myStruct = pChr->readValue<my_struct_t>();
--+
BLERemoteCharacteristic::getDescriptors
(NimBLERemoteCharacteristic::getDescriptors
)
-
BLERemoteCharacteristic::getDescriptors
(NimBLERemoteCharacteristic::getDescriptors
)This method now takes an optional (bool) parameter to indicate if the descriptors should be retrieved from the server (true) or
- the currently known database returned (false : default).
- Also now returns a pointer tostd::vector
instead ofstd::map
.
-
+This method now takes an optional (bool) parameter to indicate if the descriptors should be retrieved from the server (true) or the currently known database returned (false : default). Also now returns a pointer to
-std::vector
instead ofstd::map
.
+
Client Security
-The client will automatically initiate security when the peripheral responds that it's required.
- The default configuration will use "just-works" pairing with no bonding, if you wish to enable bonding see below.
-
+The client will automatically initiate security when the peripheral responds that it's required. The default configuration will use "just-works" pairing with no bonding, if you wish to enable bonding see below.
-
+
Security API
Security operations have been moved to
-BLEDevice
(NimBLEDevice
).Also security callback methods are now incorporated in the
+NimBLEServerCallbacks
/NimBLEClientCallbacks
classes.
- However backward compatibility with the originalBLESecurity
(NimBLESecurity
) class is retained to minimize application code changes.
-Also security callback methods are now incorporated in the
NimBLEServerCallbacks
/NimBLEClientCallbacks
classes. However backward compatibility with the originalBLESecurity
(NimBLESecurity
) class is retained to minimize application code changes.The callback methods are:
-+
bool onConfirmPIN(uint32_t pin)
-
bool onConfirmPIN(uint32_t pin)
Receives the pin when using numeric comparison authentication,
return true;
to accept.
-
--+
uint32_t onPassKeyRequest()
-
uint32_t onPassKeyRequest()
For server callback; return the passkey expected from the client.
- For client callback; return the passkey to send to the server.
-
+For server callback; return the passkey expected from the client. For client callback; return the passkey to send to the server.
-+
void onAuthenticationComplete(ble_gap_conn_desc\* desc)
-
void onAuthenticationComplete(ble_gap_conn_desc\* desc)
Authentication complete, success or failed information is in
desc
.
-
Security settings and IO capabilities are now set by the following methods of NimBLEDevice.
-+
NimBLEDevice::setSecurityAuth(bool bonding, bool mitm, bool sc)
-NimBLEDevice::setSecurityAuth(uint8_t auth_req)
-
NimBLEDevice::setSecurityAuth(bool bonding, bool mitm, bool sc)
NimBLEDevice::setSecurityAuth(uint8_t auth_req)
Sets the authorization mode for this device.
-
- +Sets the Input/Output capabilities of this device.
-
- +If we are the initiator of the security procedure this sets the keys we will distribute.
-
- +Sets the keys we are willing to accept from the peer during pairing.
-
-
+
Arduino Configuration
-Unlike the original library pre-packaged in the esp32-arduino, this library has all the configuration
-
- options that are normally set in menuconfig available in the src/nimconfig.h file.
-This allows Arduino users to fully customize the build, such as increasing max connections
+
- or loading the BLE stack into external PSRAM.
-Unlike the original library pre-packaged in the esp32-arduino, this library has all the configuration options that are normally set in menuconfig available in the src/nimconfig.h file.
+This allows Arduino users to fully customize the build, such as increasing max connections or loading the BLE stack into external PSRAM.
For details on the options, they are fully commented in nimconfig.h
-
At the top of your application file add #include NimBLEDevice.h
, this is the only header required and provides access to all classes.
In order to perform any BLE tasks you must first initialize the library, this prepares the NimBLE stack to be ready for commands.
BLE servers perform 2 tasks, they advertise their existance for clients to find them and they provide services which contain information for the connecting client.
+
BLE servers perform 2 tasks, they advertise their existence for clients to find them and they provide services which contain information for the connecting client.
After initializing the NimBLE stack we create a server by calling NimBLEDevice::createServer()
, this will create a server instance and return a pointer to it.
Now we have NimBLE initialized, a server created and a service assigned to it.
We can't do much with this yet so now we should add a characteristic to the service to provide some data.
Next we call NimBLEService::createCharacteristic
which returns a pointer to an instance of NimBLECharacteristic
, and takes two parameters: A uuid
to specify the UUID of the characteristic and a bitmask of the properties we want applied to it.
+
Next we call NimBLEService::createCharacteristic
which returns a pointer to an instance of NimBLECharacteristic
, and takes two parameters: A uuid
to specify the UUID of the characteristic and a bitmask of the properties we want applied to it.
Just as with the service UUID we will use a simple 16 bit value: 1234.
The properties bitmask is a little more involved. It is a combination of NIMBLE_PROPERTY:: values.
@@ -177,10 +177,10 @@ Creating a Server
All that's left to do now is start the sevice, give the characteristic a value and start advertising for clients.
+
All that's left to do now is start the service, give the characteristic a value and start advertising for clients.
Fist we start the service by calling NimBLEService::start()
.
Next we need to call NimBLECharacteristic::setValue
to set the characteristic value that the client will read.
+
Next we need to call NimBLECharacteristic::setValue
to set the characteristic value that the client will read.
There are many different types you can send as parameters for the value but for this example we will use a simple string. pCharacteristic->setValue("Hello BLE");
Next we need to advertise for connections.
@@ -217,7 +217,7 @@ Creating a Server
BLE clients perform 2 tasks, they scan for advertising servers and form connections to them to read and write to their characteristics/descriptors.
After initializing the NimBLE stack we create a scan instance by calling NimBLEDevice::getScan()
, this will create a NimBLEScan
instance and return a pointer to it.
@@ -247,7 +247,7 @@ Creating a Client
To do this we iterate through the results and check if any of the devices found are advertising the service we want ABCD
.
Each result in NimBLEScanResults
is a NimBLEAdvertisedDevice
instance that we can access data from.
We will check each device found for the ABCD
service by calling NimBLEAdvertisedDevice::isAdvertisingService
.
+
We will check each device found for the ABCD
service by calling NimBLEAdvertisedDevice::isAdvertisingService
.
This takes an instance of NimBLEUUID
as a parameter so we will need to create one.
The code for this looks like:
To do this we call NimBLEDevice::createClient
which creates the NimBLEClient
instance and returns a pointer to it.
After this we call NimBLEClient::connect
to connect to the advertiser.
+
After this we call NimBLEClient::connect
to connect to the advertiser.
This takes a pointer to the NimBLEAdvertisedDevice
and returns true
if successful.
Lets do that now:
As shown, the call to NimBLEClient::connect
should have it's eturn value tested to make sure it succeeded before proceeding to get data.
+
As shown, the call to NimBLEClient::connect
should have it's return value tested to make sure it succeeded before proceeding to get data.
Next we need to access the servers data by asking it for the service and the characteristic we are interested in, then read the characteristic value.
To do this we call NimBLEClient::getService
, which takes as a parameter the UUID of the service and returns
a pointer an instance to NimBLERemoteService
or nullptr
if the service was not found.
Next we will call NimBLERemoteService::getCharateristic
which takes as a parameter the UUID of the service and returns
+
Next we will call NimBLERemoteService::getCharacteristic
which takes as a parameter the UUID of the service and returns
a pointer to an instance of NimBLERemoteCharacteristic
or nullptr
if not found.
Finally we will read the characteristic value with NimBLERemoteCharacteristic::readValue()
.
+
Finally we will read the characteristic value with NimBLERemoteCharacteristic::readValue()
.
Here is what that looks like:
When commands are sent to the stack from a differnt core they can experience delays in execution.
+
When commands are sent to the stack from a different core they can experience delays in execution.
This library detects this and invokes the esp32 IPC to reroute these commands through the correct core but this also increases overhead.
Therefore it is highly recommended to create tasks for BLE to run on the same core, the macro CONFIG_BT_NIMBLE_PINNED_TO_CORE
can be used to set the core.
When a client instance has been created and has connected to a peer device and it has retrieved service/characteristic information it will store that data for the life of the client instance.
If you are periodically connecting to the same devices and you have deleted the client instance or the services when connecting again it will cause a retrieval of that information from the peer again.
This results in significant energy drain on the battery of the devices, fragments heap, and reduces connection performance.
Client instances in this library use approximately 20% of the original bluedroid library, deleteing them will provide much less gain than it did before.
+
Client instances in this library use approximately 20% of the original bluedroid library, deleting them will provide much less gain than it did before.
It is recommended to retain the client instance in cases where the time between connecting to the same device is less than 5 minutes.
As a client the use of NimBLEClient::getServices
or NimBLERemoteService::getCharacteristics
and using true
for the parameter should be limited to devices that are not known.
Instead NimBLEClient::getService(NimBLEUUID)
or NimBLERemoteService::getCharacteristic(NimBLEUUID)
should be used to access certain attributes that are useful to the application.
This reduces energy consumed, heap allocated, connection time and improves overall efficiency.
Many user issues can be avoided by checking if a function returned successfully, by either testing for true/false such as when calling NimBLEClient::connect
,
+
Many user issues can be avoided by checking if a function returned successfully, by either testing for true/false such as when calling NimBLEClient::connect
,
or nullptr such as when calling NimBLEClient::getService
. The latter being a must, as calling a method on a nullptr will surely result in a crash.
Most of the functions in this library return something that should be checked before proceeding.
No code is bug free and unit testing will not find them all on it's own. If you encounter a bug, please report it along with any logs and decoded backtrace if applicable.
Best efforts will be made to correct any errors ASAP.
diff --git a/menudata.js b/menudata.js
index 0f81b86..5e88403 100644
--- a/menudata.js
+++ b/menudata.js
@@ -40,6 +40,7 @@ var menudata={children:[
{text:"g",url:"functions_g.html#index_g"},
{text:"h",url:"functions_h.html#index_h"},
{text:"i",url:"functions_i.html#index_i"},
+{text:"l",url:"functions_l.html#index_l"},
{text:"m",url:"functions_m.html#index_m"},
{text:"n",url:"functions_n.html#index_n"},
{text:"o",url:"functions_o.html#index_o"},
@@ -60,6 +61,7 @@ var menudata={children:[
{text:"g",url:"functions_func_g.html#index_g"},
{text:"h",url:"functions_func_h.html#index_h"},
{text:"i",url:"functions_func_i.html#index_i"},
+{text:"l",url:"functions_func_l.html#index_l"},
{text:"m",url:"functions_func_m.html#index_m"},
{text:"n",url:"functions_func_n.html#index_n"},
{text:"o",url:"functions_func_o.html#index_o"},
diff --git a/navtreedata.js b/navtreedata.js
index 5a4e435..fa9ea27 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -26,95 +26,104 @@ var NAVTREE =
[
[ "esp-nimble-cpp", "index.html", [
[ "Overview", "index.html", [
- [ "What is NimBLE?", "index.html#autotoc_md33", null ],
- [ "Arduino Installation", "index.html#autotoc_md34", null ],
- [ "ESP-IDF Installation", "index.html#autotoc_md35", null ],
- [ "Using", "index.html#autotoc_md38", null ],
- [ "Need help? Have a question or suggestion?", "index.html#autotoc_md41", null ],
- [ "Acknowledgments", "index.html#autotoc_md42", null ]
+ [ "What is NimBLE?", "index.html#autotoc_md42", null ],
+ [ "ESP-IDF Installation", "index.html#autotoc_md43", null ],
+ [ "Using", "index.html#autotoc_md46", null ],
+ [ "Need help? Have a question or suggestion?", "index.html#autotoc_md47", null ],
+ [ "Acknowledgments", "index.html#autotoc_md48", null ]
] ],
- [ "Changelog", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html", [
- [ "[1.3.2] - 2022-01-15", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md1", [
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md2", null ],
- [ "Added", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md3", null ],
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md4", null ]
+ [ "Changelog", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html", [
+ [ "[1.4.0] - 2022-07-31", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md1", [
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md2", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md3", null ],
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md4", null ]
] ],
- [ "[1.3.1] - 2021-08-04", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md5", [
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md6", null ]
+ [ "[1.3.3] - 2022-02-15", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md5", [
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md6", null ],
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md7", null ]
] ],
- [ "[1.3.0] - 2021-08-02", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md7", [
- [ "Added", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md8", null ],
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md9", null ],
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md10", null ]
+ [ "[1.3.2] - 2022-01-15", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md8", [
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md9", null ],
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md10", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md11", null ]
] ],
- [ "[1.2.0] - 2021-02-08", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md11", [
- [ "Added", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md12", null ],
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md13", null ],
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md14", null ]
+ [ "[1.3.1] - 2021-08-04", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md12", [
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md13", null ]
] ],
- [ "[1.1.0] - 2021-01-20", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md15", [
- [ "Added", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md16", null ],
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md17", null ],
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md18", null ]
+ [ "[1.3.0] - 2021-08-02", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md14", [
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md15", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md16", null ],
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md17", null ]
] ],
- [ "[1.0.2] - 2020-09-13", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md19", [
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md20", null ]
+ [ "[1.2.0] - 2021-02-08", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md18", [
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md19", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md20", null ],
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md21", null ]
] ],
- [ "[1.0.1] - 2020-09-02", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md21", [
- [ "Added", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md22", null ],
- [ "Changed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md23", null ],
- [ "Fixed", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md24", null ]
+ [ "[1.1.0] - 2021-01-20", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md22", [
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md23", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md24", null ],
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md25", null ]
] ],
- [ "[1.0.0] - 2020-08-22", "md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md25", null ]
+ [ "[1.0.2] - 2020-09-13", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md26", [
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md27", null ]
+ ] ],
+ [ "[1.0.1] - 2020-09-02", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md28", [
+ [ "Added", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md29", null ],
+ [ "Changed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md30", null ],
+ [ "Fixed", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md31", null ]
+ ] ],
+ [ "[1.0.0] - 2020-08-22", "md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md32", null ]
+ ] ],
+ [ "Bluetooth 5.x features", "md__bluetooth_5_features.html", [
+ [ "About extended advertising", "md__bluetooth_5_features.html#autotoc_md34", null ],
+ [ "Enabling extended advertising", "md__bluetooth_5_features.html#autotoc_md35", null ]
] ],
- [ "Arduino command line and platformio config options", "md__command_line_config.html", null ],
[ "Improvements and updates", "md__improvements_and_updates.html", [
- [ "Server", "md__improvements_and_updates.html#autotoc_md28", null ],
- [ "Advertising", "md__improvements_and_updates.html#autotoc_md29", null ],
- [ "Client", "md__improvements_and_updates.html#autotoc_md30", null ],
- [ "General", "md__improvements_and_updates.html#autotoc_md31", null ]
+ [ "Server", "md__improvements_and_updates.html#autotoc_md37", null ],
+ [ "Advertising", "md__improvements_and_updates.html#autotoc_md38", null ],
+ [ "Client", "md__improvements_and_updates.html#autotoc_md39", null ],
+ [ "General", "md__improvements_and_updates.html#autotoc_md40", null ]
] ],
[ "Migrating from Bluedroid to NimBLE", "md__migration_guide.html", [
- [ "General Information", "md__migration_guide.html#autotoc_md44", [
- [ "Header Files", "md__migration_guide.html#autotoc_md45", null ],
- [ "Class Names", "md__migration_guide.html#autotoc_md46", null ],
- [ "BLE Addresses", "md__migration_guide.html#autotoc_md47", null ]
+ [ "General Information", "md__migration_guide.html#autotoc_md50", [
+ [ "Header Files", "md__migration_guide.html#autotoc_md51", null ],
+ [ "Class Names", "md__migration_guide.html#autotoc_md52", null ],
+ [ "BLE Addresses", "md__migration_guide.html#autotoc_md53", null ]
] ],
- [ "Server API", "md__migration_guide.html#autotoc_md48", [
- [ "Services", "md__migration_guide.html#autotoc_md49", null ],
- [ "Characteristics", "md__migration_guide.html#autotoc_md50", [
- [ "v4.0+", "index.html#autotoc_md36", null ],
- [ "v3.2 & v3.3", "index.html#autotoc_md37", null ],
- [ "Arduino specific", "index.html#autotoc_md39", null ],
- [ "Arduino command line and platformio", "index.html#autotoc_md40", null ],
- [ "Originally", "md__migration_guide.html#autotoc_md51", null ],
- [ "Is Now", "md__migration_guide.html#autotoc_md52", null ],
- [ "The full list of properties", "md__migration_guide.html#autotoc_md53", null ]
+ [ "Server API", "md__migration_guide.html#autotoc_md54", [
+ [ "Services", "md__migration_guide.html#autotoc_md55", null ],
+ [ "Characteristics", "md__migration_guide.html#autotoc_md56", [
+ [ "v4.0+", "index.html#autotoc_md44", null ],
+ [ "v3.2 & v3.3", "index.html#autotoc_md45", null ],
+ [ "Originally", "md__migration_guide.html#autotoc_md57", null ],
+ [ "Is Now", "md__migration_guide.html#autotoc_md58", null ],
+ [ "The full list of properties", "md__migration_guide.html#autotoc_md59", null ]
] ],
- [ "Descriptors", "md__migration_guide.html#autotoc_md54", null ],
- [ "Server Security", "md__migration_guide.html#autotoc_md57", null ]
+ [ "Descriptors", "md__migration_guide.html#autotoc_md60", null ],
+ [ "Server Security", "md__migration_guide.html#autotoc_md63", null ]
] ],
- [ "Advertising API", "md__migration_guide.html#autotoc_md58", null ],
- [ "Client API", "md__migration_guide.html#autotoc_md59", [
- [ "Remote Services", "md__migration_guide.html#autotoc_md60", null ],
- [ "Remote Characteristics", "md__migration_guide.html#autotoc_md61", null ],
- [ "Client Security", "md__migration_guide.html#autotoc_md62", null ]
+ [ "Advertising API", "md__migration_guide.html#autotoc_md64", null ],
+ [ "Client API", "md__migration_guide.html#autotoc_md65", [
+ [ "Remote Services", "md__migration_guide.html#autotoc_md66", null ],
+ [ "Remote Characteristics", "md__migration_guide.html#autotoc_md67", null ],
+ [ "Client Security", "md__migration_guide.html#autotoc_md68", null ]
] ],
- [ "Security API", "md__migration_guide.html#autotoc_md63", null ],
- [ "Arduino Configuration", "md__migration_guide.html#autotoc_md64", null ]
+ [ "Security API", "md__migration_guide.html#autotoc_md69", null ],
+ [ "Arduino Configuration", "md__migration_guide.html#autotoc_md70", null ]
] ],
[ "New User Guide", "md__new_user_guide.html", [
- [ "Include Files", "md__new_user_guide.html#autotoc_md66", null ],
- [ "Using the Library", "md__new_user_guide.html#autotoc_md67", null ],
- [ "Creating a Server", "md__new_user_guide.html#autotoc_md68", null ],
- [ "Creating a Client", "md__new_user_guide.html#autotoc_md69", null ]
+ [ "Include Files", "md__new_user_guide.html#autotoc_md72", null ],
+ [ "Using the Library", "md__new_user_guide.html#autotoc_md73", null ],
+ [ "Creating a Server", "md__new_user_guide.html#autotoc_md74", null ],
+ [ "Creating a Client", "md__new_user_guide.html#autotoc_md75", null ]
] ],
[ "Usage Tips", "md__usage_tips.html", [
- [ "Put BLE functions in a task running on the NimBLE stack core", "md__usage_tips.html#autotoc_md71", null ],
- [ "Do not delete client instances unless necessary or unused", "md__usage_tips.html#autotoc_md72", null ],
- [ "Only retrieve the services and characteriscs needed", "md__usage_tips.html#autotoc_md73", null ],
- [ "Check return values", "md__usage_tips.html#autotoc_md74", null ],
- [ "There will be bugs - please report them", "md__usage_tips.html#autotoc_md75", null ]
+ [ "Put BLE functions in a task running on the NimBLE stack core", "md__usage_tips.html#autotoc_md77", null ],
+ [ "Do not delete client instances unless necessary or unused", "md__usage_tips.html#autotoc_md78", null ],
+ [ "Only retrieve the services and characteristics needed", "md__usage_tips.html#autotoc_md79", null ],
+ [ "Check return values", "md__usage_tips.html#autotoc_md80", null ],
+ [ "There will be bugs - please report them", "md__usage_tips.html#autotoc_md81", null ]
] ],
[ "Deprecated List", "deprecated.html", null ],
[ "Todo List", "todo.html", null ],
@@ -141,8 +150,8 @@ var NAVTREE =
var NAVTREEINDEX =
[
"_h_i_d_keyboard_types_8h_source.html",
-"class_nim_b_l_e_descriptor.html#ac54fd0830ceb64b91037b623dbc427b5",
-"functions_func_~.html"
+"class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3",
+"class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex0.js b/navtreeindex0.js
index 63513ce..fe87cbf 100644
--- a/navtreeindex0.js
+++ b/navtreeindex0.js
@@ -6,25 +6,27 @@ var NAVTREEINDEX0 =
"_nim_b_l_e_address_8h_source.html":[10,0,0,3],
"_nim_b_l_e_advertised_device_8h_source.html":[10,0,0,4],
"_nim_b_l_e_advertising_8h_source.html":[10,0,0,5],
-"_nim_b_l_e_beacon_8h_source.html":[10,0,0,6],
-"_nim_b_l_e_characteristic_8h_source.html":[10,0,0,7],
-"_nim_b_l_e_client_8h_source.html":[10,0,0,8],
-"_nim_b_l_e_conn_info_8h_source.html":[10,0,0,9],
-"_nim_b_l_e_descriptor_8h_source.html":[10,0,0,10],
-"_nim_b_l_e_device_8h_source.html":[10,0,0,11],
-"_nim_b_l_e_eddystone_t_l_m_8h_source.html":[10,0,0,12],
-"_nim_b_l_e_eddystone_u_r_l_8h_source.html":[10,0,0,13],
-"_nim_b_l_e_h_i_d_device_8h_source.html":[10,0,0,14],
-"_nim_b_l_e_log_8h_source.html":[10,0,0,15],
-"_nim_b_l_e_remote_characteristic_8h_source.html":[10,0,0,16],
-"_nim_b_l_e_remote_descriptor_8h_source.html":[10,0,0,17],
-"_nim_b_l_e_remote_service_8h_source.html":[10,0,0,18],
-"_nim_b_l_e_scan_8h_source.html":[10,0,0,19],
-"_nim_b_l_e_security_8h_source.html":[10,0,0,20],
-"_nim_b_l_e_server_8h_source.html":[10,0,0,21],
-"_nim_b_l_e_service_8h_source.html":[10,0,0,22],
-"_nim_b_l_e_u_u_i_d_8h_source.html":[10,0,0,24],
-"_nim_b_l_e_utils_8h_source.html":[10,0,0,23],
+"_nim_b_l_e_att_value_8h_source.html":[10,0,0,6],
+"_nim_b_l_e_beacon_8h_source.html":[10,0,0,7],
+"_nim_b_l_e_characteristic_8h_source.html":[10,0,0,8],
+"_nim_b_l_e_client_8h_source.html":[10,0,0,9],
+"_nim_b_l_e_conn_info_8h_source.html":[10,0,0,10],
+"_nim_b_l_e_descriptor_8h_source.html":[10,0,0,11],
+"_nim_b_l_e_device_8h_source.html":[10,0,0,12],
+"_nim_b_l_e_eddystone_t_l_m_8h_source.html":[10,0,0,13],
+"_nim_b_l_e_eddystone_u_r_l_8h_source.html":[10,0,0,14],
+"_nim_b_l_e_ext_advertising_8h_source.html":[10,0,0,15],
+"_nim_b_l_e_h_i_d_device_8h_source.html":[10,0,0,16],
+"_nim_b_l_e_log_8h_source.html":[10,0,0,17],
+"_nim_b_l_e_remote_characteristic_8h_source.html":[10,0,0,18],
+"_nim_b_l_e_remote_descriptor_8h_source.html":[10,0,0,19],
+"_nim_b_l_e_remote_service_8h_source.html":[10,0,0,20],
+"_nim_b_l_e_scan_8h_source.html":[10,0,0,21],
+"_nim_b_l_e_security_8h_source.html":[10,0,0,22],
+"_nim_b_l_e_server_8h_source.html":[10,0,0,23],
+"_nim_b_l_e_service_8h_source.html":[10,0,0,24],
+"_nim_b_l_e_u_u_i_d_8h_source.html":[10,0,0,26],
+"_nim_b_l_e_utils_8h_source.html":[10,0,0,25],
"annotated.html":[9,0],
"class_nim_b_l_e2904.html":[9,0,0],
"class_nim_b_l_e2904.html#a2206274c217d43a8ba121e1d279f8962":[9,0,0,3],
@@ -47,48 +49,54 @@ var NAVTREEINDEX0 =
"class_nim_b_l_e_address.html#ae243127c78af69b26dfa225effd806ce":[9,0,1,10],
"class_nim_b_l_e_address.html#aeb6dafff197dc01e2713bbf43e21f1f3":[9,0,1,3],
"class_nim_b_l_e_advertised_device.html":[9,0,2],
-"class_nim_b_l_e_advertised_device.html#a1172d33a77bc018e314be78664b222b9":[9,0,2,37],
-"class_nim_b_l_e_advertised_device.html#a1855415f3c60bc88d62e9206fe6ed75a":[9,0,2,26],
+"class_nim_b_l_e_advertised_device.html#a1172d33a77bc018e314be78664b222b9":[9,0,2,41],
+"class_nim_b_l_e_advertised_device.html#a1602b70c37fb9a5f2f7ca4eacbf01091":[9,0,2,23],
+"class_nim_b_l_e_advertised_device.html#a1855415f3c60bc88d62e9206fe6ed75a":[9,0,2,30],
+"class_nim_b_l_e_advertised_device.html#a1efd77b20e3198ef148282bf75ff3e22":[9,0,2,18],
"class_nim_b_l_e_advertised_device.html#a228afa5e43421b4d96d9c08241718309":[9,0,2,6],
-"class_nim_b_l_e_advertised_device.html#a3274624943c942f357c6f8d489481bc8":[9,0,2,31],
+"class_nim_b_l_e_advertised_device.html#a3274624943c942f357c6f8d489481bc8":[9,0,2,35],
"class_nim_b_l_e_advertised_device.html#a33fcdc3bf5107c157b10ad4519938c9f":[9,0,2,10],
-"class_nim_b_l_e_advertised_device.html#a37ad095c066aa231a52a7259734c9bce":[9,0,2,40],
+"class_nim_b_l_e_advertised_device.html#a3684969e3e10cd0af9ecaf342847ea71":[9,0,2,46],
+"class_nim_b_l_e_advertised_device.html#a37ad095c066aa231a52a7259734c9bce":[9,0,2,44],
"class_nim_b_l_e_advertised_device.html#a450eca96c605f199d2786a044612db17":[9,0,2,9],
-"class_nim_b_l_e_advertised_device.html#a4f89e99dffdfde45c1cafff74a20a95f":[9,0,2,21],
-"class_nim_b_l_e_advertised_device.html#a599cad9a3f3d535049c87a911bc1b14d":[9,0,2,24],
-"class_nim_b_l_e_advertised_device.html#a5c4aae7e27c27201846ba4e15448e557":[9,0,2,36],
-"class_nim_b_l_e_advertised_device.html#a5fc9be9de9209622259f8d28b01825df":[9,0,2,20],
-"class_nim_b_l_e_advertised_device.html#a611802e8898e422842d60486b60b8c42":[9,0,2,34],
-"class_nim_b_l_e_advertised_device.html#a6dc4484bc89ea5560a51c349b5300049":[9,0,2,23],
-"class_nim_b_l_e_advertised_device.html#a83ebd08b512dc936b1059db7a69b9ead":[9,0,2,39],
-"class_nim_b_l_e_advertised_device.html#a86805fecd4432335feecf77bb6a0f12e":[9,0,2,33],
-"class_nim_b_l_e_advertised_device.html#a9017ce5b59bdae3cebf33c54f28cee70":[9,0,2,19],
-"class_nim_b_l_e_advertised_device.html#a9352a7760d9e4af0561d7923fcbe2535":[9,0,2,25],
+"class_nim_b_l_e_advertised_device.html#a4f89e99dffdfde45c1cafff74a20a95f":[9,0,2,24],
+"class_nim_b_l_e_advertised_device.html#a54917b2644c433977e24a10a63d7431a":[9,0,2,45],
+"class_nim_b_l_e_advertised_device.html#a599cad9a3f3d535049c87a911bc1b14d":[9,0,2,28],
+"class_nim_b_l_e_advertised_device.html#a5c4aae7e27c27201846ba4e15448e557":[9,0,2,40],
+"class_nim_b_l_e_advertised_device.html#a5ca6792d1ee559470ae8edccc1aea20d":[9,0,2,26],
+"class_nim_b_l_e_advertised_device.html#a611802e8898e422842d60486b60b8c42":[9,0,2,38],
+"class_nim_b_l_e_advertised_device.html#a6361e2b275cc45578f1000b5fd1b3c29":[9,0,2,27],
+"class_nim_b_l_e_advertised_device.html#a83ebd08b512dc936b1059db7a69b9ead":[9,0,2,43],
+"class_nim_b_l_e_advertised_device.html#a86805fecd4432335feecf77bb6a0f12e":[9,0,2,37],
+"class_nim_b_l_e_advertised_device.html#a9017ce5b59bdae3cebf33c54f28cee70":[9,0,2,22],
"class_nim_b_l_e_advertised_device.html#a9a7a36e9937e16ffab4f1543ea54073f":[9,0,2,3],
-"class_nim_b_l_e_advertised_device.html#a9ca1c022e10764ec72850ff3a011b009":[9,0,2,17],
+"class_nim_b_l_e_advertised_device.html#a9b4ad695a4f035512d4d17313d8c5d3b":[9,0,2,15],
+"class_nim_b_l_e_advertised_device.html#a9ca1c022e10764ec72850ff3a011b009":[9,0,2,20],
"class_nim_b_l_e_advertised_device.html#a9d07ee4c38de4170db24a5e01663ee6d":[9,0,2,5],
"class_nim_b_l_e_advertised_device.html#aa60721a7b5b44a3bb66980f003517579":[9,0,2,1],
-"class_nim_b_l_e_advertised_device.html#aa8b4660e5d123f16a07e0fefa3bcf4bc":[9,0,2,29],
-"class_nim_b_l_e_advertised_device.html#ab53f862df15953d19ba7a45d4cf51b46":[9,0,2,22],
+"class_nim_b_l_e_advertised_device.html#aa8b4660e5d123f16a07e0fefa3bcf4bc":[9,0,2,33],
+"class_nim_b_l_e_advertised_device.html#ab53f862df15953d19ba7a45d4cf51b46":[9,0,2,25],
"class_nim_b_l_e_advertised_device.html#ab8972714ecd578fca51fb63d9834a34e":[9,0,2,0],
-"class_nim_b_l_e_advertised_device.html#abe58f5fde119d8c0a8fb85ba1e8cc5c9":[9,0,2,32],
-"class_nim_b_l_e_advertised_device.html#ac1b8ff0f2897abda335743d55668fcd9":[9,0,2,41],
+"class_nim_b_l_e_advertised_device.html#abe58f5fde119d8c0a8fb85ba1e8cc5c9":[9,0,2,36],
+"class_nim_b_l_e_advertised_device.html#ac1b8ff0f2897abda335743d55668fcd9":[9,0,2,47],
"class_nim_b_l_e_advertised_device.html#ac7879f4aa0f2b069b1d3aff4809ae62c":[9,0,2,13],
-"class_nim_b_l_e_advertised_device.html#accc6713f85db6174cfe8436059aa8bf1":[9,0,2,30],
-"class_nim_b_l_e_advertised_device.html#acd42dfbc92a43fc90e933df975c029f3":[9,0,2,14],
-"class_nim_b_l_e_advertised_device.html#acf4398ca81f800445092ccc77deaf00b":[9,0,2,16],
-"class_nim_b_l_e_advertised_device.html#ad3931c72aaded3b594896c29b3691562":[9,0,2,15],
-"class_nim_b_l_e_advertised_device.html#ad65f8040a142f8d6d0763d4876f0d22e":[9,0,2,28],
+"class_nim_b_l_e_advertised_device.html#accc6713f85db6174cfe8436059aa8bf1":[9,0,2,34],
+"class_nim_b_l_e_advertised_device.html#acd42dfbc92a43fc90e933df975c029f3":[9,0,2,16],
+"class_nim_b_l_e_advertised_device.html#acf4398ca81f800445092ccc77deaf00b":[9,0,2,19],
+"class_nim_b_l_e_advertised_device.html#ad3931c72aaded3b594896c29b3691562":[9,0,2,17],
+"class_nim_b_l_e_advertised_device.html#ad65f8040a142f8d6d0763d4876f0d22e":[9,0,2,32],
+"class_nim_b_l_e_advertised_device.html#ad9c5b9ffda267ddbcaef6b0f236846f9":[9,0,2,14],
+"class_nim_b_l_e_advertised_device.html#ae2256f6b4da4c11cf75cb773a6b7f223":[9,0,2,29],
"class_nim_b_l_e_advertised_device.html#ae6c6b48369d71a5998c1393c0d6a0179":[9,0,2,11],
"class_nim_b_l_e_advertised_device.html#ae960e43434bf62ec83e9230d7bf7046c":[9,0,2,4],
"class_nim_b_l_e_advertised_device.html#ae9a586e46a555cf5fc817c9fe301b295":[9,0,2,8],
-"class_nim_b_l_e_advertised_device.html#aecb3e30a94abd59401cafb70a5903abb":[9,0,2,18],
-"class_nim_b_l_e_advertised_device.html#af5293030ef439856c195caa3aba86543":[9,0,2,38],
+"class_nim_b_l_e_advertised_device.html#aecb3e30a94abd59401cafb70a5903abb":[9,0,2,21],
+"class_nim_b_l_e_advertised_device.html#af5293030ef439856c195caa3aba86543":[9,0,2,42],
"class_nim_b_l_e_advertised_device.html#afa334006230601cc5c6429b18819a2e2":[9,0,2,7],
"class_nim_b_l_e_advertised_device.html#afacf7717a15b36af184cd957d397e384":[9,0,2,12],
-"class_nim_b_l_e_advertised_device.html#afba3425cfcfc12eca219a1abe5f6732c":[9,0,2,35],
+"class_nim_b_l_e_advertised_device.html#afba3425cfcfc12eca219a1abe5f6732c":[9,0,2,39],
"class_nim_b_l_e_advertised_device.html#afc79cdc087c81b34643d70c8259eb9a3":[9,0,2,2],
-"class_nim_b_l_e_advertised_device.html#afee346437447173eed1b9edf1de70f34":[9,0,2,27],
+"class_nim_b_l_e_advertised_device.html#afee346437447173eed1b9edf1de70f34":[9,0,2,31],
"class_nim_b_l_e_advertised_device_callbacks.html":[9,0,3],
"class_nim_b_l_e_advertised_device_callbacks.html#af6a25e1bb773a147536b1785b2aae606":[9,0,3,0],
"class_nim_b_l_e_advertisement_data.html":[9,0,4],
@@ -115,6 +123,7 @@ var NAVTREEINDEX0 =
"class_nim_b_l_e_advertising.html#a16bd135cab3f06bc0ba81c2aec19cbbc":[9,0,5,14],
"class_nim_b_l_e_advertising.html#a1eff592870a47b0f62b0f0894efadbd4":[9,0,5,11],
"class_nim_b_l_e_advertising.html#a3382cdf80f5ae46a52e3b9159f8e1b66":[9,0,5,13],
+"class_nim_b_l_e_advertising.html#a3ab772936ace18c9a7e509740aa59800":[9,0,5,23],
"class_nim_b_l_e_advertising.html#a3bc158da1f732361df69cf16ca1cfd42":[9,0,5,15],
"class_nim_b_l_e_advertising.html#a4de7bf016a086a2d3f6f14ae134678f2":[9,0,5,4],
"class_nim_b_l_e_advertising.html#a4f334752ea04223185292fe9ab524b69":[9,0,5,2],
@@ -128,126 +137,117 @@ var NAVTREEINDEX0 =
"class_nim_b_l_e_advertising.html#aa0d30dfb57670cc8180e17dffddad416":[9,0,5,10],
"class_nim_b_l_e_advertising.html#aa3da80c7d17a7824484ee254076e4790":[9,0,5,17],
"class_nim_b_l_e_advertising.html#aab512576d8873fbbb631bac8ada19530":[9,0,5,12],
-"class_nim_b_l_e_advertising.html#ab19c9e9015e812055e3cad29d52ed2ff":[9,0,5,23],
"class_nim_b_l_e_advertising.html#abe6258a917243a4567c3d6eece2ddcdd":[9,0,5,0],
"class_nim_b_l_e_advertising.html#ac257ab68520a244cb6494d793f9b6c2a":[9,0,5,5],
"class_nim_b_l_e_advertising.html#ac4ff0af45d1f7ed5bc208612852bc43a":[9,0,5,3],
"class_nim_b_l_e_advertising.html#add2ecd09877d7e4548b11ec7cb8c7a47":[9,0,5,16],
"class_nim_b_l_e_advertising.html#aeeee5a131b42a4f76010751f4c182e4f":[9,0,5,22],
"class_nim_b_l_e_advertising.html#af7083f58717b7e76d90d367f00a0ef08":[9,0,5,8],
-"class_nim_b_l_e_beacon.html":[9,0,6],
-"class_nim_b_l_e_beacon.html#a1ec99fe7684181e7b899cd763f9b44d9":[9,0,6,9],
-"class_nim_b_l_e_beacon.html#a44d03b0c2b1bea3bee8f15feeb73fb8e":[9,0,6,10],
-"class_nim_b_l_e_beacon.html#a4bc9fd3a68b4b1772dc4d102573c6788":[9,0,6,4],
-"class_nim_b_l_e_beacon.html#a4eb27b3e447f8f0b44128f77933be668":[9,0,6,6],
-"class_nim_b_l_e_beacon.html#a7f33ffc298285d1ab02088b2584f2256":[9,0,6,11],
-"class_nim_b_l_e_beacon.html#a8803d70e8c238ccb98edcf31af0ead40":[9,0,6,3],
-"class_nim_b_l_e_beacon.html#a92292c8b1f5ba0097f063ff6e60934ff":[9,0,6,7],
-"class_nim_b_l_e_beacon.html#a999ade63059620d619609676d85186ad":[9,0,6,5],
-"class_nim_b_l_e_beacon.html#aac32b7f86c73221152909528c8dbad3c":[9,0,6,2],
-"class_nim_b_l_e_beacon.html#abef1334108f8049832da7fffb56f6eea":[9,0,6,8],
-"class_nim_b_l_e_beacon.html#ac99e1fb4ef4795785a655b117dabdd37":[9,0,6,0],
-"class_nim_b_l_e_beacon.html#ae2458f7db169b696e6368802d5ece0d9":[9,0,6,1],
-"class_nim_b_l_e_beacon.html#ae2dd8cd367260dd8374309576457cec0":[9,0,6,12],
-"class_nim_b_l_e_characteristic.html":[9,0,7],
-"class_nim_b_l_e_characteristic.html#a062f52918f13c49a37ce8e58b9e7382a":[9,0,7,8],
-"class_nim_b_l_e_characteristic.html#a1747ac4889c7adbb93a2d88a10327a47":[9,0,7,6],
-"class_nim_b_l_e_characteristic.html#a28b03617fe753133582ba4e58c60e52e":[9,0,7,15],
-"class_nim_b_l_e_characteristic.html#a29dc2505e1d3b4a7d6800d1547965d17":[9,0,7,22],
-"class_nim_b_l_e_characteristic.html#a2c0ed8932ee257a8632e3d72e353489b":[9,0,7,21],
-"class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434":[9,0,7,18],
-"class_nim_b_l_e_characteristic.html#a37e908d114f6ad2b4bf19c7cc4db9c54":[9,0,7,16],
-"class_nim_b_l_e_characteristic.html#a3e77647e4c9bd02c96b761639c4d206f":[9,0,7,23],
-"class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89":[9,0,7,26],
-"class_nim_b_l_e_characteristic.html#a580ad0133fd82a673027c91cbb1c74fa":[9,0,7,7],
-"class_nim_b_l_e_characteristic.html#a6523266a751a778a2c04fea19fed4de5":[9,0,7,5],
-"class_nim_b_l_e_characteristic.html#a79759a98d9bdb761cb12c1ea6f601afc":[9,0,7,12],
-"class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677":[9,0,7,25],
-"class_nim_b_l_e_characteristic.html#a7d09c29b26362f6ddcaf51a9c9dc8be4":[9,0,7,17],
-"class_nim_b_l_e_characteristic.html#a7fe29c5ec571d0513c51b8cbac942f4a":[9,0,7,2],
-"class_nim_b_l_e_characteristic.html#a84aa251a612810ec8d07e77ab03cb483":[9,0,7,13],
-"class_nim_b_l_e_characteristic.html#a942b2d29d77fcef233549d0c4fd798da":[9,0,7,0],
-"class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813":[9,0,7,19],
-"class_nim_b_l_e_characteristic.html#aae014669e9ce1ad01520d68fe0cc0fda":[9,0,7,4],
-"class_nim_b_l_e_characteristic.html#aba05898f446e31222fbe509fa357c730":[9,0,7,24],
-"class_nim_b_l_e_characteristic.html#abc5f4819e4d2c0956857ddd7a1064189":[9,0,7,9],
-"class_nim_b_l_e_characteristic.html#acc3ea122771cd447103adfce22537379":[9,0,7,11],
-"class_nim_b_l_e_characteristic.html#acdbd57f7e97646403e520edc35c34c8b":[9,0,7,1],
-"class_nim_b_l_e_characteristic.html#aced225d46153b6969f6ded30c0190e39":[9,0,7,14],
-"class_nim_b_l_e_characteristic.html#ad44ce481c0341abe32b1e0f823c520d4":[9,0,7,20],
-"class_nim_b_l_e_characteristic.html#ae310b081d2d7d2a52ab2ddc11d5dbd99":[9,0,7,10],
-"class_nim_b_l_e_characteristic.html#aed4b2241c89ad2a8f49117e2b9433e5b":[9,0,7,3],
-"class_nim_b_l_e_characteristic_callbacks.html":[9,0,8],
-"class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f":[9,0,8,0],
-"class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9":[9,0,8,1],
-"class_nim_b_l_e_characteristic_callbacks.html#a303a44a2efad76d54d67955fcb7b05d7":[9,0,8,7],
-"class_nim_b_l_e_characteristic_callbacks.html#a3c0c0f524bc0d00d24a7c5ea92c5cb7e":[9,0,8,5],
-"class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93":[9,0,8,2],
-"class_nim_b_l_e_characteristic_callbacks.html#aac7caf4a80da061b5beda5ebcd214fc3":[9,0,8,6],
-"class_nim_b_l_e_characteristic_callbacks.html#ab17e7c61723a33cd3c922e3ca9c20f1e":[9,0,8,4],
-"class_nim_b_l_e_characteristic_callbacks.html#acae83420ae378277c225ce465f979f88":[9,0,8,3],
-"class_nim_b_l_e_client.html":[9,0,9],
-"class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb":[9,0,9,14],
-"class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767":[9,0,9,27],
-"class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe":[9,0,9,8],
-"class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb":[9,0,9,4],
-"class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267":[9,0,9,23],
-"class_nim_b_l_e_client.html#a178d06bed13028e4ae0384923062d18d":[9,0,9,12],
-"class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009":[9,0,9,9],
-"class_nim_b_l_e_client.html#a33a0114a126e0e58f7b4359c74f4ed41":[9,0,9,25],
-"class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d":[9,0,9,7],
-"class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e":[9,0,9,24],
-"class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267":[9,0,9,11],
-"class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c":[9,0,9,6],
-"class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3":[9,0,9,5],
-"class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4":[9,0,9,21],
-"class_nim_b_l_e_client.html#a836438fc9d5c2001207249661ad10e01":[9,0,9,1],
-"class_nim_b_l_e_client.html#a9188741bf29d58d5ff1352383c959b7b":[9,0,9,2],
-"class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07":[9,0,9,26],
-"class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896":[9,0,9,10],
-"class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a":[9,0,9,3],
-"class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5":[9,0,9,0],
-"class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a":[9,0,9,13],
-"class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab":[9,0,9,28],
-"class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a":[9,0,9,18],
-"class_nim_b_l_e_client.html#ad8ba10522d79af1136019606802f0978":[9,0,9,17],
-"class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78":[9,0,9,15],
-"class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366":[9,0,9,16],
-"class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c":[9,0,9,22],
-"class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c":[9,0,9,20],
-"class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3":[9,0,9,19],
-"class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526":[9,0,9,29],
-"class_nim_b_l_e_client_callbacks.html":[9,0,10],
-"class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808":[9,0,10,4],
-"class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065":[9,0,10,0],
-"class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6":[9,0,10,3],
-"class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae":[9,0,10,2],
-"class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5":[9,0,10,5],
-"class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0":[9,0,10,1],
-"class_nim_b_l_e_conn_info.html":[9,0,11],
-"class_nim_b_l_e_conn_info.html#a10c6093ca2f92ea61b82815909106430":[9,0,11,3],
-"class_nim_b_l_e_conn_info.html#a278a8456f9d7df9cea7d776e61b36782":[9,0,11,7],
-"class_nim_b_l_e_conn_info.html#a63ff245a8848bf1cc5839adee7aa41c4":[9,0,11,11],
-"class_nim_b_l_e_conn_info.html#a7229e53d21c9c6b5b9fb5bd232862c89":[9,0,11,8],
-"class_nim_b_l_e_conn_info.html#a77e212f3e236b05da0978ea482e3efb4":[9,0,11,1],
-"class_nim_b_l_e_conn_info.html#a7bc23f09eb7dd53be902cb67d2ba745a":[9,0,11,5],
-"class_nim_b_l_e_conn_info.html#a8e885d340f1ab4e477c69ed7ea99b082":[9,0,11,4],
-"class_nim_b_l_e_conn_info.html#a8ecf3c58da6ffb529215ce6f13c96744":[9,0,11,10],
-"class_nim_b_l_e_conn_info.html#a94796b6446ef40c0ae0d1f8af1ff9462":[9,0,11,6],
-"class_nim_b_l_e_conn_info.html#aa43374d84b7564f6d187fd0c637b1049":[9,0,11,2],
-"class_nim_b_l_e_conn_info.html#abfb91b833cb200f795bc63d5affff6af":[9,0,11,12],
-"class_nim_b_l_e_conn_info.html#af17023ca06c3d1b9e142dcd5f8c54847":[9,0,11,0],
-"class_nim_b_l_e_conn_info.html#af281a25921d36dc75cf1e37561940125":[9,0,11,9],
-"class_nim_b_l_e_descriptor.html":[9,0,12],
-"class_nim_b_l_e_descriptor.html#a378346f59afb706d4c1d961227b98c5d":[9,0,12,5],
-"class_nim_b_l_e_descriptor.html#a3cf995352eb1b1c212a7911a05c33b25":[9,0,12,0],
-"class_nim_b_l_e_descriptor.html#a412b3735186d94e9ddcf37a06c2055e1":[9,0,12,3],
-"class_nim_b_l_e_descriptor.html#a486af6799753dfa60b3faddfac2adbcd":[9,0,12,4],
-"class_nim_b_l_e_descriptor.html#a7153e051e5808469c23e2207fa6711db":[9,0,12,6],
-"class_nim_b_l_e_descriptor.html#a7ecb634b7d6390677cad232bd6be6638":[9,0,12,1],
-"class_nim_b_l_e_descriptor.html#a9136cc9e4b41110b3dd99d1c9553a477":[9,0,12,11],
-"class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923":[9,0,12,12],
-"class_nim_b_l_e_descriptor.html#aa9cb8727f9e17cf8050cf619e5fe3096":[9,0,12,9],
-"class_nim_b_l_e_descriptor.html#abc5398a570edc197fbadad3f5b45e186":[9,0,12,7],
-"class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5":[9,0,12,13]
+"class_nim_b_l_e_att_value.html":[9,0,6],
+"class_nim_b_l_e_att_value.html#a03347eab1f3df449762902a4256d2b1c":[9,0,6,5],
+"class_nim_b_l_e_att_value.html#a08f3b04d05cf0c2b76a24cc37cd1f8ab":[9,0,6,8],
+"class_nim_b_l_e_att_value.html#a0e6691f9660a2b78e038e87e99914696":[9,0,6,23],
+"class_nim_b_l_e_att_value.html#a1aca76279ea3f0d8cb06ff5540a326e3":[9,0,6,16],
+"class_nim_b_l_e_att_value.html#a35df29c514613b1d00841abd6fffa320":[9,0,6,17],
+"class_nim_b_l_e_att_value.html#a3aa926c56cd58146a5b1c6e02c97894b":[9,0,6,19],
+"class_nim_b_l_e_att_value.html#a3af3b6efb528b1063df2de409c64a0d6":[9,0,6,21],
+"class_nim_b_l_e_att_value.html#a4322572d778438318f5750f6df5fdb35":[9,0,6,3],
+"class_nim_b_l_e_att_value.html#a47d30a61ba65f5d9a21fa593cf15d4b9":[9,0,6,26],
+"class_nim_b_l_e_att_value.html#a49a8a126d0b534c999c4a341cdcf7ba2":[9,0,6,12],
+"class_nim_b_l_e_att_value.html#a4f797f89e9c2d55dc7bee7ec8993952e":[9,0,6,14],
+"class_nim_b_l_e_att_value.html#a584cac329cd5d3c0a14aa855e6e6143e":[9,0,6,4],
+"class_nim_b_l_e_att_value.html#a5c8c5ecfa3864d45ea5b155385e3f9fa":[9,0,6,32],
+"class_nim_b_l_e_att_value.html#a5edd484c83c5efa62916add8927a6371":[9,0,6,20],
+"class_nim_b_l_e_att_value.html#a60fb3dc7057d4ec800c3ef6fd2480a69":[9,0,6,15],
+"class_nim_b_l_e_att_value.html#a6167f1cbc50a81a4ca0708e273bbb63e":[9,0,6,10],
+"class_nim_b_l_e_att_value.html#a61813a898f1bfb1b00e670a7fbb413df":[9,0,6,2],
+"class_nim_b_l_e_att_value.html#a7473ad95c2240e0d1ce5c2d57f8914c2":[9,0,6,6],
+"class_nim_b_l_e_att_value.html#a778d1da5334049292fdfba221bcd5772":[9,0,6,7],
+"class_nim_b_l_e_att_value.html#a8ca8d07c06a79e30bf6279e6817e4881":[9,0,6,28],
+"class_nim_b_l_e_att_value.html#a9634dd47ea705ec8d10f29482e572bbf":[9,0,6,27],
+"class_nim_b_l_e_att_value.html#a9c0f67d150d198c5bcad6eafafee21b6":[9,0,6,29],
+"class_nim_b_l_e_att_value.html#a9dc3bc75c3a0cedf76bed59ef2d0d289":[9,0,6,22],
+"class_nim_b_l_e_att_value.html#a9e595630f7959b4002f6fb64c69ae123":[9,0,6,13],
+"class_nim_b_l_e_att_value.html#aa0545edd766dc4ca6e3ebfac5efa384e":[9,0,6,25],
+"class_nim_b_l_e_att_value.html#aa217dfc649daed50eb75c7168442f86e":[9,0,6,9],
+"class_nim_b_l_e_att_value.html#aa2c18949ffc2e7d2d2f288c1b2b2f0ed":[9,0,6,11],
+"class_nim_b_l_e_att_value.html#aa53ee00be956c25596cf7cce71b502ba":[9,0,6,24],
+"class_nim_b_l_e_att_value.html#aa801ed93f65e8cbc507c6ea6f4f49294":[9,0,6,0],
+"class_nim_b_l_e_att_value.html#aa8c75101d9898c3ff4646d84521ed61c":[9,0,6,33],
+"class_nim_b_l_e_att_value.html#ac7abc6cd08adb0b654e051d62af725d5":[9,0,6,18],
+"class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8":[9,0,6,30],
+"class_nim_b_l_e_att_value.html#ac94a41f0c0d42d48b29d5b18d7ad7bd8":[9,0,6,31],
+"class_nim_b_l_e_att_value.html#ad0bbdf17e7861cbb4bb2cadae9cbe32c":[9,0,6,1],
+"class_nim_b_l_e_beacon.html":[9,0,7],
+"class_nim_b_l_e_beacon.html#a1ec99fe7684181e7b899cd763f9b44d9":[9,0,7,9],
+"class_nim_b_l_e_beacon.html#a44d03b0c2b1bea3bee8f15feeb73fb8e":[9,0,7,10],
+"class_nim_b_l_e_beacon.html#a4bc9fd3a68b4b1772dc4d102573c6788":[9,0,7,4],
+"class_nim_b_l_e_beacon.html#a4eb27b3e447f8f0b44128f77933be668":[9,0,7,6],
+"class_nim_b_l_e_beacon.html#a7f33ffc298285d1ab02088b2584f2256":[9,0,7,11],
+"class_nim_b_l_e_beacon.html#a8803d70e8c238ccb98edcf31af0ead40":[9,0,7,3],
+"class_nim_b_l_e_beacon.html#a92292c8b1f5ba0097f063ff6e60934ff":[9,0,7,7],
+"class_nim_b_l_e_beacon.html#a999ade63059620d619609676d85186ad":[9,0,7,5],
+"class_nim_b_l_e_beacon.html#aac32b7f86c73221152909528c8dbad3c":[9,0,7,2],
+"class_nim_b_l_e_beacon.html#abef1334108f8049832da7fffb56f6eea":[9,0,7,8],
+"class_nim_b_l_e_beacon.html#ac99e1fb4ef4795785a655b117dabdd37":[9,0,7,0],
+"class_nim_b_l_e_beacon.html#ae2458f7db169b696e6368802d5ece0d9":[9,0,7,1],
+"class_nim_b_l_e_beacon.html#ae2dd8cd367260dd8374309576457cec0":[9,0,7,12],
+"class_nim_b_l_e_characteristic.html":[9,0,8],
+"class_nim_b_l_e_characteristic.html#a062f52918f13c49a37ce8e58b9e7382a":[9,0,8,8],
+"class_nim_b_l_e_characteristic.html#a15a9f056e5a3e85d5cb0bdc7adbdd970":[9,0,8,23],
+"class_nim_b_l_e_characteristic.html#a1747ac4889c7adbb93a2d88a10327a47":[9,0,8,6],
+"class_nim_b_l_e_characteristic.html#a1fc55adb9d62d8b5fe1be2b172686353":[9,0,8,4],
+"class_nim_b_l_e_characteristic.html#a28b03617fe753133582ba4e58c60e52e":[9,0,8,15],
+"class_nim_b_l_e_characteristic.html#a29dc2505e1d3b4a7d6800d1547965d17":[9,0,8,27],
+"class_nim_b_l_e_characteristic.html#a2c0ed8932ee257a8632e3d72e353489b":[9,0,8,26],
+"class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434":[9,0,8,18],
+"class_nim_b_l_e_characteristic.html#a2e827aba484add48e52c8eebf80b4a78":[9,0,8,19],
+"class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89":[9,0,8,31],
+"class_nim_b_l_e_characteristic.html#a580ad0133fd82a673027c91cbb1c74fa":[9,0,8,7],
+"class_nim_b_l_e_characteristic.html#a67a1fb8bddfbd47007ccb8b6f5e5611a":[9,0,8,5],
+"class_nim_b_l_e_characteristic.html#a78484a01350300176033a09180f7207f":[9,0,8,16],
+"class_nim_b_l_e_characteristic.html#a79759a98d9bdb761cb12c1ea6f601afc":[9,0,8,12],
+"class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677":[9,0,8,30],
+"class_nim_b_l_e_characteristic.html#a7d09c29b26362f6ddcaf51a9c9dc8be4":[9,0,8,17],
+"class_nim_b_l_e_characteristic.html#a7fe29c5ec571d0513c51b8cbac942f4a":[9,0,8,2],
+"class_nim_b_l_e_characteristic.html#a84aa251a612810ec8d07e77ab03cb483":[9,0,8,13],
+"class_nim_b_l_e_characteristic.html#a8c1875611a1beb192e6c24dff35d0655":[9,0,8,21],
+"class_nim_b_l_e_characteristic.html#a9ce09408a307a6b62a91418ea7723ebf":[9,0,8,25],
+"class_nim_b_l_e_characteristic.html#a9daeb13599265cb0f8ea94b7ac4ef053":[9,0,8,28],
+"class_nim_b_l_e_characteristic.html#aa32224e69115e9ba60ac614e8f37a871":[9,0,8,0],
+"class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813":[9,0,8,22],
+"class_nim_b_l_e_characteristic.html#aba05898f446e31222fbe509fa357c730":[9,0,8,29],
+"class_nim_b_l_e_characteristic.html#abc5f4819e4d2c0956857ddd7a1064189":[9,0,8,9],
+"class_nim_b_l_e_characteristic.html#acc3ea122771cd447103adfce22537379":[9,0,8,11],
+"class_nim_b_l_e_characteristic.html#aced225d46153b6969f6ded30c0190e39":[9,0,8,14],
+"class_nim_b_l_e_characteristic.html#ae2053d941cf8574acbdceb8b549b8264":[9,0,8,1],
+"class_nim_b_l_e_characteristic.html#ae310b081d2d7d2a52ab2ddc11d5dbd99":[9,0,8,10],
+"class_nim_b_l_e_characteristic.html#aed1432c11fadec203104b13aaaf7060d":[9,0,8,24],
+"class_nim_b_l_e_characteristic.html#aed4b2241c89ad2a8f49117e2b9433e5b":[9,0,8,3],
+"class_nim_b_l_e_characteristic.html#af2940e8c314a1ecee1750d20a60c459d":[9,0,8,20],
+"class_nim_b_l_e_characteristic_callbacks.html":[9,0,9],
+"class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f":[9,0,9,0],
+"class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9":[9,0,9,1],
+"class_nim_b_l_e_characteristic_callbacks.html#a303a44a2efad76d54d67955fcb7b05d7":[9,0,9,7],
+"class_nim_b_l_e_characteristic_callbacks.html#a3c0c0f524bc0d00d24a7c5ea92c5cb7e":[9,0,9,5],
+"class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93":[9,0,9,2],
+"class_nim_b_l_e_characteristic_callbacks.html#aac7caf4a80da061b5beda5ebcd214fc3":[9,0,9,6],
+"class_nim_b_l_e_characteristic_callbacks.html#ab17e7c61723a33cd3c922e3ca9c20f1e":[9,0,9,4],
+"class_nim_b_l_e_characteristic_callbacks.html#acae83420ae378277c225ce465f979f88":[9,0,9,3],
+"class_nim_b_l_e_client.html":[9,0,10],
+"class_nim_b_l_e_client.html#a026d7e04557b4821a7da2c1a1caa46eb":[9,0,10,2],
+"class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb":[9,0,10,14],
+"class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe":[9,0,10,8],
+"class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb":[9,0,10,4],
+"class_nim_b_l_e_client.html#a1019178a12799ca2c3a84f523b3a7db9":[9,0,10,7],
+"class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267":[9,0,10,23],
+"class_nim_b_l_e_client.html#a178d06bed13028e4ae0384923062d18d":[9,0,10,12],
+"class_nim_b_l_e_client.html#a1f9d4ad6d3d03b819bfad82d1f39b684":[9,0,10,1],
+"class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009":[9,0,10,9],
+"class_nim_b_l_e_client.html#a33a0114a126e0e58f7b4359c74f4ed41":[9,0,10,26],
+"class_nim_b_l_e_client.html#a3903fb7589e2b8b781f8f81f9e0f2a83":[9,0,10,19],
+"class_nim_b_l_e_client.html#a3ab0a864d8fc7f91ea27f459e2c76b9e":[9,0,10,24],
+"class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e":[9,0,10,25],
+"class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267":[9,0,10,11],
+"class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c":[9,0,10,6]
};
diff --git a/navtreeindex1.js b/navtreeindex1.js
index f32a003..b891b3d 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX1 =
{
-"class_nim_b_l_e_descriptor.html#ac54fd0830ceb64b91037b623dbc427b5":[9,0,12,8],
-"class_nim_b_l_e_descriptor.html#ad110851335bc7b225f5bea9ac11bedcc":[9,0,12,2],
-"class_nim_b_l_e_descriptor.html#ad14bda7d046b5f814ed599c8157c7e51":[9,0,12,10],
-"class_nim_b_l_e_descriptor_callbacks.html":[9,0,13],
-"class_nim_b_l_e_descriptor_callbacks.html#a6b13d2a8447f50a089b869cea9fcdcbc":[9,0,13,0],
-"class_nim_b_l_e_descriptor_callbacks.html#a7081bf2c4f22225c4715e09762be40ed":[9,0,13,1],
-"class_nim_b_l_e_device.html":[9,0,14],
-"class_nim_b_l_e_eddystone_t_l_m.html":[9,0,15],
-"class_nim_b_l_e_eddystone_t_l_m.html#a160e33218dc7fb33f678cda1605da52e":[9,0,15,9],
-"class_nim_b_l_e_eddystone_t_l_m.html#a205e0e2efc09c4c5043f11aeddee4d63":[9,0,15,13],
-"class_nim_b_l_e_eddystone_t_l_m.html#a49fdfb7c2edf2ae92f69856ec0ce4291":[9,0,15,12],
-"class_nim_b_l_e_eddystone_t_l_m.html#a4d87d0b11420af2ae04bc4e6ce2f8607":[9,0,15,0],
-"class_nim_b_l_e_eddystone_t_l_m.html#a556a6b6a75693997390f3bacf6e5ca5e":[9,0,15,1],
-"class_nim_b_l_e_eddystone_t_l_m.html#a6d033c09a513b2dfdad6f1b962b906a8":[9,0,15,8],
-"class_nim_b_l_e_eddystone_t_l_m.html#a8e8ee8fff10730089a370f9da7b6a691":[9,0,15,10],
-"class_nim_b_l_e_eddystone_t_l_m.html#a970ba10424567d17c961ed3b3ef83d8e":[9,0,15,15],
-"class_nim_b_l_e_eddystone_t_l_m.html#a999d53f4bad59c2ebc688403f66474b1":[9,0,15,11],
-"class_nim_b_l_e_eddystone_t_l_m.html#aa511375f22952c0f5846a51e6c2511c5":[9,0,15,5],
-"class_nim_b_l_e_eddystone_t_l_m.html#ab1c4a13c2f57a6e0293810dd09be3db3":[9,0,15,4],
-"class_nim_b_l_e_eddystone_t_l_m.html#abda56940f7d9f7ccef2629b75880dd5f":[9,0,15,3],
-"class_nim_b_l_e_eddystone_t_l_m.html#ad69af8fe47502d922203916357f6c206":[9,0,15,14],
-"class_nim_b_l_e_eddystone_t_l_m.html#ae146a8f066ef3fc6994070654ec5d7ea":[9,0,15,2],
-"class_nim_b_l_e_eddystone_t_l_m.html#ae9f17d2c1e4150775881babb73f0b10c":[9,0,15,6],
-"class_nim_b_l_e_eddystone_t_l_m.html#af9862f983df6f48a96220e936d13d17b":[9,0,15,7],
-"class_nim_b_l_e_eddystone_u_r_l.html":[9,0,16],
-"class_nim_b_l_e_eddystone_u_r_l.html#a0109874399f3e70a72ee9f4a909710e1":[9,0,16,4],
-"class_nim_b_l_e_eddystone_u_r_l.html#a1fde0fcf7d90f79e0eb718967518247a":[9,0,16,5],
-"class_nim_b_l_e_eddystone_u_r_l.html#a42583c740bbdb9591422e8770f8bd0d5":[9,0,16,3],
-"class_nim_b_l_e_eddystone_u_r_l.html#a8038c895e8da7c7ac861557ea0a9d91b":[9,0,16,7],
-"class_nim_b_l_e_eddystone_u_r_l.html#a8102533ff1e7b6527ea744279f8f64ca":[9,0,16,8],
-"class_nim_b_l_e_eddystone_u_r_l.html#a8b68cc96a84da85e20d8583ba375c2ff":[9,0,16,2],
-"class_nim_b_l_e_eddystone_u_r_l.html#ac32c7066ce1ee8d495a35ec870f0e7bf":[9,0,16,1],
-"class_nim_b_l_e_eddystone_u_r_l.html#ada3ac4a544b8565635871f39f1593811":[9,0,16,6],
-"class_nim_b_l_e_eddystone_u_r_l.html#ae102214d20e32e31c9c84d723f67df15":[9,0,16,0],
-"class_nim_b_l_e_eddystone_u_r_l.html#af183e8483ae81fff65d909e67986fcad":[9,0,16,9],
-"class_nim_b_l_e_h_i_d_device.html":[9,0,17],
-"class_nim_b_l_e_h_i_d_device.html#a033c4ad91f1bc165ac6a322b4dcc1699":[9,0,17,4],
-"class_nim_b_l_e_h_i_d_device.html#a1118c1e730f38b8b17795c8eb41a0861":[9,0,17,14],
-"class_nim_b_l_e_h_i_d_device.html#a24498f7b714574ab4a90288f7e4d58b7":[9,0,17,1],
-"class_nim_b_l_e_h_i_d_device.html#a33fc2bfc990ecd250859ca8f34a4314e":[9,0,17,7],
-"class_nim_b_l_e_h_i_d_device.html#a3e5b8291ca88d85a352429415abaec9c":[9,0,17,10],
-"class_nim_b_l_e_h_i_d_device.html#a45ca7d4547dfea9a64987065d83653bd":[9,0,17,2],
-"class_nim_b_l_e_h_i_d_device.html#a468e599c7d75e691f8d34e1b24db8a38":[9,0,17,5],
-"class_nim_b_l_e_h_i_d_device.html#a5309df317aa42de7ced2e34219b6666a":[9,0,17,13],
-"class_nim_b_l_e_h_i_d_device.html#a5984042cd05ea4ead895f5577133a235":[9,0,17,17],
-"class_nim_b_l_e_h_i_d_device.html#a5c42da43e0b8dfcd1d045e8a86d0b5a2":[9,0,17,6],
-"class_nim_b_l_e_h_i_d_device.html#a5e996a1668785f7a978f9874b4ff3b3e":[9,0,17,15],
-"class_nim_b_l_e_h_i_d_device.html#a84e3127a05f7e6a44761ec4a9e7668e3":[9,0,17,16],
-"class_nim_b_l_e_h_i_d_device.html#a91cfe81b47cea229e9bbe3c55be33701":[9,0,17,9],
-"class_nim_b_l_e_h_i_d_device.html#a95b4935280494ffa24bfae89753f199a":[9,0,17,0],
-"class_nim_b_l_e_h_i_d_device.html#ac04ed297cf6adbec210873739d2dc74d":[9,0,17,11],
-"class_nim_b_l_e_h_i_d_device.html#ac1e63972c6a77665a6bbc76f9ff4a717":[9,0,17,12],
-"class_nim_b_l_e_h_i_d_device.html#ace0141db690f1afec1b266f9ac9aa0f0":[9,0,17,3],
-"class_nim_b_l_e_h_i_d_device.html#ae80cf58c481c25bd6d7392a43b6fa48b":[9,0,17,8],
-"class_nim_b_l_e_remote_characteristic.html":[9,0,18],
-"class_nim_b_l_e_remote_characteristic.html#a0eb6655635394268a76c68e845d14135":[9,0,18,5],
-"class_nim_b_l_e_remote_characteristic.html#a181c54862bc422d8ad0b326af675922d":[9,0,18,20],
-"class_nim_b_l_e_remote_characteristic.html#a2614c7f437b52f385fc4fd29abe358eb":[9,0,18,7],
-"class_nim_b_l_e_remote_characteristic.html#a2cfc2e8d2e281dd61e578eb5e860fc02":[9,0,18,29],
-"class_nim_b_l_e_remote_characteristic.html#a333adea9c9f243774c6a2f13beabd873":[9,0,18,10],
-"class_nim_b_l_e_remote_characteristic.html#a3c8d1fd77dd074df866c091c614eafb3":[9,0,18,31],
-"class_nim_b_l_e_remote_characteristic.html#a463760cabc9ca104a6fe094eb942fec0":[9,0,18,24],
-"class_nim_b_l_e_remote_characteristic.html#a4b86a1f600a61036487f5161f1f1726a":[9,0,18,27],
-"class_nim_b_l_e_remote_characteristic.html#a53322384b295a2548b3399e2c63d76f4":[9,0,18,3],
-"class_nim_b_l_e_remote_characteristic.html#a5f0a51b4a7fb2244d236dcb96fcf5205":[9,0,18,9],
-"class_nim_b_l_e_remote_characteristic.html#a6178e1c58361b957be3c48548c1c4366":[9,0,18,12],
-"class_nim_b_l_e_remote_characteristic.html#a6e331afdbdbc32bf461c9866236a97aa":[9,0,18,28],
-"class_nim_b_l_e_remote_characteristic.html#a7163009a9f0ff718b5856d19cb4a3568":[9,0,18,2],
-"class_nim_b_l_e_remote_characteristic.html#a71793454ffab034f87af3a5e9677a63d":[9,0,18,21],
-"class_nim_b_l_e_remote_characteristic.html#a74ad8484cbc88d8eb36d4684233c538b":[9,0,18,18],
-"class_nim_b_l_e_remote_characteristic.html#a78ac88ca25d71dfe31b95898b79b0442":[9,0,18,1],
-"class_nim_b_l_e_remote_characteristic.html#a7e10fa37095d7c80dc36c768fe783e67":[9,0,18,23],
-"class_nim_b_l_e_remote_characteristic.html#a81f39759d48a8fb792c94e4b3b455eef":[9,0,18,19],
-"class_nim_b_l_e_remote_characteristic.html#a855d591de111b09013ae83c4043d06ed":[9,0,18,0],
-"class_nim_b_l_e_remote_characteristic.html#a943183a55b020de9e09ac2cfaebcde32":[9,0,18,15],
-"class_nim_b_l_e_remote_characteristic.html#a9c41acdbf23dc036f321d4f0a66d40d1":[9,0,18,4],
-"class_nim_b_l_e_remote_characteristic.html#aa08b2f62376568e1fc833e4ff91e8aa7":[9,0,18,26],
-"class_nim_b_l_e_remote_characteristic.html#aad0ba99cad9779b33ea7cd4e94349099":[9,0,18,8],
-"class_nim_b_l_e_remote_characteristic.html#aae71c20d300ead52770e66fb8a1a47ea":[9,0,18,6],
-"class_nim_b_l_e_remote_characteristic.html#ab46121a8f5000c40d521e7ee5d92bee6":[9,0,18,14],
-"class_nim_b_l_e_remote_characteristic.html#ab4f54eabe90a416546b7b3fc3477f49c":[9,0,18,25],
-"class_nim_b_l_e_remote_characteristic.html#acf11d225fe5a25327742349e9d6061f9":[9,0,18,13],
-"class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae":[9,0,18,30],
-"class_nim_b_l_e_remote_characteristic.html#ad62c63468995a24d736c4176c9607eeb":[9,0,18,16],
-"class_nim_b_l_e_remote_characteristic.html#add1a1daed14b5f3e729e284dbd369257":[9,0,18,17],
-"class_nim_b_l_e_remote_characteristic.html#ade5c6ae280c3cf36c9905be23df8f080":[9,0,18,22],
-"class_nim_b_l_e_remote_characteristic.html#aebbcd36740e49d7e29eb5b21d6802380":[9,0,18,11],
-"class_nim_b_l_e_remote_descriptor.html":[9,0,19],
-"class_nim_b_l_e_remote_descriptor.html#a008795a09d1fbe8533c2e9d0e8deb33a":[9,0,19,8],
-"class_nim_b_l_e_remote_descriptor.html#a0d3fb6424b2c86730e1a292281cd836e":[9,0,19,11],
-"class_nim_b_l_e_remote_descriptor.html#a14351ea51b7b04f91b71e388881edd53":[9,0,19,3],
-"class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c":[9,0,19,10],
-"class_nim_b_l_e_remote_descriptor.html#a219606f84d63bc02f093051d66f05204":[9,0,19,4],
-"class_nim_b_l_e_remote_descriptor.html#a30bc16403ed53d3b4417c0a01cc4a40f":[9,0,19,9],
-"class_nim_b_l_e_remote_descriptor.html#a3b6952aa46b3541fb0a8247e4e542257":[9,0,19,6],
-"class_nim_b_l_e_remote_descriptor.html#a529e80c6731f68f3598e015df7618cfe":[9,0,19,1],
-"class_nim_b_l_e_remote_descriptor.html#ab07e86707a91e48f68e9de55686e939b":[9,0,19,5],
-"class_nim_b_l_e_remote_descriptor.html#ab8a774ebc69c0fb7ea17f926a82dba21":[9,0,19,0],
-"class_nim_b_l_e_remote_descriptor.html#ac4e3a21818903b69ace41c36a58d3c46":[9,0,19,7],
-"class_nim_b_l_e_remote_descriptor.html#ace6b19cd3d9aa8226b4c17371616ad58":[9,0,19,2],
-"class_nim_b_l_e_remote_service.html":[9,0,20],
-"class_nim_b_l_e_remote_service.html#a10fe635fe9a0661d26c33021faaec53b":[9,0,20,4],
-"class_nim_b_l_e_remote_service.html#a15b3b750b073f334c3be680a99ce2e02":[9,0,20,2],
-"class_nim_b_l_e_remote_service.html#a221069047193f8d25f7112b44bbcb28f":[9,0,20,3],
-"class_nim_b_l_e_remote_service.html#a2803aa5cdfdb622ae8fe255dc939cb1d":[9,0,20,0],
-"class_nim_b_l_e_remote_service.html#a2c9e91c842598a6a9576c7b87af0863a":[9,0,20,7],
-"class_nim_b_l_e_remote_service.html#a3d1e7db457a9f3774eaa5e641dcc716e":[9,0,20,8],
-"class_nim_b_l_e_remote_service.html#a49bb3134b570db877fac67e6ed077aa2":[9,0,20,1],
-"class_nim_b_l_e_remote_service.html#a4a9b63b4e5cedb51a7748a88daeb518b":[9,0,20,10],
-"class_nim_b_l_e_remote_service.html#a4bb8c7c85580d86fd9ab7be5c3933b72":[9,0,20,11],
-"class_nim_b_l_e_remote_service.html#a565ed7d306645772d4e03ca65a07f7e5":[9,0,20,9],
-"class_nim_b_l_e_remote_service.html#a7ff4fc7bfb77adc33003dd6eb8e16957":[9,0,20,6],
-"class_nim_b_l_e_remote_service.html#aaf106a37f24a51b967dd0984c973750f":[9,0,20,12],
-"class_nim_b_l_e_remote_service.html#ab12d195a2239a3808d60457184f0c487":[9,0,20,5],
-"class_nim_b_l_e_scan.html":[9,0,21],
-"class_nim_b_l_e_scan.html#a21b1e27816717b77533755f31dfaa820":[9,0,21,14],
-"class_nim_b_l_e_scan.html#a2ae53719546e2d410c816e12c56aad61":[9,0,21,3],
-"class_nim_b_l_e_scan.html#a3f3e30d8b79aeb4d64af10d5f9d33788":[9,0,21,9],
-"class_nim_b_l_e_scan.html#a4248aabb5da67953eadab2a6f834d967":[9,0,21,8],
-"class_nim_b_l_e_scan.html#a566a9ef25b04e946ac23402bb760cda1":[9,0,21,2],
-"class_nim_b_l_e_scan.html#a68fa5cc715f62a9a97ac0dccfb8557c1":[9,0,21,15],
-"class_nim_b_l_e_scan.html#a6a97fd1c7f16fccd7f19994592b6dfe6":[9,0,21,0],
-"class_nim_b_l_e_scan.html#a77483be2bd9dad08322cc64f4e7012c1":[9,0,21,10],
-"class_nim_b_l_e_scan.html#a7d24e77d6b339552b6ac16effdb54910":[9,0,21,5],
-"class_nim_b_l_e_scan.html#a8459a1c69476fcdfd6370a1d10e0e159":[9,0,21,13],
-"class_nim_b_l_e_scan.html#aad9cd2462d00d7c0fa39d095aa2d8e81":[9,0,21,11],
-"class_nim_b_l_e_scan.html#ab275a9fec35c8957acf47689056d94af":[9,0,21,6],
-"class_nim_b_l_e_scan.html#ab788ad282fdbf4467302f6ad2d4d6016":[9,0,21,4],
-"class_nim_b_l_e_scan.html#ac2e8c921413f1ad217f45fecf63c0d22":[9,0,21,12],
-"class_nim_b_l_e_scan.html#ac40563af803f3b9ab88398c7f30e21bb":[9,0,21,7],
-"class_nim_b_l_e_scan.html#ad421a09eeb021755b193a7a5e01f183b":[9,0,21,1],
-"class_nim_b_l_e_scan_results.html":[9,0,22],
-"class_nim_b_l_e_scan_results.html#a2bbead75105733d04796b69e10c56cd4":[9,0,22,1],
-"class_nim_b_l_e_scan_results.html#a44e183a7ce0c9fb587d11910ce5ef200":[9,0,22,2],
-"class_nim_b_l_e_scan_results.html#a68aa3ebffb1be785497f228c1d11e500":[9,0,22,5],
-"class_nim_b_l_e_scan_results.html#ac2356f6c1b8384ebc061d4b7953a9374":[9,0,22,4],
-"class_nim_b_l_e_scan_results.html#ad426f221e8c18c0c3f5784786710e8f0":[9,0,22,0],
-"class_nim_b_l_e_scan_results.html#ae4796dd6ce1845c46f66bc1a36ad746a":[9,0,22,3],
-"class_nim_b_l_e_security.html":[9,0,23],
-"class_nim_b_l_e_security.html#a0bb1535e1b0d48566c17f681b7539f82":[9,0,23,5],
-"class_nim_b_l_e_security.html#a1bb7902d5ceffaca86bd7638a74e35e3":[9,0,23,1],
-"class_nim_b_l_e_security.html#a5cf0d3672a16f557032bcbf39a9e22f2":[9,0,23,0],
-"class_nim_b_l_e_security.html#aac8434faa02a6813b7efd87224e04714":[9,0,23,4],
-"class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b":[9,0,23,3],
-"class_nim_b_l_e_security.html#adfc3caa3e1a5aedc3be5c0f1dc5c99ac":[9,0,23,2],
-"class_nim_b_l_e_security_callbacks.html":[9,0,24],
-"class_nim_b_l_e_security_callbacks.html#a1cfc9c48c02aece1736f9070dc6ff90f":[9,0,24,3],
-"class_nim_b_l_e_security_callbacks.html#a22a8079906070a13583daafd1521a125":[9,0,24,0],
-"class_nim_b_l_e_security_callbacks.html#a2ce6a03693a43a55e51598d8b2654a92":[9,0,24,1],
-"class_nim_b_l_e_security_callbacks.html#a620de166c3fe26027871d18535839cdd":[9,0,24,4],
-"class_nim_b_l_e_security_callbacks.html#aa984ec6f29741b49bdd7dbfde60177be":[9,0,24,2],
-"class_nim_b_l_e_server.html":[9,0,25],
-"class_nim_b_l_e_server.html#a00c92f62f41ec1c499dfaf042b487d75":[9,0,25,15],
-"class_nim_b_l_e_server.html#a15112931d1eb6226188c7e383523ba06":[9,0,25,17],
-"class_nim_b_l_e_server.html#a1ff39fc5235d1374d99b4f3d3acb5ddb":[9,0,25,12],
-"class_nim_b_l_e_server.html#a2540ae7b61fc6513f794da2512d66f74":[9,0,25,19],
-"class_nim_b_l_e_server.html#a347c74f4ad6e2bcc2e301da11ae13e91":[9,0,25,10],
-"class_nim_b_l_e_server.html#a485c90ce36275f9e4ec26a7f3d348cd9":[9,0,25,16],
-"class_nim_b_l_e_server.html#a5f0d43106db713e2ac716eabd70a10b2":[9,0,25,3],
-"class_nim_b_l_e_server.html#a63c9dce5c4bbc1c6bc720b6c51bcf3e1":[9,0,25,4],
-"class_nim_b_l_e_server.html#a6bfd923ecd0ea06d5564343ab7209122":[9,0,25,1],
-"class_nim_b_l_e_server.html#a6eda4c9e0ac1dd031c678d4bf7da1d56":[9,0,25,0],
-"class_nim_b_l_e_server.html#a87ebb3d230e98a6b3cf85bc403d227e0":[9,0,25,13],
-"class_nim_b_l_e_server.html#a98ea12f57c10c0477b0c1c5efab23ee5":[9,0,25,6],
-"class_nim_b_l_e_server.html#a9b08738766de90d7065263761314030a":[9,0,25,21],
-"class_nim_b_l_e_server.html#a9eb1f32b72ac93736585d6d89f393021":[9,0,25,11],
-"class_nim_b_l_e_server.html#aaeb58b4de85754d1aac6964e9248aa35":[9,0,25,2],
-"class_nim_b_l_e_server.html#ab41d8bb9b334734f95a726f1e15200fc":[9,0,25,5],
-"class_nim_b_l_e_server.html#ab713fd5619ddbfc1a88bf43a1686f454":[9,0,25,20],
-"class_nim_b_l_e_server.html#ab95c428ddc94eb019a26d91e70f5974b":[9,0,25,7],
-"class_nim_b_l_e_server.html#ac28df6ead4d7151df3e84f4fa991eb1f":[9,0,25,14],
-"class_nim_b_l_e_server.html#ad241eb42e9775fb2f8aaa87c9fb9a76b":[9,0,25,8],
-"class_nim_b_l_e_server.html#ad91fbcb2717aa1969329f365692e1072":[9,0,25,9],
-"class_nim_b_l_e_server.html#ae94ad52f3c97f62553af9765acdb7bcb":[9,0,25,18],
-"class_nim_b_l_e_server_callbacks.html":[9,0,26],
-"class_nim_b_l_e_server_callbacks.html#a3dbf72280a895e80e0972599a7373ca0":[9,0,26,4],
-"class_nim_b_l_e_server_callbacks.html#a5327d11f249e8f020b59529b634e0c91":[9,0,26,1],
-"class_nim_b_l_e_server_callbacks.html#a60e1ad35979434000d04fdbb374acc18":[9,0,26,5],
-"class_nim_b_l_e_server_callbacks.html#a6a18155a8d3fa0980fab51f08ce5de2d":[9,0,26,0],
-"class_nim_b_l_e_server_callbacks.html#a76f32bb22a34b33ee2a934f101d925b1":[9,0,26,3],
-"class_nim_b_l_e_server_callbacks.html#a80348ab2d08bbec7a6910c96662fc1d4":[9,0,26,2],
-"class_nim_b_l_e_server_callbacks.html#ab4533f1317b36216c3c86695613c80a6":[9,0,26,6],
-"class_nim_b_l_e_server_callbacks.html#ad2c3035c3a284d03673ff1b5aeaa0fca":[9,0,26,7],
-"class_nim_b_l_e_service.html":[9,0,27],
-"class_nim_b_l_e_service.html#a10d10d14f8c5a970a06915cd407a0a73":[9,0,27,17],
-"class_nim_b_l_e_service.html#a24cf868e9eec7b5ecdf1e88d257e91d9":[9,0,27,10],
-"class_nim_b_l_e_service.html#a305b680286096638a4239620ec2de567":[9,0,27,6],
-"class_nim_b_l_e_service.html#a35b56ab3ef7fffb2b299f95d3176d07e":[9,0,27,8],
-"class_nim_b_l_e_service.html#a5084a6db9c9b5ddb4f3e9261606b1e65":[9,0,27,0],
-"class_nim_b_l_e_service.html#a55724788b3bf4614995ea656bf8fe1bb":[9,0,27,11],
-"class_nim_b_l_e_service.html#a71488881933ae8adbf11c5986f9dfb75":[9,0,27,5],
-"class_nim_b_l_e_service.html#a80fe6bca60d0db69ea3ae689a3947c19":[9,0,27,4],
-"class_nim_b_l_e_service.html#a86d65ef61a77bdd660632b4041c2b640":[9,0,27,12],
-"class_nim_b_l_e_service.html#aa2cba47cb4c935e15c77707643e5e9a5":[9,0,27,9],
-"class_nim_b_l_e_service.html#ab000b7d2b7dbb3978a5a8c1e17b1d649":[9,0,27,14],
-"class_nim_b_l_e_service.html#ad37324ed0404d596923d6fdc0133b985":[9,0,27,16],
-"class_nim_b_l_e_service.html#adab5552c080b9cb88095af262d326309":[9,0,27,3],
-"class_nim_b_l_e_service.html#adfc4e67f79aaabc8f2c6bdb5c6966609":[9,0,27,7],
-"class_nim_b_l_e_service.html#af304386c4e067dd0eeb27b86c0e59d0f":[9,0,27,13],
-"class_nim_b_l_e_service.html#af4e9e030046352a6ff3d9ba67fe872e3":[9,0,27,1],
-"class_nim_b_l_e_service.html#af8215dbfdaf7ced32d6158f8ff5116e8":[9,0,27,2],
-"class_nim_b_l_e_service.html#af992d0c27e3a559789fb77fc46623234":[9,0,27,15],
-"class_nim_b_l_e_u_u_i_d.html":[9,0,29],
-"class_nim_b_l_e_u_u_i_d.html#a399dca7d70ee262aa155b39d357321b1":[9,0,29,5],
-"class_nim_b_l_e_u_u_i_d.html#a3d9763ff434905457ed69118e93a35fd":[9,0,29,8],
-"class_nim_b_l_e_u_u_i_d.html#a4315e760bf763333022658ff980f3048":[9,0,29,10],
-"class_nim_b_l_e_u_u_i_d.html#a46484dcb0a1bfef6a8afe97f49f97875":[9,0,29,12],
-"class_nim_b_l_e_u_u_i_d.html#a62e8e924f971c62cc42760d8c7dd6f28":[9,0,29,9],
-"class_nim_b_l_e_u_u_i_d.html#a6eda1a14d4590dd25e6a2f7a49ad528e":[9,0,29,4],
-"class_nim_b_l_e_u_u_i_d.html#a6fd3849062c96cee3d6cd00544fadfac":[9,0,29,0],
-"class_nim_b_l_e_u_u_i_d.html#a7103976da820d0c1840aa77aca38306c":[9,0,29,13],
-"class_nim_b_l_e_u_u_i_d.html#a9708e07b8e0915aafcfa32fe74ccdf64":[9,0,29,14],
-"class_nim_b_l_e_u_u_i_d.html#aadbfc5504e63cd91c59c778607b8dd92":[9,0,29,1],
-"class_nim_b_l_e_u_u_i_d.html#ab4e1658b1c414edb9aea5cf5140fa461":[9,0,29,2],
-"class_nim_b_l_e_u_u_i_d.html#abec7913c5989c3620c423c6717111453":[9,0,29,6],
-"class_nim_b_l_e_u_u_i_d.html#abeee22e6661f7533f05802e1f89fedfe":[9,0,29,11],
-"class_nim_b_l_e_u_u_i_d.html#ac9fbd00e7ffeb334571016c61bca9286":[9,0,29,3],
-"class_nim_b_l_e_u_u_i_d.html#aefc88e493b63ccd6dc86227dc92af0c6":[9,0,29,7],
-"class_nim_b_l_e_utils.html":[9,0,28],
-"classes.html":[9,1],
-"deprecated.html":[7],
-"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[10,0,0],
-"files.html":[10,0],
-"functions.html":[9,3,0,0],
-"functions.html":[9,3,0],
-"functions_b.html":[9,3,0,1],
-"functions_c.html":[9,3,0,2],
-"functions_d.html":[9,3,0,3],
-"functions_e.html":[9,3,0,4],
-"functions_enum.html":[9,3,2],
-"functions_f.html":[9,3,0,5],
-"functions_func.html":[9,3,1],
-"functions_func.html":[9,3,1,0],
-"functions_func_b.html":[9,3,1,1],
-"functions_func_c.html":[9,3,1,2],
-"functions_func_d.html":[9,3,1,3],
-"functions_func_e.html":[9,3,1,4],
-"functions_func_f.html":[9,3,1,5],
-"functions_func_g.html":[9,3,1,6],
-"functions_func_h.html":[9,3,1,7],
-"functions_func_i.html":[9,3,1,8],
-"functions_func_m.html":[9,3,1,9],
-"functions_func_n.html":[9,3,1,10],
-"functions_func_o.html":[9,3,1,11],
-"functions_func_p.html":[9,3,1,12],
-"functions_func_r.html":[9,3,1,13],
-"functions_func_s.html":[9,3,1,14],
-"functions_func_t.html":[9,3,1,15],
-"functions_func_u.html":[9,3,1,16],
-"functions_func_w.html":[9,3,1,17]
+"class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3":[9,0,10,5],
+"class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4":[9,0,10,21],
+"class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07":[9,0,10,27],
+"class_nim_b_l_e_client.html#a967d0c75083706f336f2283eac6d0de2":[9,0,10,28],
+"class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896":[9,0,10,10],
+"class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5":[9,0,10,0],
+"class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a":[9,0,10,13],
+"class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab":[9,0,10,29],
+"class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a":[9,0,10,18],
+"class_nim_b_l_e_client.html#ad8ba10522d79af1136019606802f0978":[9,0,10,17],
+"class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78":[9,0,10,15],
+"class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366":[9,0,10,16],
+"class_nim_b_l_e_client.html#ae9b3e8a9b47c7eaad040b485bda958a1":[9,0,10,3],
+"class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c":[9,0,10,22],
+"class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c":[9,0,10,20],
+"class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526":[9,0,10,30],
+"class_nim_b_l_e_client_callbacks.html":[9,0,11],
+"class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808":[9,0,11,4],
+"class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065":[9,0,11,0],
+"class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6":[9,0,11,3],
+"class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae":[9,0,11,2],
+"class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5":[9,0,11,5],
+"class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0":[9,0,11,1],
+"class_nim_b_l_e_conn_info.html":[9,0,12],
+"class_nim_b_l_e_conn_info.html#a10c6093ca2f92ea61b82815909106430":[9,0,12,3],
+"class_nim_b_l_e_conn_info.html#a278a8456f9d7df9cea7d776e61b36782":[9,0,12,7],
+"class_nim_b_l_e_conn_info.html#a63ff245a8848bf1cc5839adee7aa41c4":[9,0,12,11],
+"class_nim_b_l_e_conn_info.html#a7229e53d21c9c6b5b9fb5bd232862c89":[9,0,12,8],
+"class_nim_b_l_e_conn_info.html#a77e212f3e236b05da0978ea482e3efb4":[9,0,12,1],
+"class_nim_b_l_e_conn_info.html#a7bc23f09eb7dd53be902cb67d2ba745a":[9,0,12,5],
+"class_nim_b_l_e_conn_info.html#a8e885d340f1ab4e477c69ed7ea99b082":[9,0,12,4],
+"class_nim_b_l_e_conn_info.html#a8ecf3c58da6ffb529215ce6f13c96744":[9,0,12,10],
+"class_nim_b_l_e_conn_info.html#a94796b6446ef40c0ae0d1f8af1ff9462":[9,0,12,6],
+"class_nim_b_l_e_conn_info.html#aa43374d84b7564f6d187fd0c637b1049":[9,0,12,2],
+"class_nim_b_l_e_conn_info.html#abfb91b833cb200f795bc63d5affff6af":[9,0,12,12],
+"class_nim_b_l_e_conn_info.html#af17023ca06c3d1b9e142dcd5f8c54847":[9,0,12,0],
+"class_nim_b_l_e_conn_info.html#af281a25921d36dc75cf1e37561940125":[9,0,12,9],
+"class_nim_b_l_e_descriptor.html":[9,0,13],
+"class_nim_b_l_e_descriptor.html#a378346f59afb706d4c1d961227b98c5d":[9,0,13,5],
+"class_nim_b_l_e_descriptor.html#a3cf995352eb1b1c212a7911a05c33b25":[9,0,13,0],
+"class_nim_b_l_e_descriptor.html#a412b3735186d94e9ddcf37a06c2055e1":[9,0,13,3],
+"class_nim_b_l_e_descriptor.html#a486af6799753dfa60b3faddfac2adbcd":[9,0,13,4],
+"class_nim_b_l_e_descriptor.html#a61062547f21ca8e102ec5d8e0843c9f9":[9,0,13,9],
+"class_nim_b_l_e_descriptor.html#a644f739b6621702856be8db93035e9a0":[9,0,13,11],
+"class_nim_b_l_e_descriptor.html#a7153e051e5808469c23e2207fa6711db":[9,0,13,6],
+"class_nim_b_l_e_descriptor.html#a7ecb634b7d6390677cad232bd6be6638":[9,0,13,1],
+"class_nim_b_l_e_descriptor.html#a8f64c733c8848948fe9123bd7cd3fd53":[9,0,13,8],
+"class_nim_b_l_e_descriptor.html#a9136cc9e4b41110b3dd99d1c9553a477":[9,0,13,12],
+"class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923":[9,0,13,13],
+"class_nim_b_l_e_descriptor.html#aa9cb8727f9e17cf8050cf619e5fe3096":[9,0,13,10],
+"class_nim_b_l_e_descriptor.html#abc5398a570edc197fbadad3f5b45e186":[9,0,13,7],
+"class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5":[9,0,13,14],
+"class_nim_b_l_e_descriptor.html#ad110851335bc7b225f5bea9ac11bedcc":[9,0,13,2],
+"class_nim_b_l_e_descriptor_callbacks.html":[9,0,14],
+"class_nim_b_l_e_descriptor_callbacks.html#a6b13d2a8447f50a089b869cea9fcdcbc":[9,0,14,0],
+"class_nim_b_l_e_descriptor_callbacks.html#a7081bf2c4f22225c4715e09762be40ed":[9,0,14,1],
+"class_nim_b_l_e_device.html":[9,0,15],
+"class_nim_b_l_e_eddystone_t_l_m.html":[9,0,16],
+"class_nim_b_l_e_eddystone_t_l_m.html#a160e33218dc7fb33f678cda1605da52e":[9,0,16,9],
+"class_nim_b_l_e_eddystone_t_l_m.html#a205e0e2efc09c4c5043f11aeddee4d63":[9,0,16,13],
+"class_nim_b_l_e_eddystone_t_l_m.html#a49fdfb7c2edf2ae92f69856ec0ce4291":[9,0,16,12],
+"class_nim_b_l_e_eddystone_t_l_m.html#a4d87d0b11420af2ae04bc4e6ce2f8607":[9,0,16,0],
+"class_nim_b_l_e_eddystone_t_l_m.html#a556a6b6a75693997390f3bacf6e5ca5e":[9,0,16,1],
+"class_nim_b_l_e_eddystone_t_l_m.html#a6d033c09a513b2dfdad6f1b962b906a8":[9,0,16,8],
+"class_nim_b_l_e_eddystone_t_l_m.html#a8e8ee8fff10730089a370f9da7b6a691":[9,0,16,10],
+"class_nim_b_l_e_eddystone_t_l_m.html#a970ba10424567d17c961ed3b3ef83d8e":[9,0,16,15],
+"class_nim_b_l_e_eddystone_t_l_m.html#a999d53f4bad59c2ebc688403f66474b1":[9,0,16,11],
+"class_nim_b_l_e_eddystone_t_l_m.html#aa511375f22952c0f5846a51e6c2511c5":[9,0,16,5],
+"class_nim_b_l_e_eddystone_t_l_m.html#ab1c4a13c2f57a6e0293810dd09be3db3":[9,0,16,4],
+"class_nim_b_l_e_eddystone_t_l_m.html#abda56940f7d9f7ccef2629b75880dd5f":[9,0,16,3],
+"class_nim_b_l_e_eddystone_t_l_m.html#ad69af8fe47502d922203916357f6c206":[9,0,16,14],
+"class_nim_b_l_e_eddystone_t_l_m.html#ae146a8f066ef3fc6994070654ec5d7ea":[9,0,16,2],
+"class_nim_b_l_e_eddystone_t_l_m.html#ae9f17d2c1e4150775881babb73f0b10c":[9,0,16,6],
+"class_nim_b_l_e_eddystone_t_l_m.html#af9862f983df6f48a96220e936d13d17b":[9,0,16,7],
+"class_nim_b_l_e_eddystone_u_r_l.html":[9,0,17],
+"class_nim_b_l_e_eddystone_u_r_l.html#a0109874399f3e70a72ee9f4a909710e1":[9,0,17,4],
+"class_nim_b_l_e_eddystone_u_r_l.html#a1fde0fcf7d90f79e0eb718967518247a":[9,0,17,5],
+"class_nim_b_l_e_eddystone_u_r_l.html#a42583c740bbdb9591422e8770f8bd0d5":[9,0,17,3],
+"class_nim_b_l_e_eddystone_u_r_l.html#a8038c895e8da7c7ac861557ea0a9d91b":[9,0,17,7],
+"class_nim_b_l_e_eddystone_u_r_l.html#a8102533ff1e7b6527ea744279f8f64ca":[9,0,17,8],
+"class_nim_b_l_e_eddystone_u_r_l.html#a8b68cc96a84da85e20d8583ba375c2ff":[9,0,17,2],
+"class_nim_b_l_e_eddystone_u_r_l.html#ac32c7066ce1ee8d495a35ec870f0e7bf":[9,0,17,1],
+"class_nim_b_l_e_eddystone_u_r_l.html#ada3ac4a544b8565635871f39f1593811":[9,0,17,6],
+"class_nim_b_l_e_eddystone_u_r_l.html#ae102214d20e32e31c9c84d723f67df15":[9,0,17,0],
+"class_nim_b_l_e_eddystone_u_r_l.html#af183e8483ae81fff65d909e67986fcad":[9,0,17,9],
+"class_nim_b_l_e_ext_advertisement.html":[9,0,18],
+"class_nim_b_l_e_ext_advertisement.html#a01f8e18204071c11eb47ab243893fc53":[9,0,18,10],
+"class_nim_b_l_e_ext_advertisement.html#a02fe1652f994e5bf76dc03381e47b39e":[9,0,18,7],
+"class_nim_b_l_e_ext_advertisement.html#a07b1589ad58a9e09b6ba7269fec87df0":[9,0,18,30],
+"class_nim_b_l_e_ext_advertisement.html#a08a31a938ccd10fad61e1115c1db6274":[9,0,18,14],
+"class_nim_b_l_e_ext_advertisement.html#a0a1f0c1facf52f3688b53158e95153b6":[9,0,18,11],
+"class_nim_b_l_e_ext_advertisement.html#a1391be9ee1b2ba1dc0548f2431b1d3af":[9,0,18,4],
+"class_nim_b_l_e_ext_advertisement.html#a1a4fd6883b11c339e397fc52f75c9ebb":[9,0,18,32],
+"class_nim_b_l_e_ext_advertisement.html#a24034d49c9ebadd947db1ef839c8b138":[9,0,18,29],
+"class_nim_b_l_e_ext_advertisement.html#a2b29a03b9a8b3a30245ff5468f239887":[9,0,18,15],
+"class_nim_b_l_e_ext_advertisement.html#a31ef2860f84d44a110f2a6d2d8eda3fc":[9,0,18,12],
+"class_nim_b_l_e_ext_advertisement.html#a3700ef4fd9078cf6dfd8c1eea4c520ba":[9,0,18,8],
+"class_nim_b_l_e_ext_advertisement.html#a4c339022b5523d20cc7fa956c5dbe1be":[9,0,18,20],
+"class_nim_b_l_e_ext_advertisement.html#a52ee2ff1ccd011ed3410d52c0518728e":[9,0,18,16],
+"class_nim_b_l_e_ext_advertisement.html#a5536d30615b87b68ec0c0f01292f5df9":[9,0,18,17],
+"class_nim_b_l_e_ext_advertisement.html#a5e90a75173354fe9c6959004eb43b20a":[9,0,18,19],
+"class_nim_b_l_e_ext_advertisement.html#a6162f7b7692b5ddabf7e015893b0ffa2":[9,0,18,13],
+"class_nim_b_l_e_ext_advertisement.html#a6220b378a1f2361c6dc76ba125936c51":[9,0,18,33],
+"class_nim_b_l_e_ext_advertisement.html#a62d44c4e1e41d9c6a470a7ebb0b7b038":[9,0,18,2],
+"class_nim_b_l_e_ext_advertisement.html#a63c2f5900752edad428304c5342b8458":[9,0,18,34],
+"class_nim_b_l_e_ext_advertisement.html#a6a0bcbde65ccb9e49aa93d31514c8225":[9,0,18,18],
+"class_nim_b_l_e_ext_advertisement.html#a747ef73a02df72709cf9bd89aabc08b3":[9,0,18,24],
+"class_nim_b_l_e_ext_advertisement.html#a74d0b2a236d144c5bce05536ec6b8509":[9,0,18,1],
+"class_nim_b_l_e_ext_advertisement.html#a7d7d57268d7c54fe5492e92bc7af33d8":[9,0,18,22],
+"class_nim_b_l_e_ext_advertisement.html#a852b96ea8e349caea04941adbe6d24b4":[9,0,18,9],
+"class_nim_b_l_e_ext_advertisement.html#a9e739c3117da31c486f8f4dd8d273c9c":[9,0,18,0],
+"class_nim_b_l_e_ext_advertisement.html#aaa47ca630ab01d75bdea8d252d10b506":[9,0,18,31],
+"class_nim_b_l_e_ext_advertisement.html#aaf6c44bc23f03a72bc02c3d45a9adf1d":[9,0,18,5],
+"class_nim_b_l_e_ext_advertisement.html#ab6103c5e86949d0e334101353b109775":[9,0,18,27],
+"class_nim_b_l_e_ext_advertisement.html#ab76aa4b9fb743e5269cfbbae8215d8a8":[9,0,18,23],
+"class_nim_b_l_e_ext_advertisement.html#abb66ffe5783f91f03301fc705701569f":[9,0,18,26],
+"class_nim_b_l_e_ext_advertisement.html#ac9f82eb0112544b977eb1947ed308525":[9,0,18,3],
+"class_nim_b_l_e_ext_advertisement.html#ad3bd08736cc70700c00432ec9ccfe94d":[9,0,18,25],
+"class_nim_b_l_e_ext_advertisement.html#ad8522542b90067e3a53076823d2087c3":[9,0,18,28],
+"class_nim_b_l_e_ext_advertisement.html#ae9777a0c544be6c674f4e39d56e930b8":[9,0,18,21],
+"class_nim_b_l_e_ext_advertisement.html#aec383f3f61780ee5bda3599543c84dd8":[9,0,18,6],
+"class_nim_b_l_e_ext_advertisement.html#af25522e956cfeb64bd6beca881d8786e":[9,0,18,35],
+"class_nim_b_l_e_ext_advertising.html":[9,0,19],
+"class_nim_b_l_e_ext_advertising.html#a02b4e33908456341fb98753d51316609":[9,0,19,11],
+"class_nim_b_l_e_ext_advertising.html#a321fb75a0ffacedfb54da4cc00484b7c":[9,0,19,7],
+"class_nim_b_l_e_ext_advertising.html#a3ea2e93f8c3ce4498d30e4dac7b29109":[9,0,19,10],
+"class_nim_b_l_e_ext_advertising.html#a477c57db99ce3b5e987d6838b661808f":[9,0,19,1],
+"class_nim_b_l_e_ext_advertising.html#a8044a281a37f4d7c96166ce6f0851159":[9,0,19,9],
+"class_nim_b_l_e_ext_advertising.html#a88ebe0b664cf22449e1a4311fc3b9b01":[9,0,19,2],
+"class_nim_b_l_e_ext_advertising.html#a8c4df0be35301c90a39491b9e98d3e24":[9,0,19,4],
+"class_nim_b_l_e_ext_advertising.html#a9395a0087e96329591ed2515cc21456b":[9,0,19,8],
+"class_nim_b_l_e_ext_advertising.html#abd7d35653a6831e75700eb5ac9ab5789":[9,0,19,3],
+"class_nim_b_l_e_ext_advertising.html#add623162d46c952d692e26888c9f8826":[9,0,19,6],
+"class_nim_b_l_e_ext_advertising.html#af7f4225f33f03d17efba1d4de0684eef":[9,0,19,5],
+"class_nim_b_l_e_ext_advertising.html#afe321b856d785b78242b2ea020a96af3":[9,0,19,0],
+"class_nim_b_l_e_ext_advertising_callbacks.html":[9,0,20],
+"class_nim_b_l_e_ext_advertising_callbacks.html#a07004fd4e849aa8e9bd7106cbf6ab94b":[9,0,20,1],
+"class_nim_b_l_e_ext_advertising_callbacks.html#a92af7bd791095cf91438b7af4c26263f":[9,0,20,0],
+"class_nim_b_l_e_h_i_d_device.html":[9,0,21],
+"class_nim_b_l_e_h_i_d_device.html#a033c4ad91f1bc165ac6a322b4dcc1699":[9,0,21,4],
+"class_nim_b_l_e_h_i_d_device.html#a1118c1e730f38b8b17795c8eb41a0861":[9,0,21,14],
+"class_nim_b_l_e_h_i_d_device.html#a24498f7b714574ab4a90288f7e4d58b7":[9,0,21,1],
+"class_nim_b_l_e_h_i_d_device.html#a33fc2bfc990ecd250859ca8f34a4314e":[9,0,21,7],
+"class_nim_b_l_e_h_i_d_device.html#a3e5b8291ca88d85a352429415abaec9c":[9,0,21,10],
+"class_nim_b_l_e_h_i_d_device.html#a45ca7d4547dfea9a64987065d83653bd":[9,0,21,2],
+"class_nim_b_l_e_h_i_d_device.html#a468e599c7d75e691f8d34e1b24db8a38":[9,0,21,5],
+"class_nim_b_l_e_h_i_d_device.html#a5309df317aa42de7ced2e34219b6666a":[9,0,21,13],
+"class_nim_b_l_e_h_i_d_device.html#a5984042cd05ea4ead895f5577133a235":[9,0,21,17],
+"class_nim_b_l_e_h_i_d_device.html#a5c42da43e0b8dfcd1d045e8a86d0b5a2":[9,0,21,6],
+"class_nim_b_l_e_h_i_d_device.html#a5e996a1668785f7a978f9874b4ff3b3e":[9,0,21,15],
+"class_nim_b_l_e_h_i_d_device.html#a84e3127a05f7e6a44761ec4a9e7668e3":[9,0,21,16],
+"class_nim_b_l_e_h_i_d_device.html#a91cfe81b47cea229e9bbe3c55be33701":[9,0,21,9],
+"class_nim_b_l_e_h_i_d_device.html#a95b4935280494ffa24bfae89753f199a":[9,0,21,0],
+"class_nim_b_l_e_h_i_d_device.html#ac04ed297cf6adbec210873739d2dc74d":[9,0,21,11],
+"class_nim_b_l_e_h_i_d_device.html#ac1e63972c6a77665a6bbc76f9ff4a717":[9,0,21,12],
+"class_nim_b_l_e_h_i_d_device.html#ace0141db690f1afec1b266f9ac9aa0f0":[9,0,21,3],
+"class_nim_b_l_e_h_i_d_device.html#ae80cf58c481c25bd6d7392a43b6fa48b":[9,0,21,8],
+"class_nim_b_l_e_remote_characteristic.html":[9,0,22],
+"class_nim_b_l_e_remote_characteristic.html#a0eb6655635394268a76c68e845d14135":[9,0,22,5],
+"class_nim_b_l_e_remote_characteristic.html#a181c54862bc422d8ad0b326af675922d":[9,0,22,20],
+"class_nim_b_l_e_remote_characteristic.html#a19362aaf357835e1f771c78f0c4cd9dd":[9,0,22,29],
+"class_nim_b_l_e_remote_characteristic.html#a2614c7f437b52f385fc4fd29abe358eb":[9,0,22,7],
+"class_nim_b_l_e_remote_characteristic.html#a333adea9c9f243774c6a2f13beabd873":[9,0,22,10],
+"class_nim_b_l_e_remote_characteristic.html#a3c8d1fd77dd074df866c091c614eafb3":[9,0,22,33],
+"class_nim_b_l_e_remote_characteristic.html#a417bb44d000758535253488f4d77774a":[9,0,22,23],
+"class_nim_b_l_e_remote_characteristic.html#a463760cabc9ca104a6fe094eb942fec0":[9,0,22,24],
+"class_nim_b_l_e_remote_characteristic.html#a4b86a1f600a61036487f5161f1f1726a":[9,0,22,27],
+"class_nim_b_l_e_remote_characteristic.html#a53322384b295a2548b3399e2c63d76f4":[9,0,22,3],
+"class_nim_b_l_e_remote_characteristic.html#a5f0a51b4a7fb2244d236dcb96fcf5205":[9,0,22,9],
+"class_nim_b_l_e_remote_characteristic.html#a6178e1c58361b957be3c48548c1c4366":[9,0,22,12],
+"class_nim_b_l_e_remote_characteristic.html#a6d0779ffe7e89449121428e7fd6083d8":[9,0,22,17],
+"class_nim_b_l_e_remote_characteristic.html#a7163009a9f0ff718b5856d19cb4a3568":[9,0,22,2],
+"class_nim_b_l_e_remote_characteristic.html#a71793454ffab034f87af3a5e9677a63d":[9,0,22,21],
+"class_nim_b_l_e_remote_characteristic.html#a74ad8484cbc88d8eb36d4684233c538b":[9,0,22,18],
+"class_nim_b_l_e_remote_characteristic.html#a78ac88ca25d71dfe31b95898b79b0442":[9,0,22,1],
+"class_nim_b_l_e_remote_characteristic.html#a81f39759d48a8fb792c94e4b3b455eef":[9,0,22,19],
+"class_nim_b_l_e_remote_characteristic.html#a855d591de111b09013ae83c4043d06ed":[9,0,22,0],
+"class_nim_b_l_e_remote_characteristic.html#a943183a55b020de9e09ac2cfaebcde32":[9,0,22,15],
+"class_nim_b_l_e_remote_characteristic.html#a94ae59940fcd128efeaf339b282b7ef9":[9,0,22,30],
+"class_nim_b_l_e_remote_characteristic.html#a9c41acdbf23dc036f321d4f0a66d40d1":[9,0,22,4],
+"class_nim_b_l_e_remote_characteristic.html#aad0ba99cad9779b33ea7cd4e94349099":[9,0,22,8],
+"class_nim_b_l_e_remote_characteristic.html#aae71c20d300ead52770e66fb8a1a47ea":[9,0,22,6],
+"class_nim_b_l_e_remote_characteristic.html#ab46121a8f5000c40d521e7ee5d92bee6":[9,0,22,14],
+"class_nim_b_l_e_remote_characteristic.html#ab4f54eabe90a416546b7b3fc3477f49c":[9,0,22,25],
+"class_nim_b_l_e_remote_characteristic.html#acf11d225fe5a25327742349e9d6061f9":[9,0,22,13],
+"class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae":[9,0,22,31],
+"class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae":[9,0,22,32],
+"class_nim_b_l_e_remote_characteristic.html#ad2691a8ea85488c8270f78701352fbb2":[9,0,22,26],
+"class_nim_b_l_e_remote_characteristic.html#ad62c63468995a24d736c4176c9607eeb":[9,0,22,16],
+"class_nim_b_l_e_remote_characteristic.html#ade5c6ae280c3cf36c9905be23df8f080":[9,0,22,22],
+"class_nim_b_l_e_remote_characteristic.html#ae2791429ba4a8c310ffc24139a985da6":[9,0,22,28],
+"class_nim_b_l_e_remote_characteristic.html#aebbcd36740e49d7e29eb5b21d6802380":[9,0,22,11],
+"class_nim_b_l_e_remote_descriptor.html":[9,0,23],
+"class_nim_b_l_e_remote_descriptor.html#a008795a09d1fbe8533c2e9d0e8deb33a":[9,0,23,8],
+"class_nim_b_l_e_remote_descriptor.html#a0d3fb6424b2c86730e1a292281cd836e":[9,0,23,13],
+"class_nim_b_l_e_remote_descriptor.html#a14351ea51b7b04f91b71e388881edd53":[9,0,23,3],
+"class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c":[9,0,23,11],
+"class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c":[9,0,23,12],
+"class_nim_b_l_e_remote_descriptor.html#a219606f84d63bc02f093051d66f05204":[9,0,23,4],
+"class_nim_b_l_e_remote_descriptor.html#a529e80c6731f68f3598e015df7618cfe":[9,0,23,1],
+"class_nim_b_l_e_remote_descriptor.html#a7c7c07e6ccd969de568b5bda72ec52d7":[9,0,23,6],
+"class_nim_b_l_e_remote_descriptor.html#ab07e86707a91e48f68e9de55686e939b":[9,0,23,5],
+"class_nim_b_l_e_remote_descriptor.html#ab1654a0b1dc86fe042b3d5b983fbd08c":[9,0,23,10],
+"class_nim_b_l_e_remote_descriptor.html#ab7cab188f311f44d06638434117938e7":[9,0,23,9],
+"class_nim_b_l_e_remote_descriptor.html#ab8a774ebc69c0fb7ea17f926a82dba21":[9,0,23,0],
+"class_nim_b_l_e_remote_descriptor.html#ac4e3a21818903b69ace41c36a58d3c46":[9,0,23,7],
+"class_nim_b_l_e_remote_descriptor.html#ace6b19cd3d9aa8226b4c17371616ad58":[9,0,23,2],
+"class_nim_b_l_e_remote_service.html":[9,0,24],
+"class_nim_b_l_e_remote_service.html#a10fe635fe9a0661d26c33021faaec53b":[9,0,24,4],
+"class_nim_b_l_e_remote_service.html#a15b3b750b073f334c3be680a99ce2e02":[9,0,24,2],
+"class_nim_b_l_e_remote_service.html#a221069047193f8d25f7112b44bbcb28f":[9,0,24,3],
+"class_nim_b_l_e_remote_service.html#a2803aa5cdfdb622ae8fe255dc939cb1d":[9,0,24,0],
+"class_nim_b_l_e_remote_service.html#a2c9e91c842598a6a9576c7b87af0863a":[9,0,24,7],
+"class_nim_b_l_e_remote_service.html#a3d1e7db457a9f3774eaa5e641dcc716e":[9,0,24,8],
+"class_nim_b_l_e_remote_service.html#a49bb3134b570db877fac67e6ed077aa2":[9,0,24,1],
+"class_nim_b_l_e_remote_service.html#a4a9b63b4e5cedb51a7748a88daeb518b":[9,0,24,10],
+"class_nim_b_l_e_remote_service.html#a4bb8c7c85580d86fd9ab7be5c3933b72":[9,0,24,11],
+"class_nim_b_l_e_remote_service.html#a565ed7d306645772d4e03ca65a07f7e5":[9,0,24,9],
+"class_nim_b_l_e_remote_service.html#a7ff4fc7bfb77adc33003dd6eb8e16957":[9,0,24,6],
+"class_nim_b_l_e_remote_service.html#aaf106a37f24a51b967dd0984c973750f":[9,0,24,12],
+"class_nim_b_l_e_remote_service.html#ab12d195a2239a3808d60457184f0c487":[9,0,24,5],
+"class_nim_b_l_e_scan.html":[9,0,25],
+"class_nim_b_l_e_scan.html#a21b1e27816717b77533755f31dfaa820":[9,0,25,14],
+"class_nim_b_l_e_scan.html#a2ae53719546e2d410c816e12c56aad61":[9,0,25,3],
+"class_nim_b_l_e_scan.html#a3f3e30d8b79aeb4d64af10d5f9d33788":[9,0,25,9],
+"class_nim_b_l_e_scan.html#a4248aabb5da67953eadab2a6f834d967":[9,0,25,8],
+"class_nim_b_l_e_scan.html#a566a9ef25b04e946ac23402bb760cda1":[9,0,25,2],
+"class_nim_b_l_e_scan.html#a68fa5cc715f62a9a97ac0dccfb8557c1":[9,0,25,15],
+"class_nim_b_l_e_scan.html#a6a97fd1c7f16fccd7f19994592b6dfe6":[9,0,25,0],
+"class_nim_b_l_e_scan.html#a77483be2bd9dad08322cc64f4e7012c1":[9,0,25,10],
+"class_nim_b_l_e_scan.html#a7d24e77d6b339552b6ac16effdb54910":[9,0,25,5],
+"class_nim_b_l_e_scan.html#a8459a1c69476fcdfd6370a1d10e0e159":[9,0,25,13],
+"class_nim_b_l_e_scan.html#aad9cd2462d00d7c0fa39d095aa2d8e81":[9,0,25,11],
+"class_nim_b_l_e_scan.html#ab275a9fec35c8957acf47689056d94af":[9,0,25,6],
+"class_nim_b_l_e_scan.html#ab788ad282fdbf4467302f6ad2d4d6016":[9,0,25,4],
+"class_nim_b_l_e_scan.html#ac2e8c921413f1ad217f45fecf63c0d22":[9,0,25,12],
+"class_nim_b_l_e_scan.html#ac40563af803f3b9ab88398c7f30e21bb":[9,0,25,7],
+"class_nim_b_l_e_scan.html#ad421a09eeb021755b193a7a5e01f183b":[9,0,25,1],
+"class_nim_b_l_e_scan_results.html":[9,0,26],
+"class_nim_b_l_e_scan_results.html#a2bbead75105733d04796b69e10c56cd4":[9,0,26,1],
+"class_nim_b_l_e_scan_results.html#a44e183a7ce0c9fb587d11910ce5ef200":[9,0,26,2],
+"class_nim_b_l_e_scan_results.html#a68aa3ebffb1be785497f228c1d11e500":[9,0,26,5],
+"class_nim_b_l_e_scan_results.html#ac2356f6c1b8384ebc061d4b7953a9374":[9,0,26,4],
+"class_nim_b_l_e_scan_results.html#ad426f221e8c18c0c3f5784786710e8f0":[9,0,26,0],
+"class_nim_b_l_e_scan_results.html#ae4796dd6ce1845c46f66bc1a36ad746a":[9,0,26,3],
+"class_nim_b_l_e_security.html":[9,0,27],
+"class_nim_b_l_e_security.html#a0bb1535e1b0d48566c17f681b7539f82":[9,0,27,5],
+"class_nim_b_l_e_security.html#a1bb7902d5ceffaca86bd7638a74e35e3":[9,0,27,1],
+"class_nim_b_l_e_security.html#a5cf0d3672a16f557032bcbf39a9e22f2":[9,0,27,0],
+"class_nim_b_l_e_security.html#aac8434faa02a6813b7efd87224e04714":[9,0,27,4]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index 037ab4c..ebe0c52 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,121 +1,240 @@
var NAVTREEINDEX2 =
{
-"functions_func_~.html":[9,3,1,18],
+"class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b":[9,0,27,3],
+"class_nim_b_l_e_security.html#adfc3caa3e1a5aedc3be5c0f1dc5c99ac":[9,0,27,2],
+"class_nim_b_l_e_security_callbacks.html":[9,0,28],
+"class_nim_b_l_e_security_callbacks.html#a1cfc9c48c02aece1736f9070dc6ff90f":[9,0,28,3],
+"class_nim_b_l_e_security_callbacks.html#a22a8079906070a13583daafd1521a125":[9,0,28,0],
+"class_nim_b_l_e_security_callbacks.html#a2ce6a03693a43a55e51598d8b2654a92":[9,0,28,1],
+"class_nim_b_l_e_security_callbacks.html#a620de166c3fe26027871d18535839cdd":[9,0,28,4],
+"class_nim_b_l_e_security_callbacks.html#aa984ec6f29741b49bdd7dbfde60177be":[9,0,28,2],
+"class_nim_b_l_e_server.html":[9,0,29],
+"class_nim_b_l_e_server.html#a00c92f62f41ec1c499dfaf042b487d75":[9,0,29,15],
+"class_nim_b_l_e_server.html#a15112931d1eb6226188c7e383523ba06":[9,0,29,17],
+"class_nim_b_l_e_server.html#a1ff39fc5235d1374d99b4f3d3acb5ddb":[9,0,29,12],
+"class_nim_b_l_e_server.html#a347c74f4ad6e2bcc2e301da11ae13e91":[9,0,29,10],
+"class_nim_b_l_e_server.html#a485c90ce36275f9e4ec26a7f3d348cd9":[9,0,29,16],
+"class_nim_b_l_e_server.html#a5f0d43106db713e2ac716eabd70a10b2":[9,0,29,3],
+"class_nim_b_l_e_server.html#a63c9dce5c4bbc1c6bc720b6c51bcf3e1":[9,0,29,4],
+"class_nim_b_l_e_server.html#a6bfd923ecd0ea06d5564343ab7209122":[9,0,29,1],
+"class_nim_b_l_e_server.html#a6eda4c9e0ac1dd031c678d4bf7da1d56":[9,0,29,0],
+"class_nim_b_l_e_server.html#a7a4c114b572675e82700604db29e6e25":[9,0,29,20],
+"class_nim_b_l_e_server.html#a87ebb3d230e98a6b3cf85bc403d227e0":[9,0,29,13],
+"class_nim_b_l_e_server.html#a8f4b6c2fc5602f5ec34f963df6a21f75":[9,0,29,19],
+"class_nim_b_l_e_server.html#a98ea12f57c10c0477b0c1c5efab23ee5":[9,0,29,6],
+"class_nim_b_l_e_server.html#a9b08738766de90d7065263761314030a":[9,0,29,22],
+"class_nim_b_l_e_server.html#a9eb1f32b72ac93736585d6d89f393021":[9,0,29,11],
+"class_nim_b_l_e_server.html#aaeb58b4de85754d1aac6964e9248aa35":[9,0,29,2],
+"class_nim_b_l_e_server.html#ab41d8bb9b334734f95a726f1e15200fc":[9,0,29,5],
+"class_nim_b_l_e_server.html#ab95c428ddc94eb019a26d91e70f5974b":[9,0,29,7],
+"class_nim_b_l_e_server.html#ac28df6ead4d7151df3e84f4fa991eb1f":[9,0,29,14],
+"class_nim_b_l_e_server.html#ad241eb42e9775fb2f8aaa87c9fb9a76b":[9,0,29,8],
+"class_nim_b_l_e_server.html#ad91fbcb2717aa1969329f365692e1072":[9,0,29,9],
+"class_nim_b_l_e_server.html#ae94ad52f3c97f62553af9765acdb7bcb":[9,0,29,18],
+"class_nim_b_l_e_server.html#af827ef8988c1584795447a634502f0df":[9,0,29,21],
+"class_nim_b_l_e_server_callbacks.html":[9,0,30],
+"class_nim_b_l_e_server_callbacks.html#a3dbf72280a895e80e0972599a7373ca0":[9,0,30,4],
+"class_nim_b_l_e_server_callbacks.html#a5327d11f249e8f020b59529b634e0c91":[9,0,30,1],
+"class_nim_b_l_e_server_callbacks.html#a60e1ad35979434000d04fdbb374acc18":[9,0,30,5],
+"class_nim_b_l_e_server_callbacks.html#a6a18155a8d3fa0980fab51f08ce5de2d":[9,0,30,0],
+"class_nim_b_l_e_server_callbacks.html#a76f32bb22a34b33ee2a934f101d925b1":[9,0,30,3],
+"class_nim_b_l_e_server_callbacks.html#a80348ab2d08bbec7a6910c96662fc1d4":[9,0,30,2],
+"class_nim_b_l_e_server_callbacks.html#ab4533f1317b36216c3c86695613c80a6":[9,0,30,6],
+"class_nim_b_l_e_server_callbacks.html#ad2c3035c3a284d03673ff1b5aeaa0fca":[9,0,30,7],
+"class_nim_b_l_e_service.html":[9,0,31],
+"class_nim_b_l_e_service.html#a10d10d14f8c5a970a06915cd407a0a73":[9,0,31,17],
+"class_nim_b_l_e_service.html#a24cf868e9eec7b5ecdf1e88d257e91d9":[9,0,31,10],
+"class_nim_b_l_e_service.html#a305b680286096638a4239620ec2de567":[9,0,31,6],
+"class_nim_b_l_e_service.html#a35b56ab3ef7fffb2b299f95d3176d07e":[9,0,31,8],
+"class_nim_b_l_e_service.html#a415e1b836946831c6f9edd74adba8763":[9,0,31,3],
+"class_nim_b_l_e_service.html#a5084a6db9c9b5ddb4f3e9261606b1e65":[9,0,31,0],
+"class_nim_b_l_e_service.html#a55724788b3bf4614995ea656bf8fe1bb":[9,0,31,11],
+"class_nim_b_l_e_service.html#a71488881933ae8adbf11c5986f9dfb75":[9,0,31,5],
+"class_nim_b_l_e_service.html#a86d65ef61a77bdd660632b4041c2b640":[9,0,31,12],
+"class_nim_b_l_e_service.html#aa2cba47cb4c935e15c77707643e5e9a5":[9,0,31,9],
+"class_nim_b_l_e_service.html#aa780d072e6257258e27cbc96106626ad":[9,0,31,4],
+"class_nim_b_l_e_service.html#ab000b7d2b7dbb3978a5a8c1e17b1d649":[9,0,31,14],
+"class_nim_b_l_e_service.html#ad37324ed0404d596923d6fdc0133b985":[9,0,31,16],
+"class_nim_b_l_e_service.html#adfc4e67f79aaabc8f2c6bdb5c6966609":[9,0,31,7],
+"class_nim_b_l_e_service.html#af304386c4e067dd0eeb27b86c0e59d0f":[9,0,31,13],
+"class_nim_b_l_e_service.html#af4e9e030046352a6ff3d9ba67fe872e3":[9,0,31,1],
+"class_nim_b_l_e_service.html#af8215dbfdaf7ced32d6158f8ff5116e8":[9,0,31,2],
+"class_nim_b_l_e_service.html#af992d0c27e3a559789fb77fc46623234":[9,0,31,15],
+"class_nim_b_l_e_u_u_i_d.html":[9,0,33],
+"class_nim_b_l_e_u_u_i_d.html#a399dca7d70ee262aa155b39d357321b1":[9,0,33,5],
+"class_nim_b_l_e_u_u_i_d.html#a3d9763ff434905457ed69118e93a35fd":[9,0,33,8],
+"class_nim_b_l_e_u_u_i_d.html#a4315e760bf763333022658ff980f3048":[9,0,33,10],
+"class_nim_b_l_e_u_u_i_d.html#a46484dcb0a1bfef6a8afe97f49f97875":[9,0,33,12],
+"class_nim_b_l_e_u_u_i_d.html#a618f6c29565338a496715ca951c98afb":[9,0,33,14],
+"class_nim_b_l_e_u_u_i_d.html#a62e8e924f971c62cc42760d8c7dd6f28":[9,0,33,9],
+"class_nim_b_l_e_u_u_i_d.html#a6eda1a14d4590dd25e6a2f7a49ad528e":[9,0,33,4],
+"class_nim_b_l_e_u_u_i_d.html#a6fd3849062c96cee3d6cd00544fadfac":[9,0,33,0],
+"class_nim_b_l_e_u_u_i_d.html#a7103976da820d0c1840aa77aca38306c":[9,0,33,13],
+"class_nim_b_l_e_u_u_i_d.html#a9708e07b8e0915aafcfa32fe74ccdf64":[9,0,33,15],
+"class_nim_b_l_e_u_u_i_d.html#aadbfc5504e63cd91c59c778607b8dd92":[9,0,33,1],
+"class_nim_b_l_e_u_u_i_d.html#ab4e1658b1c414edb9aea5cf5140fa461":[9,0,33,2],
+"class_nim_b_l_e_u_u_i_d.html#abec7913c5989c3620c423c6717111453":[9,0,33,6],
+"class_nim_b_l_e_u_u_i_d.html#abeee22e6661f7533f05802e1f89fedfe":[9,0,33,11],
+"class_nim_b_l_e_u_u_i_d.html#ac9fbd00e7ffeb334571016c61bca9286":[9,0,33,3],
+"class_nim_b_l_e_u_u_i_d.html#aefc88e493b63ccd6dc86227dc92af0c6":[9,0,33,7],
+"class_nim_b_l_e_utils.html":[9,0,32],
+"classes.html":[9,1],
+"deprecated.html":[7],
+"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[10,0,0],
+"files.html":[10,0],
+"functions.html":[9,3,0],
+"functions.html":[9,3,0,0],
+"functions_b.html":[9,3,0,1],
+"functions_c.html":[9,3,0,2],
+"functions_d.html":[9,3,0,3],
+"functions_e.html":[9,3,0,4],
+"functions_enum.html":[9,3,2],
+"functions_f.html":[9,3,0,5],
+"functions_func.html":[9,3,1,0],
+"functions_func.html":[9,3,1],
+"functions_func_b.html":[9,3,1,1],
+"functions_func_c.html":[9,3,1,2],
+"functions_func_d.html":[9,3,1,3],
+"functions_func_e.html":[9,3,1,4],
+"functions_func_f.html":[9,3,1,5],
+"functions_func_g.html":[9,3,1,6],
+"functions_func_h.html":[9,3,1,7],
+"functions_func_i.html":[9,3,1,8],
+"functions_func_l.html":[9,3,1,9],
+"functions_func_m.html":[9,3,1,10],
+"functions_func_n.html":[9,3,1,11],
+"functions_func_o.html":[9,3,1,12],
+"functions_func_p.html":[9,3,1,13],
+"functions_func_r.html":[9,3,1,14],
+"functions_func_s.html":[9,3,1,15],
+"functions_func_t.html":[9,3,1,16],
+"functions_func_u.html":[9,3,1,17],
+"functions_func_w.html":[9,3,1,18],
+"functions_func_~.html":[9,3,1,19],
"functions_g.html":[9,3,0,6],
"functions_h.html":[9,3,0,7],
"functions_i.html":[9,3,0,8],
-"functions_m.html":[9,3,0,9],
-"functions_n.html":[9,3,0,10],
-"functions_o.html":[9,3,0,11],
-"functions_p.html":[9,3,0,12],
-"functions_r.html":[9,3,0,13],
-"functions_s.html":[9,3,0,14],
-"functions_t.html":[9,3,0,15],
-"functions_u.html":[9,3,0,16],
-"functions_w.html":[9,3,0,17],
-"functions_~.html":[9,3,0,18],
+"functions_l.html":[9,3,0,9],
+"functions_m.html":[9,3,0,10],
+"functions_n.html":[9,3,0,11],
+"functions_o.html":[9,3,0,12],
+"functions_p.html":[9,3,0,13],
+"functions_r.html":[9,3,0,14],
+"functions_s.html":[9,3,0,15],
+"functions_t.html":[9,3,0,16],
+"functions_u.html":[9,3,0,17],
+"functions_w.html":[9,3,0,18],
+"functions_~.html":[9,3,0,19],
"globals.html":[10,1,0],
"globals_defs.html":[10,1,1],
"hierarchy.html":[9,2],
"index.html":[0],
"index.html":[],
-"index.html#autotoc_md33":[0,0],
-"index.html#autotoc_md34":[0,1],
-"index.html#autotoc_md35":[0,2],
-"index.html#autotoc_md36":[0],
-"index.html#autotoc_md37":[1],
-"index.html#autotoc_md38":[0,3],
-"index.html#autotoc_md39":[2],
-"index.html#autotoc_md40":[3],
-"index.html#autotoc_md41":[0,4],
-"index.html#autotoc_md42":[0,5],
-"md__command_line_config.html":[2],
+"index.html#autotoc_md42":[0,0],
+"index.html#autotoc_md43":[0,1],
+"index.html#autotoc_md44":[0],
+"index.html#autotoc_md45":[1],
+"index.html#autotoc_md46":[0,2],
+"index.html#autotoc_md47":[0,3],
+"index.html#autotoc_md48":[0,4],
+"md__bluetooth_5_features.html":[2],
+"md__bluetooth_5_features.html#autotoc_md34":[2,0],
+"md__bluetooth_5_features.html#autotoc_md35":[2,1],
"md__improvements_and_updates.html":[3],
-"md__improvements_and_updates.html#autotoc_md28":[3,0],
-"md__improvements_and_updates.html#autotoc_md29":[3,1],
-"md__improvements_and_updates.html#autotoc_md30":[3,2],
-"md__improvements_and_updates.html#autotoc_md31":[3,3],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html":[1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md1":[1,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md10":[1,2,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md11":[1,3],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md12":[1,3,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md13":[1,3,1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md14":[1,3,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md15":[1,4],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md16":[1,4,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md17":[1,4,1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md18":[1,4,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md19":[1,5],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md2":[1,0,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md20":[1,5,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md21":[1,6],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md22":[1,6,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md23":[1,6,1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md24":[1,6,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md25":[1,7],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md3":[1,0,1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md4":[1,0,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md5":[1,1],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md6":[1,1,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md7":[1,2],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md8":[1,2,0],
-"md__k___users__ryan__desktop_thermo_git_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md9":[1,2,1],
+"md__improvements_and_updates.html#autotoc_md37":[3,0],
+"md__improvements_and_updates.html#autotoc_md38":[3,1],
+"md__improvements_and_updates.html#autotoc_md39":[3,2],
+"md__improvements_and_updates.html#autotoc_md40":[3,3],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html":[1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md1":[1,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md10":[1,2,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md11":[1,2,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md12":[1,3],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md13":[1,3,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md14":[1,4],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md15":[1,4,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md16":[1,4,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md17":[1,4,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md18":[1,5],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md19":[1,5,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md2":[1,0,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md20":[1,5,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md21":[1,5,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md22":[1,6],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md23":[1,6,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md24":[1,6,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md25":[1,6,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md26":[1,7],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md27":[1,7,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md28":[1,8],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md29":[1,8,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md3":[1,0,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md30":[1,8,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md31":[1,8,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md32":[1,9],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md4":[1,0,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md5":[1,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md6":[1,1,0],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md7":[1,1,1],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md8":[1,2],
+"md__k___users__ryan__desktop_test_idf_components_esp_nimble_cpp__c_h_a_n_g_e_l_o_g.html#autotoc_md9":[1,2,0],
"md__migration_guide.html":[4],
-"md__migration_guide.html#autotoc_md44":[4,0],
-"md__migration_guide.html#autotoc_md45":[4,0,0],
-"md__migration_guide.html#autotoc_md46":[4,0,1],
-"md__migration_guide.html#autotoc_md47":[4,0,2],
-"md__migration_guide.html#autotoc_md48":[4,1],
-"md__migration_guide.html#autotoc_md49":[4,1,0],
-"md__migration_guide.html#autotoc_md50":[4,1,1],
-"md__migration_guide.html#autotoc_md51":[4,1,1,4],
-"md__migration_guide.html#autotoc_md52":[4,1,1,5],
-"md__migration_guide.html#autotoc_md53":[4,1,1,6],
-"md__migration_guide.html#autotoc_md54":[4,1,2],
-"md__migration_guide.html#autotoc_md55":[0],
-"md__migration_guide.html#autotoc_md56":[1],
-"md__migration_guide.html#autotoc_md57":[4,1,3],
-"md__migration_guide.html#autotoc_md58":[4,2],
-"md__migration_guide.html#autotoc_md59":[4,3],
-"md__migration_guide.html#autotoc_md60":[4,3,0],
-"md__migration_guide.html#autotoc_md61":[4,3,1],
-"md__migration_guide.html#autotoc_md62":[4,3,2],
-"md__migration_guide.html#autotoc_md63":[4,4],
-"md__migration_guide.html#autotoc_md64":[4,5],
+"md__migration_guide.html#autotoc_md50":[4,0],
+"md__migration_guide.html#autotoc_md51":[4,0,0],
+"md__migration_guide.html#autotoc_md52":[4,0,1],
+"md__migration_guide.html#autotoc_md53":[4,0,2],
+"md__migration_guide.html#autotoc_md54":[4,1],
+"md__migration_guide.html#autotoc_md55":[4,1,0],
+"md__migration_guide.html#autotoc_md56":[4,1,1],
+"md__migration_guide.html#autotoc_md57":[4,1,1,2],
+"md__migration_guide.html#autotoc_md58":[4,1,1,3],
+"md__migration_guide.html#autotoc_md59":[4,1,1,4],
+"md__migration_guide.html#autotoc_md60":[4,1,2],
+"md__migration_guide.html#autotoc_md61":[0],
+"md__migration_guide.html#autotoc_md62":[1],
+"md__migration_guide.html#autotoc_md63":[4,1,3],
+"md__migration_guide.html#autotoc_md64":[4,2],
+"md__migration_guide.html#autotoc_md65":[4,3],
+"md__migration_guide.html#autotoc_md66":[4,3,0],
+"md__migration_guide.html#autotoc_md67":[4,3,1],
+"md__migration_guide.html#autotoc_md68":[4,3,2],
+"md__migration_guide.html#autotoc_md69":[4,4],
+"md__migration_guide.html#autotoc_md70":[4,5],
"md__new_user_guide.html":[5],
-"md__new_user_guide.html#autotoc_md66":[5,0],
-"md__new_user_guide.html#autotoc_md67":[5,1],
-"md__new_user_guide.html#autotoc_md68":[5,2],
-"md__new_user_guide.html#autotoc_md69":[5,3],
+"md__new_user_guide.html#autotoc_md72":[5,0],
+"md__new_user_guide.html#autotoc_md73":[5,1],
+"md__new_user_guide.html#autotoc_md74":[5,2],
+"md__new_user_guide.html#autotoc_md75":[5,3],
"md__usage_tips.html":[6],
-"md__usage_tips.html#autotoc_md71":[6,0],
-"md__usage_tips.html#autotoc_md72":[6,1],
-"md__usage_tips.html#autotoc_md73":[6,2],
-"md__usage_tips.html#autotoc_md74":[6,3],
-"md__usage_tips.html#autotoc_md75":[6,4],
-"nimconfig_8h.html":[10,0,0,25],
-"nimconfig_8h.html#a07c0fd3908c3466e9f4835f85d913880":[10,0,0,25,16],
-"nimconfig_8h.html#a11ebe4c94e55f9e710be03169b91f964":[10,0,0,25,2],
-"nimconfig_8h.html#a136a5d626ac04aa780c6ec07ee88d242":[10,0,0,25,18],
-"nimconfig_8h.html#a1cfe4f7cfbce0d842fad09e4b668d3df":[10,0,0,25,1],
-"nimconfig_8h.html#a1f39f56a0fe8a36ef7823a7c3e1c6e3b":[10,0,0,25,5],
-"nimconfig_8h.html#a227a536958a284235daf409b2b3d1766":[10,0,0,25,15],
-"nimconfig_8h.html#a2a6b4f35f8975778ac2aac5ff169cbda":[10,0,0,25,8],
-"nimconfig_8h.html#a2ea633774bbf41ac57b314875f16d5f9":[10,0,0,25,4],
-"nimconfig_8h.html#a2f0eb3c3124a34b191a70908dc5af441":[10,0,0,25,6],
-"nimconfig_8h.html#a300d3f8ff48d217a1a2b6608454dfadb":[10,0,0,25,13],
-"nimconfig_8h.html#a3966debed5a599b8cabff3c50b9fae4f":[10,0,0,25,19],
-"nimconfig_8h.html#a677d7e75eef5bc96e8d0b4c659db90b0":[10,0,0,25,11],
-"nimconfig_8h.html#a6ebb331a6664a3863fb2a57b91a6cd2d":[10,0,0,25,9],
-"nimconfig_8h.html#a7b98160e6904e45e99e28a7fcc6b2a3a":[10,0,0,25,14],
-"nimconfig_8h.html#a8fa28ebea6e979630359a2acde3ae578":[10,0,0,25,0],
-"nimconfig_8h.html#a97b51f4248845f6225806eadbab3bcdb":[10,0,0,25,17],
-"nimconfig_8h.html#a9d22f9f555a2180787ccec86aa10dc24":[10,0,0,25,12],
-"nimconfig_8h.html#ab86912bde65d198f2f7aa7f83ef11ee8":[10,0,0,25,7],
-"nimconfig_8h.html#ab91646223e52e5c24f1004a0ed21b829":[10,0,0,25,10],
-"nimconfig_8h.html#abdc3219ca772a22427beed33477ea252":[10,0,0,25,3],
-"nimconfig_8h_source.html":[10,0,0,25],
+"md__usage_tips.html#autotoc_md77":[6,0],
+"md__usage_tips.html#autotoc_md78":[6,1],
+"md__usage_tips.html#autotoc_md79":[6,2],
+"md__usage_tips.html#autotoc_md80":[6,3],
+"md__usage_tips.html#autotoc_md81":[6,4],
+"nimconfig_8h.html":[10,0,0,27],
+"nimconfig_8h.html#a07c0fd3908c3466e9f4835f85d913880":[10,0,0,27,18],
+"nimconfig_8h.html#a11ebe4c94e55f9e710be03169b91f964":[10,0,0,27,2],
+"nimconfig_8h.html#a136a5d626ac04aa780c6ec07ee88d242":[10,0,0,27,20],
+"nimconfig_8h.html#a1cfe4f7cfbce0d842fad09e4b668d3df":[10,0,0,27,1],
+"nimconfig_8h.html#a1f39f56a0fe8a36ef7823a7c3e1c6e3b":[10,0,0,27,5],
+"nimconfig_8h.html#a227a536958a284235daf409b2b3d1766":[10,0,0,27,15],
+"nimconfig_8h.html#a2a6b4f35f8975778ac2aac5ff169cbda":[10,0,0,27,8],
+"nimconfig_8h.html#a2ea633774bbf41ac57b314875f16d5f9":[10,0,0,27,4],
+"nimconfig_8h.html#a2f0eb3c3124a34b191a70908dc5af441":[10,0,0,27,6],
+"nimconfig_8h.html#a300d3f8ff48d217a1a2b6608454dfadb":[10,0,0,27,13],
+"nimconfig_8h.html#a3966debed5a599b8cabff3c50b9fae4f":[10,0,0,27,21],
+"nimconfig_8h.html#a4d4ea715325f75455b43c7dbaa69d7a0":[10,0,0,27,16],
+"nimconfig_8h.html#a677d7e75eef5bc96e8d0b4c659db90b0":[10,0,0,27,11],
+"nimconfig_8h.html#a6ebb331a6664a3863fb2a57b91a6cd2d":[10,0,0,27,9],
+"nimconfig_8h.html#a7b98160e6904e45e99e28a7fcc6b2a3a":[10,0,0,27,14],
+"nimconfig_8h.html#a8fa28ebea6e979630359a2acde3ae578":[10,0,0,27,0],
+"nimconfig_8h.html#a97b51f4248845f6225806eadbab3bcdb":[10,0,0,27,19],
+"nimconfig_8h.html#a9d22f9f555a2180787ccec86aa10dc24":[10,0,0,27,12],
+"nimconfig_8h.html#ab86912bde65d198f2f7aa7f83ef11ee8":[10,0,0,27,7],
+"nimconfig_8h.html#ab91646223e52e5c24f1004a0ed21b829":[10,0,0,27,10],
+"nimconfig_8h.html#abdc3219ca772a22427beed33477ea252":[10,0,0,27,3],
+"nimconfig_8h.html#abe2e5c7dbca929d3ed6cf70a73aced23":[10,0,0,27,17],
+"nimconfig_8h_source.html":[10,0,0,27],
"pages.html":[],
"todo.html":[8]
};
diff --git a/nimconfig_8h.html b/nimconfig_8h.html
index 52cde6f..f80c895 100644
--- a/nimconfig_8h.html
+++ b/nimconfig_8h.html
@@ -5,7 +5,7 @@
-
Changelog | |
Arduino command line and platformio config options | |
Changelog | |
Bluetooth 5.x features | |
Improvements and updates | |
Migrating from Bluedroid to NimBLE | |
New User Guide | |
esp-nimble-cpp
- 1.3.2
+ 1.4.0
|