esp-nimble-cpp/_nim_b_l_e_client_8h_source.html

270 lines
45 KiB
HTML
Raw Normal View History

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>esp-nimble-cpp / NimBLE-Arduino: src/NimBLEClient.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">esp-nimble-cpp / NimBLE-Arduino
&#160;<span id="projectnumber">1.3.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_nim_b_l_e_client_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">NimBLEClient.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * NimBLEClient.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created: on Jan 26 2020</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author H2zero</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Originally:</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * BLEClient.h</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * Created on: Mar 22, 2017</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * Author: kolban</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef MAIN_NIMBLECLIENT_H_</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define MAIN_NIMBLECLIENT_H_</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;sdkconfig.h&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if defined(CONFIG_BT_ENABLED)</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="nimconfig_8h.html">nimconfig.h</a>&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;NimBLEAddress.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;NimBLEUUID.h&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;NimBLEUtils.h&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;NimBLEConnInfo.h&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;NimBLEAdvertisedDevice.h&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;NimBLERemoteService.h&quot;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_remote_service.html">NimBLERemoteService</a>;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_remote_characteristic.html">NimBLERemoteCharacteristic</a>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_advertised_device.html">NimBLEAdvertisedDevice</a>;</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_nim_b_l_e_client.html"> 41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a> {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a">connect</a>(<a class="code" href="class_nim_b_l_e_advertised_device.html">NimBLEAdvertisedDevice</a>* device, <span class="keywordtype">bool</span> deleteAttibutes = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a">connect</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_address.html">NimBLEAddress</a> &amp;address, <span class="keywordtype">bool</span> deleteAttibutes = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a">connect</a>(<span class="keywordtype">bool</span> deleteAttibutes = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c">disconnect</a>(uint8_t reason = BLE_ERR_REM_USER_CONN_TERM);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_nim_b_l_e_address.html">NimBLEAddress</a> <a class="code" href="class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb">getPeerAddress</a>();</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07">setPeerAddress</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_address.html">NimBLEAddress</a> &amp;address);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78">getRssi</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;NimBLERemoteService*&gt;* <a class="code" href="class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a">getServices</a>(<span class="keywordtype">bool</span> refresh = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::vector&lt;NimBLERemoteService*&gt;::iterator <a class="code" href="class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5">begin</a>();</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::vector&lt;NimBLERemoteService*&gt;::iterator <a class="code" href="class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe">end</a>();</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="class_nim_b_l_e_remote_service.html">NimBLERemoteService</a>* <a class="code" href="class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366">getService</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* uuid);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_nim_b_l_e_remote_service.html">NimBLERemoteService</a>* <a class="code" href="class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366">getService</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;uuid);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3">deleteServices</a>();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb">deleteService</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;uuid);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::string <a class="code" href="class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3">getValue</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;serviceUUID, <span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;characteristicUUID);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767">setValue</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;serviceUUID, <span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> &amp;characteristicUUID,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> std::string &amp;value, <span class="keywordtype">bool</span> response = <span class="keyword">false</span>);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_nim_b_l_e_remote_characteristic.html">NimBLERemoteCharacteristic</a>* <a class="code" href="class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009">getCharacteristic</a>(<span class="keyword">const</span> uint16_t handle);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c">isConnected</a>();</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c">setClientCallbacks</a>(<a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a> *pClientCallbacks,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">bool</span> deleteCallbacks = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::string <a class="code" href="class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab">toString</a>();</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; uint16_t <a class="code" href="class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896">getConnId</a>();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint16_t <a class="code" href="class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a">getMTU</a>();</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4">secureConnection</a>();</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e">setConnectTimeout</a>(uint8_t timeout);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267">setConnectionParams</a>(uint16_t minInterval, uint16_t maxInterval,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; uint16_t latency, uint16_t timeout,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; uint16_t scanInterval=16, uint16_t scanWindow=16);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526">updateConnParams</a>(uint16_t minInterval, uint16_t maxInterval,</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; uint16_t latency, uint16_t timeout);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d">discoverAttributes</a>();</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_nim_b_l_e_conn_info.html">NimBLEConnInfo</a> <a class="code" href="class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267">getConnInfo</a>();</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a>(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_address.html">NimBLEAddress</a> &amp;peerAddress);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; ~<a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a>();</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nim_b_l_e_device.html">NimBLEDevice</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nim_b_l_e_remote_service.html">NimBLERemoteService</a>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> handleGapEvent(<span class="keyword">struct</span> ble_gap_event *event, <span class="keywordtype">void</span> *arg);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> serviceDiscoveredCB(uint16_t conn_handle,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> ble_gatt_error *error,</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> ble_gatt_svc *service,</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">void</span> *arg);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> dcTimerCb(ble_npl_event *event);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">bool</span> retrieveServices(<span class="keyword">const</span> <a class="code" href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a> *uuid_filter = <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_nim_b_l_e_address.html">NimBLEAddress</a> m_peerAddress;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint16_t m_conn_id;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">bool</span> m_connEstablished;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">bool</span> m_deleteCallbacks;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; int32_t m_connectTimeout;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a>* m_pClientCallbacks;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; ble_task_data_t* m_pTaskData;</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; ble_npl_callout m_dcTimer;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; std::vector&lt;NimBLERemoteService*&gt; m_servicesVector;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; ble_gap_conn_params m_pConnParams;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}; <span class="comment">// class NimBLEClient</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_nim_b_l_e_client_callbacks.html"> 113</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a> {</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a>() {};</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae">onConnect</a>(<a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a>* pClient);</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808">onDisconnect</a>(<a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a>* pClient);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6">onConnParamsUpdateRequest</a>(<a class="code" href="class_nim_b_l_e_client.html">NimBLEClient</a>* pClient, <span class="keyword">const</span> ble_gap_upd_params* params);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> uint32_t <a class="code" href="class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5">onPassKeyRequest</a>();</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">/*virtual void onPassKeyNotify(uint32_t pass_key);</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> virtual bool onSecurityRequest();*/</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065">onAuthenticationComplete</a>(ble_gap_conn_desc* desc);</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0">onConfirmPIN</a>(uint32_t pin);</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;};</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// #if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// CONFIG_BT_ENABLED</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* MAIN_NIMBLECLIENT_H_ */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclass_nim_b_l_e_address_html"><div class="ttname"><a href="class_nim_b_l_e_address.html">NimBLEAddress</a></div><div class="ttdoc">A BLE device address.</div><div class="ttdef"><b>Definition:</b> NimBLEAddress.h:34</div></div>
<div class="ttc" id="aclass_nim_b_l_e_advertised_device_html"><div class="ttname"><a href="class_nim_b_l_e_advertised_device.html">NimBLEAdvertisedDevice</a></div><div class="ttdoc">A representation of a BLE advertised device found by a scan.</div><div class="ttdef"><b>Definition:</b> NimBLEAdvertisedDevice.h:40</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html">NimBLEClientCallbacks</a></div><div class="ttdoc">Callbacks associated with a BLE client.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.h:113</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_a3e5571e4d5ee53c5c4b25ceaac66b808"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808">NimBLEClientCallbacks::onDisconnect</a></div><div class="ttdeci">virtual void onDisconnect(NimBLEClient *pClient)</div><div class="ttdoc">Called when disconnected from the server.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1143</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_a40fb2013fc4ebe51f770699377922065"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065">NimBLEClientCallbacks::onAuthenticationComplete</a></div><div class="ttdeci">virtual void onAuthenticationComplete(ble_gap_conn_desc *desc)</div><div class="ttdoc">Called when the pairing procedure is complete.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1165</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_a8bc6a072e1cc974ef084eb2cad18dac6"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6">NimBLEClientCallbacks::onConnParamsUpdateRequest</a></div><div class="ttdeci">virtual bool onConnParamsUpdateRequest(NimBLEClient *pClient, const ble_gap_upd_params *params)</div><div class="ttdoc">Called when server requests to update the connection parameters.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1147</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_a96de53d9745f243d544cd89498f979ae"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae">NimBLEClientCallbacks::onConnect</a></div><div class="ttdeci">virtual void onConnect(NimBLEClient *pClient)</div><div class="ttdoc">Called after client connects.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1139</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_a9850764aec546747537c6baa2a4622f5"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5">NimBLEClientCallbacks::onPassKeyRequest</a></div><div class="ttdeci">virtual uint32_t onPassKeyRequest()</div><div class="ttdoc">Called when server requests a passkey for pairing.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1152</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_callbacks_html_ace39ee838319e415bd0fc5c72a653ff0"><div class="ttname"><a href="class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0">NimBLEClientCallbacks::onConfirmPIN</a></div><div class="ttdeci">virtual bool onConfirmPIN(uint32_t pin)</div><div class="ttdoc">Called when using numeric comparision for pairing.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1168</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html"><div class="ttname"><a href="class_nim_b_l_e_client.html">NimBLEClient</a></div><div class="ttdoc">A model of a BLE client.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.h:41</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a0477ba593f0b7c0cfc4697efdba703eb"><div class="ttname"><a href="class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb">NimBLEClient::getPeerAddress</a></div><div class="ttdeci">NimBLEAddress getPeerAddress()</div><div class="ttdoc">Retrieve the address of the peer.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:478</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a0910bbe298a68e9122a169ab229bf767"><div class="ttname"><a href="class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767">NimBLEClient::setValue</a></div><div class="ttdeci">bool setValue(const NimBLEUUID &amp;serviceUUID, const NimBLEUUID &amp;characteristicUUID, const std::string &amp;value, bool response=false)</div><div class="ttdoc">Set the value of a specific characteristic associated with a specific service.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:747</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a0accd665926ea77d85ecb483b2b853fe"><div class="ttname"><a href="class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe">NimBLEClient::end</a></div><div class="ttdeci">std::vector&lt; NimBLERemoteService * &gt;::iterator end()</div><div class="ttdoc">Get iterator to the end of the vector of remote service pointers.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:535</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a0f940c51807469db1f1802b742180beb"><div class="ttname"><a href="class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb">NimBLEClient::deleteService</a></div><div class="ttdeci">size_t deleteService(const NimBLEUUID &amp;uuid)</div><div class="ttdoc">Delete service by UUID.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:131</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a17718339f76eb621db0d7919c73b9267"><div class="ttname"><a href="class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267">NimBLEClient::setConnectionParams</a></div><div class="ttdeci">void setConnectionParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout, uint16_t scanInterval=16, uint16_t scanWindow=16)</div><div class="ttdoc">Set the connection paramaters to use when connecting to a server.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:388</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a2fc46f43a71dd0df63a377961baf8009"><div class="ttname"><a href="class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009">NimBLEClient::getCharacteristic</a></div><div class="ttdeci">NimBLERemoteCharacteristic * getCharacteristic(const uint16_t handle)</div><div class="ttdoc">Get the remote characteristic with the specified handle.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:773</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a3d8cbf51caf8b3b8a0ec6ce2074ba71d"><div class="ttname"><a href="class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d">NimBLEClient::discoverAttributes</a></div><div class="ttdeci">void discoverAttributes()</div><div class="ttdoc">Retrieves the full database of attributes that the peripheral has available.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:612</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a4068b29a9bd12e3110465908864dd20e"><div class="ttname"><a href="class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e">NimBLEClient::setConnectTimeout</a></div><div class="ttdeci">void setConnectTimeout(uint8_t timeout)</div><div class="ttdoc">Set the timeout to wait for connection attempt to complete.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:461</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a566207f548c6b799792fc092f1748267"><div class="ttname"><a href="class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267">NimBLEClient::getConnInfo</a></div><div class="ttdeci">NimBLEConnInfo getConnInfo()</div><div class="ttdoc">Get detailed information about the current peer connection.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:442</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a5f77999664cc8a83f3cdb603ba4a5c8c"><div class="ttname"><a href="class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c">NimBLEClient::disconnect</a></div><div class="ttdeci">int disconnect(uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)</div><div class="ttdoc">Disconnect from the peer.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:336</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a668d476de250055a106a9f46bb7719f3"><div class="ttname"><a href="class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3">NimBLEClient::deleteServices</a></div><div class="ttdeci">void deleteServices()</div><div class="ttdoc">Delete all service objects created by this client and clear the vector.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:114</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a79935ecbe94f2a41e0106d011edafac4"><div class="ttname"><a href="class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4">NimBLEClient::secureConnection</a></div><div class="ttdeci">bool secureConnection()</div><div class="ttdoc">Initiate a secure connection (pair/bond) with the server. Called automatically when a characteristic ...</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:307</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_a93b5b7c01e58a95dcea335f837d81d07"><div class="ttname"><a href="class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07">NimBLEClient::setPeerAddress</a></div><div class="ttdeci">void setPeerAddress(const NimBLEAddress &amp;address)</div><div class="ttdoc">Set the peer address.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:488</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_aa09466a7050bf08bab2390da66007896"><div class="ttname"><a href="class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896">NimBLEClient::getConnId</a></div><div class="ttdeci">uint16_t getConnId()</div><div class="ttdoc">Get the connection id for this client.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:470</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_aab311f0a8af21fb63f78e7fbac29951a"><div class="ttname"><a href="class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a">NimBLEClient::connect</a></div><div class="ttdeci">bool connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)</div><div class="ttdoc">Connect to an advertising device.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:165</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_ab09639b499fdcd0021a2432b2b8203f5"><div class="ttname"><a href="class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5">NimBLEClient::begin</a></div><div class="ttdeci">std::vector&lt; NimBLERemoteService * &gt;::iterator begin()</div><div class="ttdoc">Get iterator to the beginning of the vector of remote service pointers.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:526</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_ab971537eec4e53d621598eb1c760af3a"><div class="ttname"><a href="class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a">NimBLEClient::getMTU</a></div><div class="ttdeci">uint16_t getMTU()</div><div class="ttdoc">Get the current mtu of this connection.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:798</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_aba9ae035357776514b61c2b6286ce1ab"><div class="ttname"><a href="class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab">NimBLEClient::toString</a></div><div class="ttdeci">std::string toString()</div><div class="ttdoc">Return a string representation of this client.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1127</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_acb9007569b3bb13b3b49f3c4cb47b21a"><div class="ttname"><a href="class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a">NimBLEClient::getServices</a></div><div class="ttdeci">std::vector&lt; NimBLERemoteService * &gt; * getServices(bool refresh=false)</div><div class="ttdoc">Get a pointer to the vector of found services.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:594</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_ae216993cf4eeb5780a104a8b14044f78"><div class="ttname"><a href="class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78">NimBLEClient::getRssi</a></div><div class="ttdeci">int getRssi()</div><div class="ttdoc">Ask the BLE server for the RSSI value.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:503</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_ae22379ab10bd82932d2303fb3753c366"><div class="ttname"><a href="class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366">NimBLEClient::getService</a></div><div class="ttdeci">NimBLERemoteService * getService(const char *uuid)</div><div class="ttdoc">Get the service BLE Remote Service instance corresponding to the uuid.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:545</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_aeede4deef7421b9121387a786c07820c"><div class="ttname"><a href="class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c">NimBLEClient::setClientCallbacks</a></div><div class="ttdeci">void setClientCallbacks(NimBLEClientCallbacks *pClientCallbacks, bool deleteCallbacks=true)</div><div class="ttdoc">Set the callbacks that will be invoked when events are received.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1113</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_af1603da59b829f75b162ac4a65ce181c"><div class="ttname"><a href="class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c">NimBLEClient::isConnected</a></div><div class="ttdeci">bool isConnected()</div><div class="ttdoc">Are we connected to a server?</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:1103</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_afd7b5c40f3c190a542f25b0b9e4afaf3"><div class="ttname"><a href="class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3">NimBLEClient::getValue</a></div><div class="ttdeci">std::string getValue(const NimBLEUUID &amp;serviceUUID, const NimBLEUUID &amp;characteristicUUID)</div><div class="ttdoc">Get the value of a specific characteristic associated with a specific service.</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:720</div></div>
<div class="ttc" id="aclass_nim_b_l_e_client_html_aff7d389ec48567286ea732c54d320526"><div class="ttname"><a href="class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526">NimBLEClient::updateConnParams</a></div><div class="ttdeci">void updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)</div><div class="ttdoc">Update the connection parameters:</div><div class="ttdef"><b>Definition:</b> NimBLEClient.cpp:418</div></div>
<div class="ttc" id="aclass_nim_b_l_e_conn_info_html"><div class="ttname"><a href="class_nim_b_l_e_conn_info.html">NimBLEConnInfo</a></div><div class="ttdoc">Connection information.</div><div class="ttdef"><b>Definition:</b> NimBLEConnInfo.h:9</div></div>
<div class="ttc" id="aclass_nim_b_l_e_device_html"><div class="ttname"><a href="class_nim_b_l_e_device.html">NimBLEDevice</a></div><div class="ttdoc">A model of a BLE Device from which all the BLE roles are created.</div><div class="ttdef"><b>Definition:</b> NimBLEDevice.h:91</div></div>
<div class="ttc" id="aclass_nim_b_l_e_remote_characteristic_html"><div class="ttname"><a href="class_nim_b_l_e_remote_characteristic.html">NimBLERemoteCharacteristic</a></div><div class="ttdoc">A model of a remote BLE characteristic.</div><div class="ttdef"><b>Definition:</b> NimBLERemoteCharacteristic.h:45</div></div>
<div class="ttc" id="aclass_nim_b_l_e_remote_service_html"><div class="ttname"><a href="class_nim_b_l_e_remote_service.html">NimBLERemoteService</a></div><div class="ttdoc">A model of a remote BLE service.</div><div class="ttdef"><b>Definition:</b> NimBLERemoteService.h:36</div></div>
<div class="ttc" id="aclass_nim_b_l_e_u_u_i_d_html"><div class="ttname"><a href="class_nim_b_l_e_u_u_i_d.html">NimBLEUUID</a></div><div class="ttdoc">A model of a BLE UUID.</div><div class="ttdef"><b>Definition:</b> NimBLEUUID.h:31</div></div>
<div class="ttc" id="animconfig_8h_html"><div class="ttname"><a href="nimconfig_8h.html">nimconfig.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>NimBLEClient.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.0 </li>
</ul>
</div>
</body>
</html>