commit c51c0f2cf5cb88dc59004fe328cc6e2e3d74e71a Author: Deployment Bot (from Travis CI) Date: Thu Aug 5 01:02:30 2021 +0000 Deploy h2zero/esp-nimble-cpp to github.com/h2zero/esp-nimble-cpp.git:gh-pages diff --git a/_h_i_d_keyboard_types_8h_source.html b/_h_i_d_keyboard_types_8h_source.html new file mode 100644 index 0000000..dad2173 --- /dev/null +++ b/_h_i_d_keyboard_types_8h_source.html @@ -0,0 +1,501 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/HIDKeyboardTypes.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
HIDKeyboardTypes.h
+
+
+
1 /* Copyright (c) 2015 mbed.org, MIT License
+
2  *
+
3  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+
4  * and associated documentation files (the "Software"), to deal in the Software without
+
5  * restriction, including without limitation the rights to use, copy, modify, merge, publish,
+
6  * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+
7  * Software is furnished to do so, subject to the following conditions:
+
8  *
+
9  * The above copyright notice and this permission notice shall be included in all copies or
+
10  * substantial portions of the Software.
+
11  *
+
12  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+
13  * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+
14  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+
15  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
16  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
17  *
+
18  * Note: this file was pulled from different parts of the USBHID library, in mbed SDK
+
19  */
+
20 
+
21 #ifndef KEYBOARD_DEFS_H
+
22 #define KEYBOARD_DEFS_H
+
23 
+
24 #define REPORT_ID_KEYBOARD 1
+
25 #define REPORT_ID_VOLUME 3
+
26 
+
27 /* Modifiers */
+
28 enum MODIFIER_KEY {
+
29  KEY_CTRL = 1,
+
30  KEY_SHIFT = 2,
+
31  KEY_ALT = 4,
+
32 };
+
33 
+
34 
+
35 enum MEDIA_KEY {
+
36  KEY_NEXT_TRACK,
+
37  KEY_PREVIOUS_TRACK,
+
38  KEY_STOP,
+
39  KEY_PLAY_PAUSE,
+
40  KEY_MUTE,
+
41  KEY_VOLUME_UP,
+
42  KEY_VOLUME_DOWN,
+
43 };
+
44 
+
45 enum FUNCTION_KEY {
+
46  KEY_F1 = 128, /* F1 key */
+
47  KEY_F2, /* F2 key */
+
48  KEY_F3, /* F3 key */
+
49  KEY_F4, /* F4 key */
+
50  KEY_F5, /* F5 key */
+
51  KEY_F6, /* F6 key */
+
52  KEY_F7, /* F7 key */
+
53  KEY_F8, /* F8 key */
+
54  KEY_F9, /* F9 key */
+
55  KEY_F10, /* F10 key */
+
56  KEY_F11, /* F11 key */
+
57  KEY_F12, /* F12 key */
+
58 
+
59  KEY_PRINT_SCREEN, /* Print Screen key */
+
60  KEY_SCROLL_LOCK, /* Scroll lock */
+
61  KEY_CAPS_LOCK, /* caps lock */
+
62  KEY_NUM_LOCK, /* num lock */
+
63  KEY_INSERT, /* Insert key */
+
64  KEY_HOME, /* Home key */
+
65  KEY_PAGE_UP, /* Page Up key */
+
66  KEY_PAGE_DOWN, /* Page Down key */
+
67 
+
68  RIGHT_ARROW, /* Right arrow */
+
69  LEFT_ARROW, /* Left arrow */
+
70  DOWN_ARROW, /* Down arrow */
+
71  UP_ARROW, /* Up arrow */
+
72 };
+
73 
+
74 typedef struct {
+
75  unsigned char usage;
+
76  unsigned char modifier;
+
77 } KEYMAP;
+
78 
+
79 #ifdef US_KEYBOARD
+
80 /* US keyboard (as HID standard) */
+
81 #define KEYMAP_SIZE (152)
+
82 const KEYMAP keymap[KEYMAP_SIZE] = {
+
83  {0, 0}, /* NUL */
+
84  {0, 0}, /* SOH */
+
85  {0, 0}, /* STX */
+
86  {0, 0}, /* ETX */
+
87  {0, 0}, /* EOT */
+
88  {0, 0}, /* ENQ */
+
89  {0, 0}, /* ACK */
+
90  {0, 0}, /* BEL */
+
91  {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
+
92  {0x2b, 0}, /* TAB */ /* Keyboard Tab */
+
93  {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
+
94  {0, 0}, /* VT */
+
95  {0, 0}, /* FF */
+
96  {0, 0}, /* CR */
+
97  {0, 0}, /* SO */
+
98  {0, 0}, /* SI */
+
99  {0, 0}, /* DEL */
+
100  {0, 0}, /* DC1 */
+
101  {0, 0}, /* DC2 */
+
102  {0, 0}, /* DC3 */
+
103  {0, 0}, /* DC4 */
+
104  {0, 0}, /* NAK */
+
105  {0, 0}, /* SYN */
+
106  {0, 0}, /* ETB */
+
107  {0, 0}, /* CAN */
+
108  {0, 0}, /* EM */
+
109  {0, 0}, /* SUB */
+
110  {0, 0}, /* ESC */
+
111  {0, 0}, /* FS */
+
112  {0, 0}, /* GS */
+
113  {0, 0}, /* RS */
+
114  {0, 0}, /* US */
+
115  {0x2c, 0}, /* */
+
116  {0x1e, KEY_SHIFT}, /* ! */
+
117  {0x34, KEY_SHIFT}, /* " */
+
118  {0x20, KEY_SHIFT}, /* # */
+
119  {0x21, KEY_SHIFT}, /* $ */
+
120  {0x22, KEY_SHIFT}, /* % */
+
121  {0x24, KEY_SHIFT}, /* & */
+
122  {0x34, 0}, /* ' */
+
123  {0x26, KEY_SHIFT}, /* ( */
+
124  {0x27, KEY_SHIFT}, /* ) */
+
125  {0x25, KEY_SHIFT}, /* * */
+
126  {0x2e, KEY_SHIFT}, /* + */
+
127  {0x36, 0}, /* , */
+
128  {0x2d, 0}, /* - */
+
129  {0x37, 0}, /* . */
+
130  {0x38, 0}, /* / */
+
131  {0x27, 0}, /* 0 */
+
132  {0x1e, 0}, /* 1 */
+
133  {0x1f, 0}, /* 2 */
+
134  {0x20, 0}, /* 3 */
+
135  {0x21, 0}, /* 4 */
+
136  {0x22, 0}, /* 5 */
+
137  {0x23, 0}, /* 6 */
+
138  {0x24, 0}, /* 7 */
+
139  {0x25, 0}, /* 8 */
+
140  {0x26, 0}, /* 9 */
+
141  {0x33, KEY_SHIFT}, /* : */
+
142  {0x33, 0}, /* ; */
+
143  {0x36, KEY_SHIFT}, /* < */
+
144  {0x2e, 0}, /* = */
+
145  {0x37, KEY_SHIFT}, /* > */
+
146  {0x38, KEY_SHIFT}, /* ? */
+
147  {0x1f, KEY_SHIFT}, /* @ */
+
148  {0x04, KEY_SHIFT}, /* A */
+
149  {0x05, KEY_SHIFT}, /* B */
+
150  {0x06, KEY_SHIFT}, /* C */
+
151  {0x07, KEY_SHIFT}, /* D */
+
152  {0x08, KEY_SHIFT}, /* E */
+
153  {0x09, KEY_SHIFT}, /* F */
+
154  {0x0a, KEY_SHIFT}, /* G */
+
155  {0x0b, KEY_SHIFT}, /* H */
+
156  {0x0c, KEY_SHIFT}, /* I */
+
157  {0x0d, KEY_SHIFT}, /* J */
+
158  {0x0e, KEY_SHIFT}, /* K */
+
159  {0x0f, KEY_SHIFT}, /* L */
+
160  {0x10, KEY_SHIFT}, /* M */
+
161  {0x11, KEY_SHIFT}, /* N */
+
162  {0x12, KEY_SHIFT}, /* O */
+
163  {0x13, KEY_SHIFT}, /* P */
+
164  {0x14, KEY_SHIFT}, /* Q */
+
165  {0x15, KEY_SHIFT}, /* R */
+
166  {0x16, KEY_SHIFT}, /* S */
+
167  {0x17, KEY_SHIFT}, /* T */
+
168  {0x18, KEY_SHIFT}, /* U */
+
169  {0x19, KEY_SHIFT}, /* V */
+
170  {0x1a, KEY_SHIFT}, /* W */
+
171  {0x1b, KEY_SHIFT}, /* X */
+
172  {0x1c, KEY_SHIFT}, /* Y */
+
173  {0x1d, KEY_SHIFT}, /* Z */
+
174  {0x2f, 0}, /* [ */
+
175  {0x31, 0}, /* \ */
+
176  {0x30, 0}, /* ] */
+
177  {0x23, KEY_SHIFT}, /* ^ */
+
178  {0x2d, KEY_SHIFT}, /* _ */
+
179  {0x35, 0}, /* ` */
+
180  {0x04, 0}, /* a */
+
181  {0x05, 0}, /* b */
+
182  {0x06, 0}, /* c */
+
183  {0x07, 0}, /* d */
+
184  {0x08, 0}, /* e */
+
185  {0x09, 0}, /* f */
+
186  {0x0a, 0}, /* g */
+
187  {0x0b, 0}, /* h */
+
188  {0x0c, 0}, /* i */
+
189  {0x0d, 0}, /* j */
+
190  {0x0e, 0}, /* k */
+
191  {0x0f, 0}, /* l */
+
192  {0x10, 0}, /* m */
+
193  {0x11, 0}, /* n */
+
194  {0x12, 0}, /* o */
+
195  {0x13, 0}, /* p */
+
196  {0x14, 0}, /* q */
+
197  {0x15, 0}, /* r */
+
198  {0x16, 0}, /* s */
+
199  {0x17, 0}, /* t */
+
200  {0x18, 0}, /* u */
+
201  {0x19, 0}, /* v */
+
202  {0x1a, 0}, /* w */
+
203  {0x1b, 0}, /* x */
+
204  {0x1c, 0}, /* y */
+
205  {0x1d, 0}, /* z */
+
206  {0x2f, KEY_SHIFT}, /* { */
+
207  {0x31, KEY_SHIFT}, /* | */
+
208  {0x30, KEY_SHIFT}, /* } */
+
209  {0x35, KEY_SHIFT}, /* ~ */
+
210  {0,0}, /* DEL */
+
211 
+
212  {0x3a, 0}, /* F1 */
+
213  {0x3b, 0}, /* F2 */
+
214  {0x3c, 0}, /* F3 */
+
215  {0x3d, 0}, /* F4 */
+
216  {0x3e, 0}, /* F5 */
+
217  {0x3f, 0}, /* F6 */
+
218  {0x40, 0}, /* F7 */
+
219  {0x41, 0}, /* F8 */
+
220  {0x42, 0}, /* F9 */
+
221  {0x43, 0}, /* F10 */
+
222  {0x44, 0}, /* F11 */
+
223  {0x45, 0}, /* F12 */
+
224 
+
225  {0x46, 0}, /* PRINT_SCREEN */
+
226  {0x47, 0}, /* SCROLL_LOCK */
+
227  {0x39, 0}, /* CAPS_LOCK */
+
228  {0x53, 0}, /* NUM_LOCK */
+
229  {0x49, 0}, /* INSERT */
+
230  {0x4a, 0}, /* HOME */
+
231  {0x4b, 0}, /* PAGE_UP */
+
232  {0x4e, 0}, /* PAGE_DOWN */
+
233 
+
234  {0x4f, 0}, /* RIGHT_ARROW */
+
235  {0x50, 0}, /* LEFT_ARROW */
+
236  {0x51, 0}, /* DOWN_ARROW */
+
237  {0x52, 0}, /* UP_ARROW */
+
238 };
+
239 
+
240 #else
+
241 /* UK keyboard */
+
242 #define KEYMAP_SIZE (152)
+
243 const KEYMAP keymap[KEYMAP_SIZE] = {
+
244  {0, 0}, /* NUL */
+
245  {0, 0}, /* SOH */
+
246  {0, 0}, /* STX */
+
247  {0, 0}, /* ETX */
+
248  {0, 0}, /* EOT */
+
249  {0, 0}, /* ENQ */
+
250  {0, 0}, /* ACK */
+
251  {0, 0}, /* BEL */
+
252  {0x2a, 0}, /* BS */ /* Keyboard Delete (Backspace) */
+
253  {0x2b, 0}, /* TAB */ /* Keyboard Tab */
+
254  {0x28, 0}, /* LF */ /* Keyboard Return (Enter) */
+
255  {0, 0}, /* VT */
+
256  {0, 0}, /* FF */
+
257  {0, 0}, /* CR */
+
258  {0, 0}, /* SO */
+
259  {0, 0}, /* SI */
+
260  {0, 0}, /* DEL */
+
261  {0, 0}, /* DC1 */
+
262  {0, 0}, /* DC2 */
+
263  {0, 0}, /* DC3 */
+
264  {0, 0}, /* DC4 */
+
265  {0, 0}, /* NAK */
+
266  {0, 0}, /* SYN */
+
267  {0, 0}, /* ETB */
+
268  {0, 0}, /* CAN */
+
269  {0, 0}, /* EM */
+
270  {0, 0}, /* SUB */
+
271  {0, 0}, /* ESC */
+
272  {0, 0}, /* FS */
+
273  {0, 0}, /* GS */
+
274  {0, 0}, /* RS */
+
275  {0, 0}, /* US */
+
276  {0x2c, 0}, /* */
+
277  {0x1e, KEY_SHIFT}, /* ! */
+
278  {0x1f, KEY_SHIFT}, /* " */
+
279  {0x32, 0}, /* # */
+
280  {0x21, KEY_SHIFT}, /* $ */
+
281  {0x22, KEY_SHIFT}, /* % */
+
282  {0x24, KEY_SHIFT}, /* & */
+
283  {0x34, 0}, /* ' */
+
284  {0x26, KEY_SHIFT}, /* ( */
+
285  {0x27, KEY_SHIFT}, /* ) */
+
286  {0x25, KEY_SHIFT}, /* * */
+
287  {0x2e, KEY_SHIFT}, /* + */
+
288  {0x36, 0}, /* , */
+
289  {0x2d, 0}, /* - */
+
290  {0x37, 0}, /* . */
+
291  {0x38, 0}, /* / */
+
292  {0x27, 0}, /* 0 */
+
293  {0x1e, 0}, /* 1 */
+
294  {0x1f, 0}, /* 2 */
+
295  {0x20, 0}, /* 3 */
+
296  {0x21, 0}, /* 4 */
+
297  {0x22, 0}, /* 5 */
+
298  {0x23, 0}, /* 6 */
+
299  {0x24, 0}, /* 7 */
+
300  {0x25, 0}, /* 8 */
+
301  {0x26, 0}, /* 9 */
+
302  {0x33, KEY_SHIFT}, /* : */
+
303  {0x33, 0}, /* ; */
+
304  {0x36, KEY_SHIFT}, /* < */
+
305  {0x2e, 0}, /* = */
+
306  {0x37, KEY_SHIFT}, /* > */
+
307  {0x38, KEY_SHIFT}, /* ? */
+
308  {0x34, KEY_SHIFT}, /* @ */
+
309  {0x04, KEY_SHIFT}, /* A */
+
310  {0x05, KEY_SHIFT}, /* B */
+
311  {0x06, KEY_SHIFT}, /* C */
+
312  {0x07, KEY_SHIFT}, /* D */
+
313  {0x08, KEY_SHIFT}, /* E */
+
314  {0x09, KEY_SHIFT}, /* F */
+
315  {0x0a, KEY_SHIFT}, /* G */
+
316  {0x0b, KEY_SHIFT}, /* H */
+
317  {0x0c, KEY_SHIFT}, /* I */
+
318  {0x0d, KEY_SHIFT}, /* J */
+
319  {0x0e, KEY_SHIFT}, /* K */
+
320  {0x0f, KEY_SHIFT}, /* L */
+
321  {0x10, KEY_SHIFT}, /* M */
+
322  {0x11, KEY_SHIFT}, /* N */
+
323  {0x12, KEY_SHIFT}, /* O */
+
324  {0x13, KEY_SHIFT}, /* P */
+
325  {0x14, KEY_SHIFT}, /* Q */
+
326  {0x15, KEY_SHIFT}, /* R */
+
327  {0x16, KEY_SHIFT}, /* S */
+
328  {0x17, KEY_SHIFT}, /* T */
+
329  {0x18, KEY_SHIFT}, /* U */
+
330  {0x19, KEY_SHIFT}, /* V */
+
331  {0x1a, KEY_SHIFT}, /* W */
+
332  {0x1b, KEY_SHIFT}, /* X */
+
333  {0x1c, KEY_SHIFT}, /* Y */
+
334  {0x1d, KEY_SHIFT}, /* Z */
+
335  {0x2f, 0}, /* [ */
+
336  {0x64, 0}, /* \ */
+
337  {0x30, 0}, /* ] */
+
338  {0x23, KEY_SHIFT}, /* ^ */
+
339  {0x2d, KEY_SHIFT}, /* _ */
+
340  {0x35, 0}, /* ` */
+
341  {0x04, 0}, /* a */
+
342  {0x05, 0}, /* b */
+
343  {0x06, 0}, /* c */
+
344  {0x07, 0}, /* d */
+
345  {0x08, 0}, /* e */
+
346  {0x09, 0}, /* f */
+
347  {0x0a, 0}, /* g */
+
348  {0x0b, 0}, /* h */
+
349  {0x0c, 0}, /* i */
+
350  {0x0d, 0}, /* j */
+
351  {0x0e, 0}, /* k */
+
352  {0x0f, 0}, /* l */
+
353  {0x10, 0}, /* m */
+
354  {0x11, 0}, /* n */
+
355  {0x12, 0}, /* o */
+
356  {0x13, 0}, /* p */
+
357  {0x14, 0}, /* q */
+
358  {0x15, 0}, /* r */
+
359  {0x16, 0}, /* s */
+
360  {0x17, 0}, /* t */
+
361  {0x18, 0}, /* u */
+
362  {0x19, 0}, /* v */
+
363  {0x1a, 0}, /* w */
+
364  {0x1b, 0}, /* x */
+
365  {0x1c, 0}, /* y */
+
366  {0x1d, 0}, /* z */
+
367  {0x2f, KEY_SHIFT}, /* { */
+
368  {0x64, KEY_SHIFT}, /* | */
+
369  {0x30, KEY_SHIFT}, /* } */
+
370  {0x32, KEY_SHIFT}, /* ~ */
+
371  {0,0}, /* DEL */
+
372 
+
373  {0x3a, 0}, /* F1 */
+
374  {0x3b, 0}, /* F2 */
+
375  {0x3c, 0}, /* F3 */
+
376  {0x3d, 0}, /* F4 */
+
377  {0x3e, 0}, /* F5 */
+
378  {0x3f, 0}, /* F6 */
+
379  {0x40, 0}, /* F7 */
+
380  {0x41, 0}, /* F8 */
+
381  {0x42, 0}, /* F9 */
+
382  {0x43, 0}, /* F10 */
+
383  {0x44, 0}, /* F11 */
+
384  {0x45, 0}, /* F12 */
+
385 
+
386  {0x46, 0}, /* PRINT_SCREEN */
+
387  {0x47, 0}, /* SCROLL_LOCK */
+
388  {0x39, 0}, /* CAPS_LOCK */
+
389  {0x53, 0}, /* NUM_LOCK */
+
390  {0x49, 0}, /* INSERT */
+
391  {0x4a, 0}, /* HOME */
+
392  {0x4b, 0}, /* PAGE_UP */
+
393  {0x4e, 0}, /* PAGE_DOWN */
+
394 
+
395  {0x4f, 0}, /* RIGHT_ARROW */
+
396  {0x50, 0}, /* LEFT_ARROW */
+
397  {0x51, 0}, /* DOWN_ARROW */
+
398  {0x52, 0}, /* UP_ARROW */
+
399 };
+
400 #endif
+
401 
+
402 #endif
+
+
+ + + + diff --git a/_h_i_d_types_8h_source.html b/_h_i_d_types_8h_source.html new file mode 100644 index 0000000..869b9ec --- /dev/null +++ b/_h_i_d_types_8h_source.html @@ -0,0 +1,195 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/HIDTypes.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
HIDTypes.h
+
+
+
1 /* Copyright (c) 2010-2011 mbed.org, MIT License
+
2 *
+
3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+
4 * and associated documentation files (the "Software"), to deal in the Software without
+
5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
+
6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+
7 * Software is furnished to do so, subject to the following conditions:
+
8 *
+
9 * The above copyright notice and this permission notice shall be included in all copies or
+
10 * substantial portions of the Software.
+
11 *
+
12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+
13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+
14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+
15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+
16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
17 */
+
18 
+
19 #ifndef USBCLASS_HID_TYPES
+
20 #define USBCLASS_HID_TYPES
+
21 
+
22 #include <stdint.h>
+
23 
+
24 /* */
+
25 #define HID_VERSION_1_11 (0x0111)
+
26 
+
27 /* HID Class */
+
28 #define HID_CLASS (3)
+
29 #define HID_SUBCLASS_NONE (0)
+
30 #define HID_PROTOCOL_NONE (0)
+
31 
+
32 /* Descriptors */
+
33 #define HID_DESCRIPTOR (33)
+
34 #define HID_DESCRIPTOR_LENGTH (0x09)
+
35 #define REPORT_DESCRIPTOR (34)
+
36 
+
37 /* Class requests */
+
38 #define GET_REPORT (0x1)
+
39 #define GET_IDLE (0x2)
+
40 #define SET_REPORT (0x9)
+
41 #define SET_IDLE (0xa)
+
42 
+
43 /* HID Class Report Descriptor */
+
44 /* Short items: size is 0, 1, 2 or 3 specifying 0, 1, 2 or 4 (four) bytes */
+
45 /* of data as per HID Class standard */
+
46 
+
47 /* Main items */
+
48 #ifdef ARDUINO_ARCH_ESP32
+
49 #define HIDINPUT(size) (0x80 | size)
+
50 #define HIDOUTPUT(size) (0x90 | size)
+
51 #else
+
52 #define INPUT(size) (0x80 | size)
+
53 #define OUTPUT(size) (0x90 | size)
+
54 #endif
+
55 #define FEATURE(size) (0xb0 | size)
+
56 #define COLLECTION(size) (0xa0 | size)
+
57 #define END_COLLECTION(size) (0xc0 | size)
+
58 
+
59 /* Global items */
+
60 #define USAGE_PAGE(size) (0x04 | size)
+
61 #define LOGICAL_MINIMUM(size) (0x14 | size)
+
62 #define LOGICAL_MAXIMUM(size) (0x24 | size)
+
63 #define PHYSICAL_MINIMUM(size) (0x34 | size)
+
64 #define PHYSICAL_MAXIMUM(size) (0x44 | size)
+
65 #define UNIT_EXPONENT(size) (0x54 | size)
+
66 #define UNIT(size) (0x64 | size)
+
67 #define REPORT_SIZE(size) (0x74 | size) //bits
+
68 #define REPORT_ID(size) (0x84 | size)
+
69 #define REPORT_COUNT(size) (0x94 | size) //bytes
+
70 #define PUSH(size) (0xa4 | size)
+
71 #define POP(size) (0xb4 | size)
+
72 
+
73 /* Local items */
+
74 #define USAGE(size) (0x08 | size)
+
75 #define USAGE_MINIMUM(size) (0x18 | size)
+
76 #define USAGE_MAXIMUM(size) (0x28 | size)
+
77 #define DESIGNATOR_INDEX(size) (0x38 | size)
+
78 #define DESIGNATOR_MINIMUM(size) (0x48 | size)
+
79 #define DESIGNATOR_MAXIMUM(size) (0x58 | size)
+
80 #define STRING_INDEX(size) (0x78 | size)
+
81 #define STRING_MINIMUM(size) (0x88 | size)
+
82 #define STRING_MAXIMUM(size) (0x98 | size)
+
83 #define DELIMITER(size) (0xa8 | size)
+
84 
+
85 /* HID Report */
+
86 /* Where report IDs are used the first byte of 'data' will be the */
+
87 /* report ID and 'length' will include this report ID byte. */
+
88 
+
89 #define MAX_HID_REPORT_SIZE (64)
+
90 
+
91 typedef struct {
+
92  uint32_t length;
+
93  uint8_t data[MAX_HID_REPORT_SIZE];
+
94 } HID_REPORT;
+
95 
+
96 #endif
+
+
+ + + + diff --git a/_nim_b_l_e2904_8h_source.html b/_nim_b_l_e2904_8h_source.html new file mode 100644 index 0000000..7b5c7e6 --- /dev/null +++ b/_nim_b_l_e2904_8h_source.html @@ -0,0 +1,187 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLE2904.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLE2904.h
+
+
+
1 /*
+
2  * NimBLE2904.h
+
3  *
+
4  * Created: on March 13, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLE2904.h
+
10  *
+
11  * Created on: Dec 23, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLE2904_H_
+
16 #define MAIN_NIMBLE2904_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
22 
+
23 #include "NimBLEDescriptor.h"
+
24 
+
25 struct BLE2904_Data {
+
26  uint8_t m_format;
+
27  int8_t m_exponent;
+
28  uint16_t m_unit; // See https://www.bluetooth.com/specifications/assigned-numbers/units
+
29  uint8_t m_namespace;
+
30  uint16_t m_description;
+
31 
+
32 } __attribute__((packed));
+
33 
+
34 
+ +
44 public:
+
45  NimBLE2904(NimBLECharacteristic* pCharacterisitic = nullptr);
+
46  static const uint8_t FORMAT_BOOLEAN = 1;
+
47  static const uint8_t FORMAT_UINT2 = 2;
+
48  static const uint8_t FORMAT_UINT4 = 3;
+
49  static const uint8_t FORMAT_UINT8 = 4;
+
50  static const uint8_t FORMAT_UINT12 = 5;
+
51  static const uint8_t FORMAT_UINT16 = 6;
+
52  static const uint8_t FORMAT_UINT24 = 7;
+
53  static const uint8_t FORMAT_UINT32 = 8;
+
54  static const uint8_t FORMAT_UINT48 = 9;
+
55  static const uint8_t FORMAT_UINT64 = 10;
+
56  static const uint8_t FORMAT_UINT128 = 11;
+
57  static const uint8_t FORMAT_SINT8 = 12;
+
58  static const uint8_t FORMAT_SINT12 = 13;
+
59  static const uint8_t FORMAT_SINT16 = 14;
+
60  static const uint8_t FORMAT_SINT24 = 15;
+
61  static const uint8_t FORMAT_SINT32 = 16;
+
62  static const uint8_t FORMAT_SINT48 = 17;
+
63  static const uint8_t FORMAT_SINT64 = 18;
+
64  static const uint8_t FORMAT_SINT128 = 19;
+
65  static const uint8_t FORMAT_FLOAT32 = 20;
+
66  static const uint8_t FORMAT_FLOAT64 = 21;
+
67  static const uint8_t FORMAT_SFLOAT16 = 22;
+
68  static const uint8_t FORMAT_SFLOAT32 = 23;
+
69  static const uint8_t FORMAT_IEEE20601 = 24;
+
70  static const uint8_t FORMAT_UTF8 = 25;
+
71  static const uint8_t FORMAT_UTF16 = 26;
+
72  static const uint8_t FORMAT_OPAQUE = 27;
+
73 
+
74  void setDescription(uint16_t);
+
75  void setExponent(int8_t exponent);
+
76  void setFormat(uint8_t format);
+
77  void setNamespace(uint8_t namespace_value);
+
78  void setUnit(uint16_t unit);
+
79 
+
80 private:
+
81  friend class NimBLECharacteristic;
+
82  BLE2904_Data m_data;
+
83 }; // BLE2904
+
84 
+
85 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
86 #endif /* CONFIG_BT_ENABLED */
+
87 #endif /* MAIN_NIMBLE2904_H_ */
+
Descriptor for Characteristic Presentation Format.
Definition: NimBLE2904.h:43
+
void setNamespace(uint8_t namespace_value)
Set the namespace.
Definition: NimBLE2904.cpp:73
+
void setDescription(uint16_t)
Set the description.
Definition: NimBLE2904.cpp:46
+
void setExponent(int8_t exponent)
Set the exponent.
Definition: NimBLE2904.cpp:55
+
void setFormat(uint8_t format)
Set the format.
Definition: NimBLE2904.cpp:64
+
void setUnit(uint16_t unit)
Set the units for this value. It should be one of the encoded values defined here: https://www....
Definition: NimBLE2904.cpp:84
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
A model of a BLE descriptor.
Definition: NimBLEDescriptor.h:44
+ +
+
+ + + + diff --git a/_nim_b_l_e_address_8h_source.html b/_nim_b_l_e_address_8h_source.html new file mode 100644 index 0000000..fce6e73 --- /dev/null +++ b/_nim_b_l_e_address_8h_source.html @@ -0,0 +1,159 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEAddress.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAddress.h
+
+
+
1 /*
+
2  * NimBLEAddress.h
+
3  *
+
4  * Created: on Jan 24 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEAddress.h
+
10  *
+
11  * Created on: Jul 2, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEADDRESS_H_
+
16 #define COMPONENTS_NIMBLEADDRESS_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimble/ble.h"
+
21 /**** FIX COMPILATION ****/
+
22 #undef min
+
23 #undef max
+
24 /**************************/
+
25 
+
26 #include <string>
+
27 #include <algorithm>
+
28 
+ +
35 public:
+
36  NimBLEAddress();
+
37  NimBLEAddress(ble_addr_t address);
+
38  NimBLEAddress(uint8_t address[6], uint8_t type = BLE_ADDR_PUBLIC);
+
39  NimBLEAddress(const std::string &stringAddress, uint8_t type = BLE_ADDR_PUBLIC);
+
40  NimBLEAddress(const uint64_t &address, uint8_t type = BLE_ADDR_PUBLIC);
+
41  bool equals(const NimBLEAddress &otherAddress) const;
+
42  const uint8_t* getNative() const;
+
43  std::string toString() const;
+
44  uint8_t getType() const;
+
45 
+
46  bool operator ==(const NimBLEAddress & rhs) const;
+
47  bool operator !=(const NimBLEAddress & rhs) const;
+
48  operator std::string() const;
+
49  operator uint64_t() const;
+
50 
+
51 private:
+
52  uint8_t m_address[6];
+
53  uint8_t m_addrType;
+
54 };
+
55 
+
56 #endif /* CONFIG_BT_ENABLED */
+
57 #endif /* COMPONENTS_NIMBLEADDRESS_H_ */
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
uint8_t getType() const
Get the address type.
Definition: NimBLEAddress.cpp:136
+
NimBLEAddress()
Create a blank address, i.e. 00:00:00:00:00:00, type 0.
Definition: NimBLEAddress.cpp:43
+
bool equals(const NimBLEAddress &otherAddress) const
Determine if this address equals another.
Definition: NimBLEAddress.cpp:118
+
bool operator==(const NimBLEAddress &rhs) const
Convienience operator to check if this address is equal to another.
Definition: NimBLEAddress.cpp:161
+
std::string toString() const
Convert a BLE address to a string.
Definition: NimBLEAddress.cpp:153
+
const uint8_t * getNative() const
Get the native representation of the address.
Definition: NimBLEAddress.cpp:127
+
bool operator!=(const NimBLEAddress &rhs) const
Convienience operator to check if this address is not equal to another.
Definition: NimBLEAddress.cpp:169
+
+
+ + + + diff --git a/_nim_b_l_e_advertised_device_8h_source.html b/_nim_b_l_e_advertised_device_8h_source.html new file mode 100644 index 0000000..bdc3c2f --- /dev/null +++ b/_nim_b_l_e_advertised_device_8h_source.html @@ -0,0 +1,278 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEAdvertisedDevice.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertisedDevice.h
+
+
+
1 /*
+
2  * NimBLEAdvertisedDevice.h
+
3  *
+
4  * Created: on Jan 24 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEAdvertisedDevice.h
+
10  *
+
11  * Created on: Jul 3, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEADVERTISEDDEVICE_H_
+
16 #define COMPONENTS_NIMBLEADVERTISEDDEVICE_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
22 
+
23 #include "NimBLEAddress.h"
+
24 #include "NimBLEScan.h"
+
25 #include "NimBLEUUID.h"
+
26 
+
27 #include "host/ble_hs_adv.h"
+
28 
+
29 #include <map>
+
30 #include <vector>
+
31 
+
32 
+
33 class NimBLEScan;
+ +
41 public:
+ +
43 
+ +
45  uint8_t getAdvType();
+
46  uint16_t getAppearance();
+
47  uint16_t getAdvInterval();
+
48  uint16_t getMinInterval();
+
49  uint16_t getMaxInterval();
+
50  std::string getManufacturerData();
+
51  std::string getURI();
+
52 
+
61  template<typename T>
+
62  T getManufacturerData(bool skipSizeCheck = false) {
+
63  std::string data = getManufacturerData();
+
64  if(!skipSizeCheck && data.size() < sizeof(T)) return T();
+
65  const char *pData = data.data();
+
66  return *((T *)pData);
+
67  }
+
68 
+
69  std::string getName();
+
70  int getRSSI();
+ +
72  size_t getServiceDataCount();
+
73  std::string getServiceData(uint8_t index = 0);
+
74  std::string getServiceData(const NimBLEUUID &uuid);
+
75 
+
85  template<typename T>
+
86  T getServiceData(uint8_t index = 0, bool skipSizeCheck = false) {
+
87  std::string data = getServiceData(index);
+
88  if(!skipSizeCheck && data.size() < sizeof(T)) return T();
+
89  const char *pData = data.data();
+
90  return *((T *)pData);
+
91  }
+
92 
+
102  template<typename T>
+
103  T getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck = false) {
+
104  std::string data = getServiceData(uuid);
+
105  if(!skipSizeCheck && data.size() < sizeof(T)) return T();
+
106  const char *pData = data.data();
+
107  return *((T *)pData);
+
108  }
+
109 
+
110  NimBLEUUID getServiceDataUUID(uint8_t index = 0);
+
111  NimBLEUUID getServiceUUID(uint8_t index = 0);
+
112  size_t getServiceUUIDCount();
+
113  NimBLEAddress getTargetAddress(uint8_t index = 0);
+
114  size_t getTargetAddressCount();
+
115  int8_t getTXPower();
+
116  uint8_t* getPayload();
+
117  uint8_t getAdvLength();
+
118  size_t getPayloadLength();
+
119  uint8_t getAddressType();
+
120  time_t getTimestamp();
+
121  bool isAdvertisingService(const NimBLEUUID &uuid);
+
122  bool haveAppearance();
+
123  bool haveManufacturerData();
+
124  bool haveName();
+
125  bool haveRSSI();
+
126  bool haveServiceData();
+
127  bool haveServiceUUID();
+
128  bool haveTXPower();
+
129  bool haveConnParams();
+
130  bool haveAdvInterval();
+
131  bool haveTargetAddress();
+
132  bool haveURI();
+
133  std::string toString();
+
134 
+
135 private:
+
136  friend class NimBLEScan;
+
137 
+
138  void setAddress(NimBLEAddress address);
+
139  void setAdvType(uint8_t advType);
+
140  void setPayload(const uint8_t *payload, uint8_t length, bool append);
+
141  void setRSSI(int rssi);
+
142  uint8_t findAdvField(uint8_t type, uint8_t index = 0, uint8_t *data_loc = nullptr);
+
143  uint8_t findServiceData(uint8_t index, uint8_t* bytes);
+
144 
+
145  NimBLEAddress m_address = NimBLEAddress("");
+
146  uint8_t m_advType;
+
147  int m_rssi;
+
148  time_t m_timestamp;
+
149  bool m_callbackSent;
+
150  uint8_t m_advLength;
+
151 
+
152  std::vector<uint8_t> m_payload;
+
153 };
+
154 
+ +
163 public:
+
164  virtual ~NimBLEAdvertisedDeviceCallbacks() {}
+
171  virtual void onResult(NimBLEAdvertisedDevice* advertisedDevice) = 0;
+
172 };
+
173 
+
174 #endif // #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
175 #endif /* CONFIG_BT_ENABLED */
+
176 #endif /* COMPONENTS_NIMBLEADVERTISEDDEVICE_H_ */
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
A callback handler for callbacks associated device scanning.
Definition: NimBLEAdvertisedDevice.h:162
+
virtual void onResult(NimBLEAdvertisedDevice *advertisedDevice)=0
Called when a new scan result is detected.
+
A representation of a BLE advertised device found by a scan.
Definition: NimBLEAdvertisedDevice.h:40
+
bool haveTargetAddress()
Does the advertisement contain a target address?
Definition: NimBLEAdvertisedDevice.cpp:534
+
time_t getTimestamp()
Get the timeStamp of when the device last advertised.
Definition: NimBLEAdvertisedDevice.cpp:773
+
uint16_t getAppearance()
Get the appearance.
Definition: NimBLEAdvertisedDevice.cpp:73
+
bool haveConnParams()
Does this advertisement have preferred connection parameters?
Definition: NimBLEAdvertisedDevice.cpp:489
+
uint16_t getMinInterval()
Get the preferred min connection interval.
Definition: NimBLEAdvertisedDevice.cpp:109
+
bool isAdvertisingService(const NimBLEUUID &uuid)
Check advertised services for existance of the required UUID.
Definition: NimBLEAdvertisedDevice.cpp:455
+
uint16_t getMaxInterval()
Get the preferred max connection interval.
Definition: NimBLEAdvertisedDevice.cpp:127
+
NimBLEUUID getServiceDataUUID(uint8_t index=0)
Get the UUID of the serice data at the index.
Definition: NimBLEAdvertisedDevice.cpp:315
+
NimBLEAddress getTargetAddress(uint8_t index=0)
Get the target address at the index.
Definition: NimBLEAdvertisedDevice.cpp:234
+
bool haveServiceUUID()
Does this advertisement have a service UUID value?
Definition: NimBLEAdvertisedDevice.cpp:572
+
size_t getServiceDataCount()
Get the count of advertised service data UUIDS.
Definition: NimBLEAdvertisedDevice.cpp:371
+
bool haveRSSI()
Does this advertisement have a signal strength value?
Definition: NimBLEAdvertisedDevice.cpp:554
+
size_t getServiceUUIDCount()
Get the number of services advertised.
Definition: NimBLEAdvertisedDevice.cpp:436
+
bool haveURI()
Does this advertisement have a URI?
Definition: NimBLEAdvertisedDevice.cpp:525
+
bool haveName()
Does this advertisement have a name value?
Definition: NimBLEAdvertisedDevice.cpp:544
+
T getServiceData(uint8_t index=0, bool skipSizeCheck=false)
A template to convert the service data to <type>.
Definition: NimBLEAdvertisedDevice.h:86
+
size_t getTargetAddressCount()
Get the number of target addresses.
Definition: NimBLEAdvertisedDevice.cpp:219
+
uint16_t getAdvInterval()
Get the advertisement interval.
Definition: NimBLEAdvertisedDevice.cpp:91
+
T getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false)
A template to convert the service data to <type>.
Definition: NimBLEAdvertisedDevice.h:103
+
uint8_t getAdvType()
Get the advertisement type.
Definition: NimBLEAdvertisedDevice.cpp:60
+
NimBLEAddress getAddress()
Get the address of the advertising device.
Definition: NimBLEAdvertisedDevice.cpp:46
+
bool haveAdvInterval()
Does this advertisement have have the advertising interval?
Definition: NimBLEAdvertisedDevice.cpp:498
+
NimBLEUUID getServiceUUID(uint8_t index=0)
Get the Service UUID.
Definition: NimBLEAdvertisedDevice.cpp:387
+
NimBLEAdvertisedDevice()
Constructor.
Definition: NimBLEAdvertisedDevice.cpp:31
+
bool haveManufacturerData()
Does this advertisement have manufacturer data?
Definition: NimBLEAdvertisedDevice.cpp:516
+
std::string toString()
Create a string representation of this device.
Definition: NimBLEAdvertisedDevice.cpp:680
+
size_t getPayloadLength()
Get the length of the payload advertised by the device.
Definition: NimBLEAdvertisedDevice.cpp:782
+
bool haveAppearance()
Does this advertisement have an appearance value?
Definition: NimBLEAdvertisedDevice.cpp:507
+
int getRSSI()
Get the RSSI.
Definition: NimBLEAdvertisedDevice.cpp:201
+
NimBLEScan * getScan()
Get the scan object that created this advertised device.
Definition: NimBLEAdvertisedDevice.cpp:210
+
std::string getURI()
Get the URI from the advertisement.
Definition: NimBLEAdvertisedDevice.cpp:163
+
std::string getName()
Get the advertised name.
Definition: NimBLEAdvertisedDevice.cpp:181
+
uint8_t getAdvLength()
Get the length of the advertisement data in the payload.
Definition: NimBLEAdvertisedDevice.cpp:751
+
T getManufacturerData(bool skipSizeCheck=false)
A template to convert the service data to <type>.
Definition: NimBLEAdvertisedDevice.h:62
+
std::string getServiceData(uint8_t index=0)
Get the service data.
Definition: NimBLEAdvertisedDevice.cpp:266
+
bool haveTXPower()
Does this advertisement have a transmission power value?
Definition: NimBLEAdvertisedDevice.cpp:581
+
std::string getManufacturerData()
Get the manufacturer data.
Definition: NimBLEAdvertisedDevice.cpp:145
+
uint8_t * getPayload()
Get the payload advertised by the device.
Definition: NimBLEAdvertisedDevice.cpp:726
+
bool haveServiceData()
Does this advertisement have a service data value?
Definition: NimBLEAdvertisedDevice.cpp:563
+
uint8_t getAddressType()
Get the advertised device address type.
Definition: NimBLEAdvertisedDevice.cpp:764
+
int8_t getTXPower()
Get the TX Power.
Definition: NimBLEAdvertisedDevice.cpp:471
+
Perform and manage BLE scans.
Definition: NimBLEScan.h:61
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_advertising_8h_source.html b/_nim_b_l_e_advertising_8h_source.html new file mode 100644 index 0000000..26d6683 --- /dev/null +++ b/_nim_b_l_e_advertising_8h_source.html @@ -0,0 +1,273 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEAdvertising.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertising.h
+
+
+
1 /*
+
2  * NimBLEAdvertising.h
+
3  *
+
4  * Created: on March 3, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEAdvertising.h
+
10  *
+
11  * Created on: Jun 21, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_BLEADVERTISING_H_
+
16 #define MAIN_BLEADVERTISING_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+
22 
+
23 #include "host/ble_gap.h"
+
24 /**** FIX COMPILATION ****/
+
25 #undef min
+
26 #undef max
+
27 /**************************/
+
28 
+
29 #include "NimBLEUUID.h"
+
30 
+
31 #include <vector>
+
32 
+
33 /* COMPATIBILITY - DO NOT USE */
+
34 #define ESP_BLE_ADV_FLAG_LIMIT_DISC (0x01 << 0)
+
35 #define ESP_BLE_ADV_FLAG_GEN_DISC (0x01 << 1)
+
36 #define ESP_BLE_ADV_FLAG_BREDR_NOT_SPT (0x01 << 2)
+
37 #define ESP_BLE_ADV_FLAG_DMT_CONTROLLER_SPT (0x01 << 3)
+
38 #define ESP_BLE_ADV_FLAG_DMT_HOST_SPT (0x01 << 4)
+
39 #define ESP_BLE_ADV_FLAG_NON_LIMIT_DISC (0x00 )
+
40  /* ************************* */
+
41 
+
42 
+ +
47  // Only a subset of the possible BLE architected advertisement fields are currently exposed. Others will
+
48  // be exposed on demand/request or as time permits.
+
49  //
+
50 public:
+
51  void setAppearance(uint16_t appearance);
+
52  void setCompleteServices(const NimBLEUUID &uuid);
+
53  void setCompleteServices16(const std::vector<NimBLEUUID> &v_uuid);
+
54  void setCompleteServices32(const std::vector<NimBLEUUID> &v_uuid);
+
55  void setFlags(uint8_t);
+
56  void setManufacturerData(const std::string &data);
+
57  void setURI(const std::string &uri);
+
58  void setName(const std::string &name);
+
59  void setPartialServices(const NimBLEUUID &uuid);
+
60  void setPartialServices16(const std::vector<NimBLEUUID> &v_uuid);
+
61  void setPartialServices32(const std::vector<NimBLEUUID> &v_uuid);
+
62  void setServiceData(const NimBLEUUID &uuid, const std::string &data);
+
63  void setShortName(const std::string &name);
+
64  void addData(const std::string &data); // Add data to the payload.
+
65  void addData(char * data, size_t length);
+
66  void addTxPower();
+
67  void setPreferredParams(uint16_t min, uint16_t max);
+
68  std::string getPayload(); // Retrieve the current advert payload.
+
69 
+
70 private:
+
71  friend class NimBLEAdvertising;
+
72  void setServices(const bool complete, const uint8_t size,
+
73  const std::vector<NimBLEUUID> &v_uuid);
+
74  std::string m_payload; // The payload of the advertisement.
+
75 }; // NimBLEAdvertisementData
+
76 
+
77 
+ +
84 public:
+ +
86  void addServiceUUID(const NimBLEUUID &serviceUUID);
+
87  void addServiceUUID(const char* serviceUUID);
+
88  void removeServiceUUID(const NimBLEUUID &serviceUUID);
+
89  bool start(uint32_t duration = 0, void (*advCompleteCB)(NimBLEAdvertising *pAdv) = nullptr);
+
90  void stop();
+
91  void setAppearance(uint16_t appearance);
+
92  void setName(const std::string &name);
+
93  void setManufacturerData(const std::string &data);
+
94  void setURI(const std::string &uri);
+
95  void setServiceData(const NimBLEUUID &uuid, const std::string &data);
+
96  void setAdvertisementType(uint8_t adv_type);
+
97  void setMaxInterval(uint16_t maxinterval);
+
98  void setMinInterval(uint16_t mininterval);
+
99  void setAdvertisementData(NimBLEAdvertisementData& advertisementData);
+
100  void setScanFilter(bool scanRequestWhitelistOnly, bool connectWhitelistOnly);
+
101  void setScanResponseData(NimBLEAdvertisementData& advertisementData);
+
102  void setScanResponse(bool);
+
103  void setMinPreferred(uint16_t);
+
104  void setMaxPreferred(uint16_t);
+
105  void addTxPower();
+
106  void reset();
+
107  void advCompleteCB();
+
108  bool isAdvertising();
+
109 
+
110 private:
+
111  friend class NimBLEDevice;
+
112 
+
113  void onHostSync();
+
114  static int handleGapEvent(struct ble_gap_event *event, void *arg);
+
115 
+
116  ble_hs_adv_fields m_advData;
+
117  ble_hs_adv_fields m_scanData;
+
118  ble_gap_adv_params m_advParams;
+
119  std::vector<NimBLEUUID> m_serviceUUIDs;
+
120  bool m_customAdvData;
+
121  bool m_customScanResponseData;
+
122  bool m_scanResp;
+
123  bool m_advDataSet;
+
124  void (*m_advCompCB)(NimBLEAdvertising *pAdv);
+
125  uint8_t m_slaveItvl[4];
+
126  uint32_t m_duration;
+
127  std::vector<uint8_t> m_svcData16;
+
128  std::vector<uint8_t> m_svcData32;
+
129  std::vector<uint8_t> m_svcData128;
+
130  std::vector<uint8_t> m_name;
+
131  std::vector<uint8_t> m_mfgData;
+
132  std::vector<uint8_t> m_uri;
+
133 };
+
134 
+
135 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
136 #endif /* CONFIG_BT_ENABLED */
+
137 #endif /* MAIN_BLEADVERTISING_H_ */
+
Advertisement data set by the programmer to be published by the BLE server.
Definition: NimBLEAdvertising.h:46
+
void setAppearance(uint16_t appearance)
Set the appearance.
Definition: NimBLEAdvertising.cpp:778
+
void setPartialServices32(const std::vector< NimBLEUUID > &v_uuid)
Set the partial list of services to advertise.
Definition: NimBLEAdvertising.cpp:887
+
void addTxPower()
Adds Tx power level to the advertisement data.
Definition: NimBLEAdvertising.cpp:997
+
void setPartialServices16(const std::vector< NimBLEUUID > &v_uuid)
Set the partial list of services to advertise.
Definition: NimBLEAdvertising.cpp:878
+
void setCompleteServices16(const std::vector< NimBLEUUID > &v_uuid)
Set the complete list of 16 bit services to advertise.
Definition: NimBLEAdvertising.cpp:851
+
void setPreferredParams(uint16_t min, uint16_t max)
Set the preferred connection interval parameters.
Definition: NimBLEAdvertising.cpp:1011
+
void setCompleteServices(const NimBLEUUID &uuid)
Set a single service to advertise as a complete list of services.
Definition: NimBLEAdvertising.cpp:842
+
void setCompleteServices32(const std::vector< NimBLEUUID > &v_uuid)
Set the complete list of 32 bit services to advertise.
Definition: NimBLEAdvertising.cpp:860
+
void setFlags(uint8_t)
Set the advertisement flags.
Definition: NimBLEAdvertising.cpp:793
+
void setName(const std::string &name)
Set the complete name of this device.
Definition: NimBLEAdvertising.cpp:830
+
void setURI(const std::string &uri)
Set the URI to advertise.
Definition: NimBLEAdvertising.cpp:818
+
void setManufacturerData(const std::string &data)
Set manufacturer specific data.
Definition: NimBLEAdvertising.cpp:806
+
std::string getPayload()
Retrieve the payload that is to be advertised.
Definition: NimBLEAdvertising.cpp:1027
+
void setShortName(const std::string &name)
Set the short name.
Definition: NimBLEAdvertising.cpp:986
+
void addData(const std::string &data)
Add data to the payload to be advertised.
Definition: NimBLEAdvertising.cpp:752
+
void setServiceData(const NimBLEUUID &uuid, const std::string &data)
Set the service data (UUID + data)
Definition: NimBLEAdvertising.cpp:949
+
void setPartialServices(const NimBLEUUID &uuid)
Set a single service to advertise as a partial list of services.
Definition: NimBLEAdvertising.cpp:869
+
Perform and manage BLE advertising.
Definition: NimBLEAdvertising.h:83
+
void setScanResponseData(NimBLEAdvertisementData &advertisementData)
Set the advertisement data that is to be published in a scan response.
Definition: NimBLEAdvertising.cpp:368
+
void setMinInterval(uint16_t mininterval)
Set the minimum advertising interval.
Definition: NimBLEAdvertising.cpp:223
+
void setManufacturerData(const std::string &data)
Set the advertised manufacturer data.
Definition: NimBLEAdvertising.cpp:147
+
void setMaxPreferred(uint16_t)
Set the advertised max connection interval preferred by this device.
Definition: NimBLEAdvertising.cpp:275
+
void setMinPreferred(uint16_t)
Set the advertised min connection interval preferred by this device.
Definition: NimBLEAdvertising.cpp:243
+
void advCompleteCB()
Handles the callback when advertising stops.
Definition: NimBLEAdvertising.cpp:685
+
void addServiceUUID(const NimBLEUUID &serviceUUID)
Add a service uuid to exposed list of services.
Definition: NimBLEAdvertising.cpp:78
+
void reset()
Stops the current advertising and resets the advertising data to the default values.
Definition: NimBLEAdvertising.cpp:43
+
void setURI(const std::string &uri)
Set the advertised URI.
Definition: NimBLEAdvertising.cpp:159
+
void setAdvertisementType(uint8_t adv_type)
Set the type of advertisment to use.
Definition: NimBLEAdvertising.cpp:214
+
void setScanResponse(bool)
Set if scan response is available.
Definition: NimBLEAdvertising.cpp:303
+
void removeServiceUUID(const NimBLEUUID &serviceUUID)
Add a service uuid to exposed list of services.
Definition: NimBLEAdvertising.cpp:98
+
void setServiceData(const NimBLEUUID &uuid, const std::string &data)
Set the service data advertised for the UUID.
Definition: NimBLEAdvertising.cpp:173
+
void setAppearance(uint16_t appearance)
Set the device appearance in the advertising data. The codes for distinct appearances can be found he...
Definition: NimBLEAdvertising.cpp:115
+
void setScanFilter(bool scanRequestWhitelistOnly, bool connectWhitelistOnly)
Set the filtering for the scan filter.
Definition: NimBLEAdvertising.cpp:314
+
void setMaxInterval(uint16_t maxinterval)
Set the maximum advertising interval.
Definition: NimBLEAdvertising.cpp:232
+
void stop()
Stop advertising.
Definition: NimBLEAdvertising.cpp:668
+
NimBLEAdvertising()
Construct a default advertising object.
Definition: NimBLEAdvertising.cpp:35
+
bool isAdvertising()
Check if currently advertising.
Definition: NimBLEAdvertising.cpp:696
+
void addTxPower()
Add the transmission power level to the advertisement packet.
Definition: NimBLEAdvertising.cpp:125
+
void setName(const std::string &name)
Set the advertised name of the device.
Definition: NimBLEAdvertising.cpp:135
+
bool start(uint32_t duration=0, void(*advCompleteCB)(NimBLEAdvertising *pAdv)=nullptr)
Start advertising.
Definition: NimBLEAdvertising.cpp:388
+
void setAdvertisementData(NimBLEAdvertisementData &advertisementData)
Set the advertisement data that is to be published in a regular advertisement.
Definition: NimBLEAdvertising.cpp:348
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_beacon_8h_source.html b/_nim_b_l_e_beacon_8h_source.html new file mode 100644 index 0000000..5dff200 --- /dev/null +++ b/_nim_b_l_e_beacon_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEBeacon.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEBeacon.h
+
+
+
1 /*
+
2  * NimBLEBeacon2.h
+
3  *
+
4  * Created: on March 15 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEBeacon2.h
+
10  *
+
11  * Created on: Jan 4, 2018
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLEBEACON_H_
+
16 #define MAIN_NIMBLEBEACON_H_
+
17 
+
18 #include "NimBLEUUID.h"
+
24 class NimBLEBeacon {
+
25 private:
+
26  struct {
+
27  uint16_t manufacturerId;
+
28  uint8_t subType;
+
29  uint8_t subTypeLength;
+
30  uint8_t proximityUUID[16];
+
31  uint16_t major;
+
32  uint16_t minor;
+
33  int8_t signalPower;
+
34  } __attribute__((packed)) m_beaconData;
+
35 public:
+
36  NimBLEBeacon();
+
37  std::string getData();
+
38  uint16_t getMajor();
+
39  uint16_t getMinor();
+
40  uint16_t getManufacturerId();
+ +
42  int8_t getSignalPower();
+
43  void setData(const std::string &data);
+
44  void setMajor(uint16_t major);
+
45  void setMinor(uint16_t minor);
+
46  void setManufacturerId(uint16_t manufacturerId);
+
47  void setProximityUUID(const NimBLEUUID &uuid);
+
48  void setSignalPower(int8_t signalPower);
+
49 }; // NimBLEBeacon
+
50 
+
51 #endif /* MAIN_NIMBLEBEACON_H_ */
+
Representation of a beacon. See:
Definition: NimBLEBeacon.h:24
+
void setManufacturerId(uint16_t manufacturerId)
Set the manufacturer ID.
Definition: NimBLEBeacon.cpp:122
+
void setMinor(uint16_t minor)
Set the minor value.
Definition: NimBLEBeacon.cpp:131
+
uint16_t getMinor()
Get the minor value being advertised.
Definition: NimBLEBeacon.cpp:72
+
int8_t getSignalPower()
Get the signal power being advertised.
Definition: NimBLEBeacon.cpp:90
+
void setProximityUUID(const NimBLEUUID &uuid)
Set the proximity UUID.
Definition: NimBLEBeacon.cpp:140
+
uint16_t getManufacturerId()
Get the manufacturer ID being advertised.
Definition: NimBLEBeacon.cpp:63
+
void setData(const std::string &data)
Set the raw data for the beacon record.
Definition: NimBLEBeacon.cpp:99
+
NimBLEUUID getProximityUUID()
Get the proximity UUID being advertised.
Definition: NimBLEBeacon.cpp:81
+
uint16_t getMajor()
Get the major value being advertised.
Definition: NimBLEBeacon.cpp:54
+
void setMajor(uint16_t major)
Set the major value.
Definition: NimBLEBeacon.cpp:113
+
NimBLEBeacon()
Construct a default beacon object.
Definition: NimBLEBeacon.cpp:30
+
std::string getData()
Retrieve the data that is being advertised.
Definition: NimBLEBeacon.cpp:45
+
void setSignalPower(int8_t signalPower)
Set the signal power.
Definition: NimBLEBeacon.cpp:153
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+
+
+ + + + diff --git a/_nim_b_l_e_characteristic_8h_source.html b/_nim_b_l_e_characteristic_8h_source.html new file mode 100644 index 0000000..51261db --- /dev/null +++ b/_nim_b_l_e_characteristic_8h_source.html @@ -0,0 +1,303 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLECharacteristic.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLECharacteristic.h
+
+
+
1 /*
+
2  * NimBLECharacteristic.h
+
3  *
+
4  * Created: on March 3, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  * BLECharacteristic.h
+
9  *
+
10  * Created on: Jun 22, 2017
+
11  * Author: kolban
+
12  */
+
13 
+
14 #ifndef MAIN_NIMBLECHARACTERISTIC_H_
+
15 #define MAIN_NIMBLECHARACTERISTIC_H_
+
16 #include "sdkconfig.h"
+
17 #if defined(CONFIG_BT_ENABLED)
+
18 
+
19 #include "nimconfig.h"
+
20 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
21 
+
22 #include "host/ble_hs.h"
+
23 /**** FIX COMPILATION ****/
+
24 #undef min
+
25 #undef max
+
26 /**************************/
+
27 
+
28 typedef enum {
+
29  READ = BLE_GATT_CHR_F_READ,
+
30  READ_ENC = BLE_GATT_CHR_F_READ_ENC,
+
31  READ_AUTHEN = BLE_GATT_CHR_F_READ_AUTHEN,
+
32  READ_AUTHOR = BLE_GATT_CHR_F_READ_AUTHOR,
+
33  WRITE = BLE_GATT_CHR_F_WRITE,
+
34  WRITE_NR = BLE_GATT_CHR_F_WRITE_NO_RSP,
+
35  WRITE_ENC = BLE_GATT_CHR_F_WRITE_ENC,
+
36  WRITE_AUTHEN = BLE_GATT_CHR_F_WRITE_AUTHEN,
+
37  WRITE_AUTHOR = BLE_GATT_CHR_F_WRITE_AUTHOR,
+
38  BROADCAST = BLE_GATT_CHR_F_BROADCAST,
+
39  NOTIFY = BLE_GATT_CHR_F_NOTIFY,
+
40  INDICATE = BLE_GATT_CHR_F_INDICATE
+
41 } NIMBLE_PROPERTY;
+
42 
+
43 #include "NimBLEService.h"
+
44 #include "NimBLEDescriptor.h"
+
45 
+
46 #include <string>
+
47 #include <vector>
+
48 
+
49 class NimBLEService;
+
50 class NimBLEDescriptor;
+ +
52 
+
53 
+ +
61 public:
+
62  NimBLECharacteristic(const char* uuid,
+
63  uint16_t properties =
+
64  NIMBLE_PROPERTY::READ |
+
65  NIMBLE_PROPERTY::WRITE,
+
66  NimBLEService* pService = nullptr);
+
67  NimBLECharacteristic(const NimBLEUUID &uuid,
+
68  uint16_t properties =
+
69  NIMBLE_PROPERTY::READ |
+
70  NIMBLE_PROPERTY::WRITE,
+
71  NimBLEService* pService = nullptr);
+
72 
+ +
74 
+
75  uint16_t getHandle();
+ +
77  std::string toString();
+
78 
+ + +
81  getCallbacks();
+
82 
+
83  void indicate();
+
84  void notify(bool is_notification = true);
+
85  size_t getSubscribedCount();
+
86 
+
87  NimBLEDescriptor* createDescriptor(const char* uuid,
+
88  uint32_t properties =
+
89  NIMBLE_PROPERTY::READ |
+
90  NIMBLE_PROPERTY::WRITE,
+
91  uint16_t max_len = 100);
+ +
93  uint32_t properties =
+
94  NIMBLE_PROPERTY::READ |
+
95  NIMBLE_PROPERTY::WRITE,
+
96  uint16_t max_len = 100);
+
97 
+
98  void addDescriptor(NimBLEDescriptor *pDescriptor);
+
99  NimBLEDescriptor* getDescriptorByUUID(const char* uuid);
+ +
101  NimBLEDescriptor* getDescriptorByHandle(uint16_t handle);
+
102  void removeDescriptor(NimBLEDescriptor *pDescriptor, bool deleteDsc = false);
+
103 
+
104  std::string getValue(time_t *timestamp = nullptr);
+
105  size_t getDataLength();
+
115  template<typename T>
+
116  T getValue(time_t *timestamp = nullptr, bool skipSizeCheck = false) {
+
117  std::string value = getValue();
+
118  if(!skipSizeCheck && value.size() < sizeof(T)) return T();
+
119  const char *pData = value.data();
+
120  return *((T *)pData);
+
121  }
+
122 
+
123  void setValue(const uint8_t* data, size_t size);
+
124  void setValue(const std::string &value);
+
129  template<typename T>
+
130  void setValue(const T &s) {
+
131  setValue((uint8_t*)&s, sizeof(T));
+
132  }
+
133 
+ +
135  uint16_t getProperties();
+
136 
+
137 private:
+
138 
+
139  friend class NimBLEServer;
+
140  friend class NimBLEService;
+
141 
+
142  void setService(NimBLEService *pService);
+
143  void setSubscribe(struct ble_gap_event *event);
+
144  static int handleGapEvent(uint16_t conn_handle, uint16_t attr_handle,
+
145  struct ble_gatt_access_ctxt *ctxt, void *arg);
+
146 
+
147  NimBLEUUID m_uuid;
+
148  uint16_t m_handle;
+
149  uint16_t m_properties;
+
150  NimBLECharacteristicCallbacks* m_pCallbacks;
+
151  NimBLEService* m_pService;
+
152  std::string m_value;
+
153  std::vector<NimBLEDescriptor*> m_dscVec;
+
154  portMUX_TYPE m_valMux;
+
155  time_t m_timestamp;
+
156  uint8_t m_removed;
+
157 
+
158  std::vector<std::pair<uint16_t, uint16_t>> m_subscribedVec;
+
159 }; // NimBLECharacteristic
+
160 
+
161 
+ +
170 public:
+
171 
+
177  typedef enum {
+
178  SUCCESS_INDICATE,
+
179  SUCCESS_NOTIFY,
+
180  ERROR_INDICATE_DISABLED,
+
181  ERROR_NOTIFY_DISABLED,
+
182  ERROR_GATT,
+
183  ERROR_NO_CLIENT,
+
184  ERROR_INDICATE_TIMEOUT,
+
185  ERROR_INDICATE_FAILURE
+
186  }Status;
+
187 
+ +
189  virtual void onRead(NimBLECharacteristic* pCharacteristic);
+
190  virtual void onRead(NimBLECharacteristic* pCharacteristic, ble_gap_conn_desc* desc);
+
191  virtual void onWrite(NimBLECharacteristic* pCharacteristic);
+
192  virtual void onWrite(NimBLECharacteristic* pCharacteristic, ble_gap_conn_desc* desc);
+
193  virtual void onNotify(NimBLECharacteristic* pCharacteristic);
+
194  virtual void onStatus(NimBLECharacteristic* pCharacteristic, Status s, int code);
+
195  virtual void onSubscribe(NimBLECharacteristic* pCharacteristic, ble_gap_conn_desc* desc, uint16_t subValue);
+
196 };
+
197 
+
198 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
199 #endif /* CONFIG_BT_ENABLED */
+
200 #endif /*MAIN_NIMBLECHARACTERISTIC_H_*/
+
Callbacks that can be associated with a BLE characteristic to inform of events.
Definition: NimBLECharacteristic.h:169
+
Status
An enum to provide the callback the status of the notification/indication, implemented for backward c...
Definition: NimBLECharacteristic.h:177
+
virtual void onNotify(NimBLECharacteristic *pCharacteristic)
Callback function to support a Notify request.
Definition: NimBLECharacteristic.cpp:611
+
virtual void onSubscribe(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc, uint16_t subValue)
Callback function called when a client changes subscription status.
Definition: NimBLECharacteristic.cpp:637
+
virtual void onRead(NimBLECharacteristic *pCharacteristic)
Callback function to support a read request.
Definition: NimBLECharacteristic.cpp:577
+
virtual void onWrite(NimBLECharacteristic *pCharacteristic)
Callback function to support a write request.
Definition: NimBLECharacteristic.cpp:594
+
virtual void onStatus(NimBLECharacteristic *pCharacteristic, Status s, int code)
Callback function to support a Notify/Indicate Status report.
Definition: NimBLECharacteristic.cpp:622
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
NimBLEDescriptor * getDescriptorByHandle(uint16_t handle)
Return the BLE Descriptor for the given handle.
Definition: NimBLECharacteristic.cpp:185
+
NimBLECharacteristicCallbacks * getCallbacks()
Get the callback handlers for this characteristic.
Definition: NimBLECharacteristic.cpp:508
+
NimBLEUUID getUUID()
Get the UUID of the characteristic.
Definition: NimBLECharacteristic.cpp:230
+
void setCallbacks(NimBLECharacteristicCallbacks *pCallbacks)
Set the callback handlers for this characteristic.
Definition: NimBLECharacteristic.cpp:497
+
void removeDescriptor(NimBLEDescriptor *pDescriptor, bool deleteDsc=false)
Remove a descriptor from the characterisitc.
Definition: NimBLECharacteristic.cpp:133
+
void indicate()
Send an indication. An indication is a transmission of up to the first 20 bytes of the characteristic...
Definition: NimBLECharacteristic.cpp:396
+
std::string getValue(time_t *timestamp=nullptr)
Retrieve the current value of the characteristic.
Definition: NimBLECharacteristic.cpp:239
+
std::string toString()
Return a string representation of the characteristic.
Definition: NimBLECharacteristic.cpp:554
+
size_t getDataLength()
Retrieve the the current data length of the characteristic.
Definition: NimBLECharacteristic.cpp:255
+
uint16_t getProperties()
Get the properties of the characteristic.
Definition: NimBLECharacteristic.cpp:208
+
void setValue(const uint8_t *data, size_t size)
Set the value of the characteristic.
Definition: NimBLECharacteristic.cpp:518
+
T getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)
A template to convert the characteristic data to <type>.
Definition: NimBLECharacteristic.h:116
+
~NimBLECharacteristic()
Destructor.
Definition: NimBLECharacteristic.cpp:62
+
NimBLEService * getService()
Get the service associated with this characteristic.
Definition: NimBLECharacteristic.cpp:216
+
NimBLECharacteristic(const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)
Construct a characteristic.
Definition: NimBLECharacteristic.cpp:37
+
void notify(bool is_notification=true)
Send a notification. A notification is a transmission of up to the first 20 bytes of the characterist...
Definition: NimBLECharacteristic.cpp:408
+
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.
Definition: NimBLECharacteristic.cpp:76
+
void setValue(const T &s)
Convenience template to set the characteristic value to <type>val.
Definition: NimBLECharacteristic.h:130
+
NimBLEDescriptor * getDescriptorByUUID(const char *uuid)
Return the BLE Descriptor for the given UUID.
Definition: NimBLECharacteristic.cpp:161
+
uint16_t getHandle()
Get the handle of the characteristic.
Definition: NimBLECharacteristic.cpp:199
+
size_t getSubscribedCount()
Get the number of clients subscribed to the characteristic.
Definition: NimBLECharacteristic.cpp:339
+
void addDescriptor(NimBLEDescriptor *pDescriptor)
Add a descriptor to the characteristic.
Definition: NimBLECharacteristic.cpp:107
+
A model of a BLE descriptor.
Definition: NimBLEDescriptor.h:44
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+
The model of a BLE service.
Definition: NimBLEService.h:36
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_client_8h_source.html b/_nim_b_l_e_client_8h_source.html new file mode 100644 index 0000000..be465ca --- /dev/null +++ b/_nim_b_l_e_client_8h_source.html @@ -0,0 +1,269 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEClient.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEClient.h
+
+
+
1 /*
+
2  * NimBLEClient.h
+
3  *
+
4  * Created: on Jan 26 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  * BLEClient.h
+
9  *
+
10  * Created on: Mar 22, 2017
+
11  * Author: kolban
+
12  */
+
13 
+
14 #ifndef MAIN_NIMBLECLIENT_H_
+
15 #define MAIN_NIMBLECLIENT_H_
+
16 
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
22 
+
23 #include "NimBLEAddress.h"
+
24 #include "NimBLEUUID.h"
+
25 #include "NimBLEUtils.h"
+
26 #include "NimBLEConnInfo.h"
+
27 #include "NimBLEAdvertisedDevice.h"
+
28 #include "NimBLERemoteService.h"
+
29 
+
30 #include <vector>
+
31 #include <string>
+
32 
+ + + + +
37 
+
41 class NimBLEClient {
+
42 public:
+
43  bool connect(NimBLEAdvertisedDevice* device, bool deleteAttibutes = true);
+
44  bool connect(const NimBLEAddress &address, bool deleteAttibutes = true);
+
45  bool connect(bool deleteAttibutes = true);
+
46  int disconnect(uint8_t reason = BLE_ERR_REM_USER_CONN_TERM);
+ +
48  void setPeerAddress(const NimBLEAddress &address);
+
49  int getRssi();
+
50  std::vector<NimBLERemoteService*>* getServices(bool refresh = false);
+
51  std::vector<NimBLERemoteService*>::iterator begin();
+
52  std::vector<NimBLERemoteService*>::iterator end();
+
53  NimBLERemoteService* getService(const char* uuid);
+ +
55  void deleteServices();
+
56  size_t deleteService(const NimBLEUUID &uuid);
+
57  std::string getValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID);
+
58  bool setValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID,
+
59  const std::string &value, bool response = false);
+
60  NimBLERemoteCharacteristic* getCharacteristic(const uint16_t handle);
+
61  bool isConnected();
+
62  void setClientCallbacks(NimBLEClientCallbacks *pClientCallbacks,
+
63  bool deleteCallbacks = true);
+
64  std::string toString();
+
65  uint16_t getConnId();
+
66  uint16_t getMTU();
+
67  bool secureConnection();
+
68  void setConnectTimeout(uint8_t timeout);
+
69  void setConnectionParams(uint16_t minInterval, uint16_t maxInterval,
+
70  uint16_t latency, uint16_t timeout,
+
71  uint16_t scanInterval=16, uint16_t scanWindow=16);
+
72  void updateConnParams(uint16_t minInterval, uint16_t maxInterval,
+
73  uint16_t latency, uint16_t timeout);
+
74  void discoverAttributes();
+ +
76 
+
77 private:
+
78  NimBLEClient(const NimBLEAddress &peerAddress);
+
79  ~NimBLEClient();
+
80 
+
81  friend class NimBLEDevice;
+
82  friend class NimBLERemoteService;
+
83 
+
84  static int handleGapEvent(struct ble_gap_event *event, void *arg);
+
85  static int serviceDiscoveredCB(uint16_t conn_handle,
+
86  const struct ble_gatt_error *error,
+
87  const struct ble_gatt_svc *service,
+
88  void *arg);
+
89  static void dcTimerCb(ble_npl_event *event);
+
90  bool retrieveServices(const NimBLEUUID *uuid_filter = nullptr);
+
91 
+
92  NimBLEAddress m_peerAddress;
+
93  uint16_t m_conn_id;
+
94  bool m_connEstablished;
+
95  bool m_deleteCallbacks;
+
96  int32_t m_connectTimeout;
+
97  NimBLEClientCallbacks* m_pClientCallbacks;
+
98  ble_task_data_t* m_pTaskData;
+
99  ble_npl_callout m_dcTimer;
+
100 
+
101  std::vector<NimBLERemoteService*> m_servicesVector;
+
102 
+
103 private:
+
104  friend class NimBLEClientCallbacks;
+
105  ble_gap_conn_params m_pConnParams;
+
106 
+
107 }; // class NimBLEClient
+
108 
+
109 
+ +
114 public:
+
115  virtual ~NimBLEClientCallbacks() {};
+
116 
+
121  virtual void onConnect(NimBLEClient* pClient);
+
122 
+
127  virtual void onDisconnect(NimBLEClient* pClient);
+
128 
+
135  virtual bool onConnParamsUpdateRequest(NimBLEClient* pClient, const ble_gap_upd_params* params);
+
136 
+
141  virtual uint32_t onPassKeyRequest();
+
142 
+
143  /*virtual void onPassKeyNotify(uint32_t pass_key);
+
144  virtual bool onSecurityRequest();*/
+
145 
+
151  virtual void onAuthenticationComplete(ble_gap_conn_desc* desc);
+
152 
+
158  virtual bool onConfirmPIN(uint32_t pin);
+
159 };
+
160 
+
161 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
162 #endif // CONFIG_BT_ENABLED
+
163 #endif /* MAIN_NIMBLECLIENT_H_ */
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
A representation of a BLE advertised device found by a scan.
Definition: NimBLEAdvertisedDevice.h:40
+
Callbacks associated with a BLE client.
Definition: NimBLEClient.h:113
+
virtual void onDisconnect(NimBLEClient *pClient)
Called when disconnected from the server.
Definition: NimBLEClient.cpp:1143
+
virtual void onAuthenticationComplete(ble_gap_conn_desc *desc)
Called when the pairing procedure is complete.
Definition: NimBLEClient.cpp:1165
+
virtual bool onConnParamsUpdateRequest(NimBLEClient *pClient, const ble_gap_upd_params *params)
Called when server requests to update the connection parameters.
Definition: NimBLEClient.cpp:1147
+
virtual void onConnect(NimBLEClient *pClient)
Called after client connects.
Definition: NimBLEClient.cpp:1139
+
virtual uint32_t onPassKeyRequest()
Called when server requests a passkey for pairing.
Definition: NimBLEClient.cpp:1152
+
virtual bool onConfirmPIN(uint32_t pin)
Called when using numeric comparision for pairing.
Definition: NimBLEClient.cpp:1168
+
A model of a BLE client.
Definition: NimBLEClient.h:41
+
NimBLEAddress getPeerAddress()
Retrieve the address of the peer.
Definition: NimBLEClient.cpp:478
+
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.
Definition: NimBLEClient.cpp:747
+
std::vector< NimBLERemoteService * >::iterator end()
Get iterator to the end of the vector of remote service pointers.
Definition: NimBLEClient.cpp:535
+
size_t deleteService(const NimBLEUUID &uuid)
Delete service by UUID.
Definition: NimBLEClient.cpp:131
+
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.
Definition: NimBLEClient.cpp:388
+
NimBLERemoteCharacteristic * getCharacteristic(const uint16_t handle)
Get the remote characteristic with the specified handle.
Definition: NimBLEClient.cpp:773
+
void discoverAttributes()
Retrieves the full database of attributes that the peripheral has available.
Definition: NimBLEClient.cpp:612
+
void setConnectTimeout(uint8_t timeout)
Set the timeout to wait for connection attempt to complete.
Definition: NimBLEClient.cpp:461
+
NimBLEConnInfo getConnInfo()
Get detailed information about the current peer connection.
Definition: NimBLEClient.cpp:442
+
int disconnect(uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)
Disconnect from the peer.
Definition: NimBLEClient.cpp:336
+
void deleteServices()
Delete all service objects created by this client and clear the vector.
Definition: NimBLEClient.cpp:114
+
bool secureConnection()
Initiate a secure connection (pair/bond) with the server. Called automatically when a characteristic ...
Definition: NimBLEClient.cpp:307
+
void setPeerAddress(const NimBLEAddress &address)
Set the peer address.
Definition: NimBLEClient.cpp:488
+
uint16_t getConnId()
Get the connection id for this client.
Definition: NimBLEClient.cpp:470
+
bool connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)
Connect to an advertising device.
Definition: NimBLEClient.cpp:165
+
std::vector< NimBLERemoteService * >::iterator begin()
Get iterator to the beginning of the vector of remote service pointers.
Definition: NimBLEClient.cpp:526
+
uint16_t getMTU()
Get the current mtu of this connection.
Definition: NimBLEClient.cpp:798
+
std::string toString()
Return a string representation of this client.
Definition: NimBLEClient.cpp:1127
+
std::vector< NimBLERemoteService * > * getServices(bool refresh=false)
Get a pointer to the vector of found services.
Definition: NimBLEClient.cpp:594
+
int getRssi()
Ask the BLE server for the RSSI value.
Definition: NimBLEClient.cpp:503
+
NimBLERemoteService * getService(const char *uuid)
Get the service BLE Remote Service instance corresponding to the uuid.
Definition: NimBLEClient.cpp:545
+
void setClientCallbacks(NimBLEClientCallbacks *pClientCallbacks, bool deleteCallbacks=true)
Set the callbacks that will be invoked when events are received.
Definition: NimBLEClient.cpp:1113
+
bool isConnected()
Are we connected to a server?
Definition: NimBLEClient.cpp:1103
+
std::string getValue(const NimBLEUUID &serviceUUID, const NimBLEUUID &characteristicUUID)
Get the value of a specific characteristic associated with a specific service.
Definition: NimBLEClient.cpp:720
+
void updateConnParams(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
Update the connection parameters:
Definition: NimBLEClient.cpp:418
+
Connection information.
Definition: NimBLEConnInfo.h:9
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
A model of a remote BLE characteristic.
Definition: NimBLERemoteCharacteristic.h:45
+
A model of a remote BLE service.
Definition: NimBLERemoteService.h:36
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_conn_info_8h_source.html b/_nim_b_l_e_conn_info_8h_source.html new file mode 100644 index 0000000..274cf27 --- /dev/null +++ b/_nim_b_l_e_conn_info_8h_source.html @@ -0,0 +1,155 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEConnInfo.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEConnInfo.h
+
+
+
1 #ifndef NIMBLECONNINFO_H_
+
2 #define NIMBLECONNINFO_H_
+
3 
+
4 #include "NimBLEAddress.h"
+
5 
+ +
10 friend class NimBLEServer;
+
11 friend class NimBLEClient;
+
12  ble_gap_conn_desc m_desc;
+
13  NimBLEConnInfo() { m_desc = {}; }
+
14  NimBLEConnInfo(ble_gap_conn_desc desc) { m_desc = desc; }
+
15 public:
+
17  NimBLEAddress getAddress() { return NimBLEAddress(m_desc.peer_ota_addr); }
+
18 
+
20  NimBLEAddress getIdAddress() { return NimBLEAddress(m_desc.peer_id_addr); }
+
21 
+
23  uint16_t getConnHandle() { return m_desc.conn_handle; }
+
24 
+
26  uint16_t getConnInterval() { return m_desc.conn_itvl; }
+
27 
+
29  uint16_t getConnTimeout() { return m_desc.supervision_timeout; }
+
30 
+
32  uint16_t getConnLatency() { return m_desc.conn_latency; }
+
33 
+
35  uint16_t getMTU() { return ble_att_mtu(m_desc.conn_handle); }
+
36 
+
38  bool isMaster() { return (m_desc.role == BLE_GAP_ROLE_MASTER); }
+
39 
+
41  bool isSlave() { return (m_desc.role == BLE_GAP_ROLE_SLAVE); }
+
42 
+
44  bool isBonded() { return (m_desc.sec_state.bonded == 1); }
+
45 
+
47  bool isEncrypted() { return (m_desc.sec_state.encrypted == 1); }
+
48 
+
50  bool isAuthenticated() { return (m_desc.sec_state.authenticated == 1); }
+
51 
+
53  uint8_t getSecKeySize() { return m_desc.sec_state.key_size; }
+
54 };
+
55 #endif
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
A model of a BLE client.
Definition: NimBLEClient.h:41
+
Connection information.
Definition: NimBLEConnInfo.h:9
+
uint16_t getConnLatency()
Gets the allowable latency for this connection (unit = number of intervals)
Definition: NimBLEConnInfo.h:32
+
uint8_t getSecKeySize()
Gets the key size used to encrypt the connection.
Definition: NimBLEConnInfo.h:53
+
bool isMaster()
Check if we are in the master role in this connection.
Definition: NimBLEConnInfo.h:38
+
bool isAuthenticated()
Check if the the connection has been authenticated.
Definition: NimBLEConnInfo.h:50
+
uint16_t getConnHandle()
Gets the connection handle of the connected peer.
Definition: NimBLEConnInfo.h:23
+
NimBLEAddress getIdAddress()
Gets the ID address of the connected peer.
Definition: NimBLEConnInfo.h:20
+
uint16_t getConnTimeout()
Gets the supervision timeout for this connection (in 10ms units)
Definition: NimBLEConnInfo.h:29
+
bool isEncrypted()
Check if the connection in encrypted.
Definition: NimBLEConnInfo.h:47
+
uint16_t getMTU()
Gets the maximum transmission unit size for this connection (in bytes)
Definition: NimBLEConnInfo.h:35
+
uint16_t getConnInterval()
Gets the connection interval for this connection (in 1.25ms units)
Definition: NimBLEConnInfo.h:26
+
bool isSlave()
Check if we are in the slave role in this connection.
Definition: NimBLEConnInfo.h:41
+
NimBLEAddress getAddress()
Gets the over-the-air address of the connected peer.
Definition: NimBLEConnInfo.h:17
+
bool isBonded()
Check if we are connected to a bonded peer.
Definition: NimBLEConnInfo.h:44
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+
+
+ + + + diff --git a/_nim_b_l_e_descriptor_8h_source.html b/_nim_b_l_e_descriptor_8h_source.html new file mode 100644 index 0000000..e005ced --- /dev/null +++ b/_nim_b_l_e_descriptor_8h_source.html @@ -0,0 +1,224 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEDescriptor.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEDescriptor.h
+
+
+
1 /*
+
2  * NimBLEDescriptor.h
+
3  *
+
4  * Created: on March 10, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEDescriptor.h
+
10  *
+
11  * Created on: Jun 22, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLEDESCRIPTOR_H_
+
16 #define MAIN_NIMBLEDESCRIPTOR_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
22 
+
23 #include "NimBLECharacteristic.h"
+
24 #include "NimBLEUUID.h"
+
25 
+
26 #include <string>
+
27 
+
28 
+
29 typedef struct
+
30 {
+
31  uint16_t attr_max_len;
+
32  uint16_t attr_len;
+
33  uint8_t *attr_value;
+
34 } attr_value_t;
+
35 
+
36 class NimBLEService;
+ + +
39 
+
40 
+ +
45 public:
+
46  NimBLEDescriptor(const char* uuid, uint16_t properties,
+
47  uint16_t max_len,
+
48  NimBLECharacteristic* pCharacteristic = nullptr);
+
49 
+
50  NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties,
+
51  uint16_t max_len,
+
52  NimBLECharacteristic* pCharacteristic = nullptr);
+
53 
+ +
55 
+
56  uint16_t getHandle();
+ +
58  std::string toString();
+
59 
+
60  void setCallbacks(NimBLEDescriptorCallbacks* pCallbacks);
+
61 
+
62  size_t getLength();
+
63  uint8_t* getValue();
+
64  std::string getStringValue();
+
65 
+
66  void setValue(const uint8_t* data, size_t size);
+
67  void setValue(const std::string &value);
+ +
69 
+
74  template<typename T>
+
75  void setValue(const T &s) {
+
76  setValue((uint8_t*)&s, sizeof(T));
+
77  }
+
78 
+
79 private:
+
80  friend class NimBLECharacteristic;
+
81  friend class NimBLEService;
+
82  friend class NimBLE2904;
+
83 
+
84  static int handleGapEvent(uint16_t conn_handle, uint16_t attr_handle,
+
85  struct ble_gatt_access_ctxt *ctxt, void *arg);
+
86  void setHandle(uint16_t handle);
+
87  void setCharacteristic(NimBLECharacteristic* pChar);
+
88 
+
89  NimBLEUUID m_uuid;
+
90  uint16_t m_handle;
+
91  NimBLEDescriptorCallbacks* m_pCallbacks;
+
92  NimBLECharacteristic* m_pCharacteristic;
+
93  uint8_t m_properties;
+
94  attr_value_t m_value;
+
95  portMUX_TYPE m_valMux;
+
96  uint8_t m_removed;
+
97 }; // NimBLEDescriptor
+
98 
+
99 
+ +
108 public:
+
109  virtual ~NimBLEDescriptorCallbacks();
+
110  virtual void onRead(NimBLEDescriptor* pDescriptor);
+
111  virtual void onWrite(NimBLEDescriptor* pDescriptor);
+
112 };
+
113 
+
114 #include "NimBLE2904.h"
+
115 
+
116 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
117 #endif /* CONFIG_BT_ENABLED */
+
118 #endif /* MAIN_NIMBLEDESCRIPTOR_H_ */
+
Descriptor for Characteristic Presentation Format.
Definition: NimBLE2904.h:43
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
Callbacks that can be associated with a BLE descriptors to inform of events.
Definition: NimBLEDescriptor.h:107
+
virtual void onRead(NimBLEDescriptor *pDescriptor)
Callback function to support a read request.
Definition: NimBLEDescriptor.cpp:279
+
virtual void onWrite(NimBLEDescriptor *pDescriptor)
Callback function to support a write request.
Definition: NimBLEDescriptor.cpp:288
+
A model of a BLE descriptor.
Definition: NimBLEDescriptor.h:44
+
size_t getLength()
Get the length of the value of this descriptor.
Definition: NimBLEDescriptor.cpp:106
+
NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
NimBLEDescriptor constructor.
Definition: NimBLEDescriptor.cpp:35
+
NimBLECharacteristic * getCharacteristic()
Get the characteristic this descriptor belongs to.
Definition: NimBLEDescriptor.cpp:141
+
uint16_t getHandle()
Get the BLE handle for this descriptor.
Definition: NimBLEDescriptor.cpp:97
+
std::string getStringValue()
Get the value of this descriptor as a string.
Definition: NimBLEDescriptor.cpp:132
+
void setValue(const T &s)
Convenience template to set the descriptor value to <type>val.
Definition: NimBLEDescriptor.h:75
+
void setValue(const uint8_t *data, size_t size)
Set the value of the descriptor.
Definition: NimBLEDescriptor.cpp:232
+
void setCallbacks(NimBLEDescriptorCallbacks *pCallbacks)
Set the callback handlers for this descriptor.
Definition: NimBLEDescriptor.cpp:205
+
NimBLEUUID getUUID()
Get the UUID of the descriptor.
Definition: NimBLEDescriptor.cpp:114
+
std::string toString()
Return a string representation of the descriptor.
Definition: NimBLEDescriptor.cpp:265
+
uint8_t * getValue()
Get the value of this descriptor.
Definition: NimBLEDescriptor.cpp:123
+
~NimBLEDescriptor()
NimBLEDescriptor destructor.
Definition: NimBLEDescriptor.cpp:89
+
The model of a BLE service.
Definition: NimBLEService.h:36
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_device_8h_source.html b/_nim_b_l_e_device_8h_source.html new file mode 100644 index 0000000..1807e87 --- /dev/null +++ b/_nim_b_l_e_device_8h_source.html @@ -0,0 +1,361 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEDevice.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEDevice.h
+
+
+
1 /*
+
2  * NimBLEDevice.h
+
3  *
+
4  * Created: on Jan 24 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEDevice.h
+
10  *
+
11  * Created on: Mar 16, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLEDEVICE_H_
+
16 #define MAIN_NIMBLEDEVICE_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 
+
22 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
23 #include "NimBLEScan.h"
+
24 #endif
+
25 
+
26 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+
27 #include "NimBLEAdvertising.h"
+
28 #endif
+
29 
+
30 #if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
31 #include "NimBLEClient.h"
+
32 #endif
+
33 
+
34 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
35 #include "NimBLEServer.h"
+
36 #endif
+
37 
+
38 #include "NimBLEUtils.h"
+
39 #include "NimBLESecurity.h"
+
40 #include "NimBLEAddress.h"
+
41 
+
42 #include "esp_bt.h"
+
43 
+
44 #include <map>
+
45 #include <string>
+
46 #include <list>
+
47 
+
48 #define BLEDevice NimBLEDevice
+
49 #define BLEClient NimBLEClient
+
50 #define BLERemoteService NimBLERemoteService
+
51 #define BLERemoteCharacteristic NimBLERemoteCharacteristic
+
52 #define BLERemoteDescriptor NimBLERemoteDescriptor
+
53 #define BLEAdvertisedDevice NimBLEAdvertisedDevice
+
54 #define BLEScan NimBLEScan
+
55 #define BLEUUID NimBLEUUID
+
56 #define BLESecurity NimBLESecurity
+
57 #define BLESecurityCallbacks NimBLESecurityCallbacks
+
58 #define BLEAddress NimBLEAddress
+
59 #define BLEUtils NimBLEUtils
+
60 #define BLEClientCallbacks NimBLEClientCallbacks
+
61 #define BLEAdvertisedDeviceCallbacks NimBLEAdvertisedDeviceCallbacks
+
62 #define BLEScanResults NimBLEScanResults
+
63 #define BLEServer NimBLEServer
+
64 #define BLEService NimBLEService
+
65 #define BLECharacteristic NimBLECharacteristic
+
66 #define BLEAdvertising NimBLEAdvertising
+
67 #define BLEServerCallbacks NimBLEServerCallbacks
+
68 #define BLECharacteristicCallbacks NimBLECharacteristicCallbacks
+
69 #define BLEAdvertisementData NimBLEAdvertisementData
+
70 #define BLEDescriptor NimBLEDescriptor
+
71 #define BLE2902 NimBLE2902
+
72 #define BLE2904 NimBLE2904
+
73 #define BLEDescriptorCallbacks NimBLEDescriptorCallbacks
+
74 #define BLEBeacon NimBLEBeacon
+
75 #define BLEEddystoneTLM NimBLEEddystoneTLM
+
76 #define BLEEddystoneURL NimBLEEddystoneURL
+
77 
+
78 #ifdef CONFIG_BT_NIMBLE_MAX_CONNECTIONS
+
79 #define NIMBLE_MAX_CONNECTIONS CONFIG_BT_NIMBLE_MAX_CONNECTIONS
+
80 #else
+
81 #define NIMBLE_MAX_CONNECTIONS CONFIG_NIMBLE_MAX_CONNECTIONS
+
82 #endif
+
83 
+
84 typedef int (*gap_event_handler)(ble_gap_event *event, void *arg);
+
85 
+
86 extern "C" void ble_store_config_init(void);
+
87 
+
91 class NimBLEDevice {
+
92 public:
+
93  static void init(const std::string &deviceName);
+
94  static void deinit(bool clearAll = false);
+
95  static bool getInitialized();
+
96  static NimBLEAddress getAddress();
+
97  static std::string toString();
+
98  static bool whiteListAdd(const NimBLEAddress & address);
+
99  static bool whiteListRemove(const NimBLEAddress & address);
+
100  static bool onWhiteList(const NimBLEAddress & address);
+
101  static size_t getWhiteListCount();
+
102  static NimBLEAddress getWhiteListAddress(size_t index);
+
103 
+
104 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
105  static NimBLEScan* getScan();
+
106 #endif
+
107 
+
108 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
109  static NimBLEServer* createServer();
+
110  static NimBLEServer* getServer();
+
111 #endif
+
112 
+
113  static void setPower(esp_power_level_t powerLevel, esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT);
+
114  static int getPower(esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT);
+
115  static void setCustomGapHandler(gap_event_handler handler);
+
116  static void setSecurityAuth(bool bonding, bool mitm, bool sc);
+
117  static void setSecurityAuth(uint8_t auth_req);
+
118  static void setSecurityIOCap(uint8_t iocap);
+
119  static void setSecurityInitKey(uint8_t init_key);
+
120  static void setSecurityRespKey(uint8_t init_key);
+
121  static void setSecurityPasskey(uint32_t pin);
+
122  static uint32_t getSecurityPasskey();
+
123  static void setSecurityCallbacks(NimBLESecurityCallbacks* pCallbacks);
+
124  static void setOwnAddrType(uint8_t own_addr_type, bool useNRPA=false);
+
125  static int startSecurity(uint16_t conn_id);
+
126  static int setMTU(uint16_t mtu);
+
127  static uint16_t getMTU();
+
128  static bool isIgnored(const NimBLEAddress &address);
+
129  static void addIgnored(const NimBLEAddress &address);
+
130  static void removeIgnored(const NimBLEAddress &address);
+
131  static void setScanDuplicateCacheSize(uint16_t cacheSize);
+
132  static void setScanFilterMode(uint8_t type);
+
133 
+
134 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+ +
136  static void startAdvertising();
+
137  static void stopAdvertising();
+
138 #endif
+
139 
+
140 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
141  static NimBLEClient* createClient(NimBLEAddress peerAddress = NimBLEAddress(""));
+
142  static bool deleteClient(NimBLEClient* pClient);
+
143  static NimBLEClient* getClientByID(uint16_t conn_id);
+
144  static NimBLEClient* getClientByPeerAddress(const NimBLEAddress &peer_addr);
+ +
146  static size_t getClientListSize();
+
147  static std::list<NimBLEClient*>* getClientList();
+
148 #endif
+
149 
+
150 #if defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL) || defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
151  static bool deleteBond(const NimBLEAddress &address);
+
152  static int getNumBonds();
+
153  static bool isBonded(const NimBLEAddress &address);
+
154  static void deleteAllBonds();
+
155  static NimBLEAddress getBondedAddress(int index);
+
156 #endif
+
157 
+
158 private:
+
159 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
160  friend class NimBLEClient;
+
161 #endif
+
162 
+
163 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
164  friend class NimBLEScan;
+
165 #endif
+
166 
+
167 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
168  friend class NimBLEServer;
+
169  friend class NimBLECharacteristic;
+
170 #endif
+
171 
+
172 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+
173  friend class NimBLEAdvertising;
+
174 #endif
+
175 
+
176  static void onReset(int reason);
+
177  static void onSync(void);
+
178  static void host_task(void *param);
+
179  static bool m_synced;
+
180 
+
181 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
182  static NimBLEScan* m_pScan;
+
183 #endif
+
184 
+
185 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
186  static NimBLEServer* m_pServer;
+
187 #endif
+
188 
+
189 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+
190  static NimBLEAdvertising* m_bleAdvertising;
+
191 #endif
+
192 
+
193 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
194  static std::list <NimBLEClient*> m_cList;
+
195 #endif
+
196  static std::list <NimBLEAddress> m_ignoreList;
+
197  static NimBLESecurityCallbacks* m_securityCallbacks;
+
198  static uint32_t m_passkey;
+
199  static ble_gap_event_listener m_listener;
+
200  static gap_event_handler m_customGapHandler;
+
201  static uint8_t m_own_addr_type;
+
202  static uint16_t m_scanDuplicateSize;
+
203  static uint8_t m_scanFilterMode;
+
204  static std::vector<NimBLEAddress> m_whiteList;
+
205 };
+
206 
+
207 
+
208 #endif // CONFIG_BT_ENABLED
+
209 #endif // MAIN_NIMBLEDEVICE_H_
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
Perform and manage BLE advertising.
Definition: NimBLEAdvertising.h:83
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
A model of a BLE client.
Definition: NimBLEClient.h:41
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
static void removeIgnored(const NimBLEAddress &address)
Remove a device from the ignore list.
Definition: NimBLEDevice.cpp:1054
+
static NimBLEClient * getDisconnectedClient()
Finds the first disconnected client in the list.
Definition: NimBLEDevice.cpp:261
+
static bool isIgnored(const NimBLEAddress &address)
Check if the device address is on our ignore list.
Definition: NimBLEDevice.cpp:1030
+
static bool isBonded(const NimBLEAddress &address)
Checks if a peer device is bonded.
Definition: NimBLEDevice.cpp:505
+
static std::list< NimBLEClient * > * getClientList()
Get the list of created client objects.
Definition: NimBLEDevice.cpp:212
+
static bool deleteBond(const NimBLEAddress &address)
Deletes a peer bond.
Definition: NimBLEDevice.cpp:485
+
static int startSecurity(uint16_t conn_id)
Start the connection securing and authorization for this connection.
Definition: NimBLEDevice.cpp:1011
+
static int getPower(esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)
Get the transmission power.
Definition: NimBLEDevice.cpp:326
+
static NimBLEServer * getServer()
Get the instance of the server.
Definition: NimBLEDevice.cpp:91
+
static NimBLEAddress getWhiteListAddress(size_t index)
Gets the address at the vector index.
Definition: NimBLEDevice.cpp:649
+
static NimBLEServer * createServer()
Create a new instance of a server.
Definition: NimBLEDevice.cpp:75
+
static uint16_t getMTU()
Get local MTU value set.
Definition: NimBLEDevice.cpp:401
+
static void setSecurityRespKey(uint8_t init_key)
Set the keys we are willing to accept during pairing.
Definition: NimBLEDevice.cpp:938
+
static void init(const std::string &deviceName)
Initialize the BLE environment.
Definition: NimBLEDevice.cpp:738
+
static void addIgnored(const NimBLEAddress &address)
Add a device to the ignore list.
Definition: NimBLEDevice.cpp:1045
+
static NimBLEAddress getAddress()
Get our device address.
Definition: NimBLEDevice.cpp:356
+
static void setSecurityCallbacks(NimBLESecurityCallbacks *pCallbacks)
Set callbacks that will be used to handle encryption negotiation events and authentication events.
Definition: NimBLEDevice.cpp:966
+
static int setMTU(uint16_t mtu)
Setup local mtu that will be used to negotiate mtu during request from client peer.
Definition: NimBLEDevice.cpp:383
+
static int getNumBonds()
Gets the number of bonded peers stored.
Definition: NimBLEDevice.cpp:457
+
static bool whiteListRemove(const NimBLEAddress &address)
Remove a peer address from the whitelist.
Definition: NimBLEDevice.cpp:600
+
static bool deleteClient(NimBLEClient *pClient)
Delete the client object and remove it from the list. Checks if it is connected or trying to connect ...
Definition: NimBLEDevice.cpp:168
+
static void setSecurityPasskey(uint32_t pin)
Set the passkey the server will ask for when pairing.
Definition: NimBLEDevice.cpp:947
+
static void stopAdvertising()
Convenience function to stop advertising.
Definition: NimBLEDevice.cpp:121
+
static void setCustomGapHandler(gap_event_handler handler)
Set a custom callback for gap events.
Definition: NimBLEDevice.cpp:1068
+
static void setSecurityInitKey(uint8_t init_key)
If we are the initiator of the security procedure this sets the keys we will distribute.
Definition: NimBLEDevice.cpp:924
+
static void setScanDuplicateCacheSize(uint16_t cacheSize)
Set the duplicate filter cache size for filtering scanned devices.
Definition: NimBLEDevice.cpp:413
+
static uint32_t getSecurityPasskey()
Get the current passkey used for pairing.
Definition: NimBLEDevice.cpp:956
+
static void setSecurityAuth(bool bonding, bool mitm, bool sc)
Set the authorization mode for this device.
Definition: NimBLEDevice.cpp:877
+
static void setOwnAddrType(uint8_t own_addr_type, bool useNRPA=false)
Set the own address type.
Definition: NimBLEDevice.cpp:981
+
static NimBLEAdvertising * getAdvertising()
Get the instance of the advertising object.
Definition: NimBLEDevice.cpp:102
+
static bool whiteListAdd(const NimBLEAddress &address)
Add a peer address to the whitelist.
Definition: NimBLEDevice.cpp:569
+
static size_t getWhiteListCount()
Gets the count of addresses in the whitelist.
Definition: NimBLEDevice.cpp:639
+
static void deleteAllBonds()
Deletes all bonding information.
Definition: NimBLEDevice.cpp:474
+
static void setSecurityIOCap(uint8_t iocap)
Set the Input/Output capabilities of this device.
Definition: NimBLEDevice.cpp:910
+
static void setScanFilterMode(uint8_t type)
Set the duplicate filter mode for filtering scanned devices.
Definition: NimBLEDevice.cpp:440
+
static size_t getClientListSize()
Get the number of created client objects.
Definition: NimBLEDevice.cpp:221
+
static std::string toString()
Return a string representation of the address of this device.
Definition: NimBLEDevice.cpp:373
+
static NimBLEClient * getClientByPeerAddress(const NimBLEAddress &peer_addr)
Get a reference to a client by peer address.
Definition: NimBLEDevice.cpp:247
+
static NimBLEClient * getClientByID(uint16_t conn_id)
Get a reference to a client by connection ID.
Definition: NimBLEDevice.cpp:231
+
static NimBLEAddress getBondedAddress(int index)
Get the address of a bonded peer device by index.
Definition: NimBLEDevice.cpp:531
+
static void setPower(esp_power_level_t powerLevel, esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)
Set the transmission power.
Definition: NimBLEDevice.cpp:298
+
static void startAdvertising()
Convenience function to begin advertising.
Definition: NimBLEDevice.cpp:113
+
static bool getInitialized()
Check if the initialization is complete.
Definition: NimBLEDevice.cpp:866
+
static bool onWhiteList(const NimBLEAddress &address)
Checks if a peer device is whitelisted.
Definition: NimBLEDevice.cpp:553
+
static void deinit(bool clearAll=false)
Shutdown the NimBLE stack/controller.
Definition: NimBLEDevice.cpp:810
+
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 p...
Definition: NimBLEDevice.cpp:150
+
static NimBLEScan * getScan()
Retrieve the Scan object that we use for scanning.
Definition: NimBLEDevice.cpp:133
+
Perform and manage BLE scans.
Definition: NimBLEScan.h:61
+
Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibi...
Definition: NimBLESecurity.h:88
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+ +
+
+ + + + diff --git a/_nim_b_l_e_eddystone_t_l_m_8h_source.html b/_nim_b_l_e_eddystone_t_l_m_8h_source.html new file mode 100644 index 0000000..ce61b98 --- /dev/null +++ b/_nim_b_l_e_eddystone_t_l_m_8h_source.html @@ -0,0 +1,172 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEEddystoneTLM.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEEddystoneTLM.h
+
+
+
1 /*
+
2  * NimBLEEddystoneTLM.h
+
3  *
+
4  * Created: on March 15 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEEddystoneTLM.h
+
10  *
+
11  * Created on: Mar 12, 2018
+
12  * Author: pcbreflux
+
13  */
+
14 
+
15 #ifndef _NimBLEEddystoneTLM_H_
+
16 #define _NimBLEEddystoneTLM_H_
+
17 #include "NimBLEUUID.h"
+
18 
+
19 #include <string>
+
20 
+
21 #define EDDYSTONE_TLM_FRAME_TYPE 0x20
+
22 
+ +
29 public:
+ +
31  std::string getData();
+ +
33  uint8_t getVersion();
+
34  uint16_t getVolt();
+
35  float getTemp();
+
36  uint32_t getCount();
+
37  uint32_t getTime();
+
38  std::string toString();
+
39  void setData(const std::string &data);
+
40  void setUUID(const NimBLEUUID &l_uuid);
+
41  void setVersion(uint8_t version);
+
42  void setVolt(uint16_t volt);
+
43  void setTemp(float temp);
+
44  void setCount(uint32_t advCount);
+
45  void setTime(uint32_t tmil);
+
46 
+
47 private:
+
48  uint16_t beaconUUID;
+
49  struct {
+
50  uint8_t frameType;
+
51  uint8_t version;
+
52  uint16_t volt;
+
53  uint16_t temp;
+
54  uint32_t advCount;
+
55  uint32_t tmil;
+
56  } __attribute__((packed)) m_eddystoneData;
+
57 
+
58 }; // NimBLEEddystoneTLM
+
59 
+
60 #endif /* _NimBLEEddystoneTLM_H_ */
+
Representation of a beacon. See:
Definition: NimBLEEddystoneTLM.h:28
+
void setData(const std::string &data)
Set the raw data for the beacon advertisment.
Definition: NimBLEEddystoneTLM.cpp:162
+
void setVersion(uint8_t version)
Set the version to advertise.
Definition: NimBLEEddystoneTLM.cpp:185
+
void setUUID(const NimBLEUUID &l_uuid)
Set the UUID to advertise.
Definition: NimBLEEddystoneTLM.cpp:176
+
NimBLEEddystoneTLM()
Construct a default EddystoneTLM beacon object.
Definition: NimBLEEddystoneTLM.cpp:30
+
uint32_t getCount()
Get the count of advertisments sent.
Definition: NimBLEEddystoneTLM.cpp:89
+
void setCount(uint32_t advCount)
Set the advertisment count.
Definition: NimBLEEddystoneTLM.cpp:212
+
void setTemp(float temp)
Set the temperature to advertise.
Definition: NimBLEEddystoneTLM.cpp:203
+
std::string toString()
Get a string representation of the beacon.
Definition: NimBLEEddystoneTLM.cpp:107
+
void setTime(uint32_t tmil)
Set the advertisment time.
Definition: NimBLEEddystoneTLM.cpp:221
+
NimBLEUUID getUUID()
Get the UUID being advertised.
Definition: NimBLEEddystoneTLM.cpp:54
+
uint32_t getTime()
Get the advertisment time.
Definition: NimBLEEddystoneTLM.cpp:98
+
float getTemp()
Get the temperature being advertised.
Definition: NimBLEEddystoneTLM.cpp:81
+
void setVolt(uint16_t volt)
Set the battery voltage to advertise.
Definition: NimBLEEddystoneTLM.cpp:194
+
std::string getData()
Retrieve the data that is being advertised.
Definition: NimBLEEddystoneTLM.cpp:45
+
uint8_t getVersion()
Get the version being advertised.
Definition: NimBLEEddystoneTLM.cpp:63
+
uint16_t getVolt()
Get the battery voltage.
Definition: NimBLEEddystoneTLM.cpp:72
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+
+
+ + + + diff --git a/_nim_b_l_e_eddystone_u_r_l_8h_source.html b/_nim_b_l_e_eddystone_u_r_l_8h_source.html new file mode 100644 index 0000000..5182485 --- /dev/null +++ b/_nim_b_l_e_eddystone_u_r_l_8h_source.html @@ -0,0 +1,158 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEEddystoneURL.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEEddystoneURL.h
+
+
+
1 /*
+
2  * NimBLEEddystoneURL.h
+
3  *
+
4  * Created: on March 15 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEEddystoneURL.h
+
10  *
+
11  * Created on: Mar 12, 2018
+
12  * Author: pcbreflux
+
13  */
+
14 
+
15 #ifndef _NIMBLEEddystoneURL_H_
+
16 #define _NIMBLEEddystoneURL_H_
+
17 #include "NimBLEUUID.h"
+
18 
+
19 #include <string>
+
20 
+
21 #define EDDYSTONE_URL_FRAME_TYPE 0x10
+
22 
+ +
29 public:
+ +
31  std::string getData();
+ +
33  int8_t getPower();
+
34  std::string getURL();
+
35  std::string getDecodedURL();
+
36  void setData(const std::string &data);
+
37  void setUUID(const NimBLEUUID &l_uuid);
+
38  void setPower(int8_t advertisedTxPower);
+
39  void setURL(const std::string &url);
+
40 
+
41 private:
+
42  uint16_t beaconUUID;
+
43  uint8_t lengthURL;
+
44  struct {
+
45  uint8_t frameType;
+
46  int8_t advertisedTxPower;
+
47  uint8_t url[16];
+
48  } __attribute__((packed)) m_eddystoneData;
+
49 
+
50 }; // NIMBLEEddystoneURL
+
51 
+
52 #endif /* _NIMBLEEddystoneURL_H_ */
+
Representation of a beacon. See:
Definition: NimBLEEddystoneURL.h:28
+
std::string getURL()
Get the raw URL being advertised.
Definition: NimBLEEddystoneURL.cpp:68
+
NimBLEUUID getUUID()
Get the UUID being advertised.
Definition: NimBLEEddystoneURL.cpp:50
+
int8_t getPower()
Get the transmit power being advertised.
Definition: NimBLEEddystoneURL.cpp:59
+
void setPower(int8_t advertisedTxPower)
Set the transmit power to advertise.
Definition: NimBLEEddystoneURL.cpp:183
+
void setURL(const std::string &url)
Set the URL to advertise.
Definition: NimBLEEddystoneURL.cpp:192
+
std::string getDecodedURL()
Get the full URL being advertised.
Definition: NimBLEEddystoneURL.cpp:77
+
std::string getData()
Retrieve the data that is being advertised.
Definition: NimBLEEddystoneURL.cpp:41
+
void setData(const std::string &data)
Set the raw data for the beacon advertisment.
Definition: NimBLEEddystoneURL.cpp:158
+
NimBLEEddystoneURL()
Construct a default EddystoneURL beacon object.
Definition: NimBLEEddystoneURL.cpp:28
+
void setUUID(const NimBLEUUID &l_uuid)
Set the UUID to advertise.
Definition: NimBLEEddystoneURL.cpp:174
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+
+
+ + + + diff --git a/_nim_b_l_e_h_i_d_device_8h_source.html b/_nim_b_l_e_h_i_d_device_8h_source.html new file mode 100644 index 0000000..97103c8 --- /dev/null +++ b/_nim_b_l_e_h_i_d_device_8h_source.html @@ -0,0 +1,207 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEHIDDevice.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEHIDDevice.h
+
+
+
1 /*
+
2  * NimBLEHIDDevice.h
+
3  *
+
4  * Created: on Oct 06 2020
+
5  * Author wakwak-koba
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEHIDDevice.h
+
10  *
+
11  * Created on: Jan 03, 2018
+
12  * Author: chegewara
+
13  */
+
14 
+
15 #ifndef _BLEHIDDEVICE_H_
+
16 #define _BLEHIDDEVICE_H_
+
17 
+
18 #include "sdkconfig.h"
+
19 #if defined(CONFIG_BT_ENABLED)
+
20 
+
21 #include "nimconfig.h"
+
22 #if defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
+
23 
+
24 #include "NimBLECharacteristic.h"
+
25 #include "NimBLEService.h"
+
26 #include "NimBLEDescriptor.h"
+
27 #include "HIDTypes.h"
+
28 
+
29 #define GENERIC_HID 0x03C0
+
30 #define HID_KEYBOARD 0x03C1
+
31 #define HID_MOUSE 0x03C2
+
32 #define HID_JOYSTICK 0x03C3
+
33 #define HID_GAMEPAD 0x03C4
+
34 #define HID_TABLET 0x03C5
+
35 #define HID_CARD_READER 0x03C6
+
36 #define HID_DIGITAL_PEN 0x03C7
+
37 #define HID_BARCODE 0x03C8
+
38 
+
39 
+ +
44 public:
+ +
46  virtual ~NimBLEHIDDevice();
+
47 
+
48  void reportMap(uint8_t* map, uint16_t);
+
49  void startServices();
+
50 
+ + + +
54 
+ +
56  void manufacturer(std::string name);
+
57  //NimBLECharacteristic* pnp();
+
58  void pnp(uint8_t sig, uint16_t vid, uint16_t pid, uint16_t version);
+
59  //NimBLECharacteristic* hidInfo();
+
60  void hidInfo(uint8_t country, uint8_t flags);
+
61  //NimBLECharacteristic* batteryLevel();
+
62  void setBatteryLevel(uint8_t level);
+
63 
+
64 
+
65  //NimBLECharacteristic* reportMap();
+ +
67  NimBLECharacteristic* inputReport(uint8_t reportID);
+
68  NimBLECharacteristic* outputReport(uint8_t reportID);
+
69  NimBLECharacteristic* featureReport(uint8_t reportID);
+ + + +
73 
+
74 private:
+
75  NimBLEService* m_deviceInfoService; //0x180a
+
76  NimBLEService* m_hidService; //0x1812
+
77  NimBLEService* m_batteryService = 0; //0x180f
+
78 
+
79  NimBLECharacteristic* m_manufacturerCharacteristic; //0x2a29
+
80  NimBLECharacteristic* m_pnpCharacteristic; //0x2a50
+
81  NimBLECharacteristic* m_hidInfoCharacteristic; //0x2a4a
+
82  NimBLECharacteristic* m_reportMapCharacteristic; //0x2a4b
+
83  NimBLECharacteristic* m_hidControlCharacteristic; //0x2a4c
+
84  NimBLECharacteristic* m_protocolModeCharacteristic; //0x2a4e
+
85  NimBLECharacteristic* m_batteryLevelCharacteristic; //0x2a19
+
86 };
+
87 #endif // CONFIG_BT_NIMBLE_ROLE_BROADCASTER
+
88 #endif // CONFIG_BT_ENABLED
+
89 #endif /* _BLEHIDDEVICE_H_ */
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
A model of a BLE Human Interface Device.
Definition: NimBLEHIDDevice.h:43
+
NimBLEService * deviceInfo()
Returns a pointer to the device information service.
Definition: NimBLEHIDDevice.cpp:232
+
NimBLECharacteristic * protocolMode()
Returns a pointer to the protocol mode characteristic.
Definition: NimBLEHIDDevice.cpp:194
+
NimBLEService * batteryService()
Returns a pointer to the battery service.
Definition: NimBLEHIDDevice.cpp:246
+
void hidInfo(uint8_t country, uint8_t flags)
Sets the HID Information characteristic value.
Definition: NimBLEHIDDevice.cpp:120
+
NimBLECharacteristic * manufacturer()
Create a manufacturer characteristic (this characteristic is optional).
Definition: NimBLEHIDDevice.cpp:90
+
NimBLECharacteristic * bootInput()
Creates a keyboard boot input report characteristic.
Definition: NimBLEHIDDevice.cpp:173
+
NimBLECharacteristic * featureReport(uint8_t reportID)
Create feature report characteristic.
Definition: NimBLEHIDDevice.cpp:160
+
void pnp(uint8_t sig, uint16_t vid, uint16_t pid, uint16_t version)
Sets the Plug n Play characterisc value.
Definition: NimBLEHIDDevice.cpp:110
+
void startServices()
Start the HID device services. This function called when all the services have been created.
Definition: NimBLEHIDDevice.cpp:81
+
NimBLECharacteristic * hidControl()
Returns a pointer to the HID control point characteristic.
Definition: NimBLEHIDDevice.cpp:187
+
void reportMap(uint8_t *map, uint16_t)
Set the report map data formatting information.
Definition: NimBLEHIDDevice.cpp:73
+
void setBatteryLevel(uint8_t level)
Set the battery level characteristic value.
Definition: NimBLEHIDDevice.cpp:202
+
NimBLECharacteristic * inputReport(uint8_t reportID)
Create input report characteristic.
Definition: NimBLEHIDDevice.cpp:130
+
NimBLEHIDDevice(NimBLEServer *)
Construct a default NimBLEHIDDevice object.
Definition: NimBLEHIDDevice.cpp:27
+
NimBLECharacteristic * outputReport(uint8_t reportID)
Create output report characteristic.
Definition: NimBLEHIDDevice.cpp:145
+
NimBLECharacteristic * bootOutput()
Create a keyboard boot output report characteristic.
Definition: NimBLEHIDDevice.cpp:180
+
NimBLEService * hidService()
Returns a pointer to the HID service.
Definition: NimBLEHIDDevice.cpp:239
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+
The model of a BLE service.
Definition: NimBLEService.h:36
+ +
+
+ + + + diff --git a/_nim_b_l_e_log_8h_source.html b/_nim_b_l_e_log_8h_source.html new file mode 100644 index 0000000..de91fc7 --- /dev/null +++ b/_nim_b_l_e_log_8h_source.html @@ -0,0 +1,165 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLELog.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLELog.h
+
+
+
1 /*
+
2  * NimBLELog.h
+
3  *
+
4  * Created: on Feb 24 2020
+
5  * Author H2zero
+
6  *
+
7  */
+
8 #ifndef MAIN_NIMBLELOG_H_
+
9 #define MAIN_NIMBLELOG_H_
+
10 
+
11 #include "sdkconfig.h"
+
12 
+
13 #if defined(CONFIG_BT_ENABLED)
+
14 
+
15 #ifdef ARDUINO_ARCH_ESP32
+
16 #include "syscfg/syscfg.h"
+
17 #include "modlog/modlog.h"
+
18 
+
19 // If Arduino is being used, strip out the colors and ignore log printing below ui setting.
+
20 // Note: because CONFIG_LOG_DEFAULT_LEVEL is set at ERROR in Arduino we must use MODLOG_DFLT(ERROR
+
21 // otherwise no messages will be printed above that level.
+
22 
+
23 #ifndef CORE_DEBUG_LEVEL
+
24 #define CORE_DEBUG_LEVEL CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL
+
25 #endif
+
26 
+
27 #if CORE_DEBUG_LEVEL >= 4
+
28 #define NIMBLE_LOGD( tag, format, ... ) MODLOG_DFLT(ERROR, "D %s: "#format"\n",tag,##__VA_ARGS__)
+
29 #else
+
30 #define NIMBLE_LOGD( tag, format, ... ) (void)tag
+
31 #endif
+
32 
+
33 #if CORE_DEBUG_LEVEL >= 3
+
34 #define NIMBLE_LOGI( tag, format, ... ) MODLOG_DFLT(ERROR, "I %s: "#format"\n",tag,##__VA_ARGS__)
+
35 #else
+
36 #define NIMBLE_LOGI( tag, format, ... ) (void)tag
+
37 #endif
+
38 
+
39 #if CORE_DEBUG_LEVEL >= 2
+
40 #define NIMBLE_LOGW( tag, format, ... ) MODLOG_DFLT(ERROR, "W %s: "#format"\n",tag,##__VA_ARGS__)
+
41 #else
+
42 #define NIMBLE_LOGW( tag, format, ... ) (void)tag
+
43 #endif
+
44 
+
45 #if CORE_DEBUG_LEVEL >= 1
+
46 #define NIMBLE_LOGE( tag, format, ... ) MODLOG_DFLT(ERROR, "E %s: "#format"\n",tag,##__VA_ARGS__)
+
47 #else
+
48 #define NIMBLE_LOGE( tag, format, ... ) (void)tag
+
49 #endif
+
50 
+
51 #define NIMBLE_LOGC( tag, format, ... ) MODLOG_DFLT(CRITICAL, "CRIT %s: "#format"\n",tag,##__VA_ARGS__)
+
52 
+
53 #else
+
54 
+
55 #include "esp_log.h"
+
56 
+
57 #define NIMBLE_LOGE(tag, format, ...) ESP_LOGE(tag, format, ##__VA_ARGS__)
+
58 #define NIMBLE_LOGW(tag, format, ...) ESP_LOGW(tag, format, ##__VA_ARGS__)
+
59 #define NIMBLE_LOGI(tag, format, ...) ESP_LOGI(tag, format, ##__VA_ARGS__)
+
60 #define NIMBLE_LOGD(tag, format, ...) ESP_LOGD(tag, format, ##__VA_ARGS__)
+
61 #define NIMBLE_LOGC(tag, format, ...) ESP_LOGE(tag, format, ##__VA_ARGS__)
+
62 
+
63 #endif /*ARDUINO_ARCH_ESP32*/
+
64 
+
65 #endif /*CONFIG_BT_ENABLED*/
+
66 #endif /*MAIN_NIMBLELOG_H_*/
+
+
+ + + + diff --git a/_nim_b_l_e_remote_characteristic_8h_source.html b/_nim_b_l_e_remote_characteristic_8h_source.html new file mode 100644 index 0000000..29b6249 --- /dev/null +++ b/_nim_b_l_e_remote_characteristic_8h_source.html @@ -0,0 +1,280 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLERemoteCharacteristic.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteCharacteristic.h
+
+
+
1 /*
+
2  * NimBLERemoteCharacteristic.h
+
3  *
+
4  * Created: on Jan 27 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLERemoteCharacteristic.h
+
10  *
+
11  * Created on: Jul 8, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEREMOTECHARACTERISTIC_H_
+
16 #define COMPONENTS_NIMBLEREMOTECHARACTERISTIC_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
22 
+
23 #include "NimBLERemoteService.h"
+
24 #include "NimBLERemoteDescriptor.h"
+
25 
+
26 #include <vector>
+
27 #include <functional>
+
28 
+ + +
31 
+
32 
+
33 typedef std::function<void (NimBLERemoteCharacteristic* pBLERemoteCharacteristic,
+
34  uint8_t* pData, size_t length, bool isNotify)> notify_callback;
+
35 
+
36 typedef struct {
+
37  const NimBLEUUID *uuid;
+
38  void *task_data;
+
39 } desc_filter_t;
+
40 
+
41 
+ +
46 public:
+ +
48 
+
49  // Public member functions
+
50  bool canBroadcast();
+
51  bool canIndicate();
+
52  bool canNotify();
+
53  bool canRead();
+
54  bool canWrite();
+
55  bool canWriteNoResponse();
+
56  std::vector<NimBLERemoteDescriptor*>::iterator begin();
+
57  std::vector<NimBLERemoteDescriptor*>::iterator end();
+ +
59  std::vector<NimBLERemoteDescriptor*>* getDescriptors(bool refresh = false);
+
60  void deleteDescriptors();
+
61  size_t deleteDescriptor(const NimBLEUUID &uuid);
+
62  uint16_t getHandle();
+
63  uint16_t getDefHandle();
+ +
65  std::string readValue(time_t *timestamp = nullptr);
+
66 
+
76  template<typename T>
+
77  T readValue(time_t *timestamp = nullptr, bool skipSizeCheck = false) {
+
78  std::string value = readValue(timestamp);
+
79  if(!skipSizeCheck && value.size() < sizeof(T)) return T();
+
80  const char *pData = value.data();
+
81  return *((T *)pData);
+
82  }
+
83 
+
84  uint8_t readUInt8() __attribute__ ((deprecated("Use template readValue<uint8_t>()")));
+
85  uint16_t readUInt16() __attribute__ ((deprecated("Use template readValue<uint16_t>()")));
+
86  uint32_t readUInt32() __attribute__ ((deprecated("Use template readValue<uint32_t>()")));
+
87  float readFloat() __attribute__ ((deprecated("Use template readValue<float>()")));
+
88  std::string getValue(time_t *timestamp = nullptr);
+
89 
+
99  template<typename T>
+
100  T getValue(time_t *timestamp = nullptr, bool skipSizeCheck = false) {
+
101  std::string value = getValue(timestamp);
+
102  if(!skipSizeCheck && value.size() < sizeof(T)) return T();
+
103  const char *pData = value.data();
+
104  return *((T *)pData);
+
105  }
+
106 
+
107  bool subscribe(bool notifications = true,
+
108  notify_callback notifyCallback = nullptr,
+
109  bool response = false);
+
110  bool unsubscribe(bool response = false);
+
111  bool registerForNotify(notify_callback notifyCallback,
+
112  bool notifications = true,
+
113  bool response = true)
+
114  __attribute__ ((deprecated("Use subscribe()/unsubscribe()")));
+
115  bool writeValue(const uint8_t* data,
+
116  size_t length,
+
117  bool response = false);
+
118  bool writeValue(const std::string &newValue,
+
119  bool response = false);
+
125  template<typename T>
+
126  bool writeValue(const T &s, bool response = false) {
+
127  return writeValue((uint8_t*)&s, sizeof(T), response);
+
128  }
+
129 
+
130  std::string toString();
+ +
132 
+
133 private:
+
134 
+
135  NimBLERemoteCharacteristic(NimBLERemoteService *pRemoteservice, const struct ble_gatt_chr *chr);
+
136 
+
137  friend class NimBLEClient;
+
138  friend class NimBLERemoteService;
+
139  friend class NimBLERemoteDescriptor;
+
140 
+
141  // Private member functions
+
142  bool setNotify(uint16_t val, notify_callback notifyCallback = nullptr, bool response = true);
+
143  bool retrieveDescriptors(const NimBLEUUID *uuid_filter = nullptr);
+
144  static int onReadCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
145  struct ble_gatt_attr *attr, void *arg);
+
146  static int onWriteCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
147  struct ble_gatt_attr *attr, void *arg);
+
148  static int descriptorDiscCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
149  uint16_t chr_val_handle, const struct ble_gatt_dsc *dsc,
+
150  void *arg);
+
151  static int nextCharCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
152  const struct ble_gatt_chr *chr, void *arg);
+
153 
+
154  // Private properties
+
155  NimBLEUUID m_uuid;
+
156  uint8_t m_charProp;
+
157  uint16_t m_handle;
+
158  uint16_t m_defHandle;
+
159  uint16_t m_endHandle;
+
160  NimBLERemoteService* m_pRemoteService;
+
161  std::string m_value;
+
162  notify_callback m_notifyCallback;
+
163  time_t m_timestamp;
+
164  portMUX_TYPE m_valMux;
+
165 
+
166  // We maintain a vector of descriptors owned by this characteristic.
+
167  std::vector<NimBLERemoteDescriptor*> m_descriptorVector;
+
168 }; // NimBLERemoteCharacteristic
+
169 
+
170 #endif // #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
171 #endif /* CONFIG_BT_ENABLED */
+
172 #endif /* COMPONENTS_NIMBLEREMOTECHARACTERISTIC_H_ */
+
A model of a BLE client.
Definition: NimBLEClient.h:41
+
A model of a remote BLE characteristic.
Definition: NimBLERemoteCharacteristic.h:45
+
bool canRead()
Does the characteristic support reading?
Definition: NimBLERemoteCharacteristic.cpp:118
+
uint16_t readUInt16() __attribute__((deprecated("Use template readValue<uint16_t>()")))
Read an unsigned 16 bit value.
Definition: NimBLERemoteCharacteristic.cpp:427
+
bool canWriteNoResponse()
Does the characteristic support writing with no response?
Definition: NimBLERemoteCharacteristic.cpp:136
+
std::vector< NimBLERemoteDescriptor * >::iterator end()
Get iterator to the end of the vector of remote descriptor pointers.
Definition: NimBLERemoteCharacteristic.cpp:365
+
bool writeValue(const uint8_t *data, size_t length, bool response=false)
Write the new value for the characteristic from a data buffer.
Definition: NimBLERemoteCharacteristic.cpp:726
+
T readValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)
A template to convert the remote characteristic data to <type>.
Definition: NimBLERemoteCharacteristic.h:77
+
std::string toString()
Convert a NimBLERemoteCharacteristic to a string representation;.
Definition: NimBLERemoteCharacteristic.cpp:686
+
bool canIndicate()
Does the characteristic support indications?
Definition: NimBLERemoteCharacteristic.cpp:100
+
void deleteDescriptors()
Delete the descriptors in the descriptor vector.
Definition: NimBLERemoteCharacteristic.cpp:649
+
NimBLERemoteDescriptor * getDescriptor(const NimBLEUUID &uuid)
Get the descriptor instance with the given UUID that belongs to this characteristic.
Definition: NimBLERemoteCharacteristic.cpp:297
+
bool unsubscribe(bool response=false)
Unsubscribe for notifications or indications.
Definition: NimBLERemoteCharacteristic.cpp:618
+
bool canBroadcast()
Does the characteristic support broadcasting?
Definition: NimBLERemoteCharacteristic.cpp:91
+
uint32_t readUInt32() __attribute__((deprecated("Use template readValue<uint32_t>()")))
Read an unsigned 32 bit value.
Definition: NimBLERemoteCharacteristic.cpp:437
+
std::vector< NimBLERemoteDescriptor * >::iterator begin()
Get iterator to the beginning of the vector of remote descriptor pointers.
Definition: NimBLERemoteCharacteristic.cpp:356
+
std::string readValue(time_t *timestamp=nullptr)
Read the value of the remote characteristic.
Definition: NimBLERemoteCharacteristic.cpp:466
+
float readFloat() __attribute__((deprecated("Use template readValue<float>()")))
Read a float value.
Definition: NimBLERemoteCharacteristic.cpp:456
+
~NimBLERemoteCharacteristic()
Destructor.
Definition: NimBLERemoteCharacteristic.cpp:72
+
NimBLERemoteService * getRemoteService()
Get the remote service associated with this characteristic.
Definition: NimBLERemoteCharacteristic.cpp:391
+
bool canNotify()
Does the characteristic support notifications?
Definition: NimBLERemoteCharacteristic.cpp:109
+
bool subscribe(bool notifications=true, notify_callback notifyCallback=nullptr, bool response=false)
Subscribe for notifications or indications.
Definition: NimBLERemoteCharacteristic.cpp:604
+
size_t deleteDescriptor(const NimBLEUUID &uuid)
Delete descriptor by UUID.
Definition: NimBLERemoteCharacteristic.cpp:665
+
bool canWrite()
Does the characteristic support writing?
Definition: NimBLERemoteCharacteristic.cpp:127
+
uint16_t getHandle()
Get the handle for this characteristic.
Definition: NimBLERemoteCharacteristic.cpp:374
+
bool registerForNotify(notify_callback notifyCallback, bool notifications=true, bool response=true) __attribute__((deprecated("Use subscribe()/unsubscribe()")))
backward-compatibility method for subscribe/unsubscribe notifications/indications
Definition: NimBLERemoteCharacteristic.cpp:632
+
std::vector< NimBLERemoteDescriptor * > * getDescriptors(bool refresh=false)
Get a pointer to the vector of found descriptors.
Definition: NimBLERemoteCharacteristic.cpp:337
+
NimBLEUUID getUUID()
Get the UUID for this characteristic.
Definition: NimBLERemoteCharacteristic.cpp:400
+
std::string getValue(time_t *timestamp=nullptr)
Get the value of the remote characteristic.
Definition: NimBLERemoteCharacteristic.cpp:410
+
uint8_t readUInt8() __attribute__((deprecated("Use template readValue<uint8_t>()")))
Read a byte value.
Definition: NimBLERemoteCharacteristic.cpp:447
+
uint16_t getDefHandle()
Get the handle for this characteristics definition.
Definition: NimBLERemoteCharacteristic.cpp:382
+
A model of remote BLE descriptor.
Definition: NimBLERemoteDescriptor.h:29
+
A model of a remote BLE service.
Definition: NimBLERemoteService.h:36
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_remote_descriptor_8h_source.html b/_nim_b_l_e_remote_descriptor_8h_source.html new file mode 100644 index 0000000..079e2ca --- /dev/null +++ b/_nim_b_l_e_remote_descriptor_8h_source.html @@ -0,0 +1,183 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLERemoteDescriptor.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteDescriptor.h
+
+
+
1 /*
+
2  * NimBLERemoteDescriptor.h
+
3  *
+
4  * Created: on Jan 27 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLERemoteDescriptor.h
+
10  *
+
11  * Created on: Jul 8, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEREMOTEDESCRIPTOR_H_
+
16 #define COMPONENTS_NIMBLEREMOTEDESCRIPTOR_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
22 
+
23 #include "NimBLERemoteCharacteristic.h"
+
24 
+ + +
30 public:
+
31  uint16_t getHandle();
+ + +
34  std::string readValue();
+
35 
+
44  template<typename T>
+
45  T readValue(bool skipSizeCheck = false) {
+
46  std::string value = readValue();
+
47  if(!skipSizeCheck && value.size() < sizeof(T)) return T();
+
48  const char *pData = value.data();
+
49  return *((T *)pData);
+
50  }
+
51 
+
52  uint8_t readUInt8() __attribute__ ((deprecated("Use template readValue<uint8_t>()")));
+
53  uint16_t readUInt16() __attribute__ ((deprecated("Use template readValue<uint16_t>()")));
+
54  uint32_t readUInt32() __attribute__ ((deprecated("Use template readValue<uint32_t>()")));
+
55  std::string toString(void);
+
56  bool writeValue(const uint8_t* data, size_t length, bool response = false);
+
57  bool writeValue(const std::string &newValue, bool response = false);
+
58 
+
64  template<typename T>
+
65  bool writeValue(const T &s, bool response = false) {
+
66  return writeValue((uint8_t*)&s, sizeof(T), response);
+
67  }
+
68 
+
69 private:
+
70  friend class NimBLERemoteCharacteristic;
+
71 
+
72  NimBLERemoteDescriptor (NimBLERemoteCharacteristic* pRemoteCharacteristic,
+
73  const struct ble_gatt_dsc *dsc);
+
74  static int onWriteCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
75  struct ble_gatt_attr *attr, void *arg);
+
76  static int onReadCB(uint16_t conn_handle, const struct ble_gatt_error *error,
+
77  struct ble_gatt_attr *attr, void *arg);
+
78 
+
79  uint16_t m_handle;
+
80  NimBLEUUID m_uuid;
+
81  NimBLERemoteCharacteristic* m_pRemoteCharacteristic;
+
82 };
+
83 
+
84 #endif // #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
85 #endif /* CONFIG_BT_ENABLED */
+
86 #endif /* COMPONENTS_NIMBLEREMOTEDESCRIPTOR_H_ */
+
A model of a remote BLE characteristic.
Definition: NimBLERemoteCharacteristic.h:45
+
A model of remote BLE descriptor.
Definition: NimBLERemoteDescriptor.h:29
+
std::string toString(void)
Return a string representation of this Remote Descriptor.
Definition: NimBLERemoteDescriptor.cpp:227
+
bool writeValue(const uint8_t *data, size_t length, bool response=false)
Write data to the BLE Remote Descriptor.
Definition: NimBLERemoteDescriptor.cpp:269
+
uint16_t readUInt16() __attribute__((deprecated("Use template readValue<uint16_t>()")))
Read an unsigned 16 bit value.
Definition: NimBLERemoteDescriptor.cpp:102
+
uint32_t readUInt32() __attribute__((deprecated("Use template readValue<uint32_t>()")))
Read an unsigned 32 bit value.
Definition: NimBLERemoteDescriptor.cpp:116
+
std::string readValue()
Read the value of the remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:129
+
NimBLERemoteCharacteristic * getRemoteCharacteristic()
Get the characteristic that owns this descriptor.
Definition: NimBLERemoteDescriptor.cpp:69
+
uint8_t readUInt8() __attribute__((deprecated("Use template readValue<uint8_t>()")))
Read a byte value.
Definition: NimBLERemoteDescriptor.cpp:88
+
uint16_t getHandle()
Retrieve the handle associated with this remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:60
+
T readValue(bool skipSizeCheck=false)
A template to convert the remote descriptor data to <type>.
Definition: NimBLERemoteDescriptor.h:45
+
NimBLEUUID getUUID()
Retrieve the UUID associated this remote descriptor.
Definition: NimBLERemoteDescriptor.cpp:78
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_remote_service_8h_source.html b/_nim_b_l_e_remote_service_8h_source.html new file mode 100644 index 0000000..63e7b82 --- /dev/null +++ b/_nim_b_l_e_remote_service_8h_source.html @@ -0,0 +1,201 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLERemoteService.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteService.h
+
+
+
1 /*
+
2  * NimBLERemoteService.h
+
3  *
+
4  * Created: on Jan 27 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLERemoteService.h
+
10  *
+
11  * Created on: Jul 8, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEREMOTESERVICE_H_
+
16 #define COMPONENTS_NIMBLEREMOTESERVICE_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
22 
+
23 #include "NimBLEClient.h"
+
24 #include "NimBLEUUID.h"
+
25 #include "NimBLERemoteCharacteristic.h"
+
26 
+
27 #include <vector>
+
28 
+
29 class NimBLEClient;
+ +
31 
+
32 
+ +
37 public:
+
38  virtual ~NimBLERemoteService();
+
39 
+
40  // Public methods
+
41  std::vector<NimBLERemoteCharacteristic*>::iterator begin();
+
42  std::vector<NimBLERemoteCharacteristic*>::iterator end();
+ + +
45  void deleteCharacteristics();
+
46  size_t deleteCharacteristic(const NimBLEUUID &uuid);
+
47  NimBLEClient* getClient(void);
+
48  //uint16_t getHandle();
+
49  NimBLEUUID getUUID(void);
+
50  std::string getValue(const NimBLEUUID &characteristicUuid);
+
51  bool setValue(const NimBLEUUID &characteristicUuid,
+
52  const std::string &value);
+
53  std::string toString(void);
+
54  std::vector<NimBLERemoteCharacteristic*>* getCharacteristics(bool refresh = false);
+
55 
+
56 private:
+
57  // Private constructor ... never meant to be created by a user application.
+
58  NimBLERemoteService(NimBLEClient* pClient, const struct ble_gatt_svc *service);
+
59 
+
60  // Friends
+
61  friend class NimBLEClient;
+
62  friend class NimBLERemoteCharacteristic;
+
63 
+
64  // Private methods
+
65  bool retrieveCharacteristics(const NimBLEUUID *uuid_filter = nullptr);
+
66  static int characteristicDiscCB(uint16_t conn_handle,
+
67  const struct ble_gatt_error *error,
+
68  const struct ble_gatt_chr *chr,
+
69  void *arg);
+
70 
+
71  uint16_t getStartHandle();
+
72  uint16_t getEndHandle();
+
73  void releaseSemaphores();
+
74 
+
75  // Properties
+
76 
+
77  // We maintain a vector of characteristics owned by this service.
+
78  std::vector<NimBLERemoteCharacteristic*> m_characteristicVector;
+
79 
+
80  NimBLEClient* m_pClient;
+
81  NimBLEUUID m_uuid;
+
82  uint16_t m_startHandle;
+
83  uint16_t m_endHandle;
+
84 }; // NimBLERemoteService
+
85 
+
86 #endif // #if defined( CONFIG_BT_NIMBLE_ROLE_CENTRAL)
+
87 #endif /* CONFIG_BT_ENABLED */
+
88 #endif /* COMPONENTS_NIMBLEREMOTESERVICE_H_ */
+
A model of a BLE client.
Definition: NimBLEClient.h:41
+
A model of a remote BLE characteristic.
Definition: NimBLERemoteCharacteristic.h:45
+
A model of a remote BLE service.
Definition: NimBLERemoteService.h:36
+
std::vector< NimBLERemoteCharacteristic * >::iterator end()
Get iterator to the end of the vector of remote characteristic pointers.
Definition: NimBLERemoteService.cpp:76
+
size_t deleteCharacteristic(const NimBLEUUID &uuid)
Delete characteristic by UUID.
Definition: NimBLERemoteService.cpp:345
+
void deleteCharacteristics()
Delete the characteristics in the characteristics vector.
Definition: NimBLERemoteService.cpp:330
+
virtual ~NimBLERemoteService()
When deleting the service make sure we delete all characteristics and descriptors.
Definition: NimBLERemoteService.cpp:58
+
std::vector< NimBLERemoteCharacteristic * > * getCharacteristics(bool refresh=false)
Get a pointer to the vector of found characteristics.
Definition: NimBLERemoteService.cpp:135
+
NimBLEClient * getClient(void)
Get the client associated with this service.
Definition: NimBLERemoteService.cpp:254
+
std::vector< NimBLERemoteCharacteristic * >::iterator begin()
Get iterator to the beginning of the vector of remote characteristic pointers.
Definition: NimBLERemoteService.cpp:67
+
std::string getValue(const NimBLEUUID &characteristicUuid)
Read the value of a characteristic associated with this service.
Definition: NimBLERemoteService.cpp:288
+
bool setValue(const NimBLEUUID &characteristicUuid, const std::string &value)
Set the value of a characteristic.
Definition: NimBLERemoteService.cpp:309
+
NimBLEUUID getUUID(void)
Get the service UUID.
Definition: NimBLERemoteService.cpp:278
+
std::string toString(void)
Create a string representation of this remote service.
Definition: NimBLERemoteService.cpp:366
+
NimBLERemoteCharacteristic * getCharacteristic(const char *uuid)
Get the remote characteristic object for the characteristic UUID.
Definition: NimBLERemoteService.cpp:86
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_scan_8h_source.html b/_nim_b_l_e_scan_8h_source.html new file mode 100644 index 0000000..e9e3bb6 --- /dev/null +++ b/_nim_b_l_e_scan_8h_source.html @@ -0,0 +1,216 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEScan.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEScan.h
+
+
+
1 /*
+
2  * NimBLEScan.h
+
3  *
+
4  * Created: on Jan 24 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEScan.h
+
10  *
+
11  * Created on: Jul 1, 2017
+
12  * Author: kolban
+
13  */
+
14 #ifndef COMPONENTS_NIMBLE_SCAN_H_
+
15 #define COMPONENTS_NIMBLE_SCAN_H_
+
16 #include "sdkconfig.h"
+
17 #if defined(CONFIG_BT_ENABLED)
+
18 
+
19 #include "nimconfig.h"
+
20 #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
21 
+
22 #include "NimBLEAdvertisedDevice.h"
+
23 #include "NimBLEUtils.h"
+
24 
+
25 #include "host/ble_gap.h"
+
26 
+
27 #include <vector>
+
28 
+
29 class NimBLEDevice;
+
30 class NimBLEScan;
+ + +
33 class NimBLEAddress;
+
34 
+ +
43 public:
+
44  void dump();
+
45  int getCount();
+ +
47  std::vector<NimBLEAdvertisedDevice*>::iterator begin();
+
48  std::vector<NimBLEAdvertisedDevice*>::iterator end();
+ +
50 
+
51 private:
+
52  friend NimBLEScan;
+
53  std::vector<NimBLEAdvertisedDevice*> m_advertisedDevicesVector;
+
54 };
+
55 
+
61 class NimBLEScan {
+
62 public:
+
63  bool start(uint32_t duration, void (*scanCompleteCB)(NimBLEScanResults), bool is_continue = false);
+
64  NimBLEScanResults start(uint32_t duration, bool is_continue = false);
+
65  bool isScanning();
+
66  void setAdvertisedDeviceCallbacks(NimBLEAdvertisedDeviceCallbacks* pAdvertisedDeviceCallbacks, bool wantDuplicates = false);
+
67  void setActiveScan(bool active);
+
68  void setInterval(uint16_t intervalMSecs);
+
69  void setWindow(uint16_t windowMSecs);
+
70  void setDuplicateFilter(bool enabled);
+
71  void setLimitedOnly(bool enabled);
+
72  void setFilterPolicy(uint8_t filter);
+
73  void clearDuplicateCache();
+
74  bool stop();
+
75  void clearResults();
+ +
77  void setMaxResults(uint8_t maxResults);
+
78  void erase(const NimBLEAddress &address);
+
79 
+
80 
+
81 private:
+
82  friend class NimBLEDevice;
+
83 
+
84  NimBLEScan();
+
85  ~NimBLEScan();
+
86  static int handleGapEvent(ble_gap_event* event, void* arg);
+
87  void onHostReset();
+
88  void onHostSync();
+
89 
+
90  NimBLEAdvertisedDeviceCallbacks* m_pAdvertisedDeviceCallbacks = nullptr;
+
91  void (*m_scanCompleteCB)(NimBLEScanResults scanResults);
+
92  ble_gap_disc_params m_scan_params;
+
93  bool m_ignoreResults;
+
94  NimBLEScanResults m_scanResults;
+
95  uint32_t m_duration;
+
96  ble_task_data_t *m_pTaskData;
+
97  uint8_t m_maxResults;
+
98 };
+
99 
+
100 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
+
101 #endif /* CONFIG_BT_ENABLED */
+
102 #endif /* COMPONENTS_NIMBLE_SCAN_H_ */
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
A callback handler for callbacks associated device scanning.
Definition: NimBLEAdvertisedDevice.h:162
+
A representation of a BLE advertised device found by a scan.
Definition: NimBLEAdvertisedDevice.h:40
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
Perform and manage BLE scans.
Definition: NimBLEScan.h:61
+
bool start(uint32_t duration, void(*scanCompleteCB)(NimBLEScanResults), bool is_continue=false)
Start scanning.
Definition: NimBLEScan.cpp:286
+
NimBLEScanResults getResults()
Get the results of the scan.
Definition: NimBLEScan.cpp:455
+
void setInterval(uint16_t intervalMSecs)
Set the interval to scan.
Definition: NimBLEScan.cpp:256
+
void setFilterPolicy(uint8_t filter)
Sets the scan filter policy.
Definition: NimBLEScan.cpp:225
+
void erase(const NimBLEAddress &address)
Delete peer device from the scan results vector.
Definition: NimBLEScan.cpp:418
+
bool stop()
Stop an in progress scan.
Definition: NimBLEScan.cpp:377
+
void clearDuplicateCache()
Clears the duplicate scan filter cache.
Definition: NimBLEScan.cpp:406
+
void setLimitedOnly(bool enabled)
Set whether or not the BLE controller only report scan results from devices advertising in limited di...
Definition: NimBLEScan.cpp:202
+
void setActiveScan(bool active)
Should we perform an active or passive scan? The default is a passive scan. An active scan means that...
Definition: NimBLEScan.cpp:180
+
void setMaxResults(uint8_t maxResults)
Sets the max number of results to store.
Definition: NimBLEScan.cpp:235
+
void setAdvertisedDeviceCallbacks(NimBLEAdvertisedDeviceCallbacks *pAdvertisedDeviceCallbacks, bool wantDuplicates=false)
Set the call backs to be invoked.
Definition: NimBLEScan.cpp:245
+
bool isScanning()
Get the status of the scanner.
Definition: NimBLEScan.cpp:274
+
void setWindow(uint16_t windowMSecs)
Set the window to actively scan.
Definition: NimBLEScan.cpp:265
+
void setDuplicateFilter(bool enabled)
Set whether or not the BLE controller should only report results from devices it has not already seen...
Definition: NimBLEScan.cpp:192
+
void clearResults()
Clear the results of the scan.
Definition: NimBLEScan.cpp:463
+
A class that contains and operates on the results of a BLE scan.
Definition: NimBLEScan.h:42
+
void dump()
Dump the scan results to the log.
Definition: NimBLEScan.cpp:475
+
std::vector< NimBLEAdvertisedDevice * >::iterator end()
Get iterator to the end of the vector of advertised device pointers.
Definition: NimBLEScan.cpp:516
+
NimBLEAdvertisedDevice getDevice(uint32_t i)
Return the specified device at the given index. The index should be between 0 and getCount()-1.
Definition: NimBLEScan.cpp:498
+
std::vector< NimBLEAdvertisedDevice * >::iterator begin()
Get iterator to the beginning of the vector of advertised device pointers.
Definition: NimBLEScan.cpp:507
+
int getCount()
Get the count of devices found in the last scan.
Definition: NimBLEScan.cpp:487
+ +
+
+ + + + diff --git a/_nim_b_l_e_security_8h_source.html b/_nim_b_l_e_security_8h_source.html new file mode 100644 index 0000000..ce9db2a --- /dev/null +++ b/_nim_b_l_e_security_8h_source.html @@ -0,0 +1,199 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLESecurity.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLESecurity.h
+
+
+
1 /*
+
2  * NimBLESecurity.h
+
3  *
+
4  * Created: on Feb 22 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLESecurity.h
+
10  *
+
11  * Created on: Dec 17, 2017
+
12  * Author: chegewara
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLESECURITY_H_
+
16 #define COMPONENTS_NIMBLESECURITY_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "host/ble_gap.h"
+
21 /**** FIX COMPILATION ****/
+
22 #undef min
+
23 #undef max
+
24 /**************************/
+
25 
+
26 #include <stdint.h>
+
27 
+
28 #define ESP_LE_AUTH_NO_BOND 0x00 /* relate to BTM_LE_AUTH_NO_BOND in stack/btm_api.h */
+
29 #define ESP_LE_AUTH_BOND 0x01 /* relate to BTM_LE_AUTH_BOND in stack/btm_api.h */
+
30 #define ESP_LE_AUTH_REQ_MITM (1 << 2) /* relate to BTM_LE_AUTH_REQ_MITM in stack/btm_api.h */
+
31 #define ESP_LE_AUTH_REQ_BOND_MITM (ESP_LE_AUTH_BOND | ESP_LE_AUTH_REQ_MITM)
+
32 #define ESP_LE_AUTH_REQ_SC_ONLY (1 << 3) /* relate to BTM_LE_AUTH_REQ_SC_ONLY in stack/btm_api.h */
+
33 #define ESP_LE_AUTH_REQ_SC_BOND (ESP_LE_AUTH_BOND | ESP_LE_AUTH_REQ_SC_ONLY) /* relate to BTM_LE_AUTH_REQ_SC_BOND in stack/btm_api.h */
+
34 #define ESP_LE_AUTH_REQ_SC_MITM (ESP_LE_AUTH_REQ_MITM | ESP_LE_AUTH_REQ_SC_ONLY) /* relate to BTM_LE_AUTH_REQ_SC_MITM in stack/btm_api.h */
+
35 #define ESP_LE_AUTH_REQ_SC_MITM_BOND (ESP_LE_AUTH_REQ_MITM | ESP_LE_AUTH_REQ_SC_ONLY | ESP_LE_AUTH_BOND) /* relate to BTM_LE_AUTH_REQ_SC_MITM_BOND in stack/btm_api.h */
+
36 
+
37 #define ESP_IO_CAP_OUT 0 /* relate to BTM_IO_CAP_OUT in stack/btm_api.h */
+
38 #define ESP_IO_CAP_IO 1 /* relate to BTM_IO_CAP_IO in stack/btm_api.h */
+
39 #define ESP_IO_CAP_IN 2 /* relate to BTM_IO_CAP_IN in stack/btm_api.h */
+
40 #define ESP_IO_CAP_NONE 3 /* relate to BTM_IO_CAP_NONE in stack/btm_api.h */
+
41 #define ESP_IO_CAP_KBDISP 4 /* relate to BTM_IO_CAP_KBDISP in stack/btm_api.h */
+
42 
+
44 #define ESP_BLE_ENC_KEY_MASK (1 << 0) /* relate to BTM_BLE_ENC_KEY_MASK in stack/btm_api.h */
+
46 #define ESP_BLE_ID_KEY_MASK (1 << 1) /* relate to BTM_BLE_ID_KEY_MASK in stack/btm_api.h */
+
48 #define ESP_BLE_CSR_KEY_MASK (1 << 2) /* relate to BTM_BLE_CSR_KEY_MASK in stack/btm_api.h */
+
50 #define ESP_BLE_LINK_KEY_MASK (1 << 3) /* relate to BTM_BLE_LINK_KEY_MASK in stack/btm_api.h */
+
51 
+
52 typedef uint8_t esp_ble_auth_req_t;
+
53 typedef uint8_t esp_ble_io_cap_t;
+ +
62 public:
+ +
64  virtual ~NimBLESecurity();
+
65  void setAuthenticationMode(esp_ble_auth_req_t auth_req);
+
66  void setCapability(esp_ble_io_cap_t iocap);
+
67  void setInitEncryptionKey(uint8_t init_key);
+
68  void setRespEncryptionKey(uint8_t resp_key);
+
69  void setKeySize(uint8_t key_size = 16);
+
70  void setStaticPIN(uint32_t pin);
+
71  //static char* esp_key_type_to_str(esp_ble_key_type_t key_type);
+
72 /*
+
73 private:
+
74  esp_ble_auth_req_t m_authReq;
+
75  esp_ble_io_cap_t m_iocap;
+
76  uint8_t m_initKey;
+
77  uint8_t m_respKey;
+
78  uint8_t m_keySize;
+
79 */
+
80 }; // BLESecurity
+
81 
+
82 
+ +
89 public:
+
90  virtual ~NimBLESecurityCallbacks() {};
+
91 
+
97  virtual uint32_t onPassKeyRequest() = 0;
+
98 
+
104  virtual void onPassKeyNotify(uint32_t pass_key) = 0;
+
105 
+
110  virtual bool onSecurityRequest() = 0 ;
+
114  virtual void onAuthenticationComplete(ble_gap_conn_desc*) = 0;
+
115 
+
121  virtual bool onConfirmPIN(uint32_t pin) = 0;
+
122 }; // BLESecurityCallbacks
+
123 
+
124 #endif // CONFIG_BT_ENABLED
+
125 #endif // COMPONENTS_NIMBLESECURITY_H_
+
Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibi...
Definition: NimBLESecurity.h:88
+
virtual uint32_t onPassKeyRequest()=0
Its request from peer device to input authentication pin code displayed on peer device....
+
virtual void onAuthenticationComplete(ble_gap_conn_desc *)=0
Provides us information when authentication process is completed.
+
virtual bool onConfirmPIN(uint32_t pin)=0
Called when using numeric comparison for authentication.
+
virtual bool onSecurityRequest()=0
Here we can make decision if we want to let negotiate authorization with peer device or not.
+
virtual void onPassKeyNotify(uint32_t pass_key)=0
Provide us 6-digits code to perform authentication. It requires that our device is capable to display...
+
A class to handle BLE security operations. Deprecated - provided for backward compatibility only.
Definition: NimBLESecurity.h:61
+
void setStaticPIN(uint32_t pin)
Sets a static PIN used to authenticate/encrypt the connection.
Definition: NimBLESecurity.cpp:105
+
void setCapability(esp_ble_io_cap_t iocap)
Set our device IO capability to let end user perform authorization either by displaying or entering g...
Definition: NimBLESecurity.cpp:58
+
void setAuthenticationMode(esp_ble_auth_req_t auth_req)
Set requested authentication mode.
Definition: NimBLESecurity.cpp:40
+
void setRespEncryptionKey(uint8_t resp_key)
Sets the keys we will accept during encryption.
Definition: NimBLESecurity.cpp:86
+
void setKeySize(uint8_t key_size=16)
Definition: NimBLESecurity.cpp:94
+
void setInitEncryptionKey(uint8_t init_key)
Sets the keys we will distibute during encryption.
Definition: NimBLESecurity.cpp:72
+
+
+ + + + diff --git a/_nim_b_l_e_server_8h_source.html b/_nim_b_l_e_server_8h_source.html new file mode 100644 index 0000000..a472c99 --- /dev/null +++ b/_nim_b_l_e_server_8h_source.html @@ -0,0 +1,258 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEServer.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEServer.h
+
+
+
1 /*
+
2  * NimBLEServer.h
+
3  *
+
4  * Created: on March 2, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEServer.h
+
10  *
+
11  * Created on: Apr 16, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLESERVER_H_
+
16 #define MAIN_NIMBLESERVER_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
22 
+
23 #define NIMBLE_ATT_REMOVE_HIDE 1
+
24 #define NIMBLE_ATT_REMOVE_DELETE 2
+
25 
+
26 #include "NimBLEUtils.h"
+
27 #include "NimBLEAddress.h"
+
28 #include "NimBLEAdvertising.h"
+
29 #include "NimBLEService.h"
+
30 #include "NimBLESecurity.h"
+
31 #include "NimBLEConnInfo.h"
+
32 
+
33 
+
34 class NimBLEService;
+ + +
37 
+
38 
+
42 class NimBLEServer {
+
43 public:
+
44  size_t getConnectedCount();
+
45  NimBLEService* createService(const char* uuid);
+
46  NimBLEService* createService(const NimBLEUUID &uuid, uint32_t numHandles=15,
+
47  uint8_t inst_id=0);
+
48  void removeService(NimBLEService* service, bool deleteSvc = false);
+
49  void addService(NimBLEService* service);
+ +
51  void setCallbacks(NimBLEServerCallbacks* pCallbacks,
+
52  bool deleteCallbacks = true);
+
53  void startAdvertising();
+
54  void stopAdvertising();
+
55  void start();
+
56  NimBLEService* getServiceByUUID(const char* uuid, uint16_t instanceId = 0);
+
57  NimBLEService* getServiceByUUID(const NimBLEUUID &uuid, uint16_t instanceId = 0);
+
58  NimBLEService* getServiceByHandle(uint16_t handle);
+
59  int disconnect(uint16_t connID,
+
60  uint8_t reason = BLE_ERR_REM_USER_CONN_TERM);
+
61  void updateConnParams(uint16_t conn_handle,
+
62  uint16_t minInterval, uint16_t maxInterval,
+
63  uint16_t latency, uint16_t timeout);
+
64  uint16_t getPeerMTU(uint16_t conn_id);
+
65  std::vector<uint16_t> getPeerDevices();
+
66  NimBLEConnInfo getPeerInfo(size_t index);
+ +
68  NimBLEConnInfo getPeerIDInfo(uint16_t id);
+
69  void advertiseOnDisconnect(bool);
+
70 
+
71 private:
+
72  NimBLEServer();
+
73  ~NimBLEServer();
+
74  friend class NimBLECharacteristic;
+
75  friend class NimBLEService;
+
76  friend class NimBLEDevice;
+
77  friend class NimBLEAdvertising;
+
78 
+
79  bool m_gattsStarted;
+
80  bool m_advertiseOnDisconnect;
+
81  bool m_svcChanged;
+
82  NimBLEServerCallbacks* m_pServerCallbacks;
+
83  bool m_deleteCallbacks;
+
84  uint16_t m_indWait[CONFIG_BT_NIMBLE_MAX_CONNECTIONS];
+
85  std::vector<uint16_t> m_connectedPeersVec;
+
86 
+
87 // uint16_t m_svcChgChrHdl; // Future use
+
88 
+
89  std::vector<NimBLEService*> m_svcVec;
+
90  std::vector<NimBLECharacteristic*> m_notifyChrVec;
+
91 
+
92  static int handleGapEvent(struct ble_gap_event *event, void *arg);
+
93  void serviceChanged();
+
94  void resetGATT();
+
95  bool setIndicateWait(uint16_t conn_handle);
+
96  void clearIndicateWait(uint16_t conn_handle);
+
97 }; // NimBLEServer
+
98 
+
99 
+ +
104 public:
+
105  virtual ~NimBLEServerCallbacks() {};
+
106 
+
112  virtual void onConnect(NimBLEServer* pServer);
+
113 
+
121  virtual void onConnect(NimBLEServer* pServer, ble_gap_conn_desc* desc);
+
122 
+
128  virtual void onDisconnect(NimBLEServer* pServer);
+
129 
+
137  virtual void onDisconnect(NimBLEServer* pServer, ble_gap_conn_desc* desc);
+
138 
+
145  virtual void onMTUChange(uint16_t MTU, ble_gap_conn_desc* desc);
+
146 
+
151  virtual uint32_t onPassKeyRequest();
+
152 
+
153  //virtual void onPassKeyNotify(uint32_t pass_key);
+
154  //virtual bool onSecurityRequest();
+
155 
+
161  virtual void onAuthenticationComplete(ble_gap_conn_desc* desc);
+
162 
+
168  virtual bool onConfirmPIN(uint32_t pin);
+
169 }; // NimBLEServerCallbacks
+
170 
+
171 
+
172 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
173 #endif /* CONFIG_BT_ENABLED */
+
174 #endif /* MAIN_NIMBLESERVER_H_ */
+
A BLE device address.
Definition: NimBLEAddress.h:34
+
Perform and manage BLE advertising.
Definition: NimBLEAdvertising.h:83
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
Connection information.
Definition: NimBLEConnInfo.h:9
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
Callbacks associated with the operation of a BLE server.
Definition: NimBLEServer.h:103
+
virtual void onDisconnect(NimBLEServer *pServer)
Handle a client disconnection. This is called when a client disconnects.
Definition: NimBLEServer.cpp:811
+
virtual bool onConfirmPIN(uint32_t pin)
Called when using numeric comparision for pairing.
Definition: NimBLEServer.cpp:840
+
virtual void onAuthenticationComplete(ble_gap_conn_desc *desc)
Called when the pairing procedure is complete.
Definition: NimBLEServer.cpp:837
+
virtual void onConnect(NimBLEServer *pServer)
Handle a client connection. This is called when a client connects.
Definition: NimBLEServer.cpp:801
+
virtual void onMTUChange(uint16_t MTU, ble_gap_conn_desc *desc)
Called when the connection MTU changes.
Definition: NimBLEServer.cpp:819
+
virtual uint32_t onPassKeyRequest()
Called when a client requests a passkey for pairing.
Definition: NimBLEServer.cpp:823
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+
void removeService(NimBLEService *service, bool deleteSvc=false)
Remove a service from the server.
Definition: NimBLEServer.cpp:633
+
NimBLEService * getServiceByHandle(uint16_t handle)
Get a BLE Service by its handle.
Definition: NimBLEServer.cpp:136
+
void startAdvertising()
Start advertising.
Definition: NimBLEServer.cpp:727
+
NimBLEConnInfo getPeerInfo(size_t index)
Get the connection information of a connected peer by vector index.
Definition: NimBLEServer.cpp:276
+
void setCallbacks(NimBLEServerCallbacks *pCallbacks, bool deleteCallbacks=true)
Set the server callbacks.
Definition: NimBLEServer.cpp:605
+
int disconnect(uint16_t connID, uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)
Disconnect the specified client with optional reason.
Definition: NimBLEServer.cpp:232
+
void advertiseOnDisconnect(bool)
Set the server to automatically start advertising when a client disconnects.
Definition: NimBLEServer.cpp:250
+
void addService(NimBLEService *service)
Adds a service which was either already created but removed from availability, or created and later a...
Definition: NimBLEServer.cpp:669
+
NimBLEService * getServiceByUUID(const char *uuid, uint16_t instanceId=0)
Get a BLE Service by its UUID.
Definition: NimBLEServer.cpp:107
+
size_t getConnectedCount()
Return the number of connected clients.
Definition: NimBLEServer.cpp:259
+
void updateConnParams(uint16_t conn_handle, uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
Request an Update the connection parameters:
Definition: NimBLEServer.cpp:758
+
uint16_t getPeerMTU(uint16_t conn_id)
Get the MTU of the client.
Definition: NimBLEServer.cpp:744
+
NimBLEService * createService(const char *uuid)
Create a BLE Service.
Definition: NimBLEServer.cpp:69
+
NimBLEAdvertising * getAdvertising()
Retrieve the advertising object that can be used to advertise the existence of the server.
Definition: NimBLEServer.cpp:150
+
void stopAdvertising()
Stop advertising.
Definition: NimBLEServer.cpp:735
+
std::vector< uint16_t > getPeerDevices()
Get the vector of the connected client ID's.
Definition: NimBLEServer.cpp:267
+
NimBLEConnInfo getPeerIDInfo(uint16_t id)
Get the connection information of a connected peer by connection ID.
Definition: NimBLEServer.cpp:309
+
void start()
Start the GATT server. Required to be called after setup of all services and characteristics / descri...
Definition: NimBLEServer.cpp:171
+
The model of a BLE service.
Definition: NimBLEService.h:36
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
#define CONFIG_BT_NIMBLE_MAX_CONNECTIONS
Un-comment to change the number of simultaneous connections (esp controller max is 9)
Definition: nimconfig.h:16
+
+
+ + + + diff --git a/_nim_b_l_e_service_8h_source.html b/_nim_b_l_e_service_8h_source.html new file mode 100644 index 0000000..4b1da48 --- /dev/null +++ b/_nim_b_l_e_service_8h_source.html @@ -0,0 +1,205 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEService.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEService.h
+
+
+
1 /*
+
2  * NimBLEService.h
+
3  *
+
4  * Created: on March 2, 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEService.h
+
10  *
+
11  * Created on: Mar 25, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef MAIN_NIMBLESERVICE_H_
+
16 #define MAIN_NIMBLESERVICE_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "nimconfig.h"
+
21 #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
22 
+
23 #include "NimBLEServer.h"
+
24 #include "NimBLECharacteristic.h"
+
25 #include "NimBLEUUID.h"
+
26 
+
27 
+
28 class NimBLEServer;
+ +
30 
+
31 
+ +
37 public:
+
38 
+
39  NimBLEService(const char* uuid, uint16_t numHandles, NimBLEServer* pServer);
+
40  NimBLEService(const NimBLEUUID &uuid, uint16_t numHandles, NimBLEServer* pServer);
+
41  ~NimBLEService();
+
42 
+ +
44 
+ +
46  uint16_t getHandle();
+
47  std::string toString();
+
48  void dump();
+
49 
+
50  bool start();
+
51 
+ +
53  uint32_t properties =
+
54  NIMBLE_PROPERTY::READ |
+
55  NIMBLE_PROPERTY::WRITE);
+
56 
+ +
58  uint32_t properties =
+
59  NIMBLE_PROPERTY::READ |
+
60  NIMBLE_PROPERTY::WRITE);
+
61 
+
62  void addCharacteristic(NimBLECharacteristic* pCharacteristic);
+
63  void removeCharacteristic(NimBLECharacteristic* pCharacteristic, bool deleteChr = false);
+
64  NimBLECharacteristic* getCharacteristic(const char* uuid, uint16_t instanceId = 0);
+
65  NimBLECharacteristic* getCharacteristic(const NimBLEUUID &uuid, uint16_t instanceId = 0);
+ +
67 
+
68  std::vector<NimBLECharacteristic*> getCharacteristics();
+
69  std::vector<NimBLECharacteristic*> getCharacteristics(const char* uuid);
+
70  std::vector<NimBLECharacteristic*> getCharacteristics(const NimBLEUUID &uuid);
+
71 
+
72 
+
73 private:
+
74 
+
75  friend class NimBLEServer;
+
76  friend class NimBLEDevice;
+
77 
+
78  uint16_t m_handle;
+
79  NimBLEServer* m_pServer;
+
80  NimBLEUUID m_uuid;
+
81  uint16_t m_numHandles;
+
82  ble_gatt_svc_def* m_pSvcDef;
+
83  uint8_t m_removed;
+
84  std::vector<NimBLECharacteristic*> m_chrVec;
+
85 
+
86 }; // NimBLEService
+
87 
+
88 
+
89 #endif // #if defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
+
90 #endif // CONFIG_BT_ENABLED
+
91 #endif /* MAIN_NIMBLESERVICE_H_ */
+
The model of a BLE Characteristic.
Definition: NimBLECharacteristic.h:60
+
A model of a BLE Device from which all the BLE roles are created.
Definition: NimBLEDevice.h:91
+
The model of a BLE server.
Definition: NimBLEServer.h:42
+
The model of a BLE service.
Definition: NimBLEService.h:36
+
std::string toString()
Return a string representation of this service. A service is defined by:
Definition: NimBLEService.cpp:417
+
NimBLEService(const char *uuid, uint16_t numHandles, NimBLEServer *pServer)
Construct an instance of the NimBLEService.
Definition: NimBLEService.cpp:40
+
NimBLECharacteristic * getCharacteristic(const char *uuid, uint16_t instanceId=0)
Get a pointer to the characteristic object with the specified UUID.
Definition: NimBLEService.cpp:346
+
NimBLECharacteristic * getCharacteristicByHandle(uint16_t handle)
Get a pointer to the characteristic object with the specified handle.
Definition: NimBLEService.cpp:374
+
void dump()
Dump details of this BLE GATT service.
Definition: NimBLEService.cpp:85
+
uint16_t getHandle()
Get the handle associated with this service.
Definition: NimBLEService.cpp:252
+
std::vector< NimBLECharacteristic * > getCharacteristics()
Definition: NimBLEService.cpp:386
+
NimBLEUUID getUUID()
Get the UUID of the service.
Definition: NimBLEService.cpp:109
+
bool start()
Builds the database of characteristics/descriptors for the service and registers it with the NimBLE s...
Definition: NimBLEService.cpp:119
+
NimBLECharacteristic * createCharacteristic(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)
Create a new BLE Characteristic associated with this service.
Definition: NimBLEService.cpp:263
+
NimBLEServer * getServer()
Get the BLE server associated with this service.
Definition: NimBLEService.cpp:431
+
void addCharacteristic(NimBLECharacteristic *pCharacteristic)
Add a characteristic to the service.
Definition: NimBLEService.cpp:291
+
void removeCharacteristic(NimBLECharacteristic *pCharacteristic, bool deleteChr=false)
Remove a characteristic from the service.
Definition: NimBLEService.cpp:317
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+ +
+
+ + + + diff --git a/_nim_b_l_e_u_u_i_d_8h_source.html b/_nim_b_l_e_u_u_i_d_8h_source.html new file mode 100644 index 0000000..1fd2cde --- /dev/null +++ b/_nim_b_l_e_u_u_i_d_8h_source.html @@ -0,0 +1,163 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEUUID.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEUUID.h
+
+
+
1 /*
+
2  * NimBLEUUID.h
+
3  *
+
4  * Created: on Jan 24 2020
+
5  * Author H2zero
+
6  *
+
7  * Originally:
+
8  *
+
9  * BLEUUID.h
+
10  *
+
11  * Created on: Jun 21, 2017
+
12  * Author: kolban
+
13  */
+
14 
+
15 #ifndef COMPONENTS_NIMBLEUUID_H_
+
16 #define COMPONENTS_NIMBLEUUID_H_
+
17 #include "sdkconfig.h"
+
18 #if defined(CONFIG_BT_ENABLED)
+
19 
+
20 #include "host/ble_uuid.h"
+
21 /**** FIX COMPILATION ****/
+
22 #undef min
+
23 #undef max
+
24 /**************************/
+
25 
+
26 #include <string>
+
27 
+
31 class NimBLEUUID {
+
32 public:
+
33  NimBLEUUID(const std::string &uuid);
+
34  NimBLEUUID(uint16_t uuid);
+
35  NimBLEUUID(uint32_t uuid);
+
36  NimBLEUUID(const ble_uuid128_t* uuid);
+
37  NimBLEUUID(const uint8_t* pData, size_t size, bool msbFirst);
+
38  NimBLEUUID(uint32_t first, uint16_t second, uint16_t third, uint64_t fourth);
+
39  NimBLEUUID();
+
40 
+
41  uint8_t bitSize() const;
+
42  bool equals(const NimBLEUUID &uuid) const;
+
43  const ble_uuid_any_t* getNative() const;
+
44  const NimBLEUUID & to128();
+
45  std::string toString() const;
+
46  static NimBLEUUID fromString(const std::string &uuid);
+
47 
+
48  bool operator ==(const NimBLEUUID & rhs) const;
+
49  bool operator !=(const NimBLEUUID & rhs) const;
+
50  operator std::string() const;
+
51 
+
52 private:
+
53  ble_uuid_any_t m_uuid;
+
54  bool m_valueSet = false;
+
55 }; // NimBLEUUID
+
56 #endif /* CONFIG_BT_ENABLED */
+
57 #endif /* COMPONENTS_NIMBLEUUID_H_ */
+
A model of a BLE UUID.
Definition: NimBLEUUID.h:31
+
bool equals(const NimBLEUUID &uuid) const
Compare a UUID against this UUID.
Definition: NimBLEUUID.cpp:186
+
bool operator==(const NimBLEUUID &rhs) const
Convienience operator to check if this UUID is equal to another.
Definition: NimBLEUUID.cpp:278
+
const ble_uuid_any_t * getNative() const
Get the native UUID value.
Definition: NimBLEUUID.cpp:226
+
const NimBLEUUID & to128()
Convert a UUID to its 128 bit representation.
Definition: NimBLEUUID.cpp:241
+
std::string toString() const
Get a string representation of the UUID.
Definition: NimBLEUUID.cpp:270
+
NimBLEUUID()
Creates an empty UUID.
Definition: NimBLEUUID.cpp:165
+
bool operator!=(const NimBLEUUID &rhs) const
Convienience operator to check if this UUID is not equal to another.
Definition: NimBLEUUID.cpp:317
+
static NimBLEUUID fromString(const std::string &uuid)
Definition: NimBLEUUID.cpp:202
+
uint8_t bitSize() const
Get the number of bits in this uuid.
Definition: NimBLEUUID.cpp:174
+
+
+ + + + diff --git a/_nim_b_l_e_utils_8h_source.html b/_nim_b_l_e_utils_8h_source.html new file mode 100644 index 0000000..317df03 --- /dev/null +++ b/_nim_b_l_e_utils_8h_source.html @@ -0,0 +1,149 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/NimBLEUtils.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEUtils.h
+
+
+
1 /*
+
2  * NimBLEUtils.h
+
3  *
+
4  * Created: on Jan 25 2020
+
5  * Author H2zero
+
6  *
+
7  */
+
8 
+
9 #ifndef COMPONENTS_NIMBLEUTILS_H_
+
10 #define COMPONENTS_NIMBLEUTILS_H_
+
11 #include "sdkconfig.h"
+
12 #if defined(CONFIG_BT_ENABLED)
+
13 
+
14 #include "host/ble_gap.h"
+
15 
+
16 /**** FIX COMPILATION ****/
+
17 #undef min
+
18 #undef max
+
19 /**************************/
+
20 
+
21 #include <string>
+
22 
+
23 typedef struct {
+
24  void *pATT;
+
25  TaskHandle_t task;
+
26  int rc;
+
27  std::string *buf;
+
28 } ble_task_data_t;
+
29 
+
30 
+
34 class NimBLEUtils {
+
35 public:
+
36  static void dumpGapEvent(ble_gap_event *event, void *arg);
+
37  static const char* gapEventToString(uint8_t eventType);
+
38  static char* buildHexData(uint8_t* target, const uint8_t* source, uint8_t length);
+
39  static const char* advTypeToString(uint8_t advType);
+
40  static const char* returnCodeToString(int rc);
+
41  static int checkConnParams(ble_gap_conn_params* params);
+
42 };
+
43 
+
44 
+
45 #endif // CONFIG_BT_ENABLED
+
46 #endif // COMPONENTS_NIMBLEUTILS_H_
+
A BLE Utility class with methods for debugging and general purpose use.
Definition: NimBLEUtils.h:34
+
static void dumpGapEvent(ble_gap_event *event, void *arg)
Utility function to log the gap event info.
Definition: NimBLEUtils.cpp:418
+
static char * buildHexData(uint8_t *target, const uint8_t *source, uint8_t length)
Create a hex representation of data.
Definition: NimBLEUtils.cpp:385
+
static const char * advTypeToString(uint8_t advType)
Convert the advertising type flag to a string.
Definition: NimBLEUtils.cpp:355
+
static const char * returnCodeToString(int rc)
Converts a return code from the NimBLE stack to a text string.
Definition: NimBLEUtils.cpp:62
+
static int checkConnParams(ble_gap_conn_params *params)
A function for checking validity of connection parameters.
Definition: NimBLEUtils.cpp:24
+
static const char * gapEventToString(uint8_t eventType)
Convert a GAP event type to a string representation.
Definition: NimBLEUtils.cpp:430
+
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 0000000..ac493bf --- /dev/null +++ b/annotated.html @@ -0,0 +1,132 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CNimBLE2904Descriptor for Characteristic Presentation Format
 CNimBLEAddressA BLE device address
 CNimBLEAdvertisedDeviceA representation of a BLE advertised device found by a scan
 CNimBLEAdvertisedDeviceCallbacksA callback handler for callbacks associated device scanning
 CNimBLEAdvertisementDataAdvertisement data set by the programmer to be published by the BLE server
 CNimBLEAdvertisingPerform and manage BLE advertising
 CNimBLEBeaconRepresentation of a beacon. See:
 CNimBLECharacteristicThe model of a BLE Characteristic
 CNimBLECharacteristicCallbacksCallbacks that can be associated with a BLE characteristic to inform of events
 CNimBLEClientA model of a BLE client
 CNimBLEClientCallbacksCallbacks associated with a BLE client
 CNimBLEConnInfoConnection information
 CNimBLEDescriptorA model of a BLE descriptor
 CNimBLEDescriptorCallbacksCallbacks that can be associated with a BLE descriptors to inform of events
 CNimBLEDeviceA model of a BLE Device from which all the BLE roles are created
 CNimBLEEddystoneTLMRepresentation of a beacon. See:
 CNimBLEEddystoneURLRepresentation of a beacon. See:
 CNimBLEHIDDeviceA model of a BLE Human Interface Device
 CNimBLERemoteCharacteristicA model of a remote BLE characteristic
 CNimBLERemoteDescriptorA model of remote BLE descriptor
 CNimBLERemoteServiceA model of a remote BLE service
 CNimBLEScanPerform and manage BLE scans
 CNimBLEScanResultsA class that contains and operates on the results of a BLE scan
 CNimBLESecurityA class to handle BLE security operations. Deprecated - provided for backward compatibility only.
 CNimBLESecurityCallbacksCallbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only.
 CNimBLEServerThe model of a BLE server
 CNimBLEServerCallbacksCallbacks associated with the operation of a BLE server
 CNimBLEServiceThe model of a BLE service
 CNimBLEUtilsA BLE Utility class with methods for debugging and general purpose use
 CNimBLEUUIDA model of a BLE UUID
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 0000000..fa1a6ed --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,33 @@ +var annotated_dup = +[ + [ "NimBLE2904", "class_nim_b_l_e2904.html", "class_nim_b_l_e2904" ], + [ "NimBLEAddress", "class_nim_b_l_e_address.html", "class_nim_b_l_e_address" ], + [ "NimBLEAdvertisedDevice", "class_nim_b_l_e_advertised_device.html", "class_nim_b_l_e_advertised_device" ], + [ "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" ], + [ "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" ], + [ "NimBLEClient", "class_nim_b_l_e_client.html", "class_nim_b_l_e_client" ], + [ "NimBLEClientCallbacks", "class_nim_b_l_e_client_callbacks.html", "class_nim_b_l_e_client_callbacks" ], + [ "NimBLEConnInfo", "class_nim_b_l_e_conn_info.html", "class_nim_b_l_e_conn_info" ], + [ "NimBLEDescriptor", "class_nim_b_l_e_descriptor.html", "class_nim_b_l_e_descriptor" ], + [ "NimBLEDescriptorCallbacks", "class_nim_b_l_e_descriptor_callbacks.html", "class_nim_b_l_e_descriptor_callbacks" ], + [ "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" ], + [ "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" ], + [ "NimBLERemoteService", "class_nim_b_l_e_remote_service.html", "class_nim_b_l_e_remote_service" ], + [ "NimBLEScan", "class_nim_b_l_e_scan.html", "class_nim_b_l_e_scan" ], + [ "NimBLEScanResults", "class_nim_b_l_e_scan_results.html", "class_nim_b_l_e_scan_results" ], + [ "NimBLESecurity", "class_nim_b_l_e_security.html", "class_nim_b_l_e_security" ], + [ "NimBLESecurityCallbacks", "class_nim_b_l_e_security_callbacks.html", "class_nim_b_l_e_security_callbacks" ], + [ "NimBLEServer", "class_nim_b_l_e_server.html", "class_nim_b_l_e_server" ], + [ "NimBLEServerCallbacks", "class_nim_b_l_e_server_callbacks.html", "class_nim_b_l_e_server_callbacks" ], + [ "NimBLEService", "class_nim_b_l_e_service.html", "class_nim_b_l_e_service" ], + [ "NimBLEUtils", "class_nim_b_l_e_utils.html", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html", "class_nim_b_l_e_u_u_i_d" ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/bc_s.png differ diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/bdwn.png differ diff --git a/class_nim_b_l_e2904-members.html b/class_nim_b_l_e2904-members.html new file mode 100644 index 0000000..172ba07 --- /dev/null +++ b/class_nim_b_l_e2904-members.html @@ -0,0 +1,120 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLE2904 Member List
+
+
+ +

This is the complete list of members for NimBLE2904, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
getCharacteristic()NimBLEDescriptor
getHandle()NimBLEDescriptor
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)NimBLEDescriptorinline
toString()NimBLEDescriptor
~NimBLEDescriptor()NimBLEDescriptor
+
+ + + + diff --git a/class_nim_b_l_e2904.html b/class_nim_b_l_e2904.html new file mode 100644 index 0000000..902577d --- /dev/null +++ b/class_nim_b_l_e2904.html @@ -0,0 +1,209 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLE2904 Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLE2904 Class Reference
+
+
+ +

Descriptor for Characteristic Presentation Format. + More...

+ +

Inherits NimBLEDescriptor.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void setDescription (uint16_t)
 Set the description.
 
+void setExponent (int8_t exponent)
 Set the exponent.
 
+void setFormat (uint8_t format)
 Set the format.
 
+void setNamespace (uint8_t namespace_value)
 Set the namespace.
 
void setUnit (uint16_t unit)
 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 (NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)
 NimBLEDescriptor constructor.
 
~NimBLEDescriptor ()
 NimBLEDescriptor destructor.
 
uint16_t getHandle ()
 Get the BLE handle for this descriptor. More...
 
+NimBLEUUID getUUID ()
 Get the UUID of the descriptor.
 
std::string toString ()
 Return a string representation of the descriptor. More...
 
void setCallbacks (NimBLEDescriptorCallbacks *pCallbacks)
 Set the callback handlers for this descriptor. More...
 
size_t getLength ()
 Get the length of the value of this descriptor. More...
 
uint8_t * getValue ()
 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...
 
NimBLECharacteristicgetCharacteristic ()
 Get the characteristic this descriptor belongs to. More...
 
template<typename T >
void setValue (const T &s)
 Convenience template to set the descriptor value to <type>val. More...
 
+

Detailed Description

+

Descriptor for Characteristic Presentation Format.

+

This is a convenience descriptor for the Characteristic Presentation Format which has a UUID of 0x2904.

+

See also: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml

+

Member Function Documentation

+ +

◆ setUnit()

+ +
+
+ + + + + + + + +
void NimBLE2904::setUnit (uint16_t unit)
+
+ +

Set the units for this value. It should be one of the encoded values defined here: https://www.bluetooth.com/specifications/assigned-numbers/units.

+
Parameters
+ + +
[in]unitThe type of units of this characteristic as defined by assigned numbers.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e2904.js b/class_nim_b_l_e2904.js new file mode 100644 index 0000000..bde7def --- /dev/null +++ b/class_nim_b_l_e2904.js @@ -0,0 +1,8 @@ +var class_nim_b_l_e2904 = +[ + [ "setDescription", "class_nim_b_l_e2904.html#a498c863cb3fbf92eecc23f9f8856037c", null ], + [ "setExponent", "class_nim_b_l_e2904.html#ab1c53f99246f67dca1d63b812bef631d", null ], + [ "setFormat", "class_nim_b_l_e2904.html#ab7f21651b4493fd3daaa0f1545032ff1", null ], + [ "setNamespace", "class_nim_b_l_e2904.html#a2206274c217d43a8ba121e1d279f8962", null ], + [ "setUnit", "class_nim_b_l_e2904.html#ad0cf78a2a1c3418be9a39beaa0c826ee", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_address-members.html b/class_nim_b_l_e_address-members.html new file mode 100644 index 0000000..c331dd7 --- /dev/null +++ b/class_nim_b_l_e_address-members.html @@ -0,0 +1,114 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAddress Member List
+
+
+ +

This is the complete list of members for NimBLEAddress, including all inherited members.

+ + + + + + + + + + + + + + +
equals(const NimBLEAddress &otherAddress) constNimBLEAddress
getNative() constNimBLEAddress
getType() constNimBLEAddress
NimBLEAddress()NimBLEAddress
NimBLEAddress(ble_addr_t address)NimBLEAddress
NimBLEAddress(uint8_t address[6], uint8_t type=BLE_ADDR_PUBLIC)NimBLEAddress
NimBLEAddress(const std::string &stringAddress, uint8_t type=BLE_ADDR_PUBLIC)NimBLEAddress
NimBLEAddress(const uint64_t &address, uint8_t type=BLE_ADDR_PUBLIC)NimBLEAddress
operator std::string() constNimBLEAddress
operator uint64_t() constNimBLEAddress
operator!=(const NimBLEAddress &rhs) constNimBLEAddress
operator==(const NimBLEAddress &rhs) constNimBLEAddress
toString() constNimBLEAddress
+
+ + + + diff --git a/class_nim_b_l_e_address.html b/class_nim_b_l_e_address.html new file mode 100644 index 0000000..4770334 --- /dev/null +++ b/class_nim_b_l_e_address.html @@ -0,0 +1,408 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEAddress Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEAddress Class Reference
+
+
+ +

A BLE device address. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEAddress ()
 Create a blank address, i.e. 00:00:00:00:00:00, type 0.
 
 NimBLEAddress (ble_addr_t address)
 Create an address from the native NimBLE representation. More...
 
 NimBLEAddress (uint8_t address[6], uint8_t type=BLE_ADDR_PUBLIC)
 Constructor for compatibility with bluedroid esp library using native ESP representation. More...
 
 NimBLEAddress (const std::string &stringAddress, uint8_t type=BLE_ADDR_PUBLIC)
 Create an address from a hex string. More...
 
 NimBLEAddress (const uint64_t &address, uint8_t type=BLE_ADDR_PUBLIC)
 Constructor for address using a hex value.
+Use the same byte order, so use 0xa4c1385def16 for "a4:c1:38:5d:ef:16". More...
 
bool equals (const NimBLEAddress &otherAddress) const
 Determine if this address equals another. More...
 
const uint8_t * getNative () const
 Get the native representation of the address. More...
 
std::string toString () const
 Convert a BLE address to a string. More...
 
uint8_t getType () const
 Get the address type. More...
 
+bool operator== (const NimBLEAddress &rhs) const
 Convienience 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.
 
 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.
 
+

Detailed Description

+

A BLE device address.

+

Every BLE device has a unique address which can be used to identify it and form connections.

+

Constructor & Destructor Documentation

+ +

◆ NimBLEAddress() [1/4]

+ +
+
+ + + + + + + + +
NimBLEAddress::NimBLEAddress (ble_addr_t address)
+
+ +

Create an address from the native NimBLE representation.

+
Parameters
+ + +
[in]addressThe native NimBLE address.
+
+
+ +
+
+ +

◆ NimBLEAddress() [2/4]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEAddress::NimBLEAddress (uint8_t address[6],
uint8_t type = BLE_ADDR_PUBLIC 
)
+
+ +

Constructor for compatibility with bluedroid esp library using native ESP representation.

+
Parameters
+ + + +
[in]addressA uint8_t[6] or esp_bd_addr_t containing the address.
[in]typeThe type of the address.
+
+
+ +
+
+ +

◆ NimBLEAddress() [3/4]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEAddress::NimBLEAddress (const std::string & stringAddress,
uint8_t type = BLE_ADDR_PUBLIC 
)
+
+ +

Create an address from a hex string.

+

A hex string is of the format:

00:00:00:00:00:00
+

which is 17 characters in length.

+
Parameters
+ + + +
[in]stringAddressThe hex string representation of the address.
[in]typeThe type of the address.
+
+
+ +
+
+ +

◆ NimBLEAddress() [4/4]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEAddress::NimBLEAddress (const uint64_t & address,
uint8_t type = BLE_ADDR_PUBLIC 
)
+
+ +

Constructor for address using a hex value.
+Use the same byte order, so use 0xa4c1385def16 for "a4:c1:38:5d:ef:16".

+
Parameters
+ + + +
[in]addressuint64_t containing the address.
[in]typeThe type of the address.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ equals()

+ +
+
+ + + + + + + + +
bool NimBLEAddress::equals (const NimBLEAddressotherAddress) const
+
+ +

Determine if this address equals another.

+
Parameters
+ + +
[in]otherAddressThe other address to compare against.
+
+
+
Returns
True if the addresses are equal.
+ +
+
+ +

◆ getNative()

+ +
+
+ + + + + + + +
const uint8_t * NimBLEAddress::getNative () const
+
+ +

Get the native representation of the address.

+
Returns
a pointer to the uint8_t[6] array of the address.
+ +
+
+ +

◆ getType()

+ +
+
+ + + + + + + +
uint8_t NimBLEAddress::getType () const
+
+ +

Get the address type.

+
Returns
The address type.
+ +
+
+ +

◆ operator std::string()

+ +
+
+ + + + + + + +
NimBLEAddress::operator std::string () const
+
+ +

Convienience operator to convert this address to string representation.

+

This allows passing NimBLEAddress to functions that accept std::string and/or or it's methods as a parameter.

+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLEAddress::toString () const
+
+ +

Convert a BLE address to a string.

+

A string representation of an address is in the format:

+
xx:xx:xx:xx:xx:xx
+
Returns
The string representation of the address.
+
Deprecated:
Use std::string() operator instead.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_address.js b/class_nim_b_l_e_address.js new file mode 100644 index 0000000..3d57365 --- /dev/null +++ b/class_nim_b_l_e_address.js @@ -0,0 +1,16 @@ +var class_nim_b_l_e_address = +[ + [ "NimBLEAddress", "class_nim_b_l_e_address.html#a19058addb94417e2921cade37a79d04c", null ], + [ "NimBLEAddress", "class_nim_b_l_e_address.html#ab8c9105b825ed0be5d1bbab966f2a0cf", null ], + [ "NimBLEAddress", "class_nim_b_l_e_address.html#a92637adc75c8010bcf34e2dd8f16cd94", null ], + [ "NimBLEAddress", "class_nim_b_l_e_address.html#aeb6dafff197dc01e2713bbf43e21f1f3", null ], + [ "NimBLEAddress", "class_nim_b_l_e_address.html#a139790cf03d8297e253e5353a0213bff", null ], + [ "equals", "class_nim_b_l_e_address.html#a826fe8850cbc7d54f0696b8af4637169", null ], + [ "getNative", "class_nim_b_l_e_address.html#adef69a03a08303957d7e40eef07b4d80", null ], + [ "getType", "class_nim_b_l_e_address.html#a18f8361ed20146cbc374a246d87015eb", null ], + [ "operator std::string", "class_nim_b_l_e_address.html#a5398ed7c6d8e95a7527103095e07093a", null ], + [ "operator uint64_t", "class_nim_b_l_e_address.html#aa7d5d8d323d2846bf2082b83381bd7c8", null ], + [ "operator!=", "class_nim_b_l_e_address.html#ae243127c78af69b26dfa225effd806ce", null ], + [ "operator==", "class_nim_b_l_e_address.html#a87e8ccc81c2d83bf0503166939319164", null ], + [ "toString", "class_nim_b_l_e_address.html#ac53b0cc945e1505d3e72d48164ad01d6", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_advertised_device-members.html b/class_nim_b_l_e_advertised_device-members.html new file mode 100644 index 0000000..13b10d3 --- /dev/null +++ b/class_nim_b_l_e_advertised_device-members.html @@ -0,0 +1,143 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertisedDevice Member List
+
+
+ +

This is the complete list of members for NimBLEAdvertisedDevice, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
getAddress()NimBLEAdvertisedDevice
getAddressType()NimBLEAdvertisedDevice
getAdvInterval()NimBLEAdvertisedDevice
getAdvLength()NimBLEAdvertisedDevice
getAdvType()NimBLEAdvertisedDevice
getAppearance()NimBLEAdvertisedDevice
getManufacturerData()NimBLEAdvertisedDevice
getManufacturerData(bool skipSizeCheck=false)NimBLEAdvertisedDeviceinline
getMaxInterval()NimBLEAdvertisedDevice
getMinInterval()NimBLEAdvertisedDevice
getName()NimBLEAdvertisedDevice
getPayload()NimBLEAdvertisedDevice
getPayloadLength()NimBLEAdvertisedDevice
getRSSI()NimBLEAdvertisedDevice
getScan()NimBLEAdvertisedDevice
getServiceData(uint8_t index=0)NimBLEAdvertisedDevice
getServiceData(const NimBLEUUID &uuid)NimBLEAdvertisedDevice
getServiceData(uint8_t index=0, bool skipSizeCheck=false)NimBLEAdvertisedDeviceinline
getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false)NimBLEAdvertisedDeviceinline
getServiceDataCount()NimBLEAdvertisedDevice
getServiceDataUUID(uint8_t index=0)NimBLEAdvertisedDevice
getServiceUUID(uint8_t index=0)NimBLEAdvertisedDevice
getServiceUUIDCount()NimBLEAdvertisedDevice
getTargetAddress(uint8_t index=0)NimBLEAdvertisedDevice
getTargetAddressCount()NimBLEAdvertisedDevice
getTimestamp()NimBLEAdvertisedDevice
getTXPower()NimBLEAdvertisedDevice
getURI()NimBLEAdvertisedDevice
haveAdvInterval()NimBLEAdvertisedDevice
haveAppearance()NimBLEAdvertisedDevice
haveConnParams()NimBLEAdvertisedDevice
haveManufacturerData()NimBLEAdvertisedDevice
haveName()NimBLEAdvertisedDevice
haveRSSI()NimBLEAdvertisedDevice
haveServiceData()NimBLEAdvertisedDevice
haveServiceUUID()NimBLEAdvertisedDevice
haveTargetAddress()NimBLEAdvertisedDevice
haveTXPower()NimBLEAdvertisedDevice
haveURI()NimBLEAdvertisedDevice
isAdvertisingService(const NimBLEUUID &uuid)NimBLEAdvertisedDevice
NimBLEAdvertisedDevice()NimBLEAdvertisedDevice
toString()NimBLEAdvertisedDevice
+
+ + + + diff --git a/class_nim_b_l_e_advertised_device.html b/class_nim_b_l_e_advertised_device.html new file mode 100644 index 0000000..30893ef --- /dev/null +++ b/class_nim_b_l_e_advertised_device.html @@ -0,0 +1,1213 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEAdvertisedDevice Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEAdvertisedDevice Class Reference
+
+
+ +

A representation of a BLE advertised device found by a scan. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEAdvertisedDevice ()
 Constructor.
 
NimBLEAddress getAddress ()
 Get the address of the advertising device. More...
 
uint8_t getAdvType ()
 Get the advertisement type. More...
 
uint16_t getAppearance ()
 Get the appearance. More...
 
uint16_t getAdvInterval ()
 Get the advertisement interval. More...
 
uint16_t getMinInterval ()
 Get the preferred min connection interval. More...
 
uint16_t getMaxInterval ()
 Get the preferred max connection interval. More...
 
std::string getManufacturerData ()
 Get the manufacturer data. More...
 
std::string getURI ()
 Get the URI from the advertisement. More...
 
template<typename T >
getManufacturerData (bool skipSizeCheck=false)
 A template to convert the service data to <type>. More...
 
std::string getName ()
 Get the advertised name. More...
 
int getRSSI ()
 Get the RSSI. More...
 
NimBLEScangetScan ()
 Get the scan object that created this advertised device. More...
 
size_t getServiceDataCount ()
 Get the count of advertised service data UUIDS. More...
 
std::string getServiceData (uint8_t index=0)
 Get the service data. More...
 
std::string getServiceData (const NimBLEUUID &uuid)
 Get the service data. More...
 
template<typename T >
getServiceData (uint8_t index=0, bool skipSizeCheck=false)
 A template to convert the service data to <type>. More...
 
template<typename T >
getServiceData (const NimBLEUUID &uuid, bool skipSizeCheck=false)
 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...
 
NimBLEUUID getServiceUUID (uint8_t index=0)
 Get the Service UUID. More...
 
size_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...
 
int8_t getTXPower ()
 Get the TX Power. More...
 
uint8_t * getPayload ()
 Get the payload advertised by the device. More...
 
uint8_t getAdvLength ()
 Get the length of the advertisement data in the payload. More...
 
size_t getPayloadLength ()
 Get the length of the payload advertised by the device. More...
 
uint8_t getAddressType ()
 Get the advertised device address type. More...
 
time_t getTimestamp ()
 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...
 
bool haveAppearance ()
 Does this advertisement have an appearance value? More...
 
bool haveManufacturerData ()
 Does this advertisement have manufacturer data? More...
 
bool haveName ()
 Does this advertisement have a name value? More...
 
bool haveRSSI ()
 Does this advertisement have a signal strength value? More...
 
bool haveServiceData ()
 Does this advertisement have a service data value? More...
 
bool haveServiceUUID ()
 Does this advertisement have a service UUID value? More...
 
bool haveTXPower ()
 Does this advertisement have a transmission power value? More...
 
bool haveConnParams ()
 Does this advertisement have preferred connection parameters? More...
 
bool haveAdvInterval ()
 Does this advertisement have have the advertising interval? More...
 
bool haveTargetAddress ()
 Does the advertisement contain a target address? More...
 
bool haveURI ()
 Does this advertisement have a URI? More...
 
std::string toString ()
 Create a string representation of this device. More...
 
+

Detailed Description

+

A representation of a BLE advertised device found by a scan.

+

When we perform a BLE scan, the result will be a set of devices that are advertising. This class provides a model of a detected device.

+

Member Function Documentation

+ +

◆ getAddress()

+ +
+
+ + + + + + + +
NimBLEAddress NimBLEAdvertisedDevice::getAddress ()
+
+ +

Get the address of the advertising device.

+
Returns
The address of the advertised device.
+ +
+
+ +

◆ getAddressType()

+ +
+
+ + + + + + + +
uint8_t NimBLEAdvertisedDevice::getAddressType ()
+
+ +

Get the advertised device address type.

+
Returns
The device address type:
    +
  • BLE_ADDR_PUBLIC (0x00)
  • +
  • BLE_ADDR_RANDOM (0x01)
  • +
  • BLE_ADDR_PUBLIC_ID (0x02)
  • +
  • BLE_ADDR_RANDOM_ID (0x03)
  • +
+
+ +
+
+ +

◆ getAdvInterval()

+ +
+
+ + + + + + + +
uint16_t NimBLEAdvertisedDevice::getAdvInterval ()
+
+ +

Get the advertisement interval.

+
Returns
The advertisement interval in 0.625ms units.
+ +
+
+ +

◆ getAdvLength()

+ +
+
+ + + + + + + +
uint8_t NimBLEAdvertisedDevice::getAdvLength ()
+
+ +

Get the length of the advertisement data in the payload.

+
Returns
The number of bytes in the payload that is from the advertisment.
+ +
+
+ +

◆ getAdvType()

+ +
+
+ + + + + + + +
uint8_t NimBLEAdvertisedDevice::getAdvType ()
+
+ +

Get the advertisement type.

+
Returns
The advertising type the device is reporting:
    +
  • BLE_HCI_ADV_TYPE_ADV_IND (0) - indirect advertising
  • +
  • BLE_HCI_ADV_TYPE_ADV_DIRECT_IND_HD (1) - direct advertisng - high duty cycle
  • +
  • BLE_HCI_ADV_TYPE_ADV_SCAN_IND (2) - indirect scan response
  • +
  • BLE_HCI_ADV_TYPE_ADV_NONCONN_IND (3) - indirect advertisng - not connectable
  • +
  • BLE_HCI_ADV_TYPE_ADV_DIRECT_IND_LD (4) - direct advertising - low duty cycle
  • +
+
+ +
+
+ +

◆ getAppearance()

+ +
+
+ + + + + + + +
uint16_t NimBLEAdvertisedDevice::getAppearance ()
+
+ +

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.

+
Returns
The appearance of the advertised device.
+ +
+
+ +

◆ getManufacturerData() [1/2]

+ +
+
+ + + + + + + +
std::string NimBLEAdvertisedDevice::getManufacturerData ()
+
+ +

Get the manufacturer data.

+
Returns
The manufacturer data of the advertised device.
+ +
+
+ +

◆ getManufacturerData() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
T NimBLEAdvertisedDevice::getManufacturerData (bool skipSizeCheck = false)
+
+inline
+
+ +

A template to convert the service data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + +
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: getManufacturerData<type>(skipSizeCheck);

+ +
+
+ +

◆ getMaxInterval()

+ +
+
+ + + + + + + +
uint16_t NimBLEAdvertisedDevice::getMaxInterval ()
+
+ +

Get the preferred max connection interval.

+
Returns
The preferred max connection interval in 1.25ms units.
+ +
+
+ +

◆ getMinInterval()

+ +
+
+ + + + + + + +
uint16_t NimBLEAdvertisedDevice::getMinInterval ()
+
+ +

Get the preferred min connection interval.

+
Returns
The preferred min connection interval in 1.25ms units.
+ +
+
+ +

◆ getName()

+ +
+
+ + + + + + + +
std::string NimBLEAdvertisedDevice::getName ()
+
+ +

Get the advertised name.

+
Returns
The name of the advertised device.
+ +
+
+ +

◆ getPayload()

+ +
+
+ + + + + + + +
uint8_t * NimBLEAdvertisedDevice::getPayload ()
+
+ +

Get the payload advertised by the device.

+
Returns
The advertisement payload.
+ +
+
+ +

◆ getPayloadLength()

+ +
+
+ + + + + + + +
size_t NimBLEAdvertisedDevice::getPayloadLength ()
+
+ +

Get the length of the payload advertised by the device.

+
Returns
The size of the payload in bytes.
+ +
+
+ +

◆ getRSSI()

+ +
+
+ + + + + + + +
int NimBLEAdvertisedDevice::getRSSI ()
+
+ +

Get the RSSI.

+
Returns
The RSSI of the advertised device.
+ +
+
+ +

◆ getScan()

+ +
+
+ + + + + + + +
NimBLEScan * NimBLEAdvertisedDevice::getScan ()
+
+ +

Get the scan object that created this advertised device.

+
Returns
The scan object.
+ +
+
+ +

◆ getServiceData() [1/4]

+ +
+
+ + + + + + + + +
std::string NimBLEAdvertisedDevice::getServiceData (const NimBLEUUIDuuid)
+
+ +

Get the service data.

+
Parameters
+ + +
[in]uuidThe uuid of the service data requested.
+
+
+
Returns
The advertised service data or empty string if no data.
+ +
+
+ +

◆ getServiceData() [2/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
T NimBLEAdvertisedDevice::getServiceData (const NimBLEUUIDuuid,
bool skipSizeCheck = false 
)
+
+inline
+
+ +

A template to convert the service data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + + +
[in]uuidThe uuid of the service data requested.
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: getServiceData<type>(skipSizeCheck);

+ +
+
+ +

◆ getServiceData() [3/4]

+ +
+
+ + + + + + + + +
std::string NimBLEAdvertisedDevice::getServiceData (uint8_t index = 0)
+
+ +

Get the service data.

+
Parameters
+ + +
[in]indexThe index of the service data requested.
+
+
+
Returns
The advertised service data or empty string if no data.
+ +
+
+ +

◆ getServiceData() [4/4]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
T NimBLEAdvertisedDevice::getServiceData (uint8_t index = 0,
bool skipSizeCheck = false 
)
+
+inline
+
+ +

A template to convert the service data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + + +
[in]indexThe vector index of the service data requested.
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: getServiceData<type>(skipSizeCheck);

+ +
+
+ +

◆ getServiceDataCount()

+ +
+
+ + + + + + + +
size_t NimBLEAdvertisedDevice::getServiceDataCount ()
+
+ +

Get the count of advertised service data UUIDS.

+
Returns
The number of service data UUIDS in the vector.
+ +
+
+ +

◆ getServiceDataUUID()

+ +
+
+ + + + + + + + +
NimBLEUUID NimBLEAdvertisedDevice::getServiceDataUUID (uint8_t index = 0)
+
+ +

Get the UUID of the serice data at the index.

+
Parameters
+ + +
[in]indexThe index of the service data UUID requested.
+
+
+
Returns
The advertised service data UUID or an empty UUID if not found.
+ +
+
+ +

◆ getServiceUUID()

+ +
+
+ + + + + + + + +
NimBLEUUID NimBLEAdvertisedDevice::getServiceUUID (uint8_t index = 0)
+
+ +

Get the Service UUID.

+
Parameters
+ + +
[in]indexThe index of the service UUID requested.
+
+
+
Returns
The Service UUID of the advertised service, or an empty UUID if not found.
+ +
+
+ +

◆ getServiceUUIDCount()

+ +
+
+ + + + + + + +
size_t NimBLEAdvertisedDevice::getServiceUUIDCount ()
+
+ +

Get the number of services advertised.

+
Returns
The count of services in the advertising packet.
+ +
+
+ +

◆ getTargetAddress()

+ +
+
+ + + + + + + + +
NimBLEAddress NimBLEAdvertisedDevice::getTargetAddress (uint8_t index = 0)
+
+ +

Get the target address at the index.

+
Parameters
+ + +
[in]indexThe index of the target address.
+
+
+
Returns
The target address.
+ +
+
+ +

◆ getTargetAddressCount()

+ +
+
+ + + + + + + +
size_t NimBLEAdvertisedDevice::getTargetAddressCount ()
+
+ +

Get the number of target addresses.

+
Returns
The number of addresses.
+ +
+
+ +

◆ getTimestamp()

+ +
+
+ + + + + + + +
time_t NimBLEAdvertisedDevice::getTimestamp ()
+
+ +

Get the timeStamp of when the device last advertised.

+
Returns
The timeStamp of when the device was last seen.
+ +
+
+ +

◆ getTXPower()

+ +
+
+ + + + + + + +
int8_t NimBLEAdvertisedDevice::getTXPower ()
+
+ +

Get the TX Power.

+
Returns
The TX Power of the advertised device.
+ +
+
+ +

◆ getURI()

+ +
+
+ + + + + + + +
std::string NimBLEAdvertisedDevice::getURI ()
+
+ +

Get the URI from the advertisement.

+
Returns
The URI data.
+ +
+
+ +

◆ haveAdvInterval()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveAdvInterval ()
+
+ +

Does this advertisement have have the advertising interval?

+
Returns
True if the advertisement interval is present.
+ +
+
+ +

◆ haveAppearance()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveAppearance ()
+
+ +

Does this advertisement have an appearance value?

+
Returns
True if there is an appearance value present.
+ +
+
+ +

◆ haveConnParams()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveConnParams ()
+
+ +

Does this advertisement have preferred connection parameters?

+
Returns
True if connection parameters are present.
+ +
+
+ +

◆ haveManufacturerData()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveManufacturerData ()
+
+ +

Does this advertisement have manufacturer data?

+
Returns
True if there is manufacturer data present.
+ +
+
+ +

◆ haveName()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveName ()
+
+ +

Does this advertisement have a name value?

+
Returns
True if there is a name value present.
+ +
+
+ +

◆ haveRSSI()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveRSSI ()
+
+ +

Does this advertisement have a signal strength value?

+
Returns
True if there is a signal strength value present.
+ +
+
+ +

◆ haveServiceData()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveServiceData ()
+
+ +

Does this advertisement have a service data value?

+
Returns
True if there is a service data value present.
+ +
+
+ +

◆ haveServiceUUID()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveServiceUUID ()
+
+ +

Does this advertisement have a service UUID value?

+
Returns
True if there is a service UUID value present.
+ +
+
+ +

◆ haveTargetAddress()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveTargetAddress ()
+
+ +

Does the advertisement contain a target address?

+
Returns
True if an address is present.
+ +
+
+ +

◆ haveTXPower()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveTXPower ()
+
+ +

Does this advertisement have a transmission power value?

+
Returns
True if there is a transmission power value present.
+ +
+
+ +

◆ haveURI()

+ +
+
+ + + + + + + +
bool NimBLEAdvertisedDevice::haveURI ()
+
+ +

Does this advertisement have a URI?

+
Returns
True if there is a URI present.
+ +
+
+ +

◆ isAdvertisingService()

+ +
+
+ + + + + + + + +
bool NimBLEAdvertisedDevice::isAdvertisingService (const NimBLEUUIDuuid)
+
+ +

Check advertised services for existance of the required UUID.

+
Parameters
+ + +
[in]uuidThe service uuid to look for in the advertisement.
+
+
+
Returns
Return true if service is advertised
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLEAdvertisedDevice::toString ()
+
+ +

Create a string representation of this device.

+
Returns
A string representation of this device.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_advertised_device.js b/class_nim_b_l_e_advertised_device.js new file mode 100644 index 0000000..8d3c56a --- /dev/null +++ b/class_nim_b_l_e_advertised_device.js @@ -0,0 +1,45 @@ +var class_nim_b_l_e_advertised_device = +[ + [ "NimBLEAdvertisedDevice", "class_nim_b_l_e_advertised_device.html#ab8972714ecd578fca51fb63d9834a34e", null ], + [ "getAddress", "class_nim_b_l_e_advertised_device.html#aa60721a7b5b44a3bb66980f003517579", null ], + [ "getAddressType", "class_nim_b_l_e_advertised_device.html#afc79cdc087c81b34643d70c8259eb9a3", null ], + [ "getAdvInterval", "class_nim_b_l_e_advertised_device.html#a9a7a36e9937e16ffab4f1543ea54073f", null ], + [ "getAdvLength", "class_nim_b_l_e_advertised_device.html#ae960e43434bf62ec83e9230d7bf7046c", null ], + [ "getAdvType", "class_nim_b_l_e_advertised_device.html#a9d07ee4c38de4170db24a5e01663ee6d", null ], + [ "getAppearance", "class_nim_b_l_e_advertised_device.html#a228afa5e43421b4d96d9c08241718309", null ], + [ "getManufacturerData", "class_nim_b_l_e_advertised_device.html#afa334006230601cc5c6429b18819a2e2", null ], + [ "getManufacturerData", "class_nim_b_l_e_advertised_device.html#ae9a586e46a555cf5fc817c9fe301b295", null ], + [ "getMaxInterval", "class_nim_b_l_e_advertised_device.html#a450eca96c605f199d2786a044612db17", null ], + [ "getMinInterval", "class_nim_b_l_e_advertised_device.html#a33fcdc3bf5107c157b10ad4519938c9f", null ], + [ "getName", "class_nim_b_l_e_advertised_device.html#ae6c6b48369d71a5998c1393c0d6a0179", null ], + [ "getPayload", "class_nim_b_l_e_advertised_device.html#afacf7717a15b36af184cd957d397e384", null ], + [ "getPayloadLength", "class_nim_b_l_e_advertised_device.html#ac7879f4aa0f2b069b1d3aff4809ae62c", null ], + [ "getRSSI", "class_nim_b_l_e_advertised_device.html#acd42dfbc92a43fc90e933df975c029f3", null ], + [ "getScan", "class_nim_b_l_e_advertised_device.html#ad3931c72aaded3b594896c29b3691562", null ], + [ "getServiceData", "class_nim_b_l_e_advertised_device.html#acf4398ca81f800445092ccc77deaf00b", null ], + [ "getServiceData", "class_nim_b_l_e_advertised_device.html#a9ca1c022e10764ec72850ff3a011b009", null ], + [ "getServiceData", "class_nim_b_l_e_advertised_device.html#aecb3e30a94abd59401cafb70a5903abb", null ], + [ "getServiceData", "class_nim_b_l_e_advertised_device.html#a9017ce5b59bdae3cebf33c54f28cee70", null ], + [ "getServiceDataCount", "class_nim_b_l_e_advertised_device.html#a5fc9be9de9209622259f8d28b01825df", null ], + [ "getServiceDataUUID", "class_nim_b_l_e_advertised_device.html#a4f89e99dffdfde45c1cafff74a20a95f", null ], + [ "getServiceUUID", "class_nim_b_l_e_advertised_device.html#ab53f862df15953d19ba7a45d4cf51b46", null ], + [ "getServiceUUIDCount", "class_nim_b_l_e_advertised_device.html#a6dc4484bc89ea5560a51c349b5300049", null ], + [ "getTargetAddress", "class_nim_b_l_e_advertised_device.html#a599cad9a3f3d535049c87a911bc1b14d", null ], + [ "getTargetAddressCount", "class_nim_b_l_e_advertised_device.html#a9352a7760d9e4af0561d7923fcbe2535", null ], + [ "getTimestamp", "class_nim_b_l_e_advertised_device.html#a1855415f3c60bc88d62e9206fe6ed75a", null ], + [ "getTXPower", "class_nim_b_l_e_advertised_device.html#afee346437447173eed1b9edf1de70f34", null ], + [ "getURI", "class_nim_b_l_e_advertised_device.html#ad65f8040a142f8d6d0763d4876f0d22e", null ], + [ "haveAdvInterval", "class_nim_b_l_e_advertised_device.html#aa8b4660e5d123f16a07e0fefa3bcf4bc", null ], + [ "haveAppearance", "class_nim_b_l_e_advertised_device.html#accc6713f85db6174cfe8436059aa8bf1", null ], + [ "haveConnParams", "class_nim_b_l_e_advertised_device.html#a3274624943c942f357c6f8d489481bc8", null ], + [ "haveManufacturerData", "class_nim_b_l_e_advertised_device.html#abe58f5fde119d8c0a8fb85ba1e8cc5c9", null ], + [ "haveName", "class_nim_b_l_e_advertised_device.html#a86805fecd4432335feecf77bb6a0f12e", null ], + [ "haveRSSI", "class_nim_b_l_e_advertised_device.html#a611802e8898e422842d60486b60b8c42", null ], + [ "haveServiceData", "class_nim_b_l_e_advertised_device.html#afba3425cfcfc12eca219a1abe5f6732c", null ], + [ "haveServiceUUID", "class_nim_b_l_e_advertised_device.html#a5c4aae7e27c27201846ba4e15448e557", null ], + [ "haveTargetAddress", "class_nim_b_l_e_advertised_device.html#a1172d33a77bc018e314be78664b222b9", null ], + [ "haveTXPower", "class_nim_b_l_e_advertised_device.html#af5293030ef439856c195caa3aba86543", null ], + [ "haveURI", "class_nim_b_l_e_advertised_device.html#a83ebd08b512dc936b1059db7a69b9ead", null ], + [ "isAdvertisingService", "class_nim_b_l_e_advertised_device.html#a37ad095c066aa231a52a7259734c9bce", null ], + [ "toString", "class_nim_b_l_e_advertised_device.html#ac1b8ff0f2897abda335743d55668fcd9", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_advertised_device_callbacks-members.html b/class_nim_b_l_e_advertised_device_callbacks-members.html new file mode 100644 index 0000000..a8037c5 --- /dev/null +++ b/class_nim_b_l_e_advertised_device_callbacks-members.html @@ -0,0 +1,102 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertisedDeviceCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLEAdvertisedDeviceCallbacks, including all inherited members.

+ + +
onResult(NimBLEAdvertisedDevice *advertisedDevice)=0NimBLEAdvertisedDeviceCallbackspure virtual
+
+ + + + diff --git a/class_nim_b_l_e_advertised_device_callbacks.html b/class_nim_b_l_e_advertised_device_callbacks.html new file mode 100644 index 0000000..ed0f1a8 --- /dev/null +++ b/class_nim_b_l_e_advertised_device_callbacks.html @@ -0,0 +1,145 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEAdvertisedDeviceCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEAdvertisedDeviceCallbacks Class Referenceabstract
+
+
+ +

A callback handler for callbacks associated device scanning. + More...

+ + + + + +

+Public Member Functions

virtual void onResult (NimBLEAdvertisedDevice *advertisedDevice)=0
 Called when a new scan result is detected. More...
 
+

Detailed Description

+

A callback handler for callbacks associated device scanning.

+

When we are performing a scan as a BLE client, we may wish to know when a new device that is advertising has been found. This class can be sub-classed and registered such that when a scan is performed and a new advertised device has been found, we will be called back to be notified.

+

Member Function Documentation

+ +

◆ onResult()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void NimBLEAdvertisedDeviceCallbacks::onResult (NimBLEAdvertisedDeviceadvertisedDevice)
+
+pure virtual
+
+ +

Called when a new scan result is detected.

+

As we are scanning, we will find new devices. When found, this call back is invoked with a reference to the device that was found. During any individual scan, a device will only be detected one time.

+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_advertised_device_callbacks.js b/class_nim_b_l_e_advertised_device_callbacks.js new file mode 100644 index 0000000..7711e44 --- /dev/null +++ b/class_nim_b_l_e_advertised_device_callbacks.js @@ -0,0 +1,4 @@ +var class_nim_b_l_e_advertised_device_callbacks = +[ + [ "onResult", "class_nim_b_l_e_advertised_device_callbacks.html#af6a25e1bb773a147536b1785b2aae606", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_advertisement_data-members.html b/class_nim_b_l_e_advertisement_data-members.html new file mode 100644 index 0000000..cf3ba14 --- /dev/null +++ b/class_nim_b_l_e_advertisement_data-members.html @@ -0,0 +1,119 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertisementData Member List
+
+
+ +

This is the complete list of members for NimBLEAdvertisementData, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
addData(const std::string &data)NimBLEAdvertisementData
addData(char *data, size_t length)NimBLEAdvertisementData
addTxPower()NimBLEAdvertisementData
getPayload()NimBLEAdvertisementData
setAppearance(uint16_t appearance)NimBLEAdvertisementData
setCompleteServices(const NimBLEUUID &uuid)NimBLEAdvertisementData
setCompleteServices16(const std::vector< NimBLEUUID > &v_uuid)NimBLEAdvertisementData
setCompleteServices32(const std::vector< NimBLEUUID > &v_uuid)NimBLEAdvertisementData
setFlags(uint8_t)NimBLEAdvertisementData
setManufacturerData(const std::string &data)NimBLEAdvertisementData
setName(const std::string &name)NimBLEAdvertisementData
setPartialServices(const NimBLEUUID &uuid)NimBLEAdvertisementData
setPartialServices16(const std::vector< NimBLEUUID > &v_uuid)NimBLEAdvertisementData
setPartialServices32(const std::vector< NimBLEUUID > &v_uuid)NimBLEAdvertisementData
setPreferredParams(uint16_t min, uint16_t max)NimBLEAdvertisementData
setServiceData(const NimBLEUUID &uuid, const std::string &data)NimBLEAdvertisementData
setShortName(const std::string &name)NimBLEAdvertisementData
setURI(const std::string &uri)NimBLEAdvertisementData
+
+ + + + diff --git a/class_nim_b_l_e_advertisement_data.html b/class_nim_b_l_e_advertisement_data.html new file mode 100644 index 0000000..c93ea93 --- /dev/null +++ b/class_nim_b_l_e_advertisement_data.html @@ -0,0 +1,642 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEAdvertisementData Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEAdvertisementData Class Reference
+
+
+ +

Advertisement data set by the programmer to be published by the BLE server. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

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)
 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 addData (const std::string &data)
 Add data to the payload to be advertised. More...
 
void addData (char *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...
 
std::string getPayload ()
 Retrieve the payload that is to be advertised. More...
 
+

Detailed Description

+

Advertisement data set by the programmer to be published by the BLE server.

+

Member Function Documentation

+ +

◆ addData() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEAdvertisementData::addData (char * data,
size_t length 
)
+
+ +

Add data to the payload to be advertised.

+
Parameters
+ + + +
[in]dataThe data to be added to the payload.
[in]lengthThe size of data to be added to the payload.
+
+
+ +
+
+ +

◆ addData() [2/2]

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::addData (const std::string & data)
+
+ +

Add data to the payload to be advertised.

+
Parameters
+ + +
[in]dataThe data to be added to the payload.
+
+
+ +
+
+ +

◆ getPayload()

+ +
+
+ + + + + + + +
std::string NimBLEAdvertisementData::getPayload ()
+
+ +

Retrieve the payload that is to be advertised.

+
Returns
The payload that is to be advertised.
+ +
+
+ +

◆ setAppearance()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setAppearance (uint16_t appearance)
+
+ +

Set the appearance.

+
Parameters
+ + +
[in]appearanceThe appearance code value.
+
+
+

See also: https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml

+ +
+
+ +

◆ setCompleteServices()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setCompleteServices (const NimBLEUUIDuuid)
+
+ +

Set a single service to advertise as a complete list of services.

+
Parameters
+ + +
[in]uuidThe service to advertise.
+
+
+ +
+
+ +

◆ setCompleteServices16()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setCompleteServices16 (const std::vector< NimBLEUUID > & v_uuid)
+
+ +

Set the complete list of 16 bit services to advertise.

+
Parameters
+ + +
[in]v_uuidA vector of 16 bit UUID's to advertise.
+
+
+ +
+
+ +

◆ setCompleteServices32()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setCompleteServices32 (const std::vector< NimBLEUUID > & v_uuid)
+
+ +

Set the complete list of 32 bit services to advertise.

+
Parameters
+ + +
[in]v_uuidA vector of 32 bit UUID's to advertise.
+
+
+ +
+
+ +

◆ setFlags()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setFlags (uint8_t flag)
+
+ +

Set the advertisement flags.

+
Parameters
+ + +
[in]flagThe flags to be set in the advertisement.
    +
  • BLE_HS_ADV_F_DISC_LTD
  • +
  • BLE_HS_ADV_F_DISC_GEN
  • +
  • BLE_HS_ADV_F_BREDR_UNSUP - must always use with NimBLE
  • +
+
+
+
+ +
+
+ +

◆ setManufacturerData()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setManufacturerData (const std::string & data)
+
+ +

Set manufacturer specific data.

+
Parameters
+ + +
[in]dataThe manufacturer data to advertise.
+
+
+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setName (const std::string & name)
+
+ +

Set the complete name of this device.

+
Parameters
+ + +
[in]nameThe name to advertise.
+
+
+ +
+
+ +

◆ setPartialServices()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setPartialServices (const NimBLEUUIDuuid)
+
+ +

Set a single service to advertise as a partial list of services.

+
Parameters
+ + +
[in]uuidThe service to advertise.
+
+
+ +
+
+ +

◆ setPartialServices16()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setPartialServices16 (const std::vector< NimBLEUUID > & v_uuid)
+
+ +

Set the partial list of services to advertise.

+
Parameters
+ + +
[in]v_uuidA vector of 16 bit UUID's to advertise.
+
+
+ +
+
+ +

◆ setPartialServices32()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setPartialServices32 (const std::vector< NimBLEUUID > & v_uuid)
+
+ +

Set the partial list of services to advertise.

+
Parameters
+ + +
[in]v_uuidA vector of 32 bit UUID's to advertise.
+
+
+ +
+
+ +

◆ setPreferredParams()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEAdvertisementData::setPreferredParams (uint16_t min,
uint16_t max 
)
+
+ +

Set the preferred connection interval parameters.

+
Parameters
+ + + +
[in]minThe minimum interval desired.
[in]maxThe maximum interval desired.
+
+
+ +
+
+ +

◆ setServiceData()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEAdvertisementData::setServiceData (const NimBLEUUIDuuid,
const std::string & data 
)
+
+ +

Set the service data (UUID + data)

+
Parameters
+ + + +
[in]uuidThe UUID to set with the service data.
[in]dataThe data to be associated with the service data advertised.
+
+
+ +
+
+ +

◆ setShortName()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setShortName (const std::string & name)
+
+ +

Set the short name.

+
Parameters
+ + +
[in]nameThe short name of the device.
+
+
+ +
+
+ +

◆ setURI()

+ +
+
+ + + + + + + + +
void NimBLEAdvertisementData::setURI (const std::string & uri)
+
+ +

Set the URI to advertise.

+
Parameters
+ + +
[in]uriThe uri to advertise.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_advertisement_data.js b/class_nim_b_l_e_advertisement_data.js new file mode 100644 index 0000000..053fd44 --- /dev/null +++ b/class_nim_b_l_e_advertisement_data.js @@ -0,0 +1,21 @@ +var class_nim_b_l_e_advertisement_data = +[ + [ "addData", "class_nim_b_l_e_advertisement_data.html#a2328f7df89a11d58818e98a6c889c8d4", null ], + [ "addData", "class_nim_b_l_e_advertisement_data.html#aec5f567059c4b4fd0f6b5fc74a0ce870", null ], + [ "addTxPower", "class_nim_b_l_e_advertisement_data.html#a480ffc91f212e877ae31ab47190006c3", null ], + [ "getPayload", "class_nim_b_l_e_advertisement_data.html#acbd638708c8b8b4663c09107bc38feb1", null ], + [ "setAppearance", "class_nim_b_l_e_advertisement_data.html#a0f209913ef9f3dfb5be8db39567b4f32", null ], + [ "setCompleteServices", "class_nim_b_l_e_advertisement_data.html#a67fd95e586559b73964d5739051f3822", null ], + [ "setCompleteServices16", "class_nim_b_l_e_advertisement_data.html#a50a2584346208ef28274eeecc5befffb", null ], + [ "setCompleteServices32", "class_nim_b_l_e_advertisement_data.html#a712aa09a4d7f2b3cae9b2f1f1be6372f", null ], + [ "setFlags", "class_nim_b_l_e_advertisement_data.html#a73766a872477512bd750c773d96ca4e2", null ], + [ "setManufacturerData", "class_nim_b_l_e_advertisement_data.html#aa4df88b578782cda2bd77368b50f2d27", null ], + [ "setName", "class_nim_b_l_e_advertisement_data.html#a885b4ed75dd71c4c19b86048c16350bf", null ], + [ "setPartialServices", "class_nim_b_l_e_advertisement_data.html#af52546d7c3b733a831f6232a845bef85", null ], + [ "setPartialServices16", "class_nim_b_l_e_advertisement_data.html#a50063c7ffa24f0f0407366a450e23ae4", null ], + [ "setPartialServices32", "class_nim_b_l_e_advertisement_data.html#a0ff5a72bccd349e551270ceadf528306", null ], + [ "setPreferredParams", "class_nim_b_l_e_advertisement_data.html#a58ba06eb062a47cc58ba2829af8aafa5", null ], + [ "setServiceData", "class_nim_b_l_e_advertisement_data.html#aee4fdb5af06fcda9cab9fad3f5bf80d5", null ], + [ "setShortName", "class_nim_b_l_e_advertisement_data.html#ae5b514ad9be6552727f1c7a744a29ae5", null ], + [ "setURI", "class_nim_b_l_e_advertisement_data.html#aa003bc4cf9bff2b2bcac9b742ec97a36", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_advertising-members.html b/class_nim_b_l_e_advertising-members.html new file mode 100644 index 0000000..7dfea84 --- /dev/null +++ b/class_nim_b_l_e_advertising-members.html @@ -0,0 +1,125 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEAdvertising Member List
+
+
+ +

This is the complete list of members for NimBLEAdvertising, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
addServiceUUID(const NimBLEUUID &serviceUUID)NimBLEAdvertising
addServiceUUID(const char *serviceUUID)NimBLEAdvertising
addTxPower()NimBLEAdvertising
advCompleteCB()NimBLEAdvertising
isAdvertising()NimBLEAdvertising
NimBLEAdvertising()NimBLEAdvertising
removeServiceUUID(const NimBLEUUID &serviceUUID)NimBLEAdvertising
reset()NimBLEAdvertising
setAdvertisementData(NimBLEAdvertisementData &advertisementData)NimBLEAdvertising
setAdvertisementType(uint8_t adv_type)NimBLEAdvertising
setAppearance(uint16_t appearance)NimBLEAdvertising
setManufacturerData(const std::string &data)NimBLEAdvertising
setMaxInterval(uint16_t maxinterval)NimBLEAdvertising
setMaxPreferred(uint16_t)NimBLEAdvertising
setMinInterval(uint16_t mininterval)NimBLEAdvertising
setMinPreferred(uint16_t)NimBLEAdvertising
setName(const std::string &name)NimBLEAdvertising
setScanFilter(bool scanRequestWhitelistOnly, bool connectWhitelistOnly)NimBLEAdvertising
setScanResponse(bool)NimBLEAdvertising
setScanResponseData(NimBLEAdvertisementData &advertisementData)NimBLEAdvertising
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
+
+ + + + diff --git a/class_nim_b_l_e_advertising.html b/class_nim_b_l_e_advertising.html new file mode 100644 index 0000000..92e2cb9 --- /dev/null +++ b/class_nim_b_l_e_advertising.html @@ -0,0 +1,729 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEAdvertising Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEAdvertising Class Reference
+
+
+ +

Perform and manage BLE advertising. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEAdvertising ()
 Construct a default advertising object.
 
void addServiceUUID (const NimBLEUUID &serviceUUID)
 Add a service uuid to exposed list of services. More...
 
void addServiceUUID (const char *serviceUUID)
 Add a service uuid to exposed list of services. More...
 
void removeServiceUUID (const NimBLEUUID &serviceUUID)
 Add a service uuid to exposed list of services. More...
 
bool start (uint32_t duration=0, void(*advCompleteCB)(NimBLEAdvertising *pAdv)=nullptr)
 Start advertising. More...
 
+void stop ()
 Stop advertising.
 
void setAppearance (uint16_t appearance)
 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...
 
void setName (const std::string &name)
 Set the advertised name of the device. More...
 
void setManufacturerData (const std::string &data)
 Set the advertised manufacturer data. More...
 
void setURI (const std::string &uri)
 Set the advertised URI. More...
 
void setServiceData (const NimBLEUUID &uuid, const std::string &data)
 Set the service data advertised for the UUID. More...
 
void setAdvertisementType (uint8_t adv_type)
 Set the type of advertisment to use. More...
 
void setMaxInterval (uint16_t maxinterval)
 Set the maximum advertising interval. More...
 
void setMinInterval (uint16_t mininterval)
 Set the minimum advertising interval. More...
 
void setAdvertisementData (NimBLEAdvertisementData &advertisementData)
 Set the advertisement data that is to be published in a regular advertisement. More...
 
void setScanFilter (bool scanRequestWhitelistOnly, bool connectWhitelistOnly)
 Set the filtering for the scan filter. More...
 
void setScanResponseData (NimBLEAdvertisementData &advertisementData)
 Set the advertisement data that is to be published in a scan response. More...
 
void setScanResponse (bool)
 Set if scan response is available. More...
 
void setMinPreferred (uint16_t)
 Set the advertised min connection interval preferred by this device. More...
 
void setMaxPreferred (uint16_t)
 Set the advertised max connection interval preferred by this device. More...
 
+void addTxPower ()
 Add the transmission power level to the advertisement packet.
 
+void reset ()
 Stops the current advertising and resets the advertising data to the default values.
 
+void advCompleteCB ()
 Handles the callback when advertising stops.
 
bool isAdvertising ()
 Check if currently advertising. More...
 
+

Detailed Description

+

Perform and manage BLE advertising.

+

A BLE server will want to perform advertising in order to make itself known to BLE clients.

+

Member Function Documentation

+ +

◆ addServiceUUID() [1/2]

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::addServiceUUID (const char * serviceUUID)
+
+ +

Add a service uuid to exposed list of services.

+
Parameters
+ + +
[in]serviceUUIDThe string representation of the service to expose.
+
+
+ +
+
+ +

◆ addServiceUUID() [2/2]

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::addServiceUUID (const NimBLEUUIDserviceUUID)
+
+ +

Add a service uuid to exposed list of services.

+
Parameters
+ + +
[in]serviceUUIDThe UUID of the service to expose.
+
+
+ +
+
+ +

◆ isAdvertising()

+ +
+
+ + + + + + + +
bool NimBLEAdvertising::isAdvertising ()
+
+ +

Check if currently advertising.

+
Returns
true if advertising is active.
+ +
+
+ +

◆ removeServiceUUID()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::removeServiceUUID (const NimBLEUUIDserviceUUID)
+
+ +

Add a service uuid to exposed list of services.

+
Parameters
+ + +
[in]serviceUUIDThe UUID of the service to expose.
+
+
+ +
+
+ +

◆ setAdvertisementData()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setAdvertisementData (NimBLEAdvertisementDataadvertisementData)
+
+ +

Set the advertisement data that is to be published in a regular advertisement.

+
Parameters
+ + +
[in]advertisementDataThe data to be advertised.
+
+
+

The use of this function will replace any data set with addServiceUUID
+or setAppearance. If you wish for these to be advertised you must include them
+in the advertisementData parameter sent.

+ +
+
+ +

◆ setAdvertisementType()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setAdvertisementType (uint8_t adv_type)
+
+ +

Set the type of advertisment to use.

+
Parameters
+ + +
[in]adv_type
    +
  • BLE_GAP_CONN_MODE_NON (0) - not connectable advertising
  • +
  • BLE_GAP_CONN_MODE_DIR (1) - directed connectable advertising
  • +
  • BLE_GAP_CONN_MODE_UND (2) - undirected connectable advertising
  • +
+
+
+
+ +
+
+ +

◆ setAppearance()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setAppearance (uint16_t appearance)
+
+ +

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.

+
Parameters
+ + +
[in]appearanceThe appearance of the device in the advertising data.
+
+
+ +
+
+ +

◆ setManufacturerData()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setManufacturerData (const std::string & data)
+
+ +

Set the advertised manufacturer data.

+
Parameters
+ + +
[in]dataThe data to advertise.
+
+
+ +
+
+ +

◆ setMaxInterval()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setMaxInterval (uint16_t maxinterval)
+
+ +

Set the maximum advertising interval.

+
Parameters
+ + +
[in]maxintervalMaximum value for advertising interval in 0.625ms units, 0 = use default.
+
+
+ +
+
+ +

◆ setMaxPreferred()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setMaxPreferred (uint16_t maxinterval)
+
+ +

Set the advertised max connection interval preferred by this device.

+
Parameters
+ + +
[in]maxintervalthe max interval value. Range = 0x0006 to 0x0C80.
+
+
+

Values not within the range will cancel advertising of this data.
+Consumes 6 bytes of advertising space (combined with min interval).

+ +
+
+ +

◆ setMinInterval()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setMinInterval (uint16_t mininterval)
+
+ +

Set the minimum advertising interval.

+
Parameters
+ + +
[in]minintervalMinimum value for advertising interval in 0.625ms units, 0 = use default.
+
+
+ +
+
+ +

◆ setMinPreferred()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setMinPreferred (uint16_t mininterval)
+
+ +

Set the advertised min connection interval preferred by this device.

+
Parameters
+ + +
[in]minintervalthe max interval value. Range = 0x0006 to 0x0C80.
+
+
+

Values not within the range will cancel advertising of this data.
+Consumes 6 bytes of advertising space (combined with max interval).

+ +
+
+ +

◆ setName()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setName (const std::string & name)
+
+ +

Set the advertised name of the device.

+
Parameters
+ + +
[in]nameThe name to advertise.
+
+
+ +
+
+ +

◆ setScanFilter()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEAdvertising::setScanFilter (bool scanRequestWhitelistOnly,
bool connectWhitelistOnly 
)
+
+ +

Set the filtering for the scan filter.

+
Parameters
+ + + +
[in]scanRequestWhitelistOnlyIf true, only allow scan requests from those on the white list.
[in]connectWhitelistOnlyIf true, only allow connections from those on the white list.
+
+
+ +
+
+ +

◆ setScanResponse()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setScanResponse (bool set)
+
+ +

Set if scan response is available.

+
Parameters
+ + +
[in]settrue = scan response available.
+
+
+ +
+
+ +

◆ setScanResponseData()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setScanResponseData (NimBLEAdvertisementDataadvertisementData)
+
+ +

Set the advertisement data that is to be published in a scan response.

+
Parameters
+ + +
[in]advertisementDataThe data to be advertised.
+
+
+

Calling this without also using setAdvertisementData will have no effect.
+When using custom scan response data you must also use custom advertisement data.

+ +
+
+ +

◆ setServiceData()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEAdvertising::setServiceData (const NimBLEUUIDuuid,
const std::string & data 
)
+
+ +

Set the service data advertised for the UUID.

+
Parameters
+ + + +
[in]uuidThe UUID the service data belongs to.
[in]dataThe data to advertise.
+
+
+
Note
If data length is 0 the service data will not be advertised.
+ +
+
+ +

◆ setURI()

+ +
+
+ + + + + + + + +
void NimBLEAdvertising::setURI (const std::string & uri)
+
+ +

Set the advertised URI.

+
Parameters
+ + +
[in]uriThe URI to advertise.
+
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLEAdvertising::start (uint32_t duration = 0,
void(*)(NimBLEAdvertising *pAdv) advCompleteCB = nullptr 
)
+
+ +

Start advertising.

+
Parameters
+ + + +
[in]durationThe duration, in seconds, to advertise, 0 == advertise forever.
[in]advCompleteCBA pointer to a callback to be invoked when advertising ends.
+
+
+
Returns
True if advertising started successfully.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_advertising.js b/class_nim_b_l_e_advertising.js new file mode 100644 index 0000000..90b0d21 --- /dev/null +++ b/class_nim_b_l_e_advertising.js @@ -0,0 +1,27 @@ +var class_nim_b_l_e_advertising = +[ + [ "NimBLEAdvertising", "class_nim_b_l_e_advertising.html#abe6258a917243a4567c3d6eece2ddcdd", null ], + [ "addServiceUUID", "class_nim_b_l_e_advertising.html#a5e596e8dfa9268554a5b189380405d5c", null ], + [ "addServiceUUID", "class_nim_b_l_e_advertising.html#a4f334752ea04223185292fe9ab524b69", null ], + [ "addTxPower", "class_nim_b_l_e_advertising.html#ac4ff0af45d1f7ed5bc208612852bc43a", null ], + [ "advCompleteCB", "class_nim_b_l_e_advertising.html#a4de7bf016a086a2d3f6f14ae134678f2", null ], + [ "isAdvertising", "class_nim_b_l_e_advertising.html#ac257ab68520a244cb6494d793f9b6c2a", null ], + [ "removeServiceUUID", "class_nim_b_l_e_advertising.html#a725437c00152ff57ef1e21bdf7be980d", null ], + [ "reset", "class_nim_b_l_e_advertising.html#a545b505ea76396c33133d41a78fad5b8", null ], + [ "setAdvertisementData", "class_nim_b_l_e_advertising.html#af7083f58717b7e76d90d367f00a0ef08", null ], + [ "setAdvertisementType", "class_nim_b_l_e_advertising.html#a68d54f11b47b9993322efec1d07c3519", null ], + [ "setAppearance", "class_nim_b_l_e_advertising.html#aa0d30dfb57670cc8180e17dffddad416", null ], + [ "setManufacturerData", "class_nim_b_l_e_advertising.html#a1eff592870a47b0f62b0f0894efadbd4", null ], + [ "setMaxInterval", "class_nim_b_l_e_advertising.html#aab512576d8873fbbb631bac8ada19530", null ], + [ "setMaxPreferred", "class_nim_b_l_e_advertising.html#a3382cdf80f5ae46a52e3b9159f8e1b66", null ], + [ "setMinInterval", "class_nim_b_l_e_advertising.html#a16bd135cab3f06bc0ba81c2aec19cbbc", null ], + [ "setMinPreferred", "class_nim_b_l_e_advertising.html#a3bc158da1f732361df69cf16ca1cfd42", null ], + [ "setName", "class_nim_b_l_e_advertising.html#add2ecd09877d7e4548b11ec7cb8c7a47", null ], + [ "setScanFilter", "class_nim_b_l_e_advertising.html#aa3da80c7d17a7824484ee254076e4790", null ], + [ "setScanResponse", "class_nim_b_l_e_advertising.html#a6fb4d9ad3949928ac83d3e74857ab91f", null ], + [ "setScanResponseData", "class_nim_b_l_e_advertising.html#a04a51a0c639a70295a9b671f73b34358", null ], + [ "setServiceData", "class_nim_b_l_e_advertising.html#a994e43e9e4ace6ce64c57e57d0575781", null ], + [ "setURI", "class_nim_b_l_e_advertising.html#a6495d7c9ad80a8c2a5edf974705f8103", null ], + [ "start", "class_nim_b_l_e_advertising.html#aeeee5a131b42a4f76010751f4c182e4f", null ], + [ "stop", "class_nim_b_l_e_advertising.html#ab19c9e9015e812055e3cad29d52ed2ff", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_beacon-members.html b/class_nim_b_l_e_beacon-members.html new file mode 100644 index 0000000..df41746 --- /dev/null +++ b/class_nim_b_l_e_beacon-members.html @@ -0,0 +1,114 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEBeacon Member List
+
+
+ +

This is the complete list of members for NimBLEBeacon, including all inherited members.

+ + + + + + + + + + + + + + +
getData()NimBLEBeacon
getMajor()NimBLEBeacon
getManufacturerId()NimBLEBeacon
getMinor()NimBLEBeacon
getProximityUUID()NimBLEBeacon
getSignalPower()NimBLEBeacon
NimBLEBeacon()NimBLEBeacon
setData(const std::string &data)NimBLEBeacon
setMajor(uint16_t major)NimBLEBeacon
setManufacturerId(uint16_t manufacturerId)NimBLEBeacon
setMinor(uint16_t minor)NimBLEBeacon
setProximityUUID(const NimBLEUUID &uuid)NimBLEBeacon
setSignalPower(int8_t signalPower)NimBLEBeacon
+
+ + + + diff --git a/class_nim_b_l_e_beacon.html b/class_nim_b_l_e_beacon.html new file mode 100644 index 0000000..5f888ad --- /dev/null +++ b/class_nim_b_l_e_beacon.html @@ -0,0 +1,431 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEBeacon Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEBeacon Class Reference
+
+
+ +

Representation of a beacon. See: + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEBeacon ()
 Construct a default beacon object.
 
std::string getData ()
 Retrieve the data that is being advertised. More...
 
uint16_t getMajor ()
 Get the major value being advertised. More...
 
uint16_t getMinor ()
 Get the minor value being advertised. More...
 
uint16_t getManufacturerId ()
 Get the manufacturer ID being advertised. More...
 
NimBLEUUID getProximityUUID ()
 Get the proximity UUID being advertised. More...
 
int8_t getSignalPower ()
 Get the signal power being advertised. More...
 
void setData (const std::string &data)
 Set the raw data for the beacon record. More...
 
void setMajor (uint16_t major)
 Set the major value. More...
 
void setMinor (uint16_t minor)
 Set the minor value. More...
 
void setManufacturerId (uint16_t manufacturerId)
 Set the manufacturer ID. More...
 
void setProximityUUID (const NimBLEUUID &uuid)
 Set the proximity UUID. More...
 
void setSignalPower (int8_t signalPower)
 Set the signal power. More...
 
+

Detailed Description

+

Representation of a beacon. See:

+ +

Member Function Documentation

+ +

◆ getData()

+ +
+
+ + + + + + + +
std::string NimBLEBeacon::getData ()
+
+ +

Retrieve the data that is being advertised.

+
Returns
The advertised data.
+ +
+
+ +

◆ getMajor()

+ +
+
+ + + + + + + +
uint16_t NimBLEBeacon::getMajor ()
+
+ +

Get the major value being advertised.

+
Returns
The major value advertised.
+ +
+
+ +

◆ getManufacturerId()

+ +
+
+ + + + + + + +
uint16_t NimBLEBeacon::getManufacturerId ()
+
+ +

Get the manufacturer ID being advertised.

+
Returns
The manufacturer ID value advertised.
+ +
+
+ +

◆ getMinor()

+ +
+
+ + + + + + + +
uint16_t NimBLEBeacon::getMinor ()
+
+ +

Get the minor value being advertised.

+
Returns
minor value advertised.
+ +
+
+ +

◆ getProximityUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLEBeacon::getProximityUUID ()
+
+ +

Get the proximity UUID being advertised.

+
Returns
The UUID advertised.
+ +
+
+ +

◆ getSignalPower()

+ +
+
+ + + + + + + +
int8_t NimBLEBeacon::getSignalPower ()
+
+ +

Get the signal power being advertised.

+
Returns
signal power level advertised.
+ +
+
+ +

◆ setData()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setData (const std::string & data)
+
+ +

Set the raw data for the beacon record.

+
Parameters
+ + +
[in]dataThe raw beacon data.
+
+
+ +
+
+ +

◆ setMajor()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setMajor (uint16_t major)
+
+ +

Set the major value.

+
Parameters
+ + +
[in]majorThe major value.
+
+
+ +
+
+ +

◆ setManufacturerId()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setManufacturerId (uint16_t manufacturerId)
+
+ +

Set the manufacturer ID.

+
Parameters
+ + +
[in]manufacturerIdThe manufacturer ID value.
+
+
+ +
+
+ +

◆ setMinor()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setMinor (uint16_t minor)
+
+ +

Set the minor value.

+
Parameters
+ + +
[in]minorThe minor value.
+
+
+ +
+
+ +

◆ setProximityUUID()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setProximityUUID (const NimBLEUUIDuuid)
+
+ +

Set the proximity UUID.

+
Parameters
+ + +
[in]uuidThe proximity UUID.
+
+
+ +
+
+ +

◆ setSignalPower()

+ +
+
+ + + + + + + + +
void NimBLEBeacon::setSignalPower (int8_t signalPower)
+
+ +

Set the signal power.

+
Parameters
+ + +
[in]signalPowerThe signal power value.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_beacon.js b/class_nim_b_l_e_beacon.js new file mode 100644 index 0000000..2d83499 --- /dev/null +++ b/class_nim_b_l_e_beacon.js @@ -0,0 +1,16 @@ +var class_nim_b_l_e_beacon = +[ + [ "NimBLEBeacon", "class_nim_b_l_e_beacon.html#ac99e1fb4ef4795785a655b117dabdd37", null ], + [ "getData", "class_nim_b_l_e_beacon.html#ae2458f7db169b696e6368802d5ece0d9", null ], + [ "getMajor", "class_nim_b_l_e_beacon.html#aac32b7f86c73221152909528c8dbad3c", null ], + [ "getManufacturerId", "class_nim_b_l_e_beacon.html#a8803d70e8c238ccb98edcf31af0ead40", null ], + [ "getMinor", "class_nim_b_l_e_beacon.html#a4bc9fd3a68b4b1772dc4d102573c6788", null ], + [ "getProximityUUID", "class_nim_b_l_e_beacon.html#a999ade63059620d619609676d85186ad", null ], + [ "getSignalPower", "class_nim_b_l_e_beacon.html#a4eb27b3e447f8f0b44128f77933be668", null ], + [ "setData", "class_nim_b_l_e_beacon.html#a92292c8b1f5ba0097f063ff6e60934ff", null ], + [ "setMajor", "class_nim_b_l_e_beacon.html#abef1334108f8049832da7fffb56f6eea", null ], + [ "setManufacturerId", "class_nim_b_l_e_beacon.html#a1ec99fe7684181e7b899cd763f9b44d9", null ], + [ "setMinor", "class_nim_b_l_e_beacon.html#a44d03b0c2b1bea3bee8f15feeb73fb8e", null ], + [ "setProximityUUID", "class_nim_b_l_e_beacon.html#a7f33ffc298285d1ab02088b2584f2256", null ], + [ "setSignalPower", "class_nim_b_l_e_beacon.html#ae2dd8cd367260dd8374309576457cec0", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_characteristic-members.html b/class_nim_b_l_e_characteristic-members.html new file mode 100644 index 0000000..3b24e20 --- /dev/null +++ b/class_nim_b_l_e_characteristic-members.html @@ -0,0 +1,127 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLECharacteristic Member List
+
+
+ +

This is the complete list of members for NimBLECharacteristic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
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
getCallbacks()NimBLECharacteristic
getDataLength()NimBLECharacteristic
getDescriptorByHandle(uint16_t handle)NimBLECharacteristic
getDescriptorByUUID(const char *uuid)NimBLECharacteristic
getDescriptorByUUID(const NimBLEUUID &uuid)NimBLECharacteristic
getHandle()NimBLECharacteristic
getProperties()NimBLECharacteristic
getService()NimBLECharacteristic
getSubscribedCount()NimBLECharacteristic
getUUID()NimBLECharacteristic
getValue(time_t *timestamp=nullptr)NimBLECharacteristic
getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)NimBLECharacteristicinline
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
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)NimBLECharacteristicinline
toString()NimBLECharacteristic
~NimBLECharacteristic()NimBLECharacteristic
+
+ + + + diff --git a/class_nim_b_l_e_characteristic.html b/class_nim_b_l_e_characteristic.html new file mode 100644 index 0000000..ad1050d --- /dev/null +++ b/class_nim_b_l_e_characteristic.html @@ -0,0 +1,876 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLECharacteristic Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLECharacteristic Class Reference
+
+
+ +

The model of a BLE Characteristic. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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 ()
 Destructor.
 
uint16_t getHandle ()
 Get the handle of the characteristic. More...
 
NimBLEUUID getUUID ()
 Get the UUID of the characteristic. More...
 
std::string toString ()
 Return a string representation of the characteristic. More...
 
void setCallbacks (NimBLECharacteristicCallbacks *pCallbacks)
 Set the callback handlers for this characteristic. More...
 
+NimBLECharacteristicCallbacksgetCallbacks ()
 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.
 
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...
 
size_t getSubscribedCount ()
 Get the number of clients subscribed to the characteristic. More...
 
NimBLEDescriptorcreateDescriptor (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...
 
NimBLEDescriptorcreateDescriptor (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...
 
NimBLEDescriptorgetDescriptorByUUID (const char *uuid)
 Return the BLE Descriptor for the given UUID. More...
 
NimBLEDescriptorgetDescriptorByUUID (const NimBLEUUID &uuid)
 Return the BLE Descriptor for the given UUID. More...
 
NimBLEDescriptorgetDescriptorByHandle (uint16_t handle)
 Return the BLE Descriptor for the given handle. More...
 
void removeDescriptor (NimBLEDescriptor *pDescriptor, bool deleteDsc=false)
 Remove a descriptor from the characterisitc. 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 >
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...
 
+NimBLEServicegetService ()
 Get the service associated with this characteristic.
 
uint16_t getProperties ()
 Get the properties of the characteristic. More...
 
+

Detailed Description

+

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.

+

Constructor & Destructor Documentation

+ +

◆ NimBLECharacteristic() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLECharacteristic::NimBLECharacteristic (const char * uuid,
uint16_t properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE,
NimBLEServicepService = nullptr 
)
+
+ +

Construct a characteristic.

+
Parameters
+ + + + +
[in]uuid- UUID (const char*) for the characteristic.
[in]properties- Properties for the characteristic.
[in]pService- pointer to the service instance this characteristic belongs to.
+
+
+ +
+
+ +

◆ NimBLECharacteristic() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLECharacteristic::NimBLECharacteristic (const NimBLEUUIDuuid,
uint16_t properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE,
NimBLEServicepService = nullptr 
)
+
+ +

Construct a characteristic.

+
Parameters
+ + + + +
[in]uuid- UUID for the characteristic.
[in]properties- Properties for the characteristic.
[in]pService- pointer to the service instance this characteristic belongs to.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ addDescriptor()

+ +
+
+ + + + + + + + +
void NimBLECharacteristic::addDescriptor (NimBLEDescriptorpDescriptor)
+
+ +

Add a descriptor to the characteristic.

+
Parameters
+ + +
[in]pDescriptorA pointer to the descriptor to add.
+
+
+ +
+
+ +

◆ createDescriptor() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEDescriptor * NimBLECharacteristic::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.

+
Parameters
+ + + + +
[in]uuid- The UUID of the descriptor.
[in]properties- The properties of the descriptor.
[in]max_len- The max length in bytes of the descriptor value.
+
+
+
Returns
The new BLE descriptor.
+ +
+
+ +

◆ createDescriptor() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEDescriptor * NimBLECharacteristic::createDescriptor (const NimBLEUUIDuuid,
uint32_t properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE,
uint16_t max_len = 100 
)
+
+ +

Create a new BLE Descriptor associated with this characteristic.

+
Parameters
+ + + + +
[in]uuid- The UUID of the descriptor.
[in]properties- The properties of the descriptor.
[in]max_len- The max length in bytes of the descriptor value.
+
+
+
Returns
The new BLE descriptor.
+ +
+
+ +

◆ getDataLength()

+ +
+
+ + + + + + + +
size_t NimBLECharacteristic::getDataLength ()
+
+ +

Retrieve the the current data length of the characteristic.

+
Returns
The length of the current characteristic data.
+ +
+
+ +

◆ getDescriptorByHandle()

+ +
+
+ + + + + + + + +
NimBLEDescriptor * NimBLECharacteristic::getDescriptorByHandle (uint16_t handle)
+
+ +

Return the BLE Descriptor for the given handle.

+
Parameters
+ + +
[in]handleThe handle of the descriptor.
+
+
+
Returns
A pointer to the descriptor object or nullptr if not found.
+ +
+
+ +

◆ getDescriptorByUUID() [1/2]

+ +
+
+ + + + + + + + +
NimBLEDescriptor * NimBLECharacteristic::getDescriptorByUUID (const char * uuid)
+
+ +

Return the BLE Descriptor for the given UUID.

+
Parameters
+ + +
[in]uuidThe UUID of the descriptor.
+
+
+
Returns
A pointer to the descriptor object or nullptr if not found.
+ +
+
+ +

◆ getDescriptorByUUID() [2/2]

+ +
+
+ + + + + + + + +
NimBLEDescriptor * NimBLECharacteristic::getDescriptorByUUID (const NimBLEUUIDuuid)
+
+ +

Return the BLE Descriptor for the given UUID.

+
Parameters
+ + +
[in]uuidThe UUID of the descriptor.
+
+
+
Returns
A pointer to the descriptor object or nullptr if not found.
+ +
+
+ +

◆ getHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLECharacteristic::getHandle ()
+
+ +

Get the handle of the characteristic.

+
Returns
The handle of the characteristic.
+ +
+
+ +

◆ getProperties()

+ +
+
+ + + + + + + +
uint16_t NimBLECharacteristic::getProperties ()
+
+ +

Get the properties of the characteristic.

+
Returns
The properties of the characteristic.
+ +
+
+ +

◆ getSubscribedCount()

+ +
+
+ + + + + + + +
size_t NimBLECharacteristic::getSubscribedCount ()
+
+ +

Get the number of clients subscribed to the characteristic.

+
Returns
Number of clients subscribed to notifications / indications.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLECharacteristic::getUUID ()
+
+ +

Get the UUID of the characteristic.

+
Returns
The UUID of the characteristic.
+ +
+
+ +

◆ getValue() [1/2]

+ +
+
+ + + + + + + + +
std::string NimBLECharacteristic::getValue (time_t * timestamp = nullptr)
+
+ +

Retrieve the current value of the characteristic.

+
Returns
A std::string containing the current characteristic value.
+ +
+
+ +

◆ getValue() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
T NimBLECharacteristic::getValue (time_t * timestamp = nullptr,
bool skipSizeCheck = false 
)
+
+inline
+
+ +

A template to convert the characteristic data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + + +
[in]timestampA pointer to a time_t struct to store the time the value was read.
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: getValue<type>(&timestamp, skipSizeCheck);

+ +
+
+ +

◆ notify()

+ +
+
+ + + + + + + + +
void NimBLECharacteristic::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.

+
Parameters
+ + +
[in]is_notificationif true sends a notification, false sends an indication.
+
+
+ +
+
+ +

◆ removeDescriptor()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLECharacteristic::removeDescriptor (NimBLEDescriptorpDescriptor,
bool deleteDsc = false 
)
+
+ +

Remove a descriptor from the characterisitc.

+
Parameters
+ + + +
[in]pDescriptorA pointer to the descriptor instance to remove from the characterisitc.
[in]deleteDscIf true it will delete the descriptor instance and free it's resources.
+
+
+ +
+
+ +

◆ setCallbacks()

+ +
+
+ + + + + + + + +
void NimBLECharacteristic::setCallbacks (NimBLECharacteristicCallbackspCallbacks)
+
+ +

Set the callback handlers for this characteristic.

+
Parameters
+ + +
[in]pCallbacksAn instance of a NimBLECharacteristicCallbacks class
+used to define any callbacks for the characteristic.
+
+
+ +
+
+ +

◆ setValue() [1/3]

+ +
+
+ + + + + + + + +
void NimBLECharacteristic::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.

+
Parameters
+ + +
[in]valuethe std::string value of the characteristic.
+
+
+ +
+
+ +

◆ setValue() [2/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
void NimBLECharacteristic::setValue (const T & s)
+
+inline
+
+ +

Convenience template to set the characteristic value to <type>val.

+
Parameters
+ + +
[in]sThe value to set.
+
+
+ +
+
+ +

◆ setValue() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLECharacteristic::setValue (const uint8_t * data,
size_t length 
)
+
+ +

Set the value of the characteristic.

+
Parameters
+ + + +
[in]dataThe data to set for the characteristic.
[in]lengthThe length of the data in bytes.
+
+
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLECharacteristic::toString ()
+
+ +

Return a string representation of the characteristic.

+
Returns
A string representation of the characteristic.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_characteristic.js b/class_nim_b_l_e_characteristic.js new file mode 100644 index 0000000..16eaeb5 --- /dev/null +++ b/class_nim_b_l_e_characteristic.js @@ -0,0 +1,29 @@ +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#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 ], + [ "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 ], + [ "getDescriptorByUUID", "class_nim_b_l_e_characteristic.html#abc5f4819e4d2c0956857ddd7a1064189", null ], + [ "getDescriptorByUUID", "class_nim_b_l_e_characteristic.html#ae310b081d2d7d2a52ab2ddc11d5dbd99", null ], + [ "getHandle", "class_nim_b_l_e_characteristic.html#acc3ea122771cd447103adfce22537379", null ], + [ "getProperties", "class_nim_b_l_e_characteristic.html#a79759a98d9bdb761cb12c1ea6f601afc", null ], + [ "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#a7d09c29b26362f6ddcaf51a9c9dc8be4", null ], + [ "indicate", "class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434", null ], + [ "notify", "class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813", 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#aba05898f446e31222fbe509fa357c730", null ], + [ "setValue", "class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677", null ], + [ "toString", "class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_characteristic_callbacks-members.html b/class_nim_b_l_e_characteristic_callbacks-members.html new file mode 100644 index 0000000..a1a06b5 --- /dev/null +++ b/class_nim_b_l_e_characteristic_callbacks-members.html @@ -0,0 +1,109 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLECharacteristicCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLECharacteristicCallbacks, including all inherited members.

+ + + + + + + + + +
onNotify(NimBLECharacteristic *pCharacteristic)NimBLECharacteristicCallbacksvirtual
onRead(NimBLECharacteristic *pCharacteristic)NimBLECharacteristicCallbacksvirtual
onRead(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)NimBLECharacteristicCallbacksvirtual
onStatus(NimBLECharacteristic *pCharacteristic, Status s, int code)NimBLECharacteristicCallbacksvirtual
onSubscribe(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc, uint16_t subValue)NimBLECharacteristicCallbacksvirtual
onWrite(NimBLECharacteristic *pCharacteristic)NimBLECharacteristicCallbacksvirtual
onWrite(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)NimBLECharacteristicCallbacksvirtual
Status enum nameNimBLECharacteristicCallbacks
+
+ + + + diff --git a/class_nim_b_l_e_characteristic_callbacks.html b/class_nim_b_l_e_characteristic_callbacks.html new file mode 100644 index 0000000..4606588 --- /dev/null +++ b/class_nim_b_l_e_characteristic_callbacks.html @@ -0,0 +1,461 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLECharacteristicCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLECharacteristicCallbacks Class Reference
+
+
+ +

Callbacks that can be associated with a BLE characteristic to inform of events. + More...

+ + + + + +

+Public Types

enum  Status
 An enum to provide the callback the status of the notification/indication, implemented for backward compatibility. More...
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void onRead (NimBLECharacteristic *pCharacteristic)
 Callback function to support a read request. More...
 
virtual void onRead (NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)
 Callback function to support a read request. More...
 
virtual void onWrite (NimBLECharacteristic *pCharacteristic)
 Callback function to support a write request. More...
 
virtual void onWrite (NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)
 Callback function to support a write request. More...
 
virtual void onNotify (NimBLECharacteristic *pCharacteristic)
 Callback function to support a Notify request. More...
 
virtual void onStatus (NimBLECharacteristic *pCharacteristic, Status s, int code)
 Callback function to support a Notify/Indicate Status report. More...
 
virtual void onSubscribe (NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc, uint16_t subValue)
 Callback function called when a client changes subscription status. More...
 
+

Detailed Description

+

Callbacks that can be associated with a BLE characteristic to inform of events.

+

When a server application creates a BLE characteristic, we may wish to be informed when there is either a read or write request to the characteristic's value. An application can register a sub-classed instance of this class and will be notified when such an event happens.

+

Member Enumeration Documentation

+ +

◆ Status

+ +
+
+ +

An enum to provide the callback the status of the notification/indication, implemented for backward compatibility.

+
Deprecated:
To be removed in the future as the NimBLE stack return code is also provided.
+ +
+
+

Member Function Documentation

+ +

◆ onNotify()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLECharacteristicCallbacks::onNotify (NimBLECharacteristicpCharacteristic)
+
+virtual
+
+ +

Callback function to support a Notify request.

+
Parameters
+ + +
[in]pCharacteristicThe characteristic that is the source of the event.
+
+
+ +
+
+ +

◆ onRead() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLECharacteristicCallbacks::onRead (NimBLECharacteristicpCharacteristic)
+
+virtual
+
+ +

Callback function to support a read request.

+
Parameters
+ + +
[in]pCharacteristicThe characteristic that is the source of the event.
+
+
+ +
+
+ +

◆ onRead() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLECharacteristicCallbacks::onRead (NimBLECharacteristicpCharacteristic,
ble_gap_conn_desc * desc 
)
+
+virtual
+
+ +

Callback function to support a read request.

+
Parameters
+ + + +
[in]pCharacteristicThe characteristic that is the source of the event.
[in]descThe connection description struct that is associated with the peer that performed the read.
+
+
+ +
+
+ +

◆ onStatus()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLECharacteristicCallbacks::onStatus (NimBLECharacteristicpCharacteristic,
Status s,
int code 
)
+
+virtual
+
+ +

Callback function to support a Notify/Indicate Status report.

+
Parameters
+ + + + +
[in]pCharacteristicThe characteristic that is the source of the event.
[in]sStatus of the notification/indication.
[in]codeAdditional return code from the NimBLE stack.
+
+
+ +
+
+ +

◆ onSubscribe()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLECharacteristicCallbacks::onSubscribe (NimBLECharacteristicpCharacteristic,
ble_gap_conn_desc * desc,
uint16_t subValue 
)
+
+virtual
+
+ +

Callback function called when a client changes subscription status.

+
Parameters
+ + + + +
[in]pCharacteristicThe characteristic that is the source of the event.
[in]descThe connection description struct that is associated with the client.
[in]subValueThe subscription status:
    +
  • 0 = Un-Subscribed
  • +
  • 1 = Notifications
  • +
  • 2 = Indications
  • +
  • 3 = Notifications and Indications
  • +
+
+
+
+ +
+
+ +

◆ onWrite() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLECharacteristicCallbacks::onWrite (NimBLECharacteristicpCharacteristic)
+
+virtual
+
+ +

Callback function to support a write request.

+
Parameters
+ + +
[in]pCharacteristicThe characteristic that is the source of the event.
+
+
+ +
+
+ +

◆ onWrite() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLECharacteristicCallbacks::onWrite (NimBLECharacteristicpCharacteristic,
ble_gap_conn_desc * desc 
)
+
+virtual
+
+ +

Callback function to support a write request.

+
Parameters
+ + + +
[in]pCharacteristicThe characteristic that is the source of the event.
[in]descThe connection description struct that is associated with the peer that performed the write.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_characteristic_callbacks.js b/class_nim_b_l_e_characteristic_callbacks.js new file mode 100644 index 0000000..e05879d --- /dev/null +++ b/class_nim_b_l_e_characteristic_callbacks.js @@ -0,0 +1,14 @@ +var class_nim_b_l_e_characteristic_callbacks = +[ + [ "Status", "class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f", [ + [ "Example", "md_docs__migration_guide.html#autotoc_md51", null ], + [ "Example", "md_docs__migration_guide.html#autotoc_md52", null ] + ] ], + [ "onNotify", "class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9", null ], + [ "onRead", "class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93", null ], + [ "onRead", "class_nim_b_l_e_characteristic_callbacks.html#acae83420ae378277c225ce465f979f88", null ], + [ "onStatus", "class_nim_b_l_e_characteristic_callbacks.html#ab17e7c61723a33cd3c922e3ca9c20f1e", null ], + [ "onSubscribe", "class_nim_b_l_e_characteristic_callbacks.html#a3c0c0f524bc0d00d24a7c5ea92c5cb7e", null ], + [ "onWrite", "class_nim_b_l_e_characteristic_callbacks.html#aac7caf4a80da061b5beda5ebcd214fc3", null ], + [ "onWrite", "class_nim_b_l_e_characteristic_callbacks.html#a303a44a2efad76d54d67955fcb7b05d7", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_client-members.html b/class_nim_b_l_e_client-members.html new file mode 100644 index 0000000..29733fd --- /dev/null +++ b/class_nim_b_l_e_client-members.html @@ -0,0 +1,129 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEClient Member List
+
+
+ +

This is the complete list of members for NimBLEClient, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin()NimBLEClient
connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)NimBLEClient
connect(const NimBLEAddress &address, bool deleteAttibutes=true)NimBLEClient
connect(bool deleteAttibutes=true)NimBLEClient
deleteService(const NimBLEUUID &uuid)NimBLEClient
deleteServices()NimBLEClient
disconnect(uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)NimBLEClient
discoverAttributes()NimBLEClient
end()NimBLEClient
getCharacteristic(const uint16_t handle)NimBLEClient
getConnId()NimBLEClient
getConnInfo()NimBLEClient
getMTU()NimBLEClient
getPeerAddress()NimBLEClient
getRssi()NimBLEClient
getService(const char *uuid)NimBLEClient
getService(const NimBLEUUID &uuid)NimBLEClient
getServices(bool refresh=false)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
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
+
+ + + + diff --git a/class_nim_b_l_e_client.html b/class_nim_b_l_e_client.html new file mode 100644 index 0000000..294a02e --- /dev/null +++ b/class_nim_b_l_e_client.html @@ -0,0 +1,924 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEClient Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEClient Class Reference
+
+
+ +

A model of a BLE client. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+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...
 
int disconnect (uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)
 Disconnect from the peer. More...
 
+NimBLEAddress getPeerAddress ()
 Retrieve the address of the peer.
 
void setPeerAddress (const NimBLEAddress &address)
 Set the peer address. More...
 
int getRssi ()
 Ask the BLE server for the RSSI value. More...
 
std::vector< NimBLERemoteService * > * getServices (bool refresh=false)
 Get a pointer to the vector of found services. More...
 
std::vector< NimBLERemoteService * >::iterator begin ()
 Get iterator to the beginning of the vector of remote service pointers. More...
 
std::vector< NimBLERemoteService * >::iterator end ()
 Get iterator to the end of the vector of remote service pointers. More...
 
NimBLERemoteServicegetService (const char *uuid)
 Get the service BLE Remote Service instance corresponding to the uuid. More...
 
NimBLERemoteServicegetService (const NimBLEUUID &uuid)
 Get the service object corresponding to the uuid. More...
 
+void deleteServices ()
 Delete all service objects created by this client and clear the vector.
 
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...
 
NimBLERemoteCharacteristicgetCharacteristic (const uint16_t handle)
 Get the remote characteristic with the specified handle. More...
 
bool isConnected ()
 Are we connected to a server? More...
 
void setClientCallbacks (NimBLEClientCallbacks *pClientCallbacks, bool deleteCallbacks=true)
 Set the callbacks that will be invoked when events are received. More...
 
std::string toString ()
 Return a string representation of this client. More...
 
uint16_t getConnId ()
 Get the connection id for this client. More...
 
uint16_t getMTU ()
 Get the current mtu of this connection. More...
 
bool secureConnection ()
 Initiate a secure connection (pair/bond) with the server.
+Called automatically when a characteristic or descriptor requires encryption or authentication to access it. More...
 
void setConnectTimeout (uint8_t timeout)
 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...
 
void updateConnParams (uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
 Update the connection parameters: More...
 
+void discoverAttributes ()
 Retrieves the full database of attributes that the peripheral has available.
 
+NimBLEConnInfo getConnInfo ()
 Get detailed information about the current peer connection.
 
+

Detailed Description

+

A model of a BLE client.

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteService * >::iterator NimBLEClient::begin ()
+
+ +

Get iterator to the beginning of the vector of remote service pointers.

+
Returns
An iterator to the beginning of the vector of remote service pointers.
+ +
+
+ +

◆ connect() [1/3]

+ +
+
+ + + + + + + + +
bool NimBLEClient::connect (bool deleteAttibutes = true)
+
+ +

Connect to the BLE Server.

+
Parameters
+ + +
[in]deleteAttibutesIf true this will delete any attribute objects this client may already
+have created and clears the vectors after successful connection.
+
+
+
Returns
True on success.
+ +
+
+ +

◆ connect() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLEClient::connect (const NimBLEAddressaddress,
bool deleteAttibutes = true 
)
+
+ +

Connect to the BLE Server.

+
Parameters
+ + + +
[in]addressThe address of the server.
[in]deleteAttibutesIf true this will delete any attribute objects this client may already
+have created and clears the vectors after successful connection.
+
+
+
Returns
True on success.
+ +
+
+ +

◆ connect() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLEClient::connect (NimBLEAdvertisedDevicedevice,
bool deleteAttibutes = true 
)
+
+ +

Connect to an advertising device.

+
Parameters
+ + + +
[in]deviceThe device to connect to.
[in]deleteAttibutesIf true this will delete any attribute objects this client may already
+have created and clears the vectors after successful connection.
+
+
+
Returns
True on success.
+ +
+
+ +

◆ deleteService()

+ +
+
+ + + + + + + + +
size_t NimBLEClient::deleteService (const NimBLEUUIDuuid)
+
+ +

Delete service by UUID.

+
Parameters
+ + +
[in]uuidThe UUID of the service to be deleted from the local database.
+
+
+
Returns
Number of services left.
+ +
+
+ +

◆ disconnect()

+ +
+
+ + + + + + + + +
int NimBLEClient::disconnect (uint8_t reason = BLE_ERR_REM_USER_CONN_TERM)
+
+ +

Disconnect from the peer.

+
Returns
Error code from NimBLE stack, 0 = success.
+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteService * >::iterator NimBLEClient::end ()
+
+ +

Get iterator to the end of the vector of remote service pointers.

+
Returns
An iterator to the end of the vector of remote service pointers.
+ +
+
+ +

◆ getCharacteristic()

+ +
+
+ + + + + + + + +
NimBLERemoteCharacteristic * NimBLEClient::getCharacteristic (const uint16_t handle)
+
+ +

Get the remote characteristic with the specified handle.

+
Parameters
+ + +
[in]handleThe handle of the desired characteristic.
+
+
+
Returns
The matching remote characteristic, nullptr otherwise.
+ +
+
+ +

◆ getConnId()

+ +
+
+ + + + + + + +
uint16_t NimBLEClient::getConnId ()
+
+ +

Get the connection id for this client.

+
Returns
The connection id.
+ +
+
+ +

◆ getMTU()

+ +
+
+ + + + + + + +
uint16_t NimBLEClient::getMTU ()
+
+ +

Get the current mtu of this connection.

+
Returns
The MTU value.
+ +
+
+ +

◆ getRssi()

+ +
+
+ + + + + + + +
int NimBLEClient::getRssi ()
+
+ +

Ask the BLE server for the RSSI value.

+
Returns
The RSSI value.
+ +
+
+ +

◆ getService() [1/2]

+ +
+
+ + + + + + + + +
NimBLERemoteService * NimBLEClient::getService (const char * uuid)
+
+ +

Get the service BLE Remote Service instance corresponding to the uuid.

+
Parameters
+ + +
[in]uuidThe UUID of the service being sought.
+
+
+
Returns
A pointer to the service or nullptr if not found.
+ +
+
+ +

◆ getService() [2/2]

+ +
+
+ + + + + + + + +
NimBLERemoteService * NimBLEClient::getService (const NimBLEUUIDuuid)
+
+ +

Get the service object corresponding to the uuid.

+
Parameters
+ + +
[in]uuidThe UUID of the service being sought.
+
+
+
Returns
A pointer to the service or nullptr if not found.
+ +
+
+ +

◆ getServices()

+ +
+
+ + + + + + + + +
std::vector< NimBLERemoteService * > * NimBLEClient::getServices (bool refresh = false)
+
+ +

Get a pointer to the vector of found services.

+
Parameters
+ + +
[in]refreshIf true the current services vector will be cleared and
+all services will be retrieved from the peripheral.
+If false the vector will be returned with the currently stored services.
+
+
+
Returns
A pointer to the vector of available services.
+ +
+
+ +

◆ getValue()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::string NimBLEClient::getValue (const NimBLEUUIDserviceUUID,
const NimBLEUUIDcharacteristicUUID 
)
+
+ +

Get the value of a specific characteristic associated with a specific service.

+
Parameters
+ + + +
[in]serviceUUIDThe service that owns the characteristic.
[in]characteristicUUIDThe characteristic whose value we wish to read.
+
+
+
Returns
characteristic value or an empty string if not found
+ +
+
+ +

◆ isConnected()

+ +
+
+ + + + + + + +
bool NimBLEClient::isConnected ()
+
+ +

Are we connected to a server?

+
Returns
True if we are connected and false if we are not connected.
+ +
+
+ +

◆ secureConnection()

+ +
+
+ + + + + + + +
bool NimBLEClient::secureConnection ()
+
+ +

Initiate a secure connection (pair/bond) with the server.
+Called automatically when a characteristic or descriptor requires encryption or authentication to access it.

+
Returns
True on success.
+ +
+
+ +

◆ setClientCallbacks()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEClient::setClientCallbacks (NimBLEClientCallbackspClientCallbacks,
bool deleteCallbacks = true 
)
+
+ +

Set the callbacks that will be invoked when events are received.

+
Parameters
+ + + +
[in]pClientCallbacksA pointer to a class to receive the event callbacks.
[in]deleteCallbacksIf true this will delete the callback class sent when the client is destructed.
+
+
+ +
+
+ +

◆ setConnectionParams()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLEClient::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.

+
Parameters
+ + + + + + + +
[in]minIntervalThe minimum connection interval in 1.25ms units.
[in]maxIntervalThe maximum connection interval in 1.25ms units.
[in]latencyThe number of packets allowed to skip (extends max interval).
[in]timeoutThe timeout time in 10ms units before disconnecting.
[in]scanIntervalThe scan interval to use when attempting to connect in 0.625ms units.
[in]scanWindowThe scan window to use when attempting to connect in 0.625ms units.
+
+
+ +
+
+ +

◆ setConnectTimeout()

+ +
+
+ + + + + + + + +
void NimBLEClient::setConnectTimeout (uint8_t time)
+
+ +

Set the timeout to wait for connection attempt to complete.

+
Parameters
+ + +
[in]timeThe number of seconds before timeout.
+
+
+ +
+
+ +

◆ setPeerAddress()

+ +
+
+ + + + + + + + +
void NimBLEClient::setPeerAddress (const NimBLEAddressaddress)
+
+ +

Set the peer address.

+
Parameters
+ + +
[in]addressThe address of the peer that this client is connected or should connect to.
+
+
+ +
+
+ +

◆ setValue()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLEClient::setValue (const NimBLEUUIDserviceUUID,
const NimBLEUUIDcharacteristicUUID,
const std::string & value,
bool response = false 
)
+
+ +

Set the value of a specific characteristic associated with a specific service.

+
Parameters
+ + + + + +
[in]serviceUUIDThe service that owns the characteristic.
[in]characteristicUUIDThe characteristic whose value we wish to write.
[in]valueThe value to write to the characteristic.
[in]responseIf true, uses write with response operation.
+
+
+
Returns
true if successful otherwise false
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLEClient::toString ()
+
+ +

Return a string representation of this client.

+
Returns
A string representation of this client.
+ +
+
+ +

◆ updateConnParams()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLEClient::updateConnParams (uint16_t minInterval,
uint16_t maxInterval,
uint16_t latency,
uint16_t timeout 
)
+
+ +

Update the connection parameters:

+
    +
  • Can only be used after a connection has been established.
    Parameters
    + + + + + +
    [in]minIntervalThe minimum connection interval in 1.25ms units.
    [in]maxIntervalThe maximum connection interval in 1.25ms units.
    [in]latencyThe number of packets allowed to skip (extends max interval).
    [in]timeoutThe timeout time in 10ms units before disconnecting.
    +
    +
    +
  • +
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_client.js b/class_nim_b_l_e_client.js new file mode 100644 index 0000000..52b97f8 --- /dev/null +++ b/class_nim_b_l_e_client.js @@ -0,0 +1,31 @@ +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 ], + [ "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 ], + [ "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 ], + [ "getConnInfo", "class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267", null ], + [ "getMTU", "class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a", null ], + [ "getPeerAddress", "class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb", null ], + [ "getRssi", "class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78", null ], + [ "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 ], + [ "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 ], + [ "setConnectTimeout", "class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e", null ], + [ "setPeerAddress", "class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07", null ], + [ "setValue", "class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767", 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 new file mode 100644 index 0000000..a1ffa13 --- /dev/null +++ b/class_nim_b_l_e_client_callbacks-members.html @@ -0,0 +1,107 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEClientCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLEClientCallbacks, including all inherited members.

+ + + + + + + +
onAuthenticationComplete(ble_gap_conn_desc *desc)NimBLEClientCallbacksvirtual
onConfirmPIN(uint32_t pin)NimBLEClientCallbacksvirtual
onConnect(NimBLEClient *pClient)NimBLEClientCallbacksvirtual
onConnParamsUpdateRequest(NimBLEClient *pClient, const ble_gap_upd_params *params)NimBLEClientCallbacksvirtual
onDisconnect(NimBLEClient *pClient)NimBLEClientCallbacksvirtual
onPassKeyRequest()NimBLEClientCallbacksvirtual
+
+ + + + diff --git a/class_nim_b_l_e_client_callbacks.html b/class_nim_b_l_e_client_callbacks.html new file mode 100644 index 0000000..7db6f26 --- /dev/null +++ b/class_nim_b_l_e_client_callbacks.html @@ -0,0 +1,342 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEClientCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEClientCallbacks Class Reference
+
+
+ +

Callbacks associated with a BLE client. + More...

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void onConnect (NimBLEClient *pClient)
 Called after client connects. More...
 
virtual void onDisconnect (NimBLEClient *pClient)
 Called when disconnected from the server. More...
 
virtual bool onConnParamsUpdateRequest (NimBLEClient *pClient, const ble_gap_upd_params *params)
 Called when server requests to update the connection parameters. More...
 
virtual uint32_t onPassKeyRequest ()
 Called when server requests a passkey for pairing. More...
 
virtual void onAuthenticationComplete (ble_gap_conn_desc *desc)
 Called when the pairing procedure is complete. More...
 
virtual bool onConfirmPIN (uint32_t pin)
 Called when using numeric comparision for pairing. More...
 
+

Detailed Description

+

Callbacks associated with a BLE client.

+

Member Function Documentation

+ +

◆ onAuthenticationComplete()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEClientCallbacks::onAuthenticationComplete (ble_gap_conn_desc * desc)
+
+virtual
+
+ +

Called when the pairing procedure is complete.

+
Parameters
+ + +
[in]descA pointer to the struct containing the connection information.
+This can be used to check the status of the connection encryption/pairing.
+
+
+ +
+
+ +

◆ onConfirmPIN()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEClientCallbacks::onConfirmPIN (uint32_t pin)
+
+virtual
+
+ +

Called when using numeric comparision for pairing.

+
Parameters
+ + +
[in]pinThe pin to compare with the server.
+
+
+
Returns
True to accept the pin.
+ +
+
+ +

◆ onConnect()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEClientCallbacks::onConnect (NimBLEClientpClient)
+
+virtual
+
+ +

Called after client connects.

+
Parameters
+ + +
[in]pClientA pointer to the calling client object.
+
+
+ +
+
+ +

◆ onConnParamsUpdateRequest()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool NimBLEClientCallbacks::onConnParamsUpdateRequest (NimBLEClientpClient,
const ble_gap_upd_params * params 
)
+
+virtual
+
+ +

Called when server requests to update the connection parameters.

+
Parameters
+ + + +
[in]pClientA pointer to the calling client object.
[in]paramsA pointer to the struct containing the connection parameters requested.
+
+
+
Returns
True to accept the parmeters.
+ +
+
+ +

◆ onDisconnect()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEClientCallbacks::onDisconnect (NimBLEClientpClient)
+
+virtual
+
+ +

Called when disconnected from the server.

+
Parameters
+ + +
[in]pClientA pointer to the calling client object.
+
+
+ +
+
+ +

◆ onPassKeyRequest()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t NimBLEClientCallbacks::onPassKeyRequest ()
+
+virtual
+
+ +

Called when server requests a passkey for pairing.

+
Returns
The passkey to be sent to the server.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_client_callbacks.js b/class_nim_b_l_e_client_callbacks.js new file mode 100644 index 0000000..2ea74cd --- /dev/null +++ b/class_nim_b_l_e_client_callbacks.js @@ -0,0 +1,9 @@ +var class_nim_b_l_e_client_callbacks = +[ + [ "onAuthenticationComplete", "class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065", null ], + [ "onConfirmPIN", "class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0", null ], + [ "onConnect", "class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae", null ], + [ "onConnParamsUpdateRequest", "class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6", null ], + [ "onDisconnect", "class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808", null ], + [ "onPassKeyRequest", "class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_conn_info-members.html b/class_nim_b_l_e_conn_info-members.html new file mode 100644 index 0000000..ff6fb38 --- /dev/null +++ b/class_nim_b_l_e_conn_info-members.html @@ -0,0 +1,114 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEConnInfo Member List
+
+ +
+ + + + diff --git a/class_nim_b_l_e_conn_info.html b/class_nim_b_l_e_conn_info.html new file mode 100644 index 0000000..0a9dc35 --- /dev/null +++ b/class_nim_b_l_e_conn_info.html @@ -0,0 +1,163 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEConnInfo Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEConnInfo Class Reference
+
+
+ +

Connection information. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+NimBLEAddress getAddress ()
 Gets the over-the-air address of the connected peer.
 
+NimBLEAddress getIdAddress ()
 Gets the ID address of the connected peer.
 
+uint16_t getConnHandle ()
 Gets the connection handle of the connected peer.
 
+uint16_t getConnInterval ()
 Gets the connection interval for this connection (in 1.25ms units)
 
+uint16_t getConnTimeout ()
 Gets the supervision timeout for this connection (in 10ms units)
 
+uint16_t getConnLatency ()
 Gets the allowable latency for this connection (unit = number of intervals)
 
+uint16_t getMTU ()
 Gets the maximum transmission unit size for this connection (in bytes)
 
+bool isMaster ()
 Check if we are in the master role in this connection.
 
+bool isSlave ()
 Check if we are in the slave role in this connection.
 
+bool isBonded ()
 Check if we are connected to a bonded peer.
 
+bool isEncrypted ()
 Check if the connection in encrypted.
 
+bool isAuthenticated ()
 Check if the the connection has been authenticated.
 
+uint8_t getSecKeySize ()
 Gets the key size used to encrypt the connection.
 
+

Detailed Description

+

Connection information.

+
+
+ + + + diff --git a/class_nim_b_l_e_conn_info.js b/class_nim_b_l_e_conn_info.js new file mode 100644 index 0000000..2369c40 --- /dev/null +++ b/class_nim_b_l_e_conn_info.js @@ -0,0 +1,16 @@ +var class_nim_b_l_e_conn_info = +[ + [ "getAddress", "class_nim_b_l_e_conn_info.html#af17023ca06c3d1b9e142dcd5f8c54847", null ], + [ "getConnHandle", "class_nim_b_l_e_conn_info.html#a77e212f3e236b05da0978ea482e3efb4", null ], + [ "getConnInterval", "class_nim_b_l_e_conn_info.html#aa43374d84b7564f6d187fd0c637b1049", null ], + [ "getConnLatency", "class_nim_b_l_e_conn_info.html#a10c6093ca2f92ea61b82815909106430", null ], + [ "getConnTimeout", "class_nim_b_l_e_conn_info.html#a8e885d340f1ab4e477c69ed7ea99b082", null ], + [ "getIdAddress", "class_nim_b_l_e_conn_info.html#a7bc23f09eb7dd53be902cb67d2ba745a", null ], + [ "getMTU", "class_nim_b_l_e_conn_info.html#a94796b6446ef40c0ae0d1f8af1ff9462", null ], + [ "getSecKeySize", "class_nim_b_l_e_conn_info.html#a278a8456f9d7df9cea7d776e61b36782", null ], + [ "isAuthenticated", "class_nim_b_l_e_conn_info.html#a7229e53d21c9c6b5b9fb5bd232862c89", null ], + [ "isBonded", "class_nim_b_l_e_conn_info.html#af281a25921d36dc75cf1e37561940125", null ], + [ "isEncrypted", "class_nim_b_l_e_conn_info.html#a8ecf3c58da6ffb529215ce6f13c96744", null ], + [ "isMaster", "class_nim_b_l_e_conn_info.html#a63ff245a8848bf1cc5839adee7aa41c4", null ], + [ "isSlave", "class_nim_b_l_e_conn_info.html#abfb91b833cb200f795bc63d5affff6af", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_descriptor-members.html b/class_nim_b_l_e_descriptor-members.html new file mode 100644 index 0000000..33bf769 --- /dev/null +++ b/class_nim_b_l_e_descriptor-members.html @@ -0,0 +1,115 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEDescriptor Member List
+
+
+ +

This is the complete list of members for NimBLEDescriptor, including all inherited members.

+ + + + + + + + + + + + + + + +
getCharacteristic()NimBLEDescriptor
getHandle()NimBLEDescriptor
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)NimBLEDescriptorinline
toString()NimBLEDescriptor
~NimBLEDescriptor()NimBLEDescriptor
+
+ + + + diff --git a/class_nim_b_l_e_descriptor.html b/class_nim_b_l_e_descriptor.html new file mode 100644 index 0000000..5e18960 --- /dev/null +++ b/class_nim_b_l_e_descriptor.html @@ -0,0 +1,406 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEDescriptor Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEDescriptor Class Reference
+
+
+ +

A model of a BLE descriptor. + More...

+ +

Inherited by NimBLE2904.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEDescriptor (const char *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)
 NimBLEDescriptor constructor.
 
~NimBLEDescriptor ()
 NimBLEDescriptor destructor.
 
uint16_t getHandle ()
 Get the BLE handle for this descriptor. More...
 
+NimBLEUUID getUUID ()
 Get the UUID of the descriptor.
 
std::string toString ()
 Return a string representation of the descriptor. More...
 
void setCallbacks (NimBLEDescriptorCallbacks *pCallbacks)
 Set the callback handlers for this descriptor. More...
 
size_t getLength ()
 Get the length of the value of this descriptor. More...
 
uint8_t * getValue ()
 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...
 
NimBLECharacteristicgetCharacteristic ()
 Get the characteristic this descriptor belongs to. More...
 
template<typename T >
void setValue (const T &s)
 Convenience template to set the descriptor value to <type>val. More...
 
+

Detailed Description

+

A model of a BLE descriptor.

+

Member Function Documentation

+ +

◆ getCharacteristic()

+ +
+
+ + + + + + + +
NimBLECharacteristic * NimBLEDescriptor::getCharacteristic ()
+
+ +

Get the characteristic this descriptor belongs to.

+
Returns
A pointer to the characteristic this descriptor belongs to.
+ +
+
+ +

◆ getHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLEDescriptor::getHandle ()
+
+ +

Get the BLE handle for this descriptor.

+
Returns
The handle for this descriptor.
+ +
+
+ +

◆ getLength()

+ +
+
+ + + + + + + +
size_t NimBLEDescriptor::getLength ()
+
+ +

Get the length of the value of this descriptor.

+
Returns
The length (in bytes) of the value of this descriptor.
+ +
+
+ +

◆ getStringValue()

+ +
+
+ + + + + + + +
std::string NimBLEDescriptor::getStringValue ()
+
+ +

Get the value of this descriptor as a string.

+
Returns
A std::string instance containing a copy of the descriptor's value.
+ +
+
+ +

◆ getValue()

+ +
+
+ + + + + + + +
uint8_t * NimBLEDescriptor::getValue ()
+
+ +

Get the value of this descriptor.

+
Returns
A pointer to the value of this descriptor.
+ +
+
+ +

◆ setCallbacks()

+ +
+
+ + + + + + + + +
void NimBLEDescriptor::setCallbacks (NimBLEDescriptorCallbackspCallbacks)
+
+ +

Set the callback handlers for this descriptor.

+
Parameters
+ + +
[in]pCallbacksAn instance of a callback structure used to define any callbacks for the descriptor.
+
+
+ +
+
+ +

◆ setValue() [1/3]

+ +
+
+ + + + + + + + +
void NimBLEDescriptor::setValue (const std::string & value)
+
+ +

Set the value of the descriptor.

+
Parameters
+ + +
[in]valueThe value of the descriptor in string form.
+
+
+ +
+
+ +

◆ setValue() [2/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
void NimBLEDescriptor::setValue (const T & s)
+
+inline
+
+ +

Convenience template to set the descriptor value to <type>val.

+
Parameters
+ + +
[in]sThe value to set.
+
+
+ +
+
+ +

◆ setValue() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEDescriptor::setValue (const uint8_t * data,
size_t length 
)
+
+ +

Set the value of the descriptor.

+
Parameters
+ + + +
[in]dataThe data to set for the descriptor.
[in]lengthThe length of the data in bytes.
+
+
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLEDescriptor::toString ()
+
+ +

Return a string representation of the descriptor.

+
Returns
A string representation of the descriptor.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_descriptor.js b/class_nim_b_l_e_descriptor.js new file mode 100644 index 0000000..c4ee90e --- /dev/null +++ b/class_nim_b_l_e_descriptor.js @@ -0,0 +1,17 @@ +var class_nim_b_l_e_descriptor = +[ + [ "NimBLEDescriptor", "class_nim_b_l_e_descriptor.html#a3cf995352eb1b1c212a7911a05c33b25", null ], + [ "NimBLEDescriptor", "class_nim_b_l_e_descriptor.html#a7ecb634b7d6390677cad232bd6be6638", null ], + [ "~NimBLEDescriptor", "class_nim_b_l_e_descriptor.html#ad110851335bc7b225f5bea9ac11bedcc", null ], + [ "getCharacteristic", "class_nim_b_l_e_descriptor.html#a412b3735186d94e9ddcf37a06c2055e1", null ], + [ "getHandle", "class_nim_b_l_e_descriptor.html#a486af6799753dfa60b3faddfac2adbcd", null ], + [ "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 ], + [ "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#a9136cc9e4b41110b3dd99d1c9553a477", null ], + [ "setValue", "class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923", null ], + [ "toString", "class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_descriptor_callbacks-members.html b/class_nim_b_l_e_descriptor_callbacks-members.html new file mode 100644 index 0000000..8fc3d6f --- /dev/null +++ b/class_nim_b_l_e_descriptor_callbacks-members.html @@ -0,0 +1,103 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEDescriptorCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLEDescriptorCallbacks, including all inherited members.

+ + + +
onRead(NimBLEDescriptor *pDescriptor)NimBLEDescriptorCallbacksvirtual
onWrite(NimBLEDescriptor *pDescriptor)NimBLEDescriptorCallbacksvirtual
+
+ + + + diff --git a/class_nim_b_l_e_descriptor_callbacks.html b/class_nim_b_l_e_descriptor_callbacks.html new file mode 100644 index 0000000..8feb528 --- /dev/null +++ b/class_nim_b_l_e_descriptor_callbacks.html @@ -0,0 +1,187 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEDescriptorCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEDescriptorCallbacks Class Reference
+
+
+ +

Callbacks that can be associated with a BLE descriptors to inform of events. + More...

+ + + + + + + + +

+Public Member Functions

virtual void onRead (NimBLEDescriptor *pDescriptor)
 Callback function to support a read request. More...
 
virtual void onWrite (NimBLEDescriptor *pDescriptor)
 Callback function to support a write request. More...
 
+

Detailed Description

+

Callbacks that can be associated with a BLE descriptors to inform of events.

+

When a server application creates a BLE descriptor, we may wish to be informed when there is either a read or write request to the descriptors value. An application can register a sub-classed instance of this class and will be notified when such an event happens.

+

Member Function Documentation

+ +

◆ onRead()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDescriptorCallbacks::onRead (NimBLEDescriptorpDescriptor)
+
+virtual
+
+ +

Callback function to support a read request.

+
Parameters
+ + +
[in]pDescriptorThe descriptor that is the source of the event.
+
+
+ +
+
+ +

◆ onWrite()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDescriptorCallbacks::onWrite (NimBLEDescriptorpDescriptor)
+
+virtual
+
+ +

Callback function to support a write request.

+
Parameters
+ + +
[in]pDescriptorThe descriptor that is the source of the event.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_descriptor_callbacks.js b/class_nim_b_l_e_descriptor_callbacks.js new file mode 100644 index 0000000..430e18b --- /dev/null +++ b/class_nim_b_l_e_descriptor_callbacks.js @@ -0,0 +1,5 @@ +var class_nim_b_l_e_descriptor_callbacks = +[ + [ "onRead", "class_nim_b_l_e_descriptor_callbacks.html#a6b13d2a8447f50a089b869cea9fcdcbc", null ], + [ "onWrite", "class_nim_b_l_e_descriptor_callbacks.html#a7081bf2c4f22225c4715e09762be40ed", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_device-members.html b/class_nim_b_l_e_device-members.html new file mode 100644 index 0000000..c774b72 --- /dev/null +++ b/class_nim_b_l_e_device-members.html @@ -0,0 +1,149 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEDevice Member List
+
+
+ +

This is the complete list of members for NimBLEDevice, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
addIgnored(const NimBLEAddress &address)NimBLEDevicestatic
createClient(NimBLEAddress peerAddress=NimBLEAddress(""))NimBLEDevicestatic
createServer()NimBLEDevicestatic
deinit(bool clearAll=false)NimBLEDevicestatic
deleteAllBonds()NimBLEDevicestatic
deleteBond(const NimBLEAddress &address)NimBLEDevicestatic
deleteClient(NimBLEClient *pClient)NimBLEDevicestatic
getAddress()NimBLEDevicestatic
getAdvertising()NimBLEDevicestatic
getBondedAddress(int index)NimBLEDevicestatic
getClientByID(uint16_t conn_id)NimBLEDevicestatic
getClientByPeerAddress(const NimBLEAddress &peer_addr)NimBLEDevicestatic
getClientList()NimBLEDevicestatic
getClientListSize()NimBLEDevicestatic
getDisconnectedClient()NimBLEDevicestatic
getInitialized()NimBLEDevicestatic
getMTU()NimBLEDevicestatic
getNumBonds()NimBLEDevicestatic
getPower(esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)NimBLEDevicestatic
getScan()NimBLEDevicestatic
getSecurityPasskey()NimBLEDevicestatic
getServer()NimBLEDevicestatic
getWhiteListAddress(size_t index)NimBLEDevicestatic
getWhiteListCount()NimBLEDevicestatic
init(const std::string &deviceName)NimBLEDevicestatic
isBonded(const NimBLEAddress &address)NimBLEDevicestatic
isIgnored(const NimBLEAddress &address)NimBLEDevicestatic
onWhiteList(const NimBLEAddress &address)NimBLEDevicestatic
removeIgnored(const NimBLEAddress &address)NimBLEDevicestatic
setCustomGapHandler(gap_event_handler handler)NimBLEDevicestatic
setMTU(uint16_t mtu)NimBLEDevicestatic
setOwnAddrType(uint8_t own_addr_type, bool useNRPA=false)NimBLEDevicestatic
setPower(esp_power_level_t powerLevel, esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)NimBLEDevicestatic
setScanDuplicateCacheSize(uint16_t cacheSize)NimBLEDevicestatic
setScanFilterMode(uint8_t type)NimBLEDevicestatic
setSecurityAuth(bool bonding, bool mitm, bool sc)NimBLEDevicestatic
setSecurityAuth(uint8_t auth_req)NimBLEDevicestatic
setSecurityCallbacks(NimBLESecurityCallbacks *pCallbacks)NimBLEDevicestatic
setSecurityInitKey(uint8_t init_key)NimBLEDevicestatic
setSecurityIOCap(uint8_t iocap)NimBLEDevicestatic
setSecurityPasskey(uint32_t pin)NimBLEDevicestatic
setSecurityRespKey(uint8_t init_key)NimBLEDevicestatic
startAdvertising()NimBLEDevicestatic
startSecurity(uint16_t conn_id)NimBLEDevicestatic
stopAdvertising()NimBLEDevicestatic
toString()NimBLEDevicestatic
whiteListAdd(const NimBLEAddress &address)NimBLEDevicestatic
whiteListRemove(const NimBLEAddress &address)NimBLEDevicestatic
+
+ + + + diff --git a/class_nim_b_l_e_device.html b/class_nim_b_l_e_device.html new file mode 100644 index 0000000..ad8f8a5 --- /dev/null +++ b/class_nim_b_l_e_device.html @@ -0,0 +1,1824 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEDevice Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEDevice Class Reference
+
+
+ +

A model of a BLE Device from which all the BLE roles are created. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static void init (const std::string &deviceName)
 Initialize the BLE environment. More...
 
static void deinit (bool clearAll=false)
 Shutdown the NimBLE stack/controller. More...
 
static bool getInitialized ()
 Check if the initialization is complete. More...
 
static NimBLEAddress getAddress ()
 Get our device address. More...
 
static std::string toString ()
 Return a string representation of the address of this device. More...
 
static bool whiteListAdd (const NimBLEAddress &address)
 Add a peer address to the whitelist. More...
 
static bool whiteListRemove (const NimBLEAddress &address)
 Remove a peer address from the whitelist. More...
 
static bool onWhiteList (const NimBLEAddress &address)
 Checks if a peer device is whitelisted. More...
 
static size_t getWhiteListCount ()
 Gets the count of addresses in the whitelist. More...
 
static NimBLEAddress getWhiteListAddress (size_t index)
 Gets the address at the vector index. More...
 
static NimBLEScangetScan ()
 Retrieve the Scan object that we use for scanning. More...
 
static NimBLEServercreateServer ()
 Create a new instance of a server. More...
 
static NimBLEServergetServer ()
 Get the instance of the server. More...
 
static void setPower (esp_power_level_t powerLevel, esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)
 Set the transmission power. More...
 
static int getPower (esp_ble_power_type_t powerType=ESP_BLE_PWR_TYPE_DEFAULT)
 Get the transmission power. More...
 
static void setCustomGapHandler (gap_event_handler handler)
 Set a custom callback for gap events. More...
 
static void setSecurityAuth (bool bonding, bool mitm, bool sc)
 Set the authorization mode for this device. More...
 
static void setSecurityAuth (uint8_t auth_req)
 Set the authorization mode for this device. More...
 
static void setSecurityIOCap (uint8_t iocap)
 Set the Input/Output capabilities of this device. More...
 
static void setSecurityInitKey (uint8_t init_key)
 If we are the initiator of the security procedure this sets the keys we will distribute. More...
 
static void setSecurityRespKey (uint8_t init_key)
 Set the keys we are willing to accept during pairing. More...
 
static void setSecurityPasskey (uint32_t pin)
 Set the passkey the server will ask for when pairing. More...
 
static uint32_t getSecurityPasskey ()
 Get the current passkey used for pairing. More...
 
static void setSecurityCallbacks (NimBLESecurityCallbacks *pCallbacks)
 Set callbacks that will be used to handle encryption negotiation events and authentication events. More...
 
static void setOwnAddrType (uint8_t own_addr_type, bool useNRPA=false)
 Set the own address type. More...
 
static int startSecurity (uint16_t conn_id)
 Start the connection securing and authorization for this connection. More...
 
static int setMTU (uint16_t mtu)
 Setup local mtu that will be used to negotiate mtu during request from client peer. More...
 
static uint16_t getMTU ()
 Get local MTU value set. More...
 
static bool isIgnored (const NimBLEAddress &address)
 Check if the device address is on our ignore list. More...
 
static void addIgnored (const NimBLEAddress &address)
 Add a device to the ignore list. More...
 
static void removeIgnored (const NimBLEAddress &address)
 Remove a device from the ignore list. More...
 
static void setScanDuplicateCacheSize (uint16_t cacheSize)
 Set the duplicate filter cache size for filtering scanned devices. More...
 
static void setScanFilterMode (uint8_t type)
 Set the duplicate filter mode for filtering scanned devices. More...
 
static NimBLEAdvertisinggetAdvertising ()
 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 NimBLEClientcreateClient (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...
 
static bool deleteClient (NimBLEClient *pClient)
 Delete the client object and remove it from the list.
+Checks if it is connected or trying to connect and disconnects/stops it first. More...
 
static NimBLEClientgetClientByID (uint16_t conn_id)
 Get a reference to a client by connection ID. More...
 
static NimBLEClientgetClientByPeerAddress (const NimBLEAddress &peer_addr)
 Get a reference to a client by peer address. More...
 
static NimBLEClientgetDisconnectedClient ()
 Finds the first disconnected client in the list. More...
 
static size_t getClientListSize ()
 Get the number of created client objects. More...
 
static std::list< NimBLEClient * > * getClientList ()
 Get the list of created client objects. More...
 
static bool deleteBond (const NimBLEAddress &address)
 Deletes a peer bond. More...
 
+static int getNumBonds ()
 Gets the number of bonded peers stored.
 
static bool isBonded (const NimBLEAddress &address)
 Checks if a peer device is bonded. More...
 
+static void deleteAllBonds ()
 Deletes all bonding information.
 
static NimBLEAddress getBondedAddress (int index)
 Get the address of a bonded peer device by index. More...
 
+

Detailed Description

+

A model of a BLE Device from which all the BLE roles are created.

+

Member Function Documentation

+ +

◆ addIgnored()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::addIgnored (const NimBLEAddressaddress)
+
+static
+
+ +

Add a device to the ignore list.

+
Parameters
+ + +
[in]addressThe address of the device we want to ignore.
+
+
+ +
+
+ +

◆ createClient()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEClient * NimBLEDevice::createClient (NimBLEAddress peerAddress = NimBLEAddress(""))
+
+static
+
+ +

Creates a new client object and maintains a list of all client objects each client can connect to 1 peripheral device.

+
Parameters
+ + +
[in]peerAddressAn optional peer address that is copied to the new client object, allows for calling NimBLEClient::connect(bool) without a device or address parameter.
+
+
+
Returns
A reference to the new client object.
+ +
+
+ +

◆ createServer()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEServer * NimBLEDevice::createServer ()
+
+static
+
+ +

Create a new instance of a server.

+
Returns
A new instance of the server.
+ +
+
+ +

◆ deinit()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::deinit (bool clearAll = false)
+
+static
+
+ +

Shutdown the NimBLE stack/controller.

+
Parameters
+ + +
[in]clearAllIf true, deletes all server/advertising/scan/client objects after deinitializing.
+
+
+
Note
If clearAll is true when called, any references to the created objects become invalid.
+ +
+
+ +

◆ deleteBond()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::deleteBond (const NimBLEAddressaddress)
+
+static
+
+ +

Deletes a peer bond.

+
Parameters
+ + +
[in]addressThe address of the peer with which to delete bond info.
+
+
+
Returns
true on success.
+ +
+
+ +

◆ deleteClient()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::deleteClient (NimBLEClientpClient)
+
+static
+
+ +

Delete the client object and remove it from the list.
+Checks if it is connected or trying to connect and disconnects/stops it first.

+
Parameters
+ + +
[in]pClientA pointer to the client object.
+
+
+ +
+
+ +

◆ getAddress()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEAddress NimBLEDevice::getAddress ()
+
+static
+
+ +

Get our device address.

+
Returns
A NimBLEAddress object of our public address if we have one, if not then our current random address.
+ +
+
+ +

◆ getAdvertising()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEAdvertising * NimBLEDevice::getAdvertising ()
+
+static
+
+ +

Get the instance of the advertising object.

+
Returns
A pointer to the advertising object.
+ +
+
+ +

◆ getBondedAddress()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEAddress NimBLEDevice::getBondedAddress (int index)
+
+static
+
+ +

Get the address of a bonded peer device by index.

+
Parameters
+ + +
[in]indexThe index to retrieve the peer address of.
+
+
+
Returns
NimBLEAddress of the found bonded peer or nullptr if not found.
+ +
+
+ +

◆ getClientByID()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEClient * NimBLEDevice::getClientByID (uint16_t conn_id)
+
+static
+
+ +

Get a reference to a client by connection ID.

+
Parameters
+ + +
[in]conn_idThe client connection ID to search for.
+
+
+
Returns
A pointer to the client object with the spcified connection ID.
+ +
+
+ +

◆ getClientByPeerAddress()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEClient * NimBLEDevice::getClientByPeerAddress (const NimBLEAddresspeer_addr)
+
+static
+
+ +

Get a reference to a client by peer address.

+
Parameters
+ + +
[in]peer_addrThe address of the peer to search for.
+
+
+
Returns
A pointer to the client object with the peer address.
+ +
+
+ +

◆ getClientList()

+ +
+
+ + + + + +
+ + + + + + + +
std::list< NimBLEClient * > * NimBLEDevice::getClientList ()
+
+static
+
+ +

Get the list of created client objects.

+
Returns
A pointer to the list of clients.
+ +
+
+ +

◆ getClientListSize()

+ +
+
+ + + + + +
+ + + + + + + +
size_t NimBLEDevice::getClientListSize ()
+
+static
+
+ +

Get the number of created client objects.

+
Returns
Number of client objects created.
+ +
+
+ +

◆ getDisconnectedClient()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEClient * NimBLEDevice::getDisconnectedClient ()
+
+static
+
+ +

Finds the first disconnected client in the list.

+
Returns
A pointer to the first client object that is not connected to a peer.
+ +
+
+ +

◆ getInitialized()

+ +
+
+ + + + + +
+ + + + + + + +
bool NimBLEDevice::getInitialized ()
+
+static
+
+ +

Check if the initialization is complete.

+
Returns
true if initialized.
+ +
+
+ +

◆ getMTU()

+ +
+
+ + + + + +
+ + + + + + + +
uint16_t NimBLEDevice::getMTU ()
+
+static
+
+ +

Get local MTU value set.

+
Returns
The current preferred MTU setting.
+ +
+
+ +

◆ getPower()

+ +
+
+ + + + + +
+ + + + + + + + +
int NimBLEDevice::getPower (esp_ble_power_type_t powerType = ESP_BLE_PWR_TYPE_DEFAULT)
+
+static
+
+ +

Get the transmission power.

+
Parameters
+ + +
[in]powerTypeThe power level to set, can be one of:
    +
  • ESP_BLE_PWR_TYPE_CONN_HDL0 = 0, For connection handle 0
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL1 = 1, For connection handle 1
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL2 = 2, For connection handle 2
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL3 = 3, For connection handle 3
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL4 = 4, For connection handle 4
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL5 = 5, For connection handle 5
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL6 = 6, For connection handle 6
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL7 = 7, For connection handle 7
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL8 = 8, For connection handle 8
  • +
  • ESP_BLE_PWR_TYPE_ADV = 9, For advertising
  • +
  • ESP_BLE_PWR_TYPE_SCAN = 10, For scan
  • +
  • ESP_BLE_PWR_TYPE_DEFAULT = 11, For default, if not set other, it will use default value
  • +
+
+
+
+
Returns
the power level currently used by the type specified.
+ +
+
+ +

◆ getScan()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEScan * NimBLEDevice::getScan ()
+
+static
+
+ +

Retrieve the Scan object that we use for scanning.

+
Returns
The scanning object reference. This is a singleton object. The caller should not try and release/delete it.
+ +
+
+ +

◆ getSecurityPasskey()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t NimBLEDevice::getSecurityPasskey ()
+
+static
+
+ +

Get the current passkey used for pairing.

+
Returns
The current passkey.
+ +
+
+ +

◆ getServer()

+ +
+
+ + + + + +
+ + + + + + + +
NimBLEServer * NimBLEDevice::getServer ()
+
+static
+
+ +

Get the instance of the server.

+
Returns
A pointer to the server instance.
+ +
+
+ +

◆ getWhiteListAddress()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEAddress NimBLEDevice::getWhiteListAddress (size_t index)
+
+static
+
+ +

Gets the address at the vector index.

+
Parameters
+ + +
[in]indexThe vector index to retrieve the address from.
+
+
+
Returns
the NimBLEAddress at the whitelist index or nullptr if not found.
+ +
+
+ +

◆ getWhiteListCount()

+ +
+
+ + + + + +
+ + + + + + + +
size_t NimBLEDevice::getWhiteListCount ()
+
+static
+
+ +

Gets the count of addresses in the whitelist.

+
Returns
The number of addresses in the whitelist.
+ +
+
+ +

◆ init()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::init (const std::string & deviceName)
+
+static
+
+ +

Initialize the BLE environment.

+
Parameters
+ + +
[in]deviceNameThe device name of the device.
+
+
+ +
+
+ +

◆ isBonded()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::isBonded (const NimBLEAddressaddress)
+
+static
+
+ +

Checks if a peer device is bonded.

+
Parameters
+ + +
[in]addressThe address to check for bonding.
+
+
+
Returns
true if bonded.
+ +
+
+ +

◆ isIgnored()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::isIgnored (const NimBLEAddressaddress)
+
+static
+
+ +

Check if the device address is on our ignore list.

+
Parameters
+ + +
[in]addressThe address to look for.
+
+
+
Returns
True if ignoring.
+ +
+
+ +

◆ onWhiteList()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::onWhiteList (const NimBLEAddressaddress)
+
+static
+
+ +

Checks if a peer device is whitelisted.

+
Parameters
+ + +
[in]addressThe address to check for in the whitelist.
+
+
+
Returns
true if the address is in the whitelist.
+ +
+
+ +

◆ removeIgnored()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::removeIgnored (const NimBLEAddressaddress)
+
+static
+
+ +

Remove a device from the ignore list.

+
Parameters
+ + +
[in]addressThe address of the device we want to remove from the list.
+
+
+ +
+
+ +

◆ setCustomGapHandler()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setCustomGapHandler (gap_event_handler handler)
+
+static
+
+ +

Set a custom callback for gap events.

+
Parameters
+ + +
[in]handlerThe function to call when gap events occur.
+
+
+ +
+
+ +

◆ setMTU()

+ +
+
+ + + + + +
+ + + + + + + + +
int NimBLEDevice::setMTU (uint16_t mtu)
+
+static
+
+ +

Setup local mtu that will be used to negotiate mtu during request from client peer.

+
Parameters
+ + +
[in]mtuValue to set local mtu:
    +
  • This should be larger than 23 and lower or equal to BLE_ATT_MTU_MAX = 527.
  • +
+
+
+
+ +
+
+ +

◆ setOwnAddrType()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEDevice::setOwnAddrType (uint8_t own_addr_type,
bool useNRPA = false 
)
+
+static
+
+ +

Set the own address type.

+
Parameters
+ + + +
[in]own_addr_typeOwn Bluetooth Device address type.
+The available bits are defined as:
    +
  • 0x00: BLE_OWN_ADDR_PUBLIC
  • +
  • 0x01: BLE_OWN_ADDR_RANDOM
  • +
  • 0x02: BLE_OWN_ADDR_RPA_PUBLIC_DEFAULT
  • +
  • 0x03: BLE_OWN_ADDR_RPA_RANDOM_DEFAULT
  • +
+
[in]useNRPAIf true, and address type is random, uses a non-resolvable random address.
+
+
+ +
+
+ +

◆ setPower()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEDevice::setPower (esp_power_level_t powerLevel,
esp_ble_power_type_t powerType = ESP_BLE_PWR_TYPE_DEFAULT 
)
+
+static
+
+ +

Set the transmission power.

+
Parameters
+ + + +
[in]powerLevelThe power level to set, can be one of:
    +
  • ESP_PWR_LVL_N12 = 0, Corresponding to -12dbm
  • +
  • ESP_PWR_LVL_N9 = 1, Corresponding to -9dbm
  • +
  • ESP_PWR_LVL_N6 = 2, Corresponding to -6dbm
  • +
  • ESP_PWR_LVL_N3 = 3, Corresponding to -3dbm
  • +
  • ESP_PWR_LVL_N0 = 4, Corresponding to 0dbm
  • +
  • ESP_PWR_LVL_P3 = 5, Corresponding to +3dbm
  • +
  • ESP_PWR_LVL_P6 = 6, Corresponding to +6dbm
  • +
  • ESP_PWR_LVL_P9 = 7, Corresponding to +9dbm
  • +
+
[in]powerTypeThe BLE function to set the power level for, can be one of:
    +
  • ESP_BLE_PWR_TYPE_CONN_HDL0 = 0, For connection handle 0
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL1 = 1, For connection handle 1
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL2 = 2, For connection handle 2
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL3 = 3, For connection handle 3
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL4 = 4, For connection handle 4
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL5 = 5, For connection handle 5
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL6 = 6, For connection handle 6
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL7 = 7, For connection handle 7
  • +
  • ESP_BLE_PWR_TYPE_CONN_HDL8 = 8, For connection handle 8
  • +
  • ESP_BLE_PWR_TYPE_ADV = 9, For advertising
  • +
  • ESP_BLE_PWR_TYPE_SCAN = 10, For scan
  • +
  • ESP_BLE_PWR_TYPE_DEFAULT = 11, For default, if not set other, it will use default value
  • +
+
+
+
+ +
+
+ +

◆ setScanDuplicateCacheSize()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setScanDuplicateCacheSize (uint16_t cacheSize)
+
+static
+
+ +

Set the duplicate filter cache size for filtering scanned devices.

+
Parameters
+ + +
[in]cacheSizeThe number of advertisements filtered before the cache is reset.
+Range is 10-1000, a larger value will reduce how often the same devices are reported.
+
+
+

Must only be called before calling NimBLEDevice::init.

+ +
+
+ +

◆ setScanFilterMode()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setScanFilterMode (uint8_t mode)
+
+static
+
+ +

Set the duplicate filter mode for filtering scanned devices.

+
Parameters
+ + +
[in]modeOne of three possible options:
    +
  • CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE (0) (default)
    + Filter by device address only, advertisements from the same address will be reported only once.
  • +
  • CONFIG_BTDM_SCAN_DUPL_TYPE_DATA (1)
    + Filter by data only, advertisements with the same data will only be reported once,
    + even from different addresses.
  • +
  • CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE (2)
    + Filter by address and data, advertisements from the same address will be reported only once,
    + except if the data in the advertisement has changed, then it will be reported again.

    +

    Must only be called before calling NimBLEDevice::init.

    +
  • +
+
+
+
+ +
+
+ +

◆ setSecurityAuth() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLEDevice::setSecurityAuth (bool bonding,
bool mitm,
bool sc 
)
+
+static
+
+ +

Set the authorization mode for this device.

+
Parameters
+ + + + +
bondingIf true we allow bonding, false no bonding will be performed.
mitmIf true we are capable of man in the middle protection, false if not.
scIf true we will perform secure connection pairing, false we will use legacy pairing.
+
+
+ +
+
+ +

◆ setSecurityAuth() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityAuth (uint8_t auth_req)
+
+static
+
+ +

Set the authorization mode for this device.

+
Parameters
+ + +
auth_reqA bitmap indicating what modes are supported.
+The available bits are defined as:
    +
  • 0x01 BLE_SM_PAIR_AUTHREQ_BOND
  • +
  • 0x04 BLE_SM_PAIR_AUTHREQ_MITM
  • +
  • 0x08 BLE_SM_PAIR_AUTHREQ_SC
  • +
  • 0x10 BLE_SM_PAIR_AUTHREQ_KEYPRESS - not yet supported.
  • +
+
+
+
+ +
+
+ +

◆ setSecurityCallbacks()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityCallbacks (NimBLESecurityCallbackscallbacks)
+
+static
+
+ +

Set callbacks that will be used to handle encryption negotiation events and authentication events.

+
Parameters
+ + +
[in]callbacksPointer to NimBLESecurityCallbacks class
+
+
+
Deprecated:
For backward compatibility, New code should use client/server callback methods.
+ +
+
+ +

◆ setSecurityInitKey()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityInitKey (uint8_t init_key)
+
+static
+
+ +

If we are the initiator of the security procedure this sets the keys we will distribute.

+
Parameters
+ + +
init_keyA bitmap indicating which keys to distribute during pairing.
+The available bits are defined as:
    +
  • 0x01: BLE_SM_PAIR_KEY_DIST_ENC - Distribute the encryption key.
  • +
  • 0x02: BLE_SM_PAIR_KEY_DIST_ID - Distribute the ID key (IRK).
  • +
  • 0x04: BLE_SM_PAIR_KEY_DIST_SIGN
  • +
  • 0x08: BLE_SM_PAIR_KEY_DIST_LINK
  • +
+
+
+
+ +
+
+ +

◆ setSecurityIOCap()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityIOCap (uint8_t iocap)
+
+static
+
+ +

Set the Input/Output capabilities of this device.

+
Parameters
+ + +
iocapOne of the following values:
    +
  • 0x00 BLE_HS_IO_DISPLAY_ONLY DisplayOnly IO capability
  • +
  • 0x01 BLE_HS_IO_DISPLAY_YESNO DisplayYesNo IO capability
  • +
  • 0x02 BLE_HS_IO_KEYBOARD_ONLY KeyboardOnly IO capability
  • +
  • 0x03 BLE_HS_IO_NO_INPUT_OUTPUT NoInputNoOutput IO capability
  • +
  • 0x04 BLE_HS_IO_KEYBOARD_DISPLAY KeyboardDisplay Only IO capability
  • +
+
+
+
+ +
+
+ +

◆ setSecurityPasskey()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityPasskey (uint32_t pin)
+
+static
+
+ +

Set the passkey the server will ask for when pairing.

+
Parameters
+ + +
[in]pinThe passkey to use.
+
+
+ +
+
+ +

◆ setSecurityRespKey()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEDevice::setSecurityRespKey (uint8_t resp_key)
+
+static
+
+ +

Set the keys we are willing to accept during pairing.

+
Parameters
+ + +
resp_keyA bitmap indicating which keys to accept during pairing. The available bits are defined as:
    +
  • 0x01: BLE_SM_PAIR_KEY_DIST_ENC - Accept the encryption key.
  • +
  • 0x02: BLE_SM_PAIR_KEY_DIST_ID - Accept the ID key (IRK).
  • +
  • 0x04: BLE_SM_PAIR_KEY_DIST_SIGN
  • +
  • 0x08: BLE_SM_PAIR_KEY_DIST_LINK
  • +
+
+
+
+ +
+
+ +

◆ startSecurity()

+ +
+
+ + + + + +
+ + + + + + + + +
int NimBLEDevice::startSecurity (uint16_t conn_id)
+
+static
+
+ +

Start the connection securing and authorization for this connection.

+
Parameters
+ + +
conn_idThe connection id of the peer device.
+
+
+
Returns
NimBLE stack return code, 0 = success.
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + +
+ + + + + + + +
std::string NimBLEDevice::toString ()
+
+static
+
+ +

Return a string representation of the address of this device.

+
Returns
A string representation of this device address.
+ +
+
+ +

◆ whiteListAdd()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::whiteListAdd (const NimBLEAddressaddress)
+
+static
+
+ +

Add a peer address to the whitelist.

+
Parameters
+ + +
[in]addressThe address to add to the whitelist.
+
+
+
Returns
true if successful.
+ +
+
+ +

◆ whiteListRemove()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEDevice::whiteListRemove (const NimBLEAddressaddress)
+
+static
+
+ +

Remove a peer address from the whitelist.

+
Parameters
+ + +
[in]addressThe address to remove from the whitelist.
+
+
+
Returns
true if successful.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_eddystone_t_l_m-members.html b/class_nim_b_l_e_eddystone_t_l_m-members.html new file mode 100644 index 0000000..bd949ea --- /dev/null +++ b/class_nim_b_l_e_eddystone_t_l_m-members.html @@ -0,0 +1,117 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEEddystoneTLM Member List
+
+ +
+ + + + diff --git a/class_nim_b_l_e_eddystone_t_l_m.html b/class_nim_b_l_e_eddystone_t_l_m.html new file mode 100644 index 0000000..ccc6d2c --- /dev/null +++ b/class_nim_b_l_e_eddystone_t_l_m.html @@ -0,0 +1,506 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEEddystoneTLM Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEEddystoneTLM Class Reference
+
+
+ +

Representation of a beacon. See: + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEEddystoneTLM ()
 Construct a default EddystoneTLM beacon object.
 
std::string getData ()
 Retrieve the data that is being advertised. More...
 
NimBLEUUID getUUID ()
 Get the UUID being advertised. More...
 
uint8_t getVersion ()
 Get the version being advertised. More...
 
uint16_t getVolt ()
 Get the battery voltage. More...
 
float getTemp ()
 Get the temperature being advertised. More...
 
uint32_t getCount ()
 Get the count of advertisments sent. More...
 
uint32_t getTime ()
 Get the advertisment 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...
 
void setUUID (const NimBLEUUID &l_uuid)
 Set the UUID to advertise. More...
 
void setVersion (uint8_t version)
 Set the version to advertise. More...
 
void setVolt (uint16_t volt)
 Set the battery voltage to advertise. More...
 
void setTemp (float temp)
 Set the temperature to advertise. More...
 
void setCount (uint32_t advCount)
 Set the advertisment count. More...
 
void setTime (uint32_t tmil)
 Set the advertisment time. More...
 
+

Detailed Description

+

Representation of a beacon. See:

+ +

Member Function Documentation

+ +

◆ getCount()

+ +
+
+ + + + + + + +
uint32_t NimBLEEddystoneTLM::getCount ()
+
+ +

Get the count of advertisments sent.

+
Returns
The number of advertisments.
+ +
+
+ +

◆ getData()

+ +
+
+ + + + + + + +
std::string NimBLEEddystoneTLM::getData ()
+
+ +

Retrieve the data that is being advertised.

+
Returns
The advertised data.
+ +
+
+ +

◆ getTemp()

+ +
+
+ + + + + + + +
float NimBLEEddystoneTLM::getTemp ()
+
+ +

Get the temperature being advertised.

+
Returns
The temperature value.
+ +
+
+ +

◆ getTime()

+ +
+
+ + + + + + + +
uint32_t NimBLEEddystoneTLM::getTime ()
+
+ +

Get the advertisment time.

+
Returns
The advertisment time.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLEEddystoneTLM::getUUID ()
+
+ +

Get the UUID being advertised.

+
Returns
The UUID advertised.
+ +
+
+ +

◆ getVersion()

+ +
+
+ + + + + + + +
uint8_t NimBLEEddystoneTLM::getVersion ()
+
+ +

Get the version being advertised.

+
Returns
The version number.
+ +
+
+ +

◆ getVolt()

+ +
+
+ + + + + + + +
uint16_t NimBLEEddystoneTLM::getVolt ()
+
+ +

Get the battery voltage.

+
Returns
The battery voltage.
+ +
+
+ +

◆ setCount()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setCount (uint32_t advCount)
+
+ +

Set the advertisment count.

+
Parameters
+ + +
[in]advCountThe advertisment number.
+
+
+ +
+
+ +

◆ setData()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setData (const std::string & data)
+
+ +

Set the raw data for the beacon advertisment.

+
Parameters
+ + +
[in]dataThe raw data to advertise.
+
+
+ +
+
+ +

◆ setTemp()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setTemp (float temp)
+
+ +

Set the temperature to advertise.

+
Parameters
+ + +
[in]tempThe temperature value.
+
+
+ +
+
+ +

◆ setTime()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setTime (uint32_t tmil)
+
+ +

Set the advertisment time.

+
Parameters
+ + +
[in]tmilThe advertisment time in milliseconds.
+
+
+ +
+
+ +

◆ setUUID()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setUUID (const NimBLEUUIDl_uuid)
+
+ +

Set the UUID to advertise.

+
Parameters
+ + +
[in]l_uuidThe UUID.
+
+
+ +
+
+ +

◆ setVersion()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setVersion (uint8_t version)
+
+ +

Set the version to advertise.

+
Parameters
+ + +
[in]versionThe version number.
+
+
+ +
+
+ +

◆ setVolt()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneTLM::setVolt (uint16_t volt)
+
+ +

Set the battery voltage to advertise.

+
Parameters
+ + +
[in]voltThe voltage in millivolts.
+
+
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLEEddystoneTLM::toString ()
+
+ +

Get a string representation of the beacon.

+
Returns
The string representation.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_eddystone_t_l_m.js b/class_nim_b_l_e_eddystone_t_l_m.js new file mode 100644 index 0000000..bf76e2a --- /dev/null +++ b/class_nim_b_l_e_eddystone_t_l_m.js @@ -0,0 +1,19 @@ +var class_nim_b_l_e_eddystone_t_l_m = +[ + [ "NimBLEEddystoneTLM", "class_nim_b_l_e_eddystone_t_l_m.html#a4d87d0b11420af2ae04bc4e6ce2f8607", null ], + [ "getCount", "class_nim_b_l_e_eddystone_t_l_m.html#a556a6b6a75693997390f3bacf6e5ca5e", null ], + [ "getData", "class_nim_b_l_e_eddystone_t_l_m.html#ae146a8f066ef3fc6994070654ec5d7ea", null ], + [ "getTemp", "class_nim_b_l_e_eddystone_t_l_m.html#abda56940f7d9f7ccef2629b75880dd5f", null ], + [ "getTime", "class_nim_b_l_e_eddystone_t_l_m.html#ab1c4a13c2f57a6e0293810dd09be3db3", null ], + [ "getUUID", "class_nim_b_l_e_eddystone_t_l_m.html#aa511375f22952c0f5846a51e6c2511c5", null ], + [ "getVersion", "class_nim_b_l_e_eddystone_t_l_m.html#ae9f17d2c1e4150775881babb73f0b10c", null ], + [ "getVolt", "class_nim_b_l_e_eddystone_t_l_m.html#af9862f983df6f48a96220e936d13d17b", null ], + [ "setCount", "class_nim_b_l_e_eddystone_t_l_m.html#a6d033c09a513b2dfdad6f1b962b906a8", null ], + [ "setData", "class_nim_b_l_e_eddystone_t_l_m.html#a160e33218dc7fb33f678cda1605da52e", null ], + [ "setTemp", "class_nim_b_l_e_eddystone_t_l_m.html#a8e8ee8fff10730089a370f9da7b6a691", null ], + [ "setTime", "class_nim_b_l_e_eddystone_t_l_m.html#a999d53f4bad59c2ebc688403f66474b1", null ], + [ "setUUID", "class_nim_b_l_e_eddystone_t_l_m.html#a49fdfb7c2edf2ae92f69856ec0ce4291", null ], + [ "setVersion", "class_nim_b_l_e_eddystone_t_l_m.html#a205e0e2efc09c4c5043f11aeddee4d63", null ], + [ "setVolt", "class_nim_b_l_e_eddystone_t_l_m.html#ad69af8fe47502d922203916357f6c206", null ], + [ "toString", "class_nim_b_l_e_eddystone_t_l_m.html#a970ba10424567d17c961ed3b3ef83d8e", null ] +]; \ No newline at end of file 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 new file mode 100644 index 0000000..ad5f534 --- /dev/null +++ b/class_nim_b_l_e_eddystone_u_r_l-members.html @@ -0,0 +1,111 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEEddystoneURL Member List
+
+
+ +

This is the complete list of members for NimBLEEddystoneURL, including all inherited members.

+ + + + + + + + + + + +
getData()NimBLEEddystoneURL
getDecodedURL()NimBLEEddystoneURL
getPower()NimBLEEddystoneURL
getURL()NimBLEEddystoneURL
getUUID()NimBLEEddystoneURL
NimBLEEddystoneURL()NimBLEEddystoneURL
setData(const std::string &data)NimBLEEddystoneURL
setPower(int8_t advertisedTxPower)NimBLEEddystoneURL
setURL(const std::string &url)NimBLEEddystoneURL
setUUID(const NimBLEUUID &l_uuid)NimBLEEddystoneURL
+
+ + + + diff --git a/class_nim_b_l_e_eddystone_u_r_l.html b/class_nim_b_l_e_eddystone_u_r_l.html new file mode 100644 index 0000000..bdff4bf --- /dev/null +++ b/class_nim_b_l_e_eddystone_u_r_l.html @@ -0,0 +1,350 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEEddystoneURL Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEEddystoneURL Class Reference
+
+
+ +

Representation of a beacon. See: + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

NimBLEEddystoneURL ()
 Construct a default EddystoneURL beacon object.
 
std::string getData ()
 Retrieve the data that is being advertised. More...
 
NimBLEUUID getUUID ()
 Get the UUID being advertised. More...
 
int8_t getPower ()
 Get the transmit power being advertised. More...
 
std::string getURL ()
 Get the raw URL being advertised. More...
 
std::string getDecodedURL ()
 Get the full URL being advertised. More...
 
void setData (const std::string &data)
 Set the raw data for the beacon advertisment. More...
 
void setUUID (const NimBLEUUID &l_uuid)
 Set the UUID to advertise. More...
 
void setPower (int8_t advertisedTxPower)
 Set the transmit power to advertise. More...
 
void setURL (const std::string &url)
 Set the URL to advertise. More...
 
+

Detailed Description

+

Representation of a beacon. See:

+ +

Member Function Documentation

+ +

◆ getData()

+ +
+
+ + + + + + + +
std::string NimBLEEddystoneURL::getData ()
+
+ +

Retrieve the data that is being advertised.

+
Returns
The advertised data.
+ +
+
+ +

◆ getDecodedURL()

+ +
+
+ + + + + + + +
std::string NimBLEEddystoneURL::getDecodedURL ()
+
+ +

Get the full URL being advertised.

+
Returns
The full URL.
+ +
+
+ +

◆ getPower()

+ +
+
+ + + + + + + +
int8_t NimBLEEddystoneURL::getPower ()
+
+ +

Get the transmit power being advertised.

+
Returns
The transmit power.
+ +
+
+ +

◆ getURL()

+ +
+
+ + + + + + + +
std::string NimBLEEddystoneURL::getURL ()
+
+ +

Get the raw URL being advertised.

+
Returns
The raw URL.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLEEddystoneURL::getUUID ()
+
+ +

Get the UUID being advertised.

+
Returns
The UUID advertised.
+ +
+
+ +

◆ setData()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneURL::setData (const std::string & data)
+
+ +

Set the raw data for the beacon advertisment.

+
Parameters
+ + +
[in]dataThe raw data to advertise.
+
+
+ +
+
+ +

◆ setPower()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneURL::setPower (int8_t advertisedTxPower)
+
+ +

Set the transmit power to advertise.

+
Parameters
+ + +
[in]advertisedTxPowerThe transmit power level.
+
+
+ +
+
+ +

◆ setURL()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneURL::setURL (const std::string & url)
+
+ +

Set the URL to advertise.

+
Parameters
+ + +
[in]urlThe URL.
+
+
+ +
+
+ +

◆ setUUID()

+ +
+
+ + + + + + + + +
void NimBLEEddystoneURL::setUUID (const NimBLEUUIDl_uuid)
+
+ +

Set the UUID to advertise.

+
Parameters
+ + +
[in]l_uuidThe UUID.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_eddystone_u_r_l.js b/class_nim_b_l_e_eddystone_u_r_l.js new file mode 100644 index 0000000..729fb83 --- /dev/null +++ b/class_nim_b_l_e_eddystone_u_r_l.js @@ -0,0 +1,13 @@ +var class_nim_b_l_e_eddystone_u_r_l = +[ + [ "NimBLEEddystoneURL", "class_nim_b_l_e_eddystone_u_r_l.html#ae102214d20e32e31c9c84d723f67df15", null ], + [ "getData", "class_nim_b_l_e_eddystone_u_r_l.html#ac32c7066ce1ee8d495a35ec870f0e7bf", null ], + [ "getDecodedURL", "class_nim_b_l_e_eddystone_u_r_l.html#a8b68cc96a84da85e20d8583ba375c2ff", null ], + [ "getPower", "class_nim_b_l_e_eddystone_u_r_l.html#a42583c740bbdb9591422e8770f8bd0d5", null ], + [ "getURL", "class_nim_b_l_e_eddystone_u_r_l.html#a0109874399f3e70a72ee9f4a909710e1", null ], + [ "getUUID", "class_nim_b_l_e_eddystone_u_r_l.html#a1fde0fcf7d90f79e0eb718967518247a", null ], + [ "setData", "class_nim_b_l_e_eddystone_u_r_l.html#ada3ac4a544b8565635871f39f1593811", null ], + [ "setPower", "class_nim_b_l_e_eddystone_u_r_l.html#a8038c895e8da7c7ac861557ea0a9d91b", null ], + [ "setURL", "class_nim_b_l_e_eddystone_u_r_l.html#a8102533ff1e7b6527ea744279f8f64ca", null ], + [ "setUUID", "class_nim_b_l_e_eddystone_u_r_l.html#af183e8483ae81fff65d909e67986fcad", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_h_i_d_device-members.html b/class_nim_b_l_e_h_i_d_device-members.html new file mode 100644 index 0000000..cb5e1bd --- /dev/null +++ b/class_nim_b_l_e_h_i_d_device-members.html @@ -0,0 +1,119 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEHIDDevice Member List
+
+
+ +

This is the complete list of members for NimBLEHIDDevice, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
batteryService()NimBLEHIDDevice
bootInput()NimBLEHIDDevice
bootOutput()NimBLEHIDDevice
deviceInfo()NimBLEHIDDevice
featureReport(uint8_t reportID)NimBLEHIDDevice
hidControl()NimBLEHIDDevice
hidInfo(uint8_t country, uint8_t flags)NimBLEHIDDevice
hidService()NimBLEHIDDevice
inputReport(uint8_t reportID)NimBLEHIDDevice
manufacturer()NimBLEHIDDevice
manufacturer(std::string name)NimBLEHIDDevice
NimBLEHIDDevice(NimBLEServer *)NimBLEHIDDevice
outputReport(uint8_t reportID)NimBLEHIDDevice
pnp(uint8_t sig, uint16_t vid, uint16_t pid, uint16_t version)NimBLEHIDDevice
protocolMode()NimBLEHIDDevice
reportMap(uint8_t *map, uint16_t)NimBLEHIDDevice
setBatteryLevel(uint8_t level)NimBLEHIDDevice
startServices()NimBLEHIDDevice
+
+ + + + diff --git a/class_nim_b_l_e_h_i_d_device.html b/class_nim_b_l_e_h_i_d_device.html new file mode 100644 index 0000000..446651e --- /dev/null +++ b/class_nim_b_l_e_h_i_d_device.html @@ -0,0 +1,461 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEHIDDevice Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEHIDDevice Class Reference
+
+
+ +

A model of a BLE Human Interface Device. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NimBLEHIDDevice (NimBLEServer *)
 Construct a default NimBLEHIDDevice object. More...
 
void reportMap (uint8_t *map, uint16_t)
 Set the report map data formatting information. More...
 
+void startServices ()
 Start the HID device services.
+This function called when all the services have been created.
 
+NimBLEServicedeviceInfo ()
 Returns a pointer to the device information service.
 
+NimBLEServicehidService ()
 Returns a pointer to the HID service.
 
+NimBLEServicebatteryService ()
 Returns a pointer to the battery service.
 
+NimBLECharacteristicmanufacturer ()
 Create a manufacturer characteristic (this characteristic is optional).
 
void manufacturer (std::string name)
 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...
 
void hidInfo (uint8_t country, uint8_t flags)
 Sets the HID Information characteristic value. More...
 
void setBatteryLevel (uint8_t level)
 Set the battery level characteristic value. More...
 
+NimBLECharacteristichidControl ()
 Returns a pointer to the HID control point characteristic.
 
NimBLECharacteristicinputReport (uint8_t reportID)
 Create input report characteristic. More...
 
NimBLECharacteristicoutputReport (uint8_t reportID)
 Create output report characteristic. More...
 
NimBLECharacteristicfeatureReport (uint8_t reportID)
 Create feature report characteristic. More...
 
+NimBLECharacteristicprotocolMode ()
 Returns a pointer to the protocol mode characteristic.
 
+NimBLECharacteristicbootInput ()
 Creates a keyboard boot input report characteristic.
 
+NimBLECharacteristicbootOutput ()
 Create a keyboard boot output report characteristic.
 
+

Detailed Description

+

A model of a BLE Human Interface Device.

+

Constructor & Destructor Documentation

+ +

◆ NimBLEHIDDevice()

+ +
+
+ + + + + + + + +
NimBLEHIDDevice::NimBLEHIDDevice (NimBLEServerserver)
+
+ +

Construct a default NimBLEHIDDevice object.

+
Parameters
+ + +
[in]serverA pointer to the server instance this HID Device will use.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ featureReport()

+ +
+
+ + + + + + + + +
NimBLECharacteristic * NimBLEHIDDevice::featureReport (uint8_t reportID)
+
+ +

Create feature report characteristic.

+
Parameters
+ + +
[in]reportIDFeature report ID, the same as in report map for feature object related to the characteristic
+
+
+
Returns
Pointer to new feature report characteristic
+ +
+
+ +

◆ hidInfo()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEHIDDevice::hidInfo (uint8_t country,
uint8_t flags 
)
+
+ +

Sets the HID Information characteristic value.

+
Parameters
+ + + +
[in]countryThe country code for the device.
[in]flagsThe HID Class Specification release number to use.
+
+
+ +
+
+ +

◆ inputReport()

+ +
+
+ + + + + + + + +
NimBLECharacteristic * NimBLEHIDDevice::inputReport (uint8_t reportID)
+
+ +

Create input report characteristic.

+
Parameters
+ + +
[in]reportIDinput report ID, the same as in report map for input object related to the characteristic
+
+
+
Returns
pointer to new input report characteristic
+ +
+
+ +

◆ manufacturer()

+ +
+
+ + + + + + + + +
void NimBLEHIDDevice::manufacturer (std::string name)
+
+ +

Set manufacturer name.

+
Parameters
+ + +
[in]nameThe manufacturer name of this HID device.
+
+
+ +
+
+ +

◆ outputReport()

+ +
+
+ + + + + + + + +
NimBLECharacteristic * NimBLEHIDDevice::outputReport (uint8_t reportID)
+
+ +

Create output report characteristic.

+
Parameters
+ + +
[in]reportIDOutput report ID, the same as in report map for output object related to the characteristic
+
+
+
Returns
Pointer to new output report characteristic
+ +
+
+ +

◆ pnp()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLEHIDDevice::pnp (uint8_t sig,
uint16_t vid,
uint16_t pid,
uint16_t version 
)
+
+ +

Sets the Plug n Play characterisc value.

+
Parameters
+ + + + + +
[in]sigThe vendor ID source number.
[in]vidThe vendor ID number.
[in]pidThe product ID number.
[in]versionThe produce version number.
+
+
+ +
+
+ +

◆ reportMap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEHIDDevice::reportMap (uint8_t * map,
uint16_t size 
)
+
+ +

Set the report map data formatting information.

+
Parameters
+ + + +
[in]mapA pointer to an array with the values to set.
[in]sizeThe number of values in the array.
+
+
+ +
+
+ +

◆ setBatteryLevel()

+ +
+
+ + + + + + + + +
void NimBLEHIDDevice::setBatteryLevel (uint8_t level)
+
+ +

Set the battery level characteristic value.

+
Parameters
+ + +
[in]levelThe battery level value.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_h_i_d_device.js b/class_nim_b_l_e_h_i_d_device.js new file mode 100644 index 0000000..dfe9abd --- /dev/null +++ b/class_nim_b_l_e_h_i_d_device.js @@ -0,0 +1,21 @@ +var class_nim_b_l_e_h_i_d_device = +[ + [ "NimBLEHIDDevice", "class_nim_b_l_e_h_i_d_device.html#a95b4935280494ffa24bfae89753f199a", null ], + [ "batteryService", "class_nim_b_l_e_h_i_d_device.html#a24498f7b714574ab4a90288f7e4d58b7", null ], + [ "bootInput", "class_nim_b_l_e_h_i_d_device.html#a45ca7d4547dfea9a64987065d83653bd", null ], + [ "bootOutput", "class_nim_b_l_e_h_i_d_device.html#ace0141db690f1afec1b266f9ac9aa0f0", null ], + [ "deviceInfo", "class_nim_b_l_e_h_i_d_device.html#a033c4ad91f1bc165ac6a322b4dcc1699", null ], + [ "featureReport", "class_nim_b_l_e_h_i_d_device.html#a468e599c7d75e691f8d34e1b24db8a38", null ], + [ "hidControl", "class_nim_b_l_e_h_i_d_device.html#a5c42da43e0b8dfcd1d045e8a86d0b5a2", null ], + [ "hidInfo", "class_nim_b_l_e_h_i_d_device.html#a33fc2bfc990ecd250859ca8f34a4314e", null ], + [ "hidService", "class_nim_b_l_e_h_i_d_device.html#ae80cf58c481c25bd6d7392a43b6fa48b", null ], + [ "inputReport", "class_nim_b_l_e_h_i_d_device.html#a91cfe81b47cea229e9bbe3c55be33701", null ], + [ "manufacturer", "class_nim_b_l_e_h_i_d_device.html#a3e5b8291ca88d85a352429415abaec9c", null ], + [ "manufacturer", "class_nim_b_l_e_h_i_d_device.html#ac04ed297cf6adbec210873739d2dc74d", null ], + [ "outputReport", "class_nim_b_l_e_h_i_d_device.html#ac1e63972c6a77665a6bbc76f9ff4a717", null ], + [ "pnp", "class_nim_b_l_e_h_i_d_device.html#a5309df317aa42de7ced2e34219b6666a", null ], + [ "protocolMode", "class_nim_b_l_e_h_i_d_device.html#a1118c1e730f38b8b17795c8eb41a0861", null ], + [ "reportMap", "class_nim_b_l_e_h_i_d_device.html#a5e996a1668785f7a978f9874b4ff3b3e", null ], + [ "setBatteryLevel", "class_nim_b_l_e_h_i_d_device.html#a84e3127a05f7e6a44761ec4a9e7668e3", null ], + [ "startServices", "class_nim_b_l_e_h_i_d_device.html#a5984042cd05ea4ead895f5577133a235", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_remote_characteristic-members.html b/class_nim_b_l_e_remote_characteristic-members.html new file mode 100644 index 0000000..25f80cc --- /dev/null +++ b/class_nim_b_l_e_remote_characteristic-members.html @@ -0,0 +1,133 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteCharacteristic Member List
+
+
+ +

This is the complete list of members for NimBLERemoteCharacteristic, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin()NimBLERemoteCharacteristic
canBroadcast()NimBLERemoteCharacteristic
canIndicate()NimBLERemoteCharacteristic
canNotify()NimBLERemoteCharacteristic
canRead()NimBLERemoteCharacteristic
canWrite()NimBLERemoteCharacteristic
canWriteNoResponse()NimBLERemoteCharacteristic
deleteDescriptor(const NimBLEUUID &uuid)NimBLERemoteCharacteristic
deleteDescriptors()NimBLERemoteCharacteristic
end()NimBLERemoteCharacteristic
getDefHandle()NimBLERemoteCharacteristic
getDescriptor(const NimBLEUUID &uuid)NimBLERemoteCharacteristic
getDescriptors(bool refresh=false)NimBLERemoteCharacteristic
getHandle()NimBLERemoteCharacteristic
getRemoteService()NimBLERemoteCharacteristic
getUUID()NimBLERemoteCharacteristic
getValue(time_t *timestamp=nullptr)NimBLERemoteCharacteristic
getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)NimBLERemoteCharacteristicinline
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, bool skipSizeCheck=false)NimBLERemoteCharacteristicinline
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
toString()NimBLERemoteCharacteristic
unsubscribe(bool response=false)NimBLERemoteCharacteristic
writeValue(const uint8_t *data, size_t length, bool response=false)NimBLERemoteCharacteristic
writeValue(const std::string &newValue, bool response=false)NimBLERemoteCharacteristic
writeValue(const T &s, bool response=false)NimBLERemoteCharacteristicinline
~NimBLERemoteCharacteristic()NimBLERemoteCharacteristic
+
+ + + + diff --git a/class_nim_b_l_e_remote_characteristic.html b/class_nim_b_l_e_remote_characteristic.html new file mode 100644 index 0000000..1b897e6 --- /dev/null +++ b/class_nim_b_l_e_remote_characteristic.html @@ -0,0 +1,1070 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLERemoteCharacteristic Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLERemoteCharacteristic Class Reference
+
+
+ +

A model of a remote BLE characteristic. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

~NimBLERemoteCharacteristic ()
 Destructor.
 
bool canBroadcast ()
 Does the characteristic support broadcasting? More...
 
bool canIndicate ()
 Does the characteristic support indications? More...
 
bool canNotify ()
 Does the characteristic support notifications? More...
 
bool canRead ()
 Does the characteristic support reading? More...
 
bool canWrite ()
 Does the characteristic support writing? More...
 
bool canWriteNoResponse ()
 Does the characteristic support writing with no response? More...
 
std::vector< NimBLERemoteDescriptor * >::iterator begin ()
 Get iterator to the beginning of the vector of remote descriptor pointers. More...
 
std::vector< NimBLERemoteDescriptor * >::iterator end ()
 Get iterator to the end of the vector of remote descriptor pointers. More...
 
NimBLERemoteDescriptorgetDescriptor (const NimBLEUUID &uuid)
 Get the descriptor instance with the given UUID that belongs to this characteristic. More...
 
std::vector< NimBLERemoteDescriptor * > * getDescriptors (bool refresh=false)
 Get a pointer to the vector of found descriptors. More...
 
void deleteDescriptors ()
 Delete the descriptors in the descriptor vector. More...
 
size_t deleteDescriptor (const NimBLEUUID &uuid)
 Delete descriptor by UUID. More...
 
uint16_t getHandle ()
 Get the handle for this characteristic. More...
 
uint16_t getDefHandle ()
 Get the handle for this characteristics definition. More...
 
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 >
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 >
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...
 
std::string toString ()
 Convert a NimBLERemoteCharacteristic to a string representation;. More...
 
NimBLERemoteServicegetRemoteService ()
 Get the remote service associated with this characteristic. More...
 
+

Detailed Description

+

A model of a remote BLE characteristic.

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteDescriptor * >::iterator NimBLERemoteCharacteristic::begin ()
+
+ +

Get iterator to the beginning of the vector of remote descriptor pointers.

+
Returns
An iterator to the beginning of the vector of remote descriptor pointers.
+ +
+
+ +

◆ canBroadcast()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canBroadcast ()
+
+ +

Does the characteristic support broadcasting?

+
Returns
True if the characteristic supports broadcasting.
+ +
+
+ +

◆ canIndicate()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canIndicate ()
+
+ +

Does the characteristic support indications?

+
Returns
True if the characteristic supports indications.
+ +
+
+ +

◆ canNotify()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canNotify ()
+
+ +

Does the characteristic support notifications?

+
Returns
True if the characteristic supports notifications.
+ +
+
+ +

◆ canRead()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canRead ()
+
+ +

Does the characteristic support reading?

+
Returns
True if the characteristic supports reading.
+ +
+
+ +

◆ canWrite()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canWrite ()
+
+ +

Does the characteristic support writing?

+
Returns
True if the characteristic supports writing.
+ +
+
+ +

◆ canWriteNoResponse()

+ +
+
+ + + + + + + +
bool NimBLERemoteCharacteristic::canWriteNoResponse ()
+
+ +

Does the characteristic support writing with no response?

+
Returns
True if the characteristic supports writing with no response.
+ +
+
+ +

◆ deleteDescriptor()

+ +
+
+ + + + + + + + +
size_t NimBLERemoteCharacteristic::deleteDescriptor (const NimBLEUUIDuuid)
+
+ +

Delete descriptor by UUID.

+
Parameters
+ + +
[in]uuidThe UUID of the descriptor to be deleted.
+
+
+
Returns
Number of descriptors left in the vector.
+ +
+
+ +

◆ deleteDescriptors()

+ +
+
+ + + + + + + +
void NimBLERemoteCharacteristic::deleteDescriptors ()
+
+ +

Delete the descriptors in the descriptor vector.

+

We maintain a vector called m_descriptorVector that contains pointers to NimBLERemoteDescriptors object references. Since we allocated these in this class, we are also responsible for deleting them. This method does just that.

+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteDescriptor * >::iterator NimBLERemoteCharacteristic::end ()
+
+ +

Get iterator to the end of the vector of remote descriptor pointers.

+
Returns
An iterator to the end of the vector of remote descriptor pointers.
+ +
+
+ +

◆ getDefHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLERemoteCharacteristic::getDefHandle ()
+
+ +

Get the handle for this characteristics definition.

+
Returns
The handle for this characteristic definition.
+ +
+
+ +

◆ getDescriptor()

+ +
+
+ + + + + + + + +
NimBLERemoteDescriptor * NimBLERemoteCharacteristic::getDescriptor (const NimBLEUUIDuuid)
+
+ +

Get the descriptor instance with the given UUID that belongs to this characteristic.

+
Parameters
+ + +
[in]uuidThe UUID of the descriptor to find.
+
+
+
Returns
The Remote descriptor (if present) or null if not present.
+ +
+
+ +

◆ getDescriptors()

+ +
+
+ + + + + + + + +
std::vector< NimBLERemoteDescriptor * > * NimBLERemoteCharacteristic::getDescriptors (bool refresh = false)
+
+ +

Get a pointer to the vector of found descriptors.

+
Parameters
+ + +
[in]refreshIf true the current descriptor vector will be cleared and
+all descriptors for this characteristic retrieved from the peripheral.
+If false the vector will be returned with the currently stored descriptors of this characteristic.
+
+
+
Returns
A pointer to the vector of descriptors for this characteristic.
+ +
+
+ +

◆ getHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLERemoteCharacteristic::getHandle ()
+
+ +

Get the handle for this characteristic.

+
Returns
The handle for this characteristic.
+ +
+
+ +

◆ getRemoteService()

+ +
+
+ + + + + + + +
NimBLERemoteService * NimBLERemoteCharacteristic::getRemoteService ()
+
+ +

Get the remote service associated with this characteristic.

+
Returns
The remote service associated with this characteristic.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLERemoteCharacteristic::getUUID ()
+
+ +

Get the UUID for this characteristic.

+
Returns
The UUID for this characteristic.
+ +
+
+ +

◆ getValue() [1/2]

+ +
+
+ + + + + + + + +
std::string NimBLERemoteCharacteristic::getValue (time_t * timestamp = nullptr)
+
+ +

Get the value of the remote characteristic.

+
Parameters
+ + +
[in]timestampA pointer to a time_t struct to store the time the value was read.
+
+
+
Returns
The value of the remote characteristic.
+ +
+
+ +

◆ getValue() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
T NimBLERemoteCharacteristic::getValue (time_t * timestamp = nullptr,
bool skipSizeCheck = false 
)
+
+inline
+
+ +

A template to convert the remote characteristic data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + + +
[in]timestampA pointer to a time_t struct to store the time the value was read.
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: getValue<type>(&timestamp, skipSizeCheck);

+ +
+
+ +

◆ readFloat()

+ +
+
+ + + + + + + +
float NimBLERemoteCharacteristic::readFloat ()
+
+ +

Read a float value.

+
Returns
the float value.
+ +
+
+ +

◆ readUInt16()

+ +
+
+ + + + + + + +
uint16_t NimBLERemoteCharacteristic::readUInt16 ()
+
+ +

Read an unsigned 16 bit value.

+
Returns
The unsigned 16 bit value.
+
Deprecated:
Use readValue<uint16_t>().
+ +
+
+ +

◆ readUInt32()

+ +
+
+ + + + + + + +
uint32_t NimBLERemoteCharacteristic::readUInt32 ()
+
+ +

Read an unsigned 32 bit value.

+
Returns
the unsigned 32 bit value.
+
Deprecated:
Use readValue<uint32_t>().
+ +
+
+ +

◆ readUInt8()

+ +
+
+ + + + + + + +
uint8_t NimBLERemoteCharacteristic::readUInt8 ()
+
+ +

Read a byte value.

+
Returns
The value as a byte
+
Deprecated:
Use readValue<uint8_t>().
+ +
+
+ +

◆ readValue() [1/2]

+ +
+
+ + + + + + + + +
std::string NimBLERemoteCharacteristic::readValue (time_t * timestamp = nullptr)
+
+ +

Read the value of the remote characteristic.

+
Parameters
+ + +
[in]timestampA pointer to a time_t struct to store the time the value was read.
+
+
+
Returns
The value of the remote characteristic.
+ +
+
+ +

◆ readValue() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
T NimBLERemoteCharacteristic::readValue (time_t * timestamp = nullptr,
bool skipSizeCheck = false 
)
+
+inline
+
+ +

A template to convert the remote characteristic data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + + +
[in]timestampA pointer to a time_t struct to store the time the value was read.
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: readValue<type>(&timestamp, skipSizeCheck);

+ +
+
+ +

◆ registerForNotify()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLERemoteCharacteristic::registerForNotify (notify_callback notifyCallback,
bool notifications = true,
bool response = true 
)
+
+ +

backward-compatibility method for subscribe/unsubscribe notifications/indications

+
Parameters
+ + + + +
[in]notifyCallbackA callback to be invoked for a notification. If NULL is provided then we will unregister for notifications.
[in]notificationsIf true, register for notifications, false register for indications.
[in]responseIf true, require a write response from the descriptor write operation.
+
+
+
Returns
true if successful.
+
Deprecated:
Use subscribe() / unsubscribe() instead.
+ +
+
+ +

◆ subscribe()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLERemoteCharacteristic::subscribe (bool notifications = true,
notify_callback notifyCallback = nullptr,
bool response = false 
)
+
+ +

Subscribe for notifications or indications.

+
Parameters
+ + + + +
[in]notificationsIf true, subscribe for notifications, false subscribe for indications.
[in]notifyCallbackA callback to be invoked for a notification.
[in]responseIf true, require a write response from the descriptor write operation. If NULL is provided then no callback is performed.
+
+
+
Returns
false if writing to the descriptor failed.
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + +
std::string NimBLERemoteCharacteristic::toString ()
+
+ +

Convert a NimBLERemoteCharacteristic to a string representation;.

+
Returns
a String representation.
+ +
+
+ +

◆ unsubscribe()

+ +
+
+ + + + + + + + +
bool NimBLERemoteCharacteristic::unsubscribe (bool response = false)
+
+ +

Unsubscribe for notifications or indications.

+
Parameters
+ + +
[in]responsebool if true, require a write response from the descriptor write operation.
+
+
+
Returns
false if writing to the descriptor failed.
+ +
+
+ +

◆ writeValue() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLERemoteCharacteristic::writeValue (const std::string & newValue,
bool response = false 
)
+
+ +

Write the new value for the characteristic.

+
Parameters
+ + + +
[in]newValueThe new value to write.
[in]responseDo we expect a response?
+
+
+
Returns
false if not connected or cant perform write for some reason.
+ +
+
+ +

◆ writeValue() [2/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool NimBLERemoteCharacteristic::writeValue (const T & s,
bool response = false 
)
+
+inline
+
+ +

Convenience template to set the remote characteristic value to <type>val.

+
Parameters
+ + + +
[in]sThe value to write.
[in]responseTrue == request write response.
+
+
+ +
+
+ +

◆ writeValue() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLERemoteCharacteristic::writeValue (const uint8_t * data,
size_t length,
bool response = false 
)
+
+ +

Write the new value for the characteristic from a data buffer.

+
Parameters
+ + + + +
[in]dataA pointer to a data buffer.
[in]lengthThe length of the data in the data buffer.
[in]responseWhether we require a response from the write.
+
+
+
Returns
false if not connected or cant perform write for some reason.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_remote_characteristic.js b/class_nim_b_l_e_remote_characteristic.js new file mode 100644 index 0000000..9fd5a8f --- /dev/null +++ b/class_nim_b_l_e_remote_characteristic.js @@ -0,0 +1,35 @@ +var class_nim_b_l_e_remote_characteristic = +[ + [ "~NimBLERemoteCharacteristic", "class_nim_b_l_e_remote_characteristic.html#a855d591de111b09013ae83c4043d06ed", null ], + [ "begin", "class_nim_b_l_e_remote_characteristic.html#a78ac88ca25d71dfe31b95898b79b0442", null ], + [ "canBroadcast", "class_nim_b_l_e_remote_characteristic.html#a7163009a9f0ff718b5856d19cb4a3568", null ], + [ "canIndicate", "class_nim_b_l_e_remote_characteristic.html#a53322384b295a2548b3399e2c63d76f4", null ], + [ "canNotify", "class_nim_b_l_e_remote_characteristic.html#a9c41acdbf23dc036f321d4f0a66d40d1", null ], + [ "canRead", "class_nim_b_l_e_remote_characteristic.html#a0eb6655635394268a76c68e845d14135", null ], + [ "canWrite", "class_nim_b_l_e_remote_characteristic.html#aae71c20d300ead52770e66fb8a1a47ea", null ], + [ "canWriteNoResponse", "class_nim_b_l_e_remote_characteristic.html#a2614c7f437b52f385fc4fd29abe358eb", null ], + [ "deleteDescriptor", "class_nim_b_l_e_remote_characteristic.html#aad0ba99cad9779b33ea7cd4e94349099", null ], + [ "deleteDescriptors", "class_nim_b_l_e_remote_characteristic.html#a5f0a51b4a7fb2244d236dcb96fcf5205", null ], + [ "end", "class_nim_b_l_e_remote_characteristic.html#a333adea9c9f243774c6a2f13beabd873", null ], + [ "getDefHandle", "class_nim_b_l_e_remote_characteristic.html#aebbcd36740e49d7e29eb5b21d6802380", null ], + [ "getDescriptor", "class_nim_b_l_e_remote_characteristic.html#a6178e1c58361b957be3c48548c1c4366", null ], + [ "getDescriptors", "class_nim_b_l_e_remote_characteristic.html#acf11d225fe5a25327742349e9d6061f9", null ], + [ "getHandle", "class_nim_b_l_e_remote_characteristic.html#ab46121a8f5000c40d521e7ee5d92bee6", null ], + [ "getRemoteService", "class_nim_b_l_e_remote_characteristic.html#a943183a55b020de9e09ac2cfaebcde32", null ], + [ "getUUID", "class_nim_b_l_e_remote_characteristic.html#ad62c63468995a24d736c4176c9607eeb", null ], + [ "getValue", "class_nim_b_l_e_remote_characteristic.html#add1a1daed14b5f3e729e284dbd369257", null ], + [ "getValue", "class_nim_b_l_e_remote_characteristic.html#a74ad8484cbc88d8eb36d4684233c538b", null ], + [ "readFloat", "class_nim_b_l_e_remote_characteristic.html#a81f39759d48a8fb792c94e4b3b455eef", null ], + [ "readUInt16", "class_nim_b_l_e_remote_characteristic.html#a181c54862bc422d8ad0b326af675922d", null ], + [ "readUInt32", "class_nim_b_l_e_remote_characteristic.html#a71793454ffab034f87af3a5e9677a63d", null ], + [ "readUInt8", "class_nim_b_l_e_remote_characteristic.html#ade5c6ae280c3cf36c9905be23df8f080", null ], + [ "readValue", "class_nim_b_l_e_remote_characteristic.html#a7e10fa37095d7c80dc36c768fe783e67", null ], + [ "readValue", "class_nim_b_l_e_remote_characteristic.html#a463760cabc9ca104a6fe094eb942fec0", null ], + [ "registerForNotify", "class_nim_b_l_e_remote_characteristic.html#ab4f54eabe90a416546b7b3fc3477f49c", null ], + [ "subscribe", "class_nim_b_l_e_remote_characteristic.html#aa08b2f62376568e1fc833e4ff91e8aa7", null ], + [ "toString", "class_nim_b_l_e_remote_characteristic.html#a4b86a1f600a61036487f5161f1f1726a", null ], + [ "unsubscribe", "class_nim_b_l_e_remote_characteristic.html#a6e331afdbdbc32bf461c9866236a97aa", null ], + [ "writeValue", "class_nim_b_l_e_remote_characteristic.html#a2cfc2e8d2e281dd61e578eb5e860fc02", null ], + [ "writeValue", "class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae", null ], + [ "writeValue", "class_nim_b_l_e_remote_characteristic.html#a3c8d1fd77dd074df866c091c614eafb3", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_remote_descriptor-members.html b/class_nim_b_l_e_remote_descriptor-members.html new file mode 100644 index 0000000..afc5003 --- /dev/null +++ b/class_nim_b_l_e_remote_descriptor-members.html @@ -0,0 +1,113 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteDescriptor Member List
+
+
+ +

This is the complete list of members for NimBLERemoteDescriptor, including all inherited members.

+ + + + + + + + + + + + + +
getHandle()NimBLERemoteDescriptor
getRemoteCharacteristic()NimBLERemoteDescriptor
getUUID()NimBLERemoteDescriptor
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(bool skipSizeCheck=false)NimBLERemoteDescriptorinline
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 T &s, bool response=false)NimBLERemoteDescriptorinline
+
+ + + + diff --git a/class_nim_b_l_e_remote_descriptor.html b/class_nim_b_l_e_remote_descriptor.html new file mode 100644 index 0000000..2e1a229 --- /dev/null +++ b/class_nim_b_l_e_remote_descriptor.html @@ -0,0 +1,488 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLERemoteDescriptor Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLERemoteDescriptor Class Reference
+
+
+ +

A model of remote BLE descriptor. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

uint16_t getHandle ()
 Retrieve the handle associated with this remote descriptor. More...
 
NimBLERemoteCharacteristicgetRemoteCharacteristic ()
 Get the characteristic that owns this descriptor. More...
 
NimBLEUUID getUUID ()
 Retrieve the UUID associated this remote descriptor. More...
 
std::string readValue ()
 Read the value of the remote descriptor. More...
 
template<typename 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>()")))
 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...
 
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...
 
bool writeValue (const std::string &newValue, bool response=false)
 Write data represented as a string to the BLE Remote Descriptor. More...
 
template<typename T >
bool writeValue (const T &s, bool response=false)
 Convenience template to set the remote descriptor value to <type>val. More...
 
+

Detailed Description

+

A model of remote BLE descriptor.

+

Member Function Documentation

+ +

◆ getHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLERemoteDescriptor::getHandle ()
+
+ +

Retrieve the handle associated with this remote descriptor.

+
Returns
The handle associated with this remote descriptor.
+ +
+
+ +

◆ getRemoteCharacteristic()

+ +
+
+ + + + + + + +
NimBLERemoteCharacteristic * NimBLERemoteDescriptor::getRemoteCharacteristic ()
+
+ +

Get the characteristic that owns this descriptor.

+
Returns
The characteristic that owns this descriptor.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + +
NimBLEUUID NimBLERemoteDescriptor::getUUID ()
+
+ +

Retrieve the UUID associated this remote descriptor.

+
Returns
The UUID associated this remote descriptor.
+ +
+
+ +

◆ readUInt16()

+ +
+
+ + + + + + + +
uint16_t NimBLERemoteDescriptor::readUInt16 ()
+
+ +

Read an unsigned 16 bit value.

+
Returns
The unsigned 16 bit value.
+
Deprecated:
Use readValue<uint16_t>().
+ +
+
+ +

◆ readUInt32()

+ +
+
+ + + + + + + +
uint32_t NimBLERemoteDescriptor::readUInt32 ()
+
+ +

Read an unsigned 32 bit value.

+
Returns
the unsigned 32 bit value.
+
Deprecated:
Use readValue<uint32_t>().
+ +
+
+ +

◆ readUInt8()

+ +
+
+ + + + + + + +
uint8_t NimBLERemoteDescriptor::readUInt8 ()
+
+ +

Read a byte value.

+
Returns
The value as a byte
+
Deprecated:
Use readValue<uint8_t>().
+ +
+
+ +

◆ readValue() [1/2]

+ +
+
+ + + + + + + +
std::string NimBLERemoteDescriptor::readValue ()
+
+ +

Read the value of the remote descriptor.

+
Returns
The value of the remote descriptor.
+ +
+
+ +

◆ readValue() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
T NimBLERemoteDescriptor::readValue (bool skipSizeCheck = false)
+
+inline
+
+ +

A template to convert the remote descriptor data to <type>.

+
Template Parameters
+ + +
TThe type to convert the data to.
+
+
+
Parameters
+ + +
[in]skipSizeCheckIf true it will skip checking if the data size is less than sizeof(<type>).
+
+
+
Returns
The data converted to <type> or NULL if skipSizeCheck is false and the data is less than sizeof(<type>).
+

Use: readValue<type>(skipSizeCheck);

+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + + +
std::string NimBLERemoteDescriptor::toString (void )
+
+ +

Return a string representation of this Remote Descriptor.

+
Returns
A string representation of this Remote Descriptor.
+ +
+
+ +

◆ writeValue() [1/3]

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLERemoteDescriptor::writeValue (const std::string & newValue,
bool response = false 
)
+
+ +

Write data represented as a string to the BLE Remote Descriptor.

+
Parameters
+ + + +
[in]newValueThe data to send to the remote descriptor.
[in]responseTrue if we expect a response.
+
+
+
Returns
True if successful
+ +
+
+ +

◆ writeValue() [2/3]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool NimBLERemoteDescriptor::writeValue (const T & s,
bool response = false 
)
+
+inline
+
+ +

Convenience template to set the remote descriptor value to <type>val.

+
Parameters
+ + + +
[in]sThe value to write.
[in]responseTrue == request write response.
+
+
+ +
+
+ +

◆ writeValue() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLERemoteDescriptor::writeValue (const uint8_t * data,
size_t length,
bool response = false 
)
+
+ +

Write data to the BLE Remote Descriptor.

+
Parameters
+ + + + +
[in]dataThe data to send to the remote descriptor.
[in]lengthThe length of the data to send.
[in]responseTrue if we expect a write response.
+
+
+
Returns
True if successful
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_remote_descriptor.js b/class_nim_b_l_e_remote_descriptor.js new file mode 100644 index 0000000..cec416e --- /dev/null +++ b/class_nim_b_l_e_remote_descriptor.js @@ -0,0 +1,15 @@ +var class_nim_b_l_e_remote_descriptor = +[ + [ "getHandle", "class_nim_b_l_e_remote_descriptor.html#ab8a774ebc69c0fb7ea17f926a82dba21", null ], + [ "getRemoteCharacteristic", "class_nim_b_l_e_remote_descriptor.html#a529e80c6731f68f3598e015df7618cfe", null ], + [ "getUUID", "class_nim_b_l_e_remote_descriptor.html#ace6b19cd3d9aa8226b4c17371616ad58", null ], + [ "readUInt16", "class_nim_b_l_e_remote_descriptor.html#a14351ea51b7b04f91b71e388881edd53", null ], + [ "readUInt32", "class_nim_b_l_e_remote_descriptor.html#a219606f84d63bc02f093051d66f05204", null ], + [ "readUInt8", "class_nim_b_l_e_remote_descriptor.html#ab07e86707a91e48f68e9de55686e939b", null ], + [ "readValue", "class_nim_b_l_e_remote_descriptor.html#a3b6952aa46b3541fb0a8247e4e542257", null ], + [ "readValue", "class_nim_b_l_e_remote_descriptor.html#ac4e3a21818903b69ace41c36a58d3c46", null ], + [ "toString", "class_nim_b_l_e_remote_descriptor.html#a008795a09d1fbe8533c2e9d0e8deb33a", null ], + [ "writeValue", "class_nim_b_l_e_remote_descriptor.html#a30bc16403ed53d3b4417c0a01cc4a40f", null ], + [ "writeValue", "class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c", null ], + [ "writeValue", "class_nim_b_l_e_remote_descriptor.html#a0d3fb6424b2c86730e1a292281cd836e", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_remote_service-members.html b/class_nim_b_l_e_remote_service-members.html new file mode 100644 index 0000000..d6d55f2 --- /dev/null +++ b/class_nim_b_l_e_remote_service-members.html @@ -0,0 +1,114 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLERemoteService Member List
+
+
+ +

This is the complete list of members for NimBLERemoteService, including all inherited members.

+ + + + + + + + + + + + + + +
begin()NimBLERemoteService
deleteCharacteristic(const NimBLEUUID &uuid)NimBLERemoteService
deleteCharacteristics()NimBLERemoteService
end()NimBLERemoteService
getCharacteristic(const char *uuid)NimBLERemoteService
getCharacteristic(const NimBLEUUID &uuid)NimBLERemoteService
getCharacteristics(bool refresh=false)NimBLERemoteService
getClient(void)NimBLERemoteService
getUUID(void)NimBLERemoteService
getValue(const NimBLEUUID &characteristicUuid)NimBLERemoteService
setValue(const NimBLEUUID &characteristicUuid, const std::string &value)NimBLERemoteService
toString(void)NimBLERemoteService
~NimBLERemoteService()NimBLERemoteServicevirtual
+
+ + + + diff --git a/class_nim_b_l_e_remote_service.html b/class_nim_b_l_e_remote_service.html new file mode 100644 index 0000000..411bc0d --- /dev/null +++ b/class_nim_b_l_e_remote_service.html @@ -0,0 +1,428 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLERemoteService Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLERemoteService Class Reference
+
+
+ +

A model of a remote BLE service. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+virtual ~NimBLERemoteService ()
 When deleting the service make sure we delete all characteristics and descriptors.
 
std::vector< NimBLERemoteCharacteristic * >::iterator begin ()
 Get iterator to the beginning of the vector of remote characteristic pointers. More...
 
std::vector< NimBLERemoteCharacteristic * >::iterator end ()
 Get iterator to the end of the vector of remote characteristic pointers. More...
 
NimBLERemoteCharacteristicgetCharacteristic (const char *uuid)
 Get the remote characteristic object for the characteristic UUID. More...
 
NimBLERemoteCharacteristicgetCharacteristic (const NimBLEUUID &uuid)
 Get the characteristic object for the UUID. More...
 
void deleteCharacteristics ()
 Delete the characteristics in the characteristics vector. More...
 
size_t deleteCharacteristic (const NimBLEUUID &uuid)
 Delete characteristic by UUID. More...
 
NimBLEClientgetClient (void)
 Get the client associated with this service. More...
 
+NimBLEUUID getUUID (void)
 Get the service UUID.
 
std::string getValue (const NimBLEUUID &characteristicUuid)
 Read the value of a characteristic associated with this service. More...
 
bool setValue (const NimBLEUUID &characteristicUuid, const std::string &value)
 Set the value of a characteristic. More...
 
std::string toString (void)
 Create a string representation of this remote service. More...
 
std::vector< NimBLERemoteCharacteristic * > * getCharacteristics (bool refresh=false)
 Get a pointer to the vector of found characteristics. More...
 
+

Detailed Description

+

A model of a remote BLE service.

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteCharacteristic * >::iterator NimBLERemoteService::begin ()
+
+ +

Get iterator to the beginning of the vector of remote characteristic pointers.

+
Returns
An iterator to the beginning of the vector of remote characteristic pointers.
+ +
+
+ +

◆ deleteCharacteristic()

+ +
+
+ + + + + + + + +
size_t NimBLERemoteService::deleteCharacteristic (const NimBLEUUIDuuid)
+
+ +

Delete characteristic by UUID.

+
Parameters
+ + +
[in]uuidThe UUID of the characteristic to be removed from the local database.
+
+
+
Returns
Number of characteristics left.
+ +
+
+ +

◆ deleteCharacteristics()

+ +
+
+ + + + + + + +
void NimBLERemoteService::deleteCharacteristics ()
+
+ +

Delete the characteristics in the characteristics vector.

+

We maintain a vector called m_characteristicsVector that contains pointers to BLERemoteCharacteristic object references. Since we allocated these in this class, we are also responsible for deleting them. This method does just that.

+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
std::vector< NimBLERemoteCharacteristic * >::iterator NimBLERemoteService::end ()
+
+ +

Get iterator to the end of the vector of remote characteristic pointers.

+
Returns
An iterator to the end of the vector of remote characteristic pointers.
+ +
+
+ +

◆ getCharacteristic() [1/2]

+ +
+
+ + + + + + + + +
NimBLERemoteCharacteristic * NimBLERemoteService::getCharacteristic (const char * uuid)
+
+ +

Get the remote characteristic object for the characteristic UUID.

+
Parameters
+ + +
[in]uuidRemote characteristic uuid.
+
+
+
Returns
A pointer to the remote characteristic object.
+ +
+
+ +

◆ getCharacteristic() [2/2]

+ +
+
+ + + + + + + + +
NimBLERemoteCharacteristic * NimBLERemoteService::getCharacteristic (const NimBLEUUIDuuid)
+
+ +

Get the characteristic object for the UUID.

+
Parameters
+ + +
[in]uuidCharacteristic uuid.
+
+
+
Returns
A pointer to the characteristic object, or nullptr if not found.
+ +
+
+ +

◆ getCharacteristics()

+ +
+
+ + + + + + + + +
std::vector< NimBLERemoteCharacteristic * > * NimBLERemoteService::getCharacteristics (bool refresh = false)
+
+ +

Get a pointer to the vector of found characteristics.

+
Parameters
+ + +
[in]refreshIf true the current characteristics vector will cleared and all characteristics for this service retrieved from the peripheral. If false the vector will be returned with the currently stored characteristics of this service.
+
+
+
Returns
A pointer to the vector of descriptors for this characteristic.
+ +
+
+ +

◆ getClient()

+ +
+
+ + + + + + + + +
NimBLEClient * NimBLERemoteService::getClient (void )
+
+ +

Get the client associated with this service.

+
Returns
A reference to the client associated with this service.
+ +
+
+ +

◆ getValue()

+ +
+
+ + + + + + + + +
std::string NimBLERemoteService::getValue (const NimBLEUUIDcharacteristicUuid)
+
+ +

Read the value of a characteristic associated with this service.

+
Parameters
+ + +
[in]characteristicUuidThe characteristic to read.
+
+
+
Returns
a string containing the value or an empty string if not found or error.
+ +
+
+ +

◆ setValue()

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool NimBLERemoteService::setValue (const NimBLEUUIDcharacteristicUuid,
const std::string & value 
)
+
+ +

Set the value of a characteristic.

+
Parameters
+ + + +
[in]characteristicUuidThe characteristic to set.
[in]valueThe value to set.
+
+
+
Returns
true on success, false if not found or error
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + + +
std::string NimBLERemoteService::toString (void )
+
+ +

Create a string representation of this remote service.

+
Returns
A string representation of this remote service.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_remote_service.js b/class_nim_b_l_e_remote_service.js new file mode 100644 index 0000000..67910f8 --- /dev/null +++ b/class_nim_b_l_e_remote_service.js @@ -0,0 +1,16 @@ +var class_nim_b_l_e_remote_service = +[ + [ "~NimBLERemoteService", "class_nim_b_l_e_remote_service.html#a2803aa5cdfdb622ae8fe255dc939cb1d", null ], + [ "begin", "class_nim_b_l_e_remote_service.html#a49bb3134b570db877fac67e6ed077aa2", null ], + [ "deleteCharacteristic", "class_nim_b_l_e_remote_service.html#a15b3b750b073f334c3be680a99ce2e02", null ], + [ "deleteCharacteristics", "class_nim_b_l_e_remote_service.html#a221069047193f8d25f7112b44bbcb28f", null ], + [ "end", "class_nim_b_l_e_remote_service.html#a10fe635fe9a0661d26c33021faaec53b", null ], + [ "getCharacteristic", "class_nim_b_l_e_remote_service.html#ab12d195a2239a3808d60457184f0c487", null ], + [ "getCharacteristic", "class_nim_b_l_e_remote_service.html#a7ff4fc7bfb77adc33003dd6eb8e16957", null ], + [ "getCharacteristics", "class_nim_b_l_e_remote_service.html#a2c9e91c842598a6a9576c7b87af0863a", null ], + [ "getClient", "class_nim_b_l_e_remote_service.html#a3d1e7db457a9f3774eaa5e641dcc716e", null ], + [ "getUUID", "class_nim_b_l_e_remote_service.html#a565ed7d306645772d4e03ca65a07f7e5", null ], + [ "getValue", "class_nim_b_l_e_remote_service.html#a4a9b63b4e5cedb51a7748a88daeb518b", null ], + [ "setValue", "class_nim_b_l_e_remote_service.html#a4bb8c7c85580d86fd9ab7be5c3933b72", null ], + [ "toString", "class_nim_b_l_e_remote_service.html#aaf106a37f24a51b967dd0984c973750f", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_scan-members.html b/class_nim_b_l_e_scan-members.html new file mode 100644 index 0000000..9371ed7 --- /dev/null +++ b/class_nim_b_l_e_scan-members.html @@ -0,0 +1,117 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEScan Member List
+
+
+ +

This is the complete list of members for NimBLEScan, including all inherited members.

+ + + + + + + + + + + + + + + + + +
clearDuplicateCache()NimBLEScan
clearResults()NimBLEScan
erase(const NimBLEAddress &address)NimBLEScan
getResults()NimBLEScan
isScanning()NimBLEScan
setActiveScan(bool active)NimBLEScan
setAdvertisedDeviceCallbacks(NimBLEAdvertisedDeviceCallbacks *pAdvertisedDeviceCallbacks, bool wantDuplicates=false)NimBLEScan
setDuplicateFilter(bool enabled)NimBLEScan
setFilterPolicy(uint8_t filter)NimBLEScan
setInterval(uint16_t intervalMSecs)NimBLEScan
setLimitedOnly(bool enabled)NimBLEScan
setMaxResults(uint8_t maxResults)NimBLEScan
setWindow(uint16_t windowMSecs)NimBLEScan
start(uint32_t duration, void(*scanCompleteCB)(NimBLEScanResults), bool is_continue=false)NimBLEScan
start(uint32_t duration, bool is_continue=false)NimBLEScan
stop()NimBLEScan
+
+ + + + diff --git a/class_nim_b_l_e_scan.html b/class_nim_b_l_e_scan.html new file mode 100644 index 0000000..11bdd11 --- /dev/null +++ b/class_nim_b_l_e_scan.html @@ -0,0 +1,564 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEScan Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEScan Class Reference
+
+
+ +

Perform and manage BLE scans. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool start (uint32_t duration, void(*scanCompleteCB)(NimBLEScanResults), bool is_continue=false)
 Start scanning. More...
 
NimBLEScanResults start (uint32_t duration, bool is_continue=false)
 Start scanning and block until scanning has been completed. More...
 
bool isScanning ()
 Get the status of the scanner. More...
 
void setAdvertisedDeviceCallbacks (NimBLEAdvertisedDeviceCallbacks *pAdvertisedDeviceCallbacks, bool wantDuplicates=false)
 Set the call backs to be invoked. More...
 
void setActiveScan (bool active)
 Should we perform an active or passive scan? The default is a passive scan. An active scan means that we will request a scan response. More...
 
void setInterval (uint16_t intervalMSecs)
 Set the interval to scan. More...
 
void setWindow (uint16_t windowMSecs)
 Set the window to actively scan. More...
 
void setDuplicateFilter (bool enabled)
 Set whether or not the BLE controller should only report results from devices it has not already seen. More...
 
void setLimitedOnly (bool enabled)
 Set whether or not the BLE controller only report scan results from devices advertising in limited discovery mode, i.e. directed advertising. More...
 
void setFilterPolicy (uint8_t filter)
 Sets the scan filter policy. More...
 
+void clearDuplicateCache ()
 Clears the duplicate scan filter cache.
 
bool stop ()
 Stop an in progress scan. More...
 
+void clearResults ()
 Clear the results of the scan.
 
NimBLEScanResults getResults ()
 Get the results of the scan. More...
 
void setMaxResults (uint8_t maxResults)
 Sets the max number of results to store. More...
 
void erase (const NimBLEAddress &address)
 Delete peer device from the scan results vector. More...
 
+

Detailed Description

+

Perform and manage BLE scans.

+

Scanning is associated with a BLE client that is attempting to locate BLE servers.

+

Member Function Documentation

+ +

◆ erase()

+ +
+
+ + + + + + + + +
void NimBLEScan::erase (const NimBLEAddressaddress)
+
+ +

Delete peer device from the scan results vector.

+
Parameters
+ + +
[in]addressThe address of the device to delete from the results.
+
+
+

After disconnecting, it may be required in the case we were connected to a device without a public address.

+ +
+
+ +

◆ getResults()

+ +
+
+ + + + + + + +
NimBLEScanResults NimBLEScan::getResults ()
+
+ +

Get the results of the scan.

+
Returns
NimBLEScanResults object.
+ +
+
+ +

◆ isScanning()

+ +
+
+ + + + + + + +
bool NimBLEScan::isScanning ()
+
+ +

Get the status of the scanner.

+
Returns
true if scanning or scan starting.
+ +
+
+ +

◆ setActiveScan()

+ +
+
+ + + + + + + + +
void NimBLEScan::setActiveScan (bool active)
+
+ +

Should we perform an active or passive scan? The default is a passive scan. An active scan means that we will request a scan response.

+
Parameters
+ + +
[in]activeIf true, we perform an active scan otherwise a passive scan.
+
+
+ +
+
+ +

◆ setAdvertisedDeviceCallbacks()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEScan::setAdvertisedDeviceCallbacks (NimBLEAdvertisedDeviceCallbackspAdvertisedDeviceCallbacks,
bool wantDuplicates = false 
)
+
+ +

Set the call backs to be invoked.

+
Parameters
+ + + +
[in]pAdvertisedDeviceCallbacksCall backs to be invoked.
[in]wantDuplicatesTrue if we wish to be called back with duplicates. Default is false.
+
+
+ +
+
+ +

◆ setDuplicateFilter()

+ +
+
+ + + + + + + + +
void NimBLEScan::setDuplicateFilter (bool enabled)
+
+ +

Set whether or not the BLE controller should only report results from devices it has not already seen.

+
Parameters
+ + +
[in]enabledIf true, scanned devices will only be reported once.
+
+
+

The controller has a limited buffer and will start reporting dupicate devices once the limit is reached.

+ +
+
+ +

◆ setFilterPolicy()

+ +
+
+ + + + + + + + +
void NimBLEScan::setFilterPolicy (uint8_t filter)
+
+ +

Sets the scan filter policy.

+
Parameters
+ + +
[in]filterCan be one of:
    +
  • BLE_HCI_SCAN_FILT_NO_WL (0) Scanner processes all advertising packets (white list not used) except
    + directed, connectable advertising packets not sent to the scanner.
  • +
  • BLE_HCI_SCAN_FILT_USE_WL (1) Scanner processes advertisements from white list only. A connectable,
    + directed advertisment is ignored unless it contains scanners address.
  • +
  • BLE_HCI_SCAN_FILT_NO_WL_INITA (2) Scanner process all advertising packets (white list not used). A
    + connectable, directed advertisement shall not be ignored if the InitA is a resolvable private address.
  • +
  • BLE_HCI_SCAN_FILT_USE_WL_INITA (3) Scanner process advertisements from white list only. A connectable,
    + directed advertisement shall not be ignored if the InitA is a resolvable private address.
  • +
+
+
+
+ +
+
+ +

◆ setInterval()

+ +
+
+ + + + + + + + +
void NimBLEScan::setInterval (uint16_t intervalMSecs)
+
+ +

Set the interval to scan.

+
Parameters
+ + +
[in]intervalMSecsThe scan interval (how often) in milliseconds.
+
+
+ +
+
+ +

◆ setLimitedOnly()

+ +
+
+ + + + + + + + +
void NimBLEScan::setLimitedOnly (bool enabled)
+
+ +

Set whether or not the BLE controller only report scan results from devices advertising in limited discovery mode, i.e. directed advertising.

+
Parameters
+ + +
[in]enabledIf true, only limited discovery devices will be in scan results.
+
+
+ +
+
+ +

◆ setMaxResults()

+ +
+
+ + + + + + + + +
void NimBLEScan::setMaxResults (uint8_t maxResults)
+
+ +

Sets the max number of results to store.

+
Parameters
+ + +
[in]maxResultsThe number of results to limit storage to
+0 == none (callbacks only) 0xFF == unlimited, any other value is the limit.
+
+
+ +
+
+ +

◆ setWindow()

+ +
+
+ + + + + + + + +
void NimBLEScan::setWindow (uint16_t windowMSecs)
+
+ +

Set the window to actively scan.

+
Parameters
+ + +
[in]windowMSecsHow long to actively scan.
+
+
+ +
+
+ +

◆ start() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEScanResults NimBLEScan::start (uint32_t duration,
bool is_continue = false 
)
+
+ +

Start scanning and block until scanning has been completed.

+
Parameters
+ + + +
[in]durationThe duration in seconds for which to scan.
[in]is_continueSet to true to save previous scan results, false to clear them.
+
+
+
Returns
The NimBLEScanResults.
+ +
+
+ +

◆ start() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool NimBLEScan::start (uint32_t duration,
void(*)(NimBLEScanResultsscanCompleteCB,
bool is_continue = false 
)
+
+ +

Start scanning.

+
Parameters
+ + + + +
[in]durationThe duration in seconds for which to scan.
[in]scanCompleteCBA function to be called when scanning has completed.
[in]is_continueSet to true to save previous scan results, false to clear them.
+
+
+
Returns
True if scan started or false if there was an error.
+ +
+
+ +

◆ stop()

+ +
+
+ + + + + + + +
bool NimBLEScan::stop ()
+
+ +

Stop an in progress scan.

+
Returns
True if successful.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_scan.js b/class_nim_b_l_e_scan.js new file mode 100644 index 0000000..cc7d480 --- /dev/null +++ b/class_nim_b_l_e_scan.js @@ -0,0 +1,19 @@ +var class_nim_b_l_e_scan = +[ + [ "clearDuplicateCache", "class_nim_b_l_e_scan.html#a6a97fd1c7f16fccd7f19994592b6dfe6", null ], + [ "clearResults", "class_nim_b_l_e_scan.html#ad421a09eeb021755b193a7a5e01f183b", null ], + [ "erase", "class_nim_b_l_e_scan.html#a566a9ef25b04e946ac23402bb760cda1", null ], + [ "getResults", "class_nim_b_l_e_scan.html#a2ae53719546e2d410c816e12c56aad61", null ], + [ "isScanning", "class_nim_b_l_e_scan.html#ab788ad282fdbf4467302f6ad2d4d6016", null ], + [ "setActiveScan", "class_nim_b_l_e_scan.html#a7d24e77d6b339552b6ac16effdb54910", null ], + [ "setAdvertisedDeviceCallbacks", "class_nim_b_l_e_scan.html#ab275a9fec35c8957acf47689056d94af", null ], + [ "setDuplicateFilter", "class_nim_b_l_e_scan.html#ac40563af803f3b9ab88398c7f30e21bb", null ], + [ "setFilterPolicy", "class_nim_b_l_e_scan.html#a4248aabb5da67953eadab2a6f834d967", null ], + [ "setInterval", "class_nim_b_l_e_scan.html#a3f3e30d8b79aeb4d64af10d5f9d33788", null ], + [ "setLimitedOnly", "class_nim_b_l_e_scan.html#a77483be2bd9dad08322cc64f4e7012c1", null ], + [ "setMaxResults", "class_nim_b_l_e_scan.html#aad9cd2462d00d7c0fa39d095aa2d8e81", null ], + [ "setWindow", "class_nim_b_l_e_scan.html#ac2e8c921413f1ad217f45fecf63c0d22", null ], + [ "start", "class_nim_b_l_e_scan.html#a8459a1c69476fcdfd6370a1d10e0e159", null ], + [ "start", "class_nim_b_l_e_scan.html#a21b1e27816717b77533755f31dfaa820", null ], + [ "stop", "class_nim_b_l_e_scan.html#a68fa5cc715f62a9a97ac0dccfb8557c1", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_scan_results-members.html b/class_nim_b_l_e_scan_results-members.html new file mode 100644 index 0000000..58db8a0 --- /dev/null +++ b/class_nim_b_l_e_scan_results-members.html @@ -0,0 +1,107 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEScanResults Member List
+
+
+ +

This is the complete list of members for NimBLEScanResults, including all inherited members.

+ + + + + + + +
begin()NimBLEScanResults
dump()NimBLEScanResults
end()NimBLEScanResults
getCount()NimBLEScanResults
getDevice(uint32_t i)NimBLEScanResults
getDevice(const NimBLEAddress &address)NimBLEScanResults
+
+ + + + diff --git a/class_nim_b_l_e_scan_results.html b/class_nim_b_l_e_scan_results.html new file mode 100644 index 0000000..b00e34e --- /dev/null +++ b/class_nim_b_l_e_scan_results.html @@ -0,0 +1,246 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEScanResults Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEScanResults Class Reference
+
+
+ +

A class that contains and operates on the results of a BLE scan. + More...

+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+void dump ()
 Dump the scan results to the log.
 
int getCount ()
 Get the count of devices found in the last scan. More...
 
NimBLEAdvertisedDevice getDevice (uint32_t i)
 Return the specified device at the given index. The index should be between 0 and getCount()-1. More...
 
std::vector< NimBLEAdvertisedDevice * >::iterator begin ()
 Get iterator to the beginning of the vector of advertised device pointers. More...
 
std::vector< NimBLEAdvertisedDevice * >::iterator end ()
 Get iterator to the end of the vector of advertised device pointers. More...
 
NimBLEAdvertisedDevicegetDevice (const NimBLEAddress &address)
 Get a pointer to the specified device at the given address. If the address is not found a nullptr is returned. More...
 
+

Detailed Description

+

A class that contains and operates on the results of a BLE scan.

+

When a scan completes, we have a set of found devices. Each device is described by a NimBLEAdvertisedDevice object. The number of items in the set is given by getCount(). We can retrieve a device by calling getDevice() passing in the index (starting at 0) of the desired device.

+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + +
std::vector< NimBLEAdvertisedDevice * >::iterator NimBLEScanResults::begin ()
+
+ +

Get iterator to the beginning of the vector of advertised device pointers.

+
Returns
An iterator to the beginning of the vector of advertised device pointers.
+ +
+
+ +

◆ end()

+ +
+
+ + + + + + + +
std::vector< NimBLEAdvertisedDevice * >::iterator NimBLEScanResults::end ()
+
+ +

Get iterator to the end of the vector of advertised device pointers.

+
Returns
An iterator to the end of the vector of advertised device pointers.
+ +
+
+ +

◆ getCount()

+ +
+
+ + + + + + + +
int NimBLEScanResults::getCount ()
+
+ +

Get the count of devices found in the last scan.

+
Returns
The number of devices found in the last scan.
+ +
+
+ +

◆ getDevice() [1/2]

+ +
+
+ + + + + + + + +
NimBLEAdvertisedDevice * NimBLEScanResults::getDevice (const NimBLEAddressaddress)
+
+ +

Get a pointer to the specified device at the given address. If the address is not found a nullptr is returned.

+
Parameters
+ + +
[in]addressThe address of the device.
+
+
+
Returns
A pointer to the device at the specified address.
+ +
+
+ +

◆ getDevice() [2/2]

+ +
+
+ + + + + + + + +
NimBLEAdvertisedDevice NimBLEScanResults::getDevice (uint32_t i)
+
+ +

Return the specified device at the given index. The index should be between 0 and getCount()-1.

+
Parameters
+ + +
[in]iThe index of the device.
+
+
+
Returns
The device at the specified index.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_scan_results.js b/class_nim_b_l_e_scan_results.js new file mode 100644 index 0000000..8c3d49d --- /dev/null +++ b/class_nim_b_l_e_scan_results.js @@ -0,0 +1,9 @@ +var class_nim_b_l_e_scan_results = +[ + [ "begin", "class_nim_b_l_e_scan_results.html#ad426f221e8c18c0c3f5784786710e8f0", null ], + [ "dump", "class_nim_b_l_e_scan_results.html#a2bbead75105733d04796b69e10c56cd4", null ], + [ "end", "class_nim_b_l_e_scan_results.html#a44e183a7ce0c9fb587d11910ce5ef200", null ], + [ "getCount", "class_nim_b_l_e_scan_results.html#ae4796dd6ce1845c46f66bc1a36ad746a", null ], + [ "getDevice", "class_nim_b_l_e_scan_results.html#ac2356f6c1b8384ebc061d4b7953a9374", null ], + [ "getDevice", "class_nim_b_l_e_scan_results.html#a68aa3ebffb1be785497f228c1d11e500", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_security-members.html b/class_nim_b_l_e_security-members.html new file mode 100644 index 0000000..7c85810 --- /dev/null +++ b/class_nim_b_l_e_security-members.html @@ -0,0 +1,107 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLESecurity Member List
+
+
+ +

This is the complete list of members for NimBLESecurity, including all inherited members.

+ + + + + + + +
setAuthenticationMode(esp_ble_auth_req_t auth_req)NimBLESecurity
setCapability(esp_ble_io_cap_t iocap)NimBLESecurity
setInitEncryptionKey(uint8_t init_key)NimBLESecurity
setKeySize(uint8_t key_size=16)NimBLESecurity
setRespEncryptionKey(uint8_t resp_key)NimBLESecurity
setStaticPIN(uint32_t pin)NimBLESecurity
+
+ + + + diff --git a/class_nim_b_l_e_security.html b/class_nim_b_l_e_security.html new file mode 100644 index 0000000..8ddc84a --- /dev/null +++ b/class_nim_b_l_e_security.html @@ -0,0 +1,311 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLESecurity Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLESecurity Class Reference
+
+
+ +

A class to handle BLE security operations. Deprecated - provided for backward compatibility only. + More...

+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

void setAuthenticationMode (esp_ble_auth_req_t auth_req)
 Set requested authentication mode. More...
 
void setCapability (esp_ble_io_cap_t iocap)
 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...
 
void setRespEncryptionKey (uint8_t resp_key)
 Sets the keys we will accept during encryption. More...
 
void setKeySize (uint8_t key_size=16)
 
void setStaticPIN (uint32_t pin)
 Sets a static PIN used to authenticate/encrypt the connection. More...
 
+

Detailed Description

+

A class to handle BLE security operations. Deprecated - provided for backward compatibility only.

+
Deprecated:
Use the security methods provided in NimBLEDevice instead.
+

Member Function Documentation

+ +

◆ setAuthenticationMode()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setAuthenticationMode (esp_ble_auth_req_t auth_req)
+
+ +

Set requested authentication mode.

+
Parameters
+ + +
[in]auth_reqA bitmask containing one or more of:
    +
  • ESP_LE_AUTH_NO_BOND 0x00
  • +
  • ESP_LE_AUTH_BOND 0x01
  • +
  • ESP_LE_AUTH_REQ_MITM (1 << 2)
  • +
  • ESP_LE_AUTH_REQ_BOND_MITM (ESP_LE_AUTH_BOND | ESP_LE_AUTH_REQ_MITM)
  • +
  • ESP_LE_AUTH_REQ_SC_ONLY (1 << 3)
  • +
  • ESP_LE_AUTH_REQ_SC_BOND (ESP_LE_AUTH_BOND | ESP_LE_AUTH_REQ_SC_ONLY)
  • +
  • ESP_LE_AUTH_REQ_SC_MITM (ESP_LE_AUTH_REQ_MITM | ESP_LE_AUTH_REQ_SC_ONLY)
  • +
  • ESP_LE_AUTH_REQ_SC_MITM_BOND (ESP_LE_AUTH_REQ_MITM | ESP_LE_AUTH_REQ_SC_ONLY | ESP_LE_AUTH_BOND)
  • +
+
+
+
+ +
+
+ +

◆ setCapability()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setCapability (esp_ble_io_cap_t iocap)
+
+ +

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

+
Parameters
+ + +
[in]iocapThe IO capabilites our device has.
+Can be set to one of:
    +
  • ESP_IO_CAP_OUT 0
  • +
  • ESP_IO_CAP_IO 1
  • +
  • ESP_IO_CAP_IN 2
  • +
  • ESP_IO_CAP_NONE 3
  • +
  • ESP_IO_CAP_KBDISP 4
  • +
+
+
+
+ +
+
+ +

◆ setInitEncryptionKey()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setInitEncryptionKey (uint8_t init_key)
+
+ +

Sets the keys we will distibute during encryption.

+
Parameters
+ + +
[in]init_keyA bitmask of the keys we will distibute.
+Can be one or more of:
    +
  • ESP_BLE_ENC_KEY_MASK (1 << 0)
  • +
  • ESP_BLE_ID_KEY_MASK (1 << 1)
  • +
  • ESP_BLE_CSR_KEY_MASK (1 << 2)
  • +
  • ESP_BLE_LINK_KEY_MASK (1 << 3)
  • +
+
+
+
+ +
+
+ +

◆ setKeySize()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setKeySize (uint8_t key_size = 16)
+
+
Todo:
Requires implementation
+ +
+
+ +

◆ setRespEncryptionKey()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setRespEncryptionKey (uint8_t resp_key)
+
+ +

Sets the keys we will accept during encryption.

+
Parameters
+ + +
[in]resp_keyA bitmask of the keys we will accept.
+Can be one or more of:
    +
  • ESP_BLE_ENC_KEY_MASK (1 << 0)
  • +
  • ESP_BLE_ID_KEY_MASK (1 << 1)
  • +
  • ESP_BLE_CSR_KEY_MASK (1 << 2)
  • +
  • ESP_BLE_LINK_KEY_MASK (1 << 3)
  • +
+
+
+
+ +
+
+ +

◆ setStaticPIN()

+ +
+
+ + + + + + + + +
void NimBLESecurity::setStaticPIN (uint32_t pin)
+
+ +

Sets a static PIN used to authenticate/encrypt the connection.

+
Parameters
+ + +
[in]pinThe 6 digit pin code to accept.
+
+
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_security.js b/class_nim_b_l_e_security.js new file mode 100644 index 0000000..5b59ec9 --- /dev/null +++ b/class_nim_b_l_e_security.js @@ -0,0 +1,9 @@ +var class_nim_b_l_e_security = +[ + [ "setAuthenticationMode", "class_nim_b_l_e_security.html#a5cf0d3672a16f557032bcbf39a9e22f2", null ], + [ "setCapability", "class_nim_b_l_e_security.html#a1bb7902d5ceffaca86bd7638a74e35e3", null ], + [ "setInitEncryptionKey", "class_nim_b_l_e_security.html#adfc3caa3e1a5aedc3be5c0f1dc5c99ac", null ], + [ "setKeySize", "class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b", null ], + [ "setRespEncryptionKey", "class_nim_b_l_e_security.html#aac8434faa02a6813b7efd87224e04714", null ], + [ "setStaticPIN", "class_nim_b_l_e_security.html#a0bb1535e1b0d48566c17f681b7539f82", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_security_callbacks-members.html b/class_nim_b_l_e_security_callbacks-members.html new file mode 100644 index 0000000..3e853f5 --- /dev/null +++ b/class_nim_b_l_e_security_callbacks-members.html @@ -0,0 +1,106 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLESecurityCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLESecurityCallbacks, including all inherited members.

+ + + + + + +
onAuthenticationComplete(ble_gap_conn_desc *)=0NimBLESecurityCallbackspure virtual
onConfirmPIN(uint32_t pin)=0NimBLESecurityCallbackspure virtual
onPassKeyNotify(uint32_t pass_key)=0NimBLESecurityCallbackspure virtual
onPassKeyRequest()=0NimBLESecurityCallbackspure virtual
onSecurityRequest()=0NimBLESecurityCallbackspure virtual
+
+ + + + diff --git a/class_nim_b_l_e_security_callbacks.html b/class_nim_b_l_e_security_callbacks.html new file mode 100644 index 0000000..0779d31 --- /dev/null +++ b/class_nim_b_l_e_security_callbacks.html @@ -0,0 +1,254 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLESecurityCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLESecurityCallbacks Class Referenceabstract
+
+
+ +

Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only. + More...

+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual uint32_t onPassKeyRequest ()=0
 Its request from peer device to input authentication pin code displayed on peer device. It requires that our device is capable to input 6-digits code by end user. More...
 
virtual void onPassKeyNotify (uint32_t pass_key)=0
 Provide us 6-digits code to perform authentication. It requires that our device is capable to display this code to end user. More...
 
virtual bool onSecurityRequest ()=0
 Here we can make decision if we want to let negotiate authorization with peer device or not. More...
 
+virtual void onAuthenticationComplete (ble_gap_conn_desc *)=0
 Provides us information when authentication process is completed.
 
virtual bool onConfirmPIN (uint32_t pin)=0
 Called when using numeric comparison for authentication. More...
 
+

Detailed Description

+

Callbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only.

+
Deprecated:
Use the callbacks provided in NimBLEClientCallbacks and NimBLEServerCallbacks instead.
+

Member Function Documentation

+ +

◆ onConfirmPIN()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual bool NimBLESecurityCallbacks::onConfirmPIN (uint32_t pin)
+
+pure virtual
+
+ +

Called when using numeric comparison for authentication.

+
Parameters
+ + +
[in]pinThe PIN to compare.
+
+
+
Returns
True to accept and pair.
+ +
+
+ +

◆ onPassKeyNotify()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void NimBLESecurityCallbacks::onPassKeyNotify (uint32_t pass_key)
+
+pure virtual
+
+ +

Provide us 6-digits code to perform authentication. It requires that our device is capable to display this code to end user.

+
Parameters
+ + +
[in]pass_keyThe PIN provided by the peer.
+
+
+ +
+
+ +

◆ onPassKeyRequest()

+ +
+
+ + + + + +
+ + + + + + + +
virtual uint32_t NimBLESecurityCallbacks::onPassKeyRequest ()
+
+pure virtual
+
+ +

Its request from peer device to input authentication pin code displayed on peer device. It requires that our device is capable to input 6-digits code by end user.

+
Returns
Return 6-digits integer value from input device
+ +
+
+ +

◆ onSecurityRequest()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool NimBLESecurityCallbacks::onSecurityRequest ()
+
+pure virtual
+
+ +

Here we can make decision if we want to let negotiate authorization with peer device or not.

+
Returns
Return true if we accept this peer device request
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_security_callbacks.js b/class_nim_b_l_e_security_callbacks.js new file mode 100644 index 0000000..af6cb09 --- /dev/null +++ b/class_nim_b_l_e_security_callbacks.js @@ -0,0 +1,8 @@ +var class_nim_b_l_e_security_callbacks = +[ + [ "onAuthenticationComplete", "class_nim_b_l_e_security_callbacks.html#a22a8079906070a13583daafd1521a125", null ], + [ "onConfirmPIN", "class_nim_b_l_e_security_callbacks.html#a2ce6a03693a43a55e51598d8b2654a92", null ], + [ "onPassKeyNotify", "class_nim_b_l_e_security_callbacks.html#aa984ec6f29741b49bdd7dbfde60177be", null ], + [ "onPassKeyRequest", "class_nim_b_l_e_security_callbacks.html#a1cfc9c48c02aece1736f9070dc6ff90f", null ], + [ "onSecurityRequest", "class_nim_b_l_e_security_callbacks.html#a620de166c3fe26027871d18535839cdd", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_server-members.html b/class_nim_b_l_e_server-members.html new file mode 100644 index 0000000..cba8c15 --- /dev/null +++ b/class_nim_b_l_e_server-members.html @@ -0,0 +1,122 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEServer Member List
+
+
+ +

This is the complete list of members for NimBLEServer, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
addService(NimBLEService *service)NimBLEServer
advertiseOnDisconnect(bool)NimBLEServer
createService(const char *uuid)NimBLEServer
createService(const NimBLEUUID &uuid, uint32_t numHandles=15, uint8_t inst_id=0)NimBLEServer
disconnect(uint16_t connID, uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)NimBLEServer
getAdvertising()NimBLEServer
getConnectedCount()NimBLEServer
getPeerDevices()NimBLEServer
getPeerIDInfo(uint16_t id)NimBLEServer
getPeerInfo(size_t index)NimBLEServer
getPeerInfo(const NimBLEAddress &address)NimBLEServer
getPeerMTU(uint16_t conn_id)NimBLEServer
getServiceByHandle(uint16_t handle)NimBLEServer
getServiceByUUID(const char *uuid, uint16_t instanceId=0)NimBLEServer
getServiceByUUID(const NimBLEUUID &uuid, uint16_t instanceId=0)NimBLEServer
removeService(NimBLEService *service, bool deleteSvc=false)NimBLEServer
setCallbacks(NimBLEServerCallbacks *pCallbacks, bool deleteCallbacks=true)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
+
+ + + + diff --git a/class_nim_b_l_e_server.html b/class_nim_b_l_e_server.html new file mode 100644 index 0000000..0e157ce --- /dev/null +++ b/class_nim_b_l_e_server.html @@ -0,0 +1,745 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEServer Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEServer Class Reference
+
+
+ +

The model of a BLE server. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

size_t getConnectedCount ()
 Return the number of connected clients. More...
 
NimBLEServicecreateService (const char *uuid)
 Create a BLE Service. More...
 
NimBLEServicecreateService (const NimBLEUUID &uuid, uint32_t numHandles=15, uint8_t inst_id=0)
 Create a BLE Service. More...
 
void removeService (NimBLEService *service, bool deleteSvc=false)
 Remove a service from the server. More...
 
void addService (NimBLEService *service)
 Adds a service which was either already created but removed from availability,
+or created and later added to services list. More...
 
NimBLEAdvertisinggetAdvertising ()
 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.
 
+void start ()
 Start the GATT server. Required to be called after setup of all services and characteristics / descriptors for the NimBLE host to register them.
 
NimBLEServicegetServiceByUUID (const char *uuid, uint16_t instanceId=0)
 Get a BLE Service by its UUID. More...
 
NimBLEServicegetServiceByUUID (const NimBLEUUID &uuid, uint16_t instanceId=0)
 Get a BLE Service by its UUID. More...
 
NimBLEServicegetServiceByHandle (uint16_t handle)
 Get a BLE Service by its handle. More...
 
int disconnect (uint16_t connID, uint8_t reason=BLE_ERR_REM_USER_CONN_TERM)
 Disconnect the specified client with optional reason. More...
 
void updateConnParams (uint16_t conn_handle, uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
 Request an Update the connection parameters: More...
 
uint16_t getPeerMTU (uint16_t conn_id)
 Get the MTU of the client. More...
 
+std::vector< uint16_t > getPeerDevices ()
 Get the vector of the connected client ID's.
 
NimBLEConnInfo getPeerInfo (size_t index)
 Get the connection information of a connected peer by vector index. More...
 
NimBLEConnInfo getPeerInfo (const NimBLEAddress &address)
 Get the connection information of a connected peer by address. More...
 
NimBLEConnInfo getPeerIDInfo (uint16_t id)
 Get the connection information of a connected peer by connection ID. More...
 
void advertiseOnDisconnect (bool)
 Set the server to automatically start advertising when a client disconnects. More...
 
+

Detailed Description

+

The model of a BLE server.

+

Member Function Documentation

+ +

◆ addService()

+ +
+
+ + + + + + + + +
void NimBLEServer::addService (NimBLEServiceservice)
+
+ +

Adds a service which was either already created but removed from availability,
+or created and later added to services list.

+
Parameters
+ + +
[in]serviceThe service object to add.
+
+
+
Note
If it is desired to advertise the service it must be added by calling NimBLEAdvertising::addServiceUUID.
+ +
+
+ +

◆ advertiseOnDisconnect()

+ +
+
+ + + + + + + + +
void NimBLEServer::advertiseOnDisconnect (bool aod)
+
+ +

Set the server to automatically start advertising when a client disconnects.

+
Parameters
+ + +
[in]aodtrue == advertise, false == don't advertise.
+
+
+ +
+
+ +

◆ createService() [1/2]

+ +
+
+ + + + + + + + +
NimBLEService * NimBLEServer::createService (const char * uuid)
+
+ +

Create a BLE Service.

+
Parameters
+ + +
[in]uuidThe UUID of the new service.
+
+
+
Returns
A reference to the new service object.
+ +
+
+ +

◆ createService() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEService * NimBLEServer::createService (const NimBLEUUIDuuid,
uint32_t numHandles = 15,
uint8_t inst_id = 0 
)
+
+ +

Create a BLE Service.

+
Parameters
+ + + + +
[in]uuidThe UUID of the new service.
[in]numHandlesThe maximum number of handles associated with this service.
[in]inst_idif we have multiple services with the same UUID we need to provide inst_id value different for each service.
+
+
+
Returns
A reference to the new service object.
+ +
+
+ +

◆ disconnect()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int NimBLEServer::disconnect (uint16_t connId,
uint8_t reason = BLE_ERR_REM_USER_CONN_TERM 
)
+
+ +

Disconnect the specified client with optional reason.

+
Parameters
+ + + +
[in]connIdConnection Id of the client to disconnect.
[in]reasoncode for disconnecting.
+
+
+
Returns
NimBLE host return code.
+ +
+
+ +

◆ getAdvertising()

+ +
+
+ + + + + + + +
NimBLEAdvertising * NimBLEServer::getAdvertising ()
+
+ +

Retrieve the advertising object that can be used to advertise the existence of the server.

+
Returns
An advertising object.
+ +
+
+ +

◆ getConnectedCount()

+ +
+
+ + + + + + + +
size_t NimBLEServer::getConnectedCount ()
+
+ +

Return the number of connected clients.

+
Returns
The number of connected clients.
+ +
+
+ +

◆ getPeerIDInfo()

+ +
+
+ + + + + + + + +
NimBLEConnInfo NimBLEServer::getPeerIDInfo (uint16_t id)
+
+ +

Get the connection information of a connected peer by connection ID.

+
Parameters
+ + +
[in]idThe connection id of the peer.
+
+
+ +
+
+ +

◆ getPeerInfo() [1/2]

+ +
+
+ + + + + + + + +
NimBLEConnInfo NimBLEServer::getPeerInfo (const NimBLEAddressaddress)
+
+ +

Get the connection information of a connected peer by address.

+
Parameters
+ + +
[in]addressThe address of the peer.
+
+
+ +
+
+ +

◆ getPeerInfo() [2/2]

+ +
+
+ + + + + + + + +
NimBLEConnInfo NimBLEServer::getPeerInfo (size_t index)
+
+ +

Get the connection information of a connected peer by vector index.

+
Parameters
+ + +
[in]indexThe vector index of the peer.
+
+
+ +
+
+ +

◆ getPeerMTU()

+ +
+
+ + + + + + + + +
uint16_t NimBLEServer::getPeerMTU (uint16_t conn_id)
+
+ +

Get the MTU of the client.

+
Returns
The client MTU or 0 if not found/connected.
+ +
+
+ +

◆ getServiceByHandle()

+ +
+
+ + + + + + + + +
NimBLEService * NimBLEServer::getServiceByHandle (uint16_t handle)
+
+ +

Get a BLE Service by its handle.

+
Parameters
+ + +
handleThe handle of the service.
+
+
+
Returns
A pointer to the service object or nullptr if not found.
+ +
+
+ +

◆ getServiceByUUID() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEService * NimBLEServer::getServiceByUUID (const char * uuid,
uint16_t instanceId = 0 
)
+
+ +

Get a BLE Service by its UUID.

+
Parameters
+ + + +
[in]uuidThe UUID of the service.
instanceIdThe index of the service to return (used when multiple services have the same UUID).
+
+
+
Returns
A pointer to the service object or nullptr if not found.
+ +
+
+ +

◆ getServiceByUUID() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLEService * NimBLEServer::getServiceByUUID (const NimBLEUUIDuuid,
uint16_t instanceId = 0 
)
+
+ +

Get a BLE Service by its UUID.

+
Parameters
+ + + +
[in]uuidThe UUID of the service.
instanceIdThe index of the service to return (used when multiple services have the same UUID).
+
+
+
Returns
A pointer to the service object or nullptr if not found.
+ +
+
+ +

◆ removeService()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEServer::removeService (NimBLEServiceservice,
bool deleteSvc = false 
)
+
+ +

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.

+
Note
The service will not be removed from the database until all open connections are closed as it requires resetting the GATT server. In the interim the service will have it's visibility disabled.
+
+Advertising will need to be restarted by the user after calling this as we must stop advertising in order to remove the service.
+
Parameters
+ + + +
[in]serviceThe service object to remove.
[in]deleteSvctrue if the service should be deleted.
+
+
+ +
+
+ +

◆ setCallbacks()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEServer::setCallbacks (NimBLEServerCallbackspCallbacks,
bool deleteCallbacks = true 
)
+
+ +

Set the server callbacks.

+

As a BLE server operates, it will generate server level events such as a new client connecting or a previous client disconnecting. This function can be called to register a callback handler that will be invoked when these events are detected.

+
Parameters
+ + + +
[in]pCallbacksThe callbacks to be invoked.
[in]deleteCallbacksif true callback class will be deleted when server is destructed.
+
+
+ +
+
+ +

◆ startAdvertising()

+ +
+
+ + + + + + + +
void NimBLEServer::startAdvertising ()
+
+ +

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.

+ +
+
+ +

◆ updateConnParams()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NimBLEServer::updateConnParams (uint16_t conn_handle,
uint16_t minInterval,
uint16_t maxInterval,
uint16_t latency,
uint16_t timeout 
)
+
+ +

Request an Update the connection parameters:

+
    +
  • Can only be used after a connection has been established.
    Parameters
    + + + + + + +
    [in]conn_handleThe connection handle of the peer to send the request to.
    [in]minIntervalThe minimum connection interval in 1.25ms units.
    [in]maxIntervalThe maximum connection interval in 1.25ms units.
    [in]latencyThe number of packets allowed to skip (extends max interval).
    [in]timeoutThe timeout time in 10ms units before disconnecting.
    +
    +
    +
  • +
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_server.js b/class_nim_b_l_e_server.js new file mode 100644 index 0000000..4ebe0fc --- /dev/null +++ b/class_nim_b_l_e_server.js @@ -0,0 +1,24 @@ +var class_nim_b_l_e_server = +[ + [ "addService", "class_nim_b_l_e_server.html#a6eda4c9e0ac1dd031c678d4bf7da1d56", null ], + [ "advertiseOnDisconnect", "class_nim_b_l_e_server.html#a6bfd923ecd0ea06d5564343ab7209122", null ], + [ "createService", "class_nim_b_l_e_server.html#aaeb58b4de85754d1aac6964e9248aa35", null ], + [ "createService", "class_nim_b_l_e_server.html#addc0753b57de87e172cc2d5f158bd6c6", null ], + [ "disconnect", "class_nim_b_l_e_server.html#a63c9dce5c4bbc1c6bc720b6c51bcf3e1", null ], + [ "getAdvertising", "class_nim_b_l_e_server.html#ab41d8bb9b334734f95a726f1e15200fc", null ], + [ "getConnectedCount", "class_nim_b_l_e_server.html#a98ea12f57c10c0477b0c1c5efab23ee5", null ], + [ "getPeerDevices", "class_nim_b_l_e_server.html#ab95c428ddc94eb019a26d91e70f5974b", null ], + [ "getPeerIDInfo", "class_nim_b_l_e_server.html#ad241eb42e9775fb2f8aaa87c9fb9a76b", null ], + [ "getPeerInfo", "class_nim_b_l_e_server.html#ad91fbcb2717aa1969329f365692e1072", null ], + [ "getPeerInfo", "class_nim_b_l_e_server.html#a347c74f4ad6e2bcc2e301da11ae13e91", null ], + [ "getPeerMTU", "class_nim_b_l_e_server.html#a9eb1f32b72ac93736585d6d89f393021", null ], + [ "getServiceByHandle", "class_nim_b_l_e_server.html#a1ff39fc5235d1374d99b4f3d3acb5ddb", null ], + [ "getServiceByUUID", "class_nim_b_l_e_server.html#a87ebb3d230e98a6b3cf85bc403d227e0", null ], + [ "getServiceByUUID", "class_nim_b_l_e_server.html#ac28df6ead4d7151df3e84f4fa991eb1f", null ], + [ "removeService", "class_nim_b_l_e_server.html#a00c92f62f41ec1c499dfaf042b487d75", null ], + [ "setCallbacks", "class_nim_b_l_e_server.html#a485c90ce36275f9e4ec26a7f3d348cd9", null ], + [ "start", "class_nim_b_l_e_server.html#ae94ad52f3c97f62553af9765acdb7bcb", null ], + [ "startAdvertising", "class_nim_b_l_e_server.html#a2540ae7b61fc6513f794da2512d66f74", null ], + [ "stopAdvertising", "class_nim_b_l_e_server.html#ab713fd5619ddbfc1a88bf43a1686f454", null ], + [ "updateConnParams", "class_nim_b_l_e_server.html#a9b08738766de90d7065263761314030a", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_server_callbacks-members.html b/class_nim_b_l_e_server_callbacks-members.html new file mode 100644 index 0000000..e65316f --- /dev/null +++ b/class_nim_b_l_e_server_callbacks-members.html @@ -0,0 +1,109 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEServerCallbacks Member List
+
+
+ +

This is the complete list of members for NimBLEServerCallbacks, including all inherited members.

+ + + + + + + + + +
onAuthenticationComplete(ble_gap_conn_desc *desc)NimBLEServerCallbacksvirtual
onConfirmPIN(uint32_t pin)NimBLEServerCallbacksvirtual
onConnect(NimBLEServer *pServer)NimBLEServerCallbacksvirtual
onConnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)NimBLEServerCallbacksvirtual
onDisconnect(NimBLEServer *pServer)NimBLEServerCallbacksvirtual
onDisconnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)NimBLEServerCallbacksvirtual
onMTUChange(uint16_t MTU, ble_gap_conn_desc *desc)NimBLEServerCallbacksvirtual
onPassKeyRequest()NimBLEServerCallbacksvirtual
+
+ + + + diff --git a/class_nim_b_l_e_server_callbacks.html b/class_nim_b_l_e_server_callbacks.html new file mode 100644 index 0000000..6b6b94e --- /dev/null +++ b/class_nim_b_l_e_server_callbacks.html @@ -0,0 +1,438 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEServerCallbacks Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEServerCallbacks Class Reference
+
+
+ +

Callbacks associated with the operation of a BLE server. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void onConnect (NimBLEServer *pServer)
 Handle a client connection. This is called when a client connects. More...
 
virtual void onConnect (NimBLEServer *pServer, ble_gap_conn_desc *desc)
 Handle a client connection. This is called when a client connects. More...
 
virtual void onDisconnect (NimBLEServer *pServer)
 Handle a client disconnection. This is called when a client disconnects. More...
 
virtual void onDisconnect (NimBLEServer *pServer, ble_gap_conn_desc *desc)
 Handle a client disconnection. This is called when a client discconnects. More...
 
virtual void onMTUChange (uint16_t MTU, ble_gap_conn_desc *desc)
 Called when the connection MTU changes. More...
 
virtual uint32_t onPassKeyRequest ()
 Called when a client requests a passkey for pairing. More...
 
virtual void onAuthenticationComplete (ble_gap_conn_desc *desc)
 Called when the pairing procedure is complete. More...
 
virtual bool onConfirmPIN (uint32_t pin)
 Called when using numeric comparision for pairing. More...
 
+

Detailed Description

+

Callbacks associated with the operation of a BLE server.

+

Member Function Documentation

+ +

◆ onAuthenticationComplete()

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEServerCallbacks::onAuthenticationComplete (ble_gap_conn_desc * desc)
+
+virtual
+
+ +

Called when the pairing procedure is complete.

+
Parameters
+ + +
[in]descA pointer to the struct containing the connection information.
+This can be used to check the status of the connection encryption/pairing.
+
+
+ +
+
+ +

◆ onConfirmPIN()

+ +
+
+ + + + + +
+ + + + + + + + +
bool NimBLEServerCallbacks::onConfirmPIN (uint32_t pin)
+
+virtual
+
+ +

Called when using numeric comparision for pairing.

+
Parameters
+ + +
[in]pinThe pin to compare with the client.
+
+
+
Returns
True to accept the pin.
+ +
+
+ +

◆ onConnect() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEServerCallbacks::onConnect (NimBLEServerpServer)
+
+virtual
+
+ +

Handle a client connection. This is called when a client connects.

+
Parameters
+ + +
[in]pServerA pointer to the BLE server that received the client connection.
+
+
+

Default callback handlers

+ +
+
+ +

◆ onConnect() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEServerCallbacks::onConnect (NimBLEServerpServer,
ble_gap_conn_desc * desc 
)
+
+virtual
+
+ +

Handle a client connection. This is called when a client connects.

+
Parameters
+ + + +
[in]pServerA pointer to the BLE server that received the client connection.
[in]descA pointer to the connection description structure containig information about the connection parameters.
+
+
+ +
+
+ +

◆ onDisconnect() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void NimBLEServerCallbacks::onDisconnect (NimBLEServerpServer)
+
+virtual
+
+ +

Handle a client disconnection. This is called when a client disconnects.

+
Parameters
+ + +
[in]pServerA reference to the BLE server that received the existing client disconnection.
+
+
+ +
+
+ +

◆ onDisconnect() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEServerCallbacks::onDisconnect (NimBLEServerpServer,
ble_gap_conn_desc * desc 
)
+
+virtual
+
+ +

Handle a client disconnection. This is called when a client discconnects.

+
Parameters
+ + + +
[in]pServerA pointer to the BLE server that received the client disconnection.
[in]descA pointer to the connection description structure containig information about the connection.
+
+
+ +
+
+ +

◆ onMTUChange()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEServerCallbacks::onMTUChange (uint16_t MTU,
ble_gap_conn_desc * desc 
)
+
+virtual
+
+ +

Called when the connection MTU changes.

+
Parameters
+ + + +
[in]MTUThe new MTU value.
[in]descA pointer to the connection description structure containig information about the connection.
+
+
+ +
+
+ +

◆ onPassKeyRequest()

+ +
+
+ + + + + +
+ + + + + + + +
uint32_t NimBLEServerCallbacks::onPassKeyRequest ()
+
+virtual
+
+ +

Called when a client requests a passkey for pairing.

+
Returns
The passkey to be sent to the client.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_server_callbacks.js b/class_nim_b_l_e_server_callbacks.js new file mode 100644 index 0000000..a9b77b8 --- /dev/null +++ b/class_nim_b_l_e_server_callbacks.js @@ -0,0 +1,11 @@ +var class_nim_b_l_e_server_callbacks = +[ + [ "onAuthenticationComplete", "class_nim_b_l_e_server_callbacks.html#a6a18155a8d3fa0980fab51f08ce5de2d", null ], + [ "onConfirmPIN", "class_nim_b_l_e_server_callbacks.html#a5327d11f249e8f020b59529b634e0c91", null ], + [ "onConnect", "class_nim_b_l_e_server_callbacks.html#a80348ab2d08bbec7a6910c96662fc1d4", null ], + [ "onConnect", "class_nim_b_l_e_server_callbacks.html#a76f32bb22a34b33ee2a934f101d925b1", null ], + [ "onDisconnect", "class_nim_b_l_e_server_callbacks.html#a3dbf72280a895e80e0972599a7373ca0", null ], + [ "onDisconnect", "class_nim_b_l_e_server_callbacks.html#a60e1ad35979434000d04fdbb374acc18", null ], + [ "onMTUChange", "class_nim_b_l_e_server_callbacks.html#ab4533f1317b36216c3c86695613c80a6", null ], + [ "onPassKeyRequest", "class_nim_b_l_e_server_callbacks.html#ad2c3035c3a284d03673ff1b5aeaa0fca", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_service-members.html b/class_nim_b_l_e_service-members.html new file mode 100644 index 0000000..20e8287 --- /dev/null +++ b/class_nim_b_l_e_service-members.html @@ -0,0 +1,119 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEService Member List
+
+
+ +

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
dump()NimBLEService
getCharacteristic(const char *uuid, uint16_t instanceId=0)NimBLEService
getCharacteristic(const NimBLEUUID &uuid, uint16_t instanceId=0)NimBLEService
getCharacteristicByHandle(uint16_t handle)NimBLEService
getCharacteristics()NimBLEService
getCharacteristics(const char *uuid)NimBLEService
getCharacteristics(const NimBLEUUID &uuid)NimBLEService
getHandle()NimBLEService
getServer()NimBLEService
getUUID()NimBLEService
NimBLEService(const char *uuid, uint16_t numHandles, NimBLEServer *pServer)NimBLEService
NimBLEService(const NimBLEUUID &uuid, uint16_t numHandles, NimBLEServer *pServer)NimBLEService
removeCharacteristic(NimBLECharacteristic *pCharacteristic, bool deleteChr=false)NimBLEService
start()NimBLEService
toString()NimBLEService
+
+ + + + diff --git a/class_nim_b_l_e_service.html b/class_nim_b_l_e_service.html new file mode 100644 index 0000000..e2152c6 --- /dev/null +++ b/class_nim_b_l_e_service.html @@ -0,0 +1,676 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEService Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEService Class Reference
+
+
+ +

The model of a BLE service. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NimBLEService (const char *uuid, uint16_t numHandles, NimBLEServer *pServer)
 Construct an instance of the NimBLEService. More...
 
 NimBLEService (const NimBLEUUID &uuid, uint16_t numHandles, NimBLEServer *pServer)
 Construct an instance of the BLEService. More...
 
NimBLEServergetServer ()
 Get the BLE server associated with this service. More...
 
NimBLEUUID getUUID ()
 Get the UUID of the service. More...
 
uint16_t getHandle ()
 Get the handle associated with this service. More...
 
std::string toString ()
 Return a string representation of this service. A service is defined by: More...
 
void dump ()
 Dump details of this BLE GATT service. More...
 
bool start ()
 Builds the database of characteristics/descriptors for the service and registers it with the NimBLE stack. More...
 
NimBLECharacteristiccreateCharacteristic (const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)
 Create a new BLE Characteristic associated with this service. More...
 
NimBLECharacteristiccreateCharacteristic (const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)
 Create a new BLE Characteristic associated with this service. More...
 
void addCharacteristic (NimBLECharacteristic *pCharacteristic)
 Add a characteristic to the service. More...
 
void removeCharacteristic (NimBLECharacteristic *pCharacteristic, bool deleteChr=false)
 Remove a characteristic from the service. More...
 
NimBLECharacteristicgetCharacteristic (const char *uuid, uint16_t instanceId=0)
 Get a pointer to the characteristic object with the specified UUID. More...
 
NimBLECharacteristicgetCharacteristic (const NimBLEUUID &uuid, uint16_t instanceId=0)
 Get a pointer to the characteristic object with the specified UUID. More...
 
NimBLECharacteristicgetCharacteristicByHandle (uint16_t handle)
 Get a pointer to the characteristic object with the specified handle. More...
 
std::vector< NimBLECharacteristic * > getCharacteristics ()
 
std::vector< NimBLECharacteristic * > getCharacteristics (const char *uuid)
 
std::vector< NimBLECharacteristic * > getCharacteristics (const NimBLEUUID &uuid)
 
+

Detailed Description

+

The model of a BLE service.

+

Constructor & Destructor Documentation

+ +

◆ NimBLEService() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEService::NimBLEService (const char * uuid,
uint16_t numHandles,
NimBLEServerpServer 
)
+
+ +

Construct an instance of the NimBLEService.

+
Parameters
+ + + + +
[in]uuidThe UUID of the service.
[in]numHandlesThe maximum number of handles associated with the service.
[in]pServerA pointer to the server instance that this service belongs to.
+
+
+ +
+
+ +

◆ NimBLEService() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEService::NimBLEService (const NimBLEUUIDuuid,
uint16_t numHandles,
NimBLEServerpServer 
)
+
+ +

Construct an instance of the BLEService.

+
Parameters
+ + + + +
[in]uuidThe UUID of the service.
[in]numHandlesThe maximum number of handles associated with the service.
[in]pServerA pointer to the server instance that this service belongs to.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ addCharacteristic()

+ +
+
+ + + + + + + + +
void NimBLEService::addCharacteristic (NimBLECharacteristicpCharacteristic)
+
+ +

Add a characteristic to the service.

+
Parameters
+ + +
[in]pCharacteristicA pointer to the characteristic instance to add to the service.
+
+
+ +
+
+ +

◆ createCharacteristic() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLECharacteristic * NimBLEService::createCharacteristic (const char * uuid,
uint32_t properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE 
)
+
+ +

Create a new BLE Characteristic associated with this service.

+
Parameters
+ + + +
[in]uuid- The UUID of the characteristic.
[in]properties- The properties of the characteristic.
+
+
+
Returns
The new BLE characteristic.
+ +
+
+ +

◆ createCharacteristic() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLECharacteristic * NimBLEService::createCharacteristic (const NimBLEUUIDuuid,
uint32_t properties = NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE 
)
+
+ +

Create a new BLE Characteristic associated with this service.

+
Parameters
+ + + +
[in]uuid- The UUID of the characteristic.
[in]properties- The properties of the characteristic.
+
+
+
Returns
The new BLE characteristic.
+ +
+
+ +

◆ dump()

+ +
+
+ + + + + + + +
void NimBLEService::dump ()
+
+ +

Dump details of this BLE GATT service.

+
Returns
N/A.
+ +
+
+ +

◆ getCharacteristic() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLECharacteristic * NimBLEService::getCharacteristic (const char * uuid,
uint16_t instanceId = 0 
)
+
+ +

Get a pointer to the characteristic object with the specified UUID.

+
Parameters
+ + + +
[in]uuidThe UUID of the characteristic.
instanceIdThe index of the characteristic to return (used when multiple characteristics have the same UUID).
+
+
+
Returns
A pointer to the characteristic object or nullptr if not found.
+ +
+
+ +

◆ getCharacteristic() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
NimBLECharacteristic * NimBLEService::getCharacteristic (const NimBLEUUIDuuid,
uint16_t instanceId = 0 
)
+
+ +

Get a pointer to the characteristic object with the specified UUID.

+
Parameters
+ + + +
[in]uuidThe UUID of the characteristic.
instanceIdThe index of the characteristic to return (used when multiple characteristics have the same UUID).
+
+
+
Returns
A pointer to the characteristic object or nullptr if not found.
+ +
+
+ +

◆ getCharacteristicByHandle()

+ +
+
+ + + + + + + + +
NimBLECharacteristic * NimBLEService::getCharacteristicByHandle (uint16_t handle)
+
+ +

Get a pointer to the characteristic object with the specified handle.

+
Parameters
+ + +
handleThe handle of the characteristic.
+
+
+
Returns
A pointer to the characteristic object or nullptr if not found.
+ +
+
+ +

◆ getCharacteristics() [1/3]

+ +
+
+ + + + + + + +
std::vector< NimBLECharacteristic * > NimBLEService::getCharacteristics ()
+
+
Returns
A vector containing pointers to each characteristic associated with this service.
+ +
+
+ +

◆ getCharacteristics() [2/3]

+ +
+
+ + + + + + + + +
std::vector< NimBLECharacteristic * > NimBLEService::getCharacteristics (const char * uuid)
+
+
Returns
A vector containing pointers to each characteristic with the provided UUID associated with this service.
+ +
+
+ +

◆ getCharacteristics() [3/3]

+ +
+
+ + + + + + + + +
std::vector< NimBLECharacteristic * > NimBLEService::getCharacteristics (const NimBLEUUIDuuid)
+
+
Returns
A vector containing pointers to each characteristic with the provided UUID associated with this service.
+ +
+
+ +

◆ getHandle()

+ +
+
+ + + + + + + +
uint16_t NimBLEService::getHandle ()
+
+ +

Get the handle associated with this service.

+
Returns
The handle associated with this service.
+ +
+
+ +

◆ getServer()

+ +
+
+ + + + + + + +
NimBLEServer * NimBLEService::getServer ()
+
+ +

Get the BLE server associated with this service.

+
Returns
The BLEServer associated with this service.
+ +
+
+ +

◆ getUUID()

+ +
+
+ + + + + + + + +
NimBLEUUID NimBLEService::getUUID (void )
+
+ +

Get the UUID of the service.

+
Returns
the UUID of the service.
+ +
+
+ +

◆ removeCharacteristic()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void NimBLEService::removeCharacteristic (NimBLECharacteristicpCharacteristic,
bool deleteChr = false 
)
+
+ +

Remove a characteristic from the service.

+
Parameters
+ + + +
[in]pCharacteristicA pointer to the characteristic instance to remove from the service.
[in]deleteChrIf true it will delete the characteristic instance and free it's resources.
+
+
+ +
+
+ +

◆ start()

+ +
+
+ + + + + + + +
bool NimBLEService::start ()
+
+ +

Builds the database of characteristics/descriptors for the service and registers it with the NimBLE stack.

+
Returns
bool success/failure .
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + + +
std::string NimBLEService::toString (void )
+
+ +

Return a string representation of this service. A service is defined by:

+
    +
  • Its UUID
  • +
  • Its handle
    Returns
    A string representation of this service.
    +
  • +
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_service.js b/class_nim_b_l_e_service.js new file mode 100644 index 0000000..0ad90de --- /dev/null +++ b/class_nim_b_l_e_service.js @@ -0,0 +1,21 @@ +var class_nim_b_l_e_service = +[ + [ "NimBLEService", "class_nim_b_l_e_service.html#a2f21520dead11ac352562c7b232bc854", null ], + [ "NimBLEService", "class_nim_b_l_e_service.html#a66b3bc41ed067ea7f5f00a8af53dd1ef", null ], + [ "addCharacteristic", "class_nim_b_l_e_service.html#af8215dbfdaf7ced32d6158f8ff5116e8", null ], + [ "createCharacteristic", "class_nim_b_l_e_service.html#adab5552c080b9cb88095af262d326309", null ], + [ "createCharacteristic", "class_nim_b_l_e_service.html#a80fe6bca60d0db69ea3ae689a3947c19", null ], + [ "dump", "class_nim_b_l_e_service.html#a71488881933ae8adbf11c5986f9dfb75", null ], + [ "getCharacteristic", "class_nim_b_l_e_service.html#a305b680286096638a4239620ec2de567", null ], + [ "getCharacteristic", "class_nim_b_l_e_service.html#adfc4e67f79aaabc8f2c6bdb5c6966609", null ], + [ "getCharacteristicByHandle", "class_nim_b_l_e_service.html#a35b56ab3ef7fffb2b299f95d3176d07e", null ], + [ "getCharacteristics", "class_nim_b_l_e_service.html#aa2cba47cb4c935e15c77707643e5e9a5", null ], + [ "getCharacteristics", "class_nim_b_l_e_service.html#a24cf868e9eec7b5ecdf1e88d257e91d9", null ], + [ "getCharacteristics", "class_nim_b_l_e_service.html#a55724788b3bf4614995ea656bf8fe1bb", null ], + [ "getHandle", "class_nim_b_l_e_service.html#a86d65ef61a77bdd660632b4041c2b640", null ], + [ "getServer", "class_nim_b_l_e_service.html#af304386c4e067dd0eeb27b86c0e59d0f", null ], + [ "getUUID", "class_nim_b_l_e_service.html#ab000b7d2b7dbb3978a5a8c1e17b1d649", null ], + [ "removeCharacteristic", "class_nim_b_l_e_service.html#af992d0c27e3a559789fb77fc46623234", null ], + [ "start", "class_nim_b_l_e_service.html#ad37324ed0404d596923d6fdc0133b985", null ], + [ "toString", "class_nim_b_l_e_service.html#a10d10d14f8c5a970a06915cd407a0a73", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_u_u_i_d-members.html b/class_nim_b_l_e_u_u_i_d-members.html new file mode 100644 index 0000000..b25752a --- /dev/null +++ b/class_nim_b_l_e_u_u_i_d-members.html @@ -0,0 +1,117 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEUUID Member List
+
+
+ +

This is the complete list of members for NimBLEUUID, including all inherited members.

+ + + + + + + + + + + + + + + + + +
bitSize() constNimBLEUUID
equals(const NimBLEUUID &uuid) constNimBLEUUID
fromString(const std::string &uuid)NimBLEUUIDstatic
getNative() constNimBLEUUID
NimBLEUUID(const std::string &uuid)NimBLEUUID
NimBLEUUID(uint16_t uuid)NimBLEUUID
NimBLEUUID(uint32_t uuid)NimBLEUUID
NimBLEUUID(const ble_uuid128_t *uuid)NimBLEUUID
NimBLEUUID(const uint8_t *pData, size_t size, bool msbFirst)NimBLEUUID
NimBLEUUID(uint32_t first, uint16_t second, uint16_t third, uint64_t fourth)NimBLEUUID
NimBLEUUID()NimBLEUUID
operator std::string() constNimBLEUUID
operator!=(const NimBLEUUID &rhs) constNimBLEUUID
operator==(const NimBLEUUID &rhs) constNimBLEUUID
to128()NimBLEUUID
toString() constNimBLEUUID
+
+ + + + diff --git a/class_nim_b_l_e_u_u_i_d.html b/class_nim_b_l_e_u_u_i_d.html new file mode 100644 index 0000000..885fd8b --- /dev/null +++ b/class_nim_b_l_e_u_u_i_d.html @@ -0,0 +1,534 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEUUID Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

A model of a BLE UUID. + More...

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 NimBLEUUID (const std::string &uuid)
 Create a UUID from a string. More...
 
 NimBLEUUID (uint16_t uuid)
 Create a UUID from the 16bit value. More...
 
 NimBLEUUID (uint32_t uuid)
 Create a UUID from the 32bit value. More...
 
 NimBLEUUID (const ble_uuid128_t *uuid)
 Create a UUID from the native UUID. More...
 
 NimBLEUUID (const uint8_t *pData, size_t size, bool msbFirst)
 Create a UUID from 2, 4, 16 bytes of memory. More...
 
 NimBLEUUID (uint32_t first, uint16_t second, uint16_t third, uint64_t fourth)
 Create a UUID from the 128bit value using hex parts instead of string, instead of NimBLEUUID("ebe0ccb0-7a0a-4b0c-8a1a-6ff2997da3a6"), it becomes NimBLEUUID(0xebe0ccb0, 0x7a0a, 0x4b0c, 0x8a1a6ff2997da3a6) More...
 
NimBLEUUID ()
 Creates an empty UUID.
 
uint8_t bitSize () const
 Get the number of bits in this uuid. More...
 
bool equals (const NimBLEUUID &uuid) const
 Compare a UUID against this UUID. More...
 
const ble_uuid_any_t * getNative () const
 Get the native UUID value. More...
 
const NimBLEUUIDto128 ()
 Convert a UUID to its 128 bit representation. More...
 
std::string toString () const
 Get a string representation of the UUID. More...
 
+bool operator== (const NimBLEUUID &rhs) const
 Convienience operator to check if this UUID is equal to another.
 
+bool operator!= (const NimBLEUUID &rhs) const
 Convienience operator to check if this UUID is not equal to another.
 
 operator std::string () const
 Convienience operator to convert this UUID to string representation. More...
 
+ + + +

+Static Public Member Functions

static NimBLEUUID fromString (const std::string &uuid)
 
+

Detailed Description

+

A model of a BLE UUID.

+

Constructor & Destructor Documentation

+ +

◆ NimBLEUUID() [1/6]

+ +
+
+ + + + + + + + +
NimBLEUUID::NimBLEUUID (const std::string & value)
+
+ +

Create a UUID from a string.

+

Create a UUID from a string. There will be two possible stories here. Either the string represents a binary data field or the string represents a hex encoding of a UUID. For the hex encoding, here is an example:

+
"beb5483e-36e1-4688-b7f5-ea07361b26a8"
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+
12345678-90ab-cdef-1234-567890abcdef
+

This has a length of 36 characters. We need to parse this into 16 bytes.

+
Parameters
+ + +
[in]valueThe string to build a UUID from.
+
+
+ +
+
+ +

◆ NimBLEUUID() [2/6]

+ +
+
+ + + + + + + + +
NimBLEUUID::NimBLEUUID (uint16_t uuid)
+
+ +

Create a UUID from the 16bit value.

+
Parameters
+ + +
[in]uuidThe 16bit short form UUID.
+
+
+ +
+
+ +

◆ NimBLEUUID() [3/6]

+ +
+
+ + + + + + + + +
NimBLEUUID::NimBLEUUID (uint32_t uuid)
+
+ +

Create a UUID from the 32bit value.

+
Parameters
+ + +
[in]uuidThe 32bit short form UUID.
+
+
+ +
+
+ +

◆ NimBLEUUID() [4/6]

+ +
+
+ + + + + + + + +
NimBLEUUID::NimBLEUUID (const ble_uuid128_t * uuid)
+
+ +

Create a UUID from the native UUID.

+
Parameters
+ + +
[in]uuidThe native UUID.
+
+
+ +
+
+ +

◆ NimBLEUUID() [5/6]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEUUID::NimBLEUUID (const uint8_t * pData,
size_t size,
bool msbFirst 
)
+
+ +

Create a UUID from 2, 4, 16 bytes of memory.

+
Parameters
+ + + + +
[in]pDataThe pointer to the start of the UUID.
[in]sizeThe size of the data.
[in]msbFirstIs the MSB first in pData memory?
+
+
+ +
+
+ +

◆ NimBLEUUID() [6/6]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NimBLEUUID::NimBLEUUID (uint32_t first,
uint16_t second,
uint16_t third,
uint64_t fourth 
)
+
+ +

Create a UUID from the 128bit value using hex parts instead of string, instead of NimBLEUUID("ebe0ccb0-7a0a-4b0c-8a1a-6ff2997da3a6"), it becomes NimBLEUUID(0xebe0ccb0, 0x7a0a, 0x4b0c, 0x8a1a6ff2997da3a6)

+
Parameters
+ + + + + +
[in]firstThe first 32bit of the UUID.
[in]secondThe next 16bit of the UUID.
[in]thirdThe next 16bit of the UUID.
[in]fourthThe last 64bit of the UUID, combining the last 2 parts of the string equivalent
+
+
+ +
+
+

Member Function Documentation

+ +

◆ bitSize()

+ +
+
+ + + + + + + +
uint8_t NimBLEUUID::bitSize () const
+
+ +

Get the number of bits in this uuid.

+
Returns
The number of bits in the UUID. One of 16, 32 or 128.
+ +
+
+ +

◆ equals()

+ +
+
+ + + + + + + + +
bool NimBLEUUID::equals (const NimBLEUUIDuuid) const
+
+ +

Compare a UUID against this UUID.

+
Parameters
+ + +
[in]uuidThe UUID to compare against.
+
+
+
Returns
True if the UUIDs are equal and false otherwise.
+ +
+
+ +

◆ fromString()

+ +
+
+ + + + + +
+ + + + + + + + +
NimBLEUUID NimBLEUUID::fromString (const std::string & uuid)
+
+static
+
+

Create a NimBLEUUID from a string of the form: 0xNNNN 0xNNNNNNNN 0x<UUID> NNNN NNNNNNNN <UUID>

+
Parameters
+ + +
[in]uuidThe string to create the UUID from.
+
+
+ +
+
+ +

◆ getNative()

+ +
+
+ + + + + + + +
const ble_uuid_any_t * NimBLEUUID::getNative () const
+
+ +

Get the native UUID value.

+
Returns
The native UUID value or nullptr if not set.
+ +
+
+ +

◆ operator std::string()

+ +
+
+ + + + + + + +
NimBLEUUID::operator std::string () const
+
+ +

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

+ +
+
+ +

◆ to128()

+ +
+
+ + + + + + + +
const NimBLEUUID & NimBLEUUID::to128 ()
+
+ +

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.

Returns
The NimBLEUUID converted to 128bit.
+ +
+
+ +

◆ toString()

+ +
+
+ + + + + + + + +
std::string NimBLEUUID::toString (void ) const
+
+ +

Get a string representation of the UUID.

+

The format of a string is: 01234567 8901 2345 6789 012345678901 0000180d-0000-1000-8000-00805f9b34fb 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

+
Returns
A string representation of the UUID.
+
Deprecated:
Use std::string() operator instead.
+ +
+
+
+
+ + + + diff --git a/class_nim_b_l_e_u_u_i_d.js b/class_nim_b_l_e_u_u_i_d.js new file mode 100644 index 0000000..f5178a8 --- /dev/null +++ b/class_nim_b_l_e_u_u_i_d.js @@ -0,0 +1,18 @@ +var class_nim_b_l_e_u_u_i_d = +[ + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#a6fd3849062c96cee3d6cd00544fadfac", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#aadbfc5504e63cd91c59c778607b8dd92", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#ab4e1658b1c414edb9aea5cf5140fa461", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#ac9fbd00e7ffeb334571016c61bca9286", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#a6eda1a14d4590dd25e6a2f7a49ad528e", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#a399dca7d70ee262aa155b39d357321b1", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html#abec7913c5989c3620c423c6717111453", null ], + [ "bitSize", "class_nim_b_l_e_u_u_i_d.html#aefc88e493b63ccd6dc86227dc92af0c6", null ], + [ "equals", "class_nim_b_l_e_u_u_i_d.html#a3d9763ff434905457ed69118e93a35fd", null ], + [ "getNative", "class_nim_b_l_e_u_u_i_d.html#a62e8e924f971c62cc42760d8c7dd6f28", null ], + [ "operator std::string", "class_nim_b_l_e_u_u_i_d.html#a4315e760bf763333022658ff980f3048", null ], + [ "operator!=", "class_nim_b_l_e_u_u_i_d.html#abeee22e6661f7533f05802e1f89fedfe", null ], + [ "operator==", "class_nim_b_l_e_u_u_i_d.html#a46484dcb0a1bfef6a8afe97f49f97875", null ], + [ "to128", "class_nim_b_l_e_u_u_i_d.html#a7103976da820d0c1840aa77aca38306c", null ], + [ "toString", "class_nim_b_l_e_u_u_i_d.html#a9708e07b8e0915aafcfa32fe74ccdf64", null ] +]; \ No newline at end of file diff --git a/class_nim_b_l_e_utils-members.html b/class_nim_b_l_e_utils-members.html new file mode 100644 index 0000000..3695729 --- /dev/null +++ b/class_nim_b_l_e_utils-members.html @@ -0,0 +1,107 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
NimBLEUtils Member List
+
+
+ +

This is the complete list of members for NimBLEUtils, including all inherited members.

+ + + + + + + +
advTypeToString(uint8_t advType)NimBLEUtilsstatic
buildHexData(uint8_t *target, const uint8_t *source, uint8_t length)NimBLEUtilsstatic
checkConnParams(ble_gap_conn_params *params)NimBLEUtilsstatic
dumpGapEvent(ble_gap_event *event, void *arg)NimBLEUtilsstatic
gapEventToString(uint8_t eventType)NimBLEUtilsstatic
returnCodeToString(int rc)NimBLEUtilsstatic
+
+ + + + diff --git a/class_nim_b_l_e_utils.html b/class_nim_b_l_e_utils.html new file mode 100644 index 0000000..8a894e6 --- /dev/null +++ b/class_nim_b_l_e_utils.html @@ -0,0 +1,368 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: NimBLEUtils Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
NimBLEUtils Class Reference
+
+
+ +

A BLE Utility class with methods for debugging and general purpose use. + More...

+ + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static void dumpGapEvent (ble_gap_event *event, void *arg)
 Utility function to log the gap event info. More...
 
static const char * gapEventToString (uint8_t eventType)
 Convert a GAP event type to a string representation. More...
 
static char * buildHexData (uint8_t *target, const uint8_t *source, uint8_t length)
 Create a hex representation of data. More...
 
static const char * advTypeToString (uint8_t advType)
 Convert the advertising type flag to a string. More...
 
static const char * returnCodeToString (int rc)
 Converts a return code from the NimBLE stack to a text string. More...
 
static int checkConnParams (ble_gap_conn_params *params)
 A function for checking validity of connection parameters. More...
 
+

Detailed Description

+

A BLE Utility class with methods for debugging and general purpose use.

+

Member Function Documentation

+ +

◆ advTypeToString()

+ +
+
+ + + + + +
+ + + + + + + + +
const char * NimBLEUtils::advTypeToString (uint8_t advType)
+
+static
+
+ +

Convert the advertising type flag to a string.

+
Parameters
+ + +
advTypeThe type to convert.
+
+
+
Returns
A string representation of the advertising flags.
+ +
+
+ +

◆ buildHexData()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
char * NimBLEUtils::buildHexData (uint8_t * target,
const uint8_t * source,
uint8_t length 
)
+
+static
+
+ +

Create a hex representation of data.

+
Parameters
+ + + + +
[in]targetWhere to write the hex string. If this is null, we malloc storage.
[in]sourceThe start of the binary data.
[in]lengthThe length of the data to convert.
+
+
+
Returns
A pointer to the formatted buffer.
+ +
+
+ +

◆ checkConnParams()

+ +
+
+ + + + + +
+ + + + + + + + +
int NimBLEUtils::checkConnParams (ble_gap_conn_params * params)
+
+static
+
+ +

A function for checking validity of connection parameters.

+
Parameters
+ + +
[in]paramsA pointer to the structure containing the parameters to check.
+
+
+
Returns
valid == 0 or error code.
+ +
+
+ +

◆ dumpGapEvent()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void NimBLEUtils::dumpGapEvent (ble_gap_event * event,
void * arg 
)
+
+static
+
+ +

Utility function to log the gap event info.

+
Parameters
+ + + +
[in]eventA pointer to the gap event structure.
[in]argUnused.
+
+
+ +
+
+ +

◆ gapEventToString()

+ +
+
+ + + + + +
+ + + + + + + + +
const char * NimBLEUtils::gapEventToString (uint8_t eventType)
+
+static
+
+ +

Convert a GAP event type to a string representation.

+
Parameters
+ + +
[in]eventTypeThe type of event.
+
+
+
Returns
A string representation of the event type.
+ +
+
+ +

◆ returnCodeToString()

+ +
+
+ + + + + +
+ + + + + + + + +
const char * NimBLEUtils::returnCodeToString (int rc)
+
+static
+
+ +

Converts a return code from the NimBLE stack to a text string.

+
Parameters
+ + +
[in]rcThe return code to convert.
+
+
+
Returns
A string representation of the return code.
+ +
+
+
+
+ + + + diff --git a/classes.html b/classes.html new file mode 100644 index 0000000..c548b27 --- /dev/null +++ b/classes.html @@ -0,0 +1,104 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+ +
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/closed.png differ diff --git a/deprecated.html b/deprecated.html new file mode 100644 index 0000000..bcdff40 --- /dev/null +++ b/deprecated.html @@ -0,0 +1,127 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Deprecated List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Deprecated List
+
+
+
+
Member NimBLEAddress::toString () const
+
Use std::string() operator instead.
+
Member NimBLECharacteristicCallbacks::Status
+
To be removed in the future as the NimBLE stack return code is also provided.
+
Member NimBLEDevice::setSecurityCallbacks (NimBLESecurityCallbacks *pCallbacks)
+
For backward compatibility, New code should use client/server callback methods.
+
Member NimBLERemoteCharacteristic::readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()")))
+
Use readValue<uint16_t>().
+
Member NimBLERemoteCharacteristic::readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()")))
+
Use readValue<uint32_t>().
+
Member NimBLERemoteCharacteristic::readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()")))
+
Use readValue<uint8_t>().
+
Member NimBLERemoteCharacteristic::registerForNotify (notify_callback notifyCallback, bool notifications=true, bool response=true) __attribute__((deprecated("Use subscribe()/unsubscribe()")))
+
Use subscribe() / unsubscribe() instead.
+
Member NimBLERemoteDescriptor::readUInt16 () __attribute__((deprecated("Use template readValue<uint16_t>()")))
+
Use readValue<uint16_t>().
+
Member NimBLERemoteDescriptor::readUInt32 () __attribute__((deprecated("Use template readValue<uint32_t>()")))
+
Use readValue<uint32_t>().
+
Member NimBLERemoteDescriptor::readUInt8 () __attribute__((deprecated("Use template readValue<uint8_t>()")))
+
Use readValue<uint8_t>().
+
Class NimBLESecurity
+
Use the security methods provided in NimBLEDevice instead.
+
Class NimBLESecurityCallbacks
+
Use the callbacks provided in NimBLEClientCallbacks and NimBLEServerCallbacks instead.
+
Member NimBLEUUID::toString () const
+
Use std::string() operator instead.
+
+
+
+
+ + + + diff --git a/dir_49e56c817e5e54854c35e136979f97ca.html b/dir_49e56c817e5e54854c35e136979f97ca.html new file mode 100644 index 0000000..3b4b700 --- /dev/null +++ b/dir_49e56c817e5e54854c35e136979f97ca.html @@ -0,0 +1,99 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: docs Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
docs Directory Reference
+
+
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..d19ebd6 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,105 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+ + + + +

+Files

file  nimconfig.h [code]
 
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 0000000..7595cf4 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,30 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "HIDKeyboardTypes.h", "_h_i_d_keyboard_types_8h_source.html", null ], + [ "HIDTypes.h", "_h_i_d_types_8h_source.html", null ], + [ "NimBLE2904.h", "_nim_b_l_e2904_8h_source.html", null ], + [ "NimBLEAddress.h", "_nim_b_l_e_address_8h_source.html", null ], + [ "NimBLEAdvertisedDevice.h", "_nim_b_l_e_advertised_device_8h_source.html", null ], + [ "NimBLEAdvertising.h", "_nim_b_l_e_advertising_8h_source.html", null ], + [ "NimBLEBeacon.h", "_nim_b_l_e_beacon_8h_source.html", null ], + [ "NimBLECharacteristic.h", "_nim_b_l_e_characteristic_8h_source.html", null ], + [ "NimBLEClient.h", "_nim_b_l_e_client_8h_source.html", null ], + [ "NimBLEConnInfo.h", "_nim_b_l_e_conn_info_8h_source.html", null ], + [ "NimBLEDescriptor.h", "_nim_b_l_e_descriptor_8h_source.html", null ], + [ "NimBLEDevice.h", "_nim_b_l_e_device_8h_source.html", null ], + [ "NimBLEEddystoneTLM.h", "_nim_b_l_e_eddystone_t_l_m_8h_source.html", null ], + [ "NimBLEEddystoneURL.h", "_nim_b_l_e_eddystone_u_r_l_8h_source.html", null ], + [ "NimBLEHIDDevice.h", "_nim_b_l_e_h_i_d_device_8h_source.html", null ], + [ "NimBLELog.h", "_nim_b_l_e_log_8h_source.html", null ], + [ "NimBLERemoteCharacteristic.h", "_nim_b_l_e_remote_characteristic_8h_source.html", null ], + [ "NimBLERemoteDescriptor.h", "_nim_b_l_e_remote_descriptor_8h_source.html", null ], + [ "NimBLERemoteService.h", "_nim_b_l_e_remote_service_8h_source.html", null ], + [ "NimBLEScan.h", "_nim_b_l_e_scan_8h_source.html", null ], + [ "NimBLESecurity.h", "_nim_b_l_e_security_8h_source.html", null ], + [ "NimBLEServer.h", "_nim_b_l_e_server_8h_source.html", null ], + [ "NimBLEService.h", "_nim_b_l_e_service_8h_source.html", null ], + [ "NimBLEUtils.h", "_nim_b_l_e_utils_8h_source.html", null ], + [ "NimBLEUUID.h", "_nim_b_l_e_u_u_i_d_8h_source.html", null ], + [ "nimconfig.h", "nimconfig_8h.html", "nimconfig_8h" ], + [ "nimconfig_rename.h", "nimconfig__rename_8h_source.html", null ] +]; \ No newline at end of file diff --git a/doc.png b/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/doc.png differ diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 0000000..1a0a853 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.0 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +esp-nimble-cpp / NimBLE-Arduino: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  src
 HIDKeyboardTypes.h
 HIDTypes.h
 NimBLE2904.h
 NimBLEAddress.h
 NimBLEAdvertisedDevice.h
 NimBLEAdvertising.h
 NimBLEBeacon.h
 NimBLECharacteristic.h
 NimBLEClient.h
 NimBLEConnInfo.h
 NimBLEDescriptor.h
 NimBLEDevice.h
 NimBLEEddystoneTLM.h
 NimBLEEddystoneURL.h
 NimBLEHIDDevice.h
 NimBLELog.h
 NimBLERemoteCharacteristic.h
 NimBLERemoteDescriptor.h
 NimBLERemoteService.h
 NimBLEScan.h
 NimBLESecurity.h
 NimBLEServer.h
 NimBLEService.h
 NimBLEUtils.h
 NimBLEUUID.h
 nimconfig.h
 nimconfig_rename.h
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 0000000..c3b39c4 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/folderclosed.png differ diff --git a/folderopen.png b/folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/folderopen.png differ diff --git a/functions.html b/functions.html new file mode 100644 index 0000000..123daef --- /dev/null +++ b/functions.html @@ -0,0 +1,129 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+
+
+ + + + diff --git a/functions_b.html b/functions_b.html new file mode 100644 index 0000000..500e750 --- /dev/null +++ b/functions_b.html @@ -0,0 +1,119 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- b -

+
+
+ + + + diff --git a/functions_c.html b/functions_c.html new file mode 100644 index 0000000..13871d6 --- /dev/null +++ b/functions_c.html @@ -0,0 +1,143 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- c -

+
+
+ + + + diff --git a/functions_d.html b/functions_d.html new file mode 100644 index 0000000..38d91ee --- /dev/null +++ b/functions_d.html @@ -0,0 +1,145 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- d -

+
+
+ + + + diff --git a/functions_dup.js b/functions_dup.js new file mode 100644 index 0000000..b8813c0 --- /dev/null +++ b/functions_dup.js @@ -0,0 +1,22 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "g", "functions_g.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "t", "functions_t.html", null ], + [ "u", "functions_u.html", null ], + [ "w", "functions_w.html", null ], + [ "~", "functions_~.html", null ] +]; \ No newline at end of file diff --git a/functions_e.html b/functions_e.html new file mode 100644 index 0000000..8d8dab9 --- /dev/null +++ b/functions_e.html @@ -0,0 +1,111 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- e -

+
+
+ + + + diff --git a/functions_enum.html b/functions_enum.html new file mode 100644 index 0000000..497d45b --- /dev/null +++ b/functions_enum.html @@ -0,0 +1,99 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Enumerations + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/functions_f.html b/functions_f.html new file mode 100644 index 0000000..a2ad7f6 --- /dev/null +++ b/functions_f.html @@ -0,0 +1,104 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- f -

+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 0000000..611fd60 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,129 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+
+
+ + + + diff --git a/functions_func.js b/functions_func.js new file mode 100644 index 0000000..c1becce --- /dev/null +++ b/functions_func.js @@ -0,0 +1,22 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "e", "functions_func_e.html", null ], + [ "f", "functions_func_f.html", null ], + [ "g", "functions_func_g.html", null ], + [ "h", "functions_func_h.html", null ], + [ "i", "functions_func_i.html", null ], + [ "m", "functions_func_m.html", null ], + [ "n", "functions_func_n.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "t", "functions_func_t.html", null ], + [ "u", "functions_func_u.html", null ], + [ "w", "functions_func_w.html", null ], + [ "~", "functions_func_~.html", null ] +]; \ No newline at end of file diff --git a/functions_func_b.html b/functions_func_b.html new file mode 100644 index 0000000..889e5ed --- /dev/null +++ b/functions_func_b.html @@ -0,0 +1,119 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- b -

+
+
+ + + + diff --git a/functions_func_c.html b/functions_func_c.html new file mode 100644 index 0000000..6b97d7a --- /dev/null +++ b/functions_func_c.html @@ -0,0 +1,143 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

+
+
+ + + + diff --git a/functions_func_d.html b/functions_func_d.html new file mode 100644 index 0000000..f2dd6d5 --- /dev/null +++ b/functions_func_d.html @@ -0,0 +1,145 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- d -

+
+
+ + + + diff --git a/functions_func_e.html b/functions_func_e.html new file mode 100644 index 0000000..54a816d --- /dev/null +++ b/functions_func_e.html @@ -0,0 +1,111 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- e -

+
+
+ + + + diff --git a/functions_func_f.html b/functions_func_f.html new file mode 100644 index 0000000..8f45650 --- /dev/null +++ b/functions_func_f.html @@ -0,0 +1,104 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- f -

+
+
+ + + + diff --git a/functions_func_g.html b/functions_func_g.html new file mode 100644 index 0000000..ee32886 --- /dev/null +++ b/functions_func_g.html @@ -0,0 +1,419 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- g -

+
+
+ + + + diff --git a/functions_func_h.html b/functions_func_h.html new file mode 100644 index 0000000..a6075a3 --- /dev/null +++ b/functions_func_h.html @@ -0,0 +1,140 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- h -

+
+
+ + + + diff --git a/functions_func_i.html b/functions_func_i.html new file mode 100644 index 0000000..de52709 --- /dev/null +++ b/functions_func_i.html @@ -0,0 +1,138 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- i -

+
+
+ + + + diff --git a/functions_func_m.html b/functions_func_m.html new file mode 100644 index 0000000..4826890 --- /dev/null +++ b/functions_func_m.html @@ -0,0 +1,101 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- m -

+
+
+ + + + diff --git a/functions_func_n.html b/functions_func_n.html new file mode 100644 index 0000000..35a731e --- /dev/null +++ b/functions_func_n.html @@ -0,0 +1,134 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- n -

+
+
+ + + + diff --git a/functions_func_o.html b/functions_func_o.html new file mode 100644 index 0000000..8bd9133 --- /dev/null +++ b/functions_func_o.html @@ -0,0 +1,174 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- o -

+
+
+ + + + diff --git a/functions_func_p.html b/functions_func_p.html new file mode 100644 index 0000000..63bb123 --- /dev/null +++ b/functions_func_p.html @@ -0,0 +1,104 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- p -

+
+
+ + + + diff --git a/functions_func_r.html b/functions_func_r.html new file mode 100644 index 0000000..344dcd1 --- /dev/null +++ b/functions_func_r.html @@ -0,0 +1,144 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- r -

+
+
+ + + + diff --git a/functions_func_s.html b/functions_func_s.html new file mode 100644 index 0000000..a378bbe --- /dev/null +++ b/functions_func_s.html @@ -0,0 +1,364 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- s -

+
+
+ + + + diff --git a/functions_func_t.html b/functions_func_t.html new file mode 100644 index 0000000..ad9d150 --- /dev/null +++ b/functions_func_t.html @@ -0,0 +1,115 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/functions_func_u.html b/functions_func_u.html new file mode 100644 index 0000000..207b4af --- /dev/null +++ b/functions_func_u.html @@ -0,0 +1,105 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- u -

+
+
+ + + + diff --git a/functions_func_w.html b/functions_func_w.html new file mode 100644 index 0000000..a06e4a8 --- /dev/null +++ b/functions_func_w.html @@ -0,0 +1,108 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- w -

+
+
+ + + + diff --git a/functions_func_~.html b/functions_func_~.html new file mode 100644 index 0000000..6b941e3 --- /dev/null +++ b/functions_func_~.html @@ -0,0 +1,110 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- ~ -

+
+
+ + + + diff --git a/functions_g.html b/functions_g.html new file mode 100644 index 0000000..8633ad6 --- /dev/null +++ b/functions_g.html @@ -0,0 +1,419 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- g -

+
+
+ + + + diff --git a/functions_h.html b/functions_h.html new file mode 100644 index 0000000..2ab2b92 --- /dev/null +++ b/functions_h.html @@ -0,0 +1,140 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- h -

+
+
+ + + + diff --git a/functions_i.html b/functions_i.html new file mode 100644 index 0000000..5883f71 --- /dev/null +++ b/functions_i.html @@ -0,0 +1,138 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- i -

+
+
+ + + + diff --git a/functions_m.html b/functions_m.html new file mode 100644 index 0000000..e2b34bc --- /dev/null +++ b/functions_m.html @@ -0,0 +1,101 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- m -

+
+
+ + + + diff --git a/functions_n.html b/functions_n.html new file mode 100644 index 0000000..d126003 --- /dev/null +++ b/functions_n.html @@ -0,0 +1,134 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- n -

+
+
+ + + + diff --git a/functions_o.html b/functions_o.html new file mode 100644 index 0000000..43a4cc7 --- /dev/null +++ b/functions_o.html @@ -0,0 +1,174 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- o -

+
+
+ + + + diff --git a/functions_p.html b/functions_p.html new file mode 100644 index 0000000..0098514 --- /dev/null +++ b/functions_p.html @@ -0,0 +1,104 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- p -

+
+
+ + + + diff --git a/functions_r.html b/functions_r.html new file mode 100644 index 0000000..cd99b35 --- /dev/null +++ b/functions_r.html @@ -0,0 +1,144 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- r -

+
+
+ + + + diff --git a/functions_s.html b/functions_s.html new file mode 100644 index 0000000..f6f6ae8 --- /dev/null +++ b/functions_s.html @@ -0,0 +1,367 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- s -

+
+
+ + + + diff --git a/functions_t.html b/functions_t.html new file mode 100644 index 0000000..0acda8c --- /dev/null +++ b/functions_t.html @@ -0,0 +1,115 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- t -

+
+
+ + + + diff --git a/functions_u.html b/functions_u.html new file mode 100644 index 0000000..3443155 --- /dev/null +++ b/functions_u.html @@ -0,0 +1,105 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- u -

+
+
+ + + + diff --git a/functions_w.html b/functions_w.html new file mode 100644 index 0000000..841344a --- /dev/null +++ b/functions_w.html @@ -0,0 +1,108 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- w -

+
+
+ + + + diff --git a/functions_~.html b/functions_~.html new file mode 100644 index 0000000..bdacacc --- /dev/null +++ b/functions_~.html @@ -0,0 +1,110 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- ~ -

+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 0000000..9c9c131 --- /dev/null +++ b/globals.html @@ -0,0 +1,153 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented file members with links to the documentation:
+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 0000000..9b04f97 --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,153 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..7cf4374 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,132 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Class Hierarchy + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 CNimBLEAddressA BLE device address
 CNimBLEAdvertisedDeviceA representation of a BLE advertised device found by a scan
 CNimBLEAdvertisedDeviceCallbacksA callback handler for callbacks associated device scanning
 CNimBLEAdvertisementDataAdvertisement data set by the programmer to be published by the BLE server
 CNimBLEAdvertisingPerform and manage BLE advertising
 CNimBLEBeaconRepresentation of a beacon. See:
 CNimBLECharacteristicThe model of a BLE Characteristic
 CNimBLECharacteristicCallbacksCallbacks that can be associated with a BLE characteristic to inform of events
 CNimBLEClientA model of a BLE client
 CNimBLEClientCallbacksCallbacks associated with a BLE client
 CNimBLEConnInfoConnection information
 CNimBLEDescriptorA model of a BLE descriptor
 CNimBLE2904Descriptor for Characteristic Presentation Format
 CNimBLEDescriptorCallbacksCallbacks that can be associated with a BLE descriptors to inform of events
 CNimBLEDeviceA model of a BLE Device from which all the BLE roles are created
 CNimBLEEddystoneTLMRepresentation of a beacon. See:
 CNimBLEEddystoneURLRepresentation of a beacon. See:
 CNimBLEHIDDeviceA model of a BLE Human Interface Device
 CNimBLERemoteCharacteristicA model of a remote BLE characteristic
 CNimBLERemoteDescriptorA model of remote BLE descriptor
 CNimBLERemoteServiceA model of a remote BLE service
 CNimBLEScanPerform and manage BLE scans
 CNimBLEScanResultsA class that contains and operates on the results of a BLE scan
 CNimBLESecurityA class to handle BLE security operations. Deprecated - provided for backward compatibility only.
 CNimBLESecurityCallbacksCallbacks to handle GAP events related to authorization. Deprecated - provided for backward compatibility only.
 CNimBLEServerThe model of a BLE server
 CNimBLEServerCallbacksCallbacks associated with the operation of a BLE server
 CNimBLEServiceThe model of a BLE service
 CNimBLEUtilsA BLE Utility class with methods for debugging and general purpose use
 CNimBLEUUIDA model of a BLE UUID
+
+
+
+ + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 0000000..88049f7 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,34 @@ +var hierarchy = +[ + [ "NimBLEAddress", "class_nim_b_l_e_address.html", null ], + [ "NimBLEAdvertisedDevice", "class_nim_b_l_e_advertised_device.html", null ], + [ "NimBLEAdvertisedDeviceCallbacks", "class_nim_b_l_e_advertised_device_callbacks.html", null ], + [ "NimBLEAdvertisementData", "class_nim_b_l_e_advertisement_data.html", null ], + [ "NimBLEAdvertising", "class_nim_b_l_e_advertising.html", null ], + [ "NimBLEBeacon", "class_nim_b_l_e_beacon.html", null ], + [ "NimBLECharacteristic", "class_nim_b_l_e_characteristic.html", null ], + [ "NimBLECharacteristicCallbacks", "class_nim_b_l_e_characteristic_callbacks.html", null ], + [ "NimBLEClient", "class_nim_b_l_e_client.html", null ], + [ "NimBLEClientCallbacks", "class_nim_b_l_e_client_callbacks.html", null ], + [ "NimBLEConnInfo", "class_nim_b_l_e_conn_info.html", null ], + [ "NimBLEDescriptor", "class_nim_b_l_e_descriptor.html", [ + [ "NimBLE2904", "class_nim_b_l_e2904.html", null ] + ] ], + [ "NimBLEDescriptorCallbacks", "class_nim_b_l_e_descriptor_callbacks.html", null ], + [ "NimBLEDevice", "class_nim_b_l_e_device.html", null ], + [ "NimBLEEddystoneTLM", "class_nim_b_l_e_eddystone_t_l_m.html", null ], + [ "NimBLEEddystoneURL", "class_nim_b_l_e_eddystone_u_r_l.html", null ], + [ "NimBLEHIDDevice", "class_nim_b_l_e_h_i_d_device.html", null ], + [ "NimBLERemoteCharacteristic", "class_nim_b_l_e_remote_characteristic.html", null ], + [ "NimBLERemoteDescriptor", "class_nim_b_l_e_remote_descriptor.html", null ], + [ "NimBLERemoteService", "class_nim_b_l_e_remote_service.html", null ], + [ "NimBLEScan", "class_nim_b_l_e_scan.html", null ], + [ "NimBLEScanResults", "class_nim_b_l_e_scan_results.html", null ], + [ "NimBLESecurity", "class_nim_b_l_e_security.html", null ], + [ "NimBLESecurityCallbacks", "class_nim_b_l_e_security_callbacks.html", null ], + [ "NimBLEServer", "class_nim_b_l_e_server.html", null ], + [ "NimBLEServerCallbacks", "class_nim_b_l_e_server_callbacks.html", null ], + [ "NimBLEService", "class_nim_b_l_e_service.html", null ], + [ "NimBLEUtils", "class_nim_b_l_e_utils.html", null ], + [ "NimBLEUUID", "class_nim_b_l_e_u_u_i_d.html", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..772ea94 --- /dev/null +++ b/index.html @@ -0,0 +1,192 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Overview + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Overview
+
+
+

This is a C++ BLE library for the ESP32 that uses the NimBLE host stack instead of bluedroid.
+ The aim is to maintain, as much as reasonable, the original bluedroid C++ & Arduino BLE API by while adding new features
+ and making improvements in performance, resource use, and stability.
+

+

Testing shows a nearly 50% reduction in flash use and approx. 100kB less ram consumed vs the original!
+ Your results may vary
+
+

+

+What is NimBLE?

+

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 Installation

+

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

+

+ESP-IDF Installation

+

+v4.0+

+

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.
+ Configure settings in NimBLE Options.
+ #include "NimBLEDevice.h" in main.cpp.
+ Call NimBLEDevice::init in app_main.
+
+

+

+v3.2 & v3.3

+

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.
+ Download or clone that repo into your project/components folder and run menuconfig. Configure settings in main menu -> NimBLE Options.
+

+

#include "NimBLEDevice.h" in main.cpp.
+ Call NimBLEDevice::init in app_main.
+
+
+

+

+Using

+

This library is intended to be compatible with the original ESP32 BLE functions and types with minor changes.
+

+

If you have not used the original Bluedroid library please refer to the New user guide.

+

If you are familiar with the original library, see: The migration guide for details.
+

+

Also see Improvements and updates for information about non-breaking changes.
+

+

For more advanced usage see Usage tips for more performance and optimization.
+
+

+

+Arduino specific

+

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

+

+Arduino command line and platformio

+

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

+

+Need help? Have a question or suggestion?

+

Come chat on gitter or open an issue at NimBLE-Arduino or esp-nimble-cpp
+
+

+

+Acknowledgments

+ +
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/md__c_h_a_n_g_e_l_o_g.html b/md__c_h_a_n_g_e_l_o_g.html new file mode 100644 index 0000000..571a7ae --- /dev/null +++ b/md__c_h_a_n_g_e_l_o_g.html @@ -0,0 +1,325 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Changelog + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Changelog
+
+
+

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

+

+[1.3.1] - 2021-08-04

+

+Fixed

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

+[1.3.0] - 2021-08-02

+

+Added

+ +

+Changed

+
    +
  • FreeRTOS files have been removed as they are not used by the library.
  • +
  • Services, characteristics and descriptors can now be created statically and added after.
  • +
  • Excess logging and some asserts removed.
  • +
  • Use ESP_LOGx macros to enable using local log level filtering.
  • +
+

+Fixed

+
    +
  • NimBLECharacteristicCallbacks::onSubscribe Is now called after the connection is added to the vector.
  • +
  • Corrected bonding failure when reinitializing the BLE stack.
  • +
  • Writing to a characterisic with a std::string value now correctly writes values with null characters.
  • +
  • Retrieving remote descriptors now uses the characterisic end handle correctly.
  • +
  • Missing data in long writes to remote descriptors.
  • +
  • Hanging on task notification when sending an indication from the characteristic callback.
  • +
  • BLE controller memory could be released when using Arduino as a component.
  • +
  • Complile errors with NimBLE release 1.3.0.
  • +
+

+[1.2.0] - 2021-02-08

+

+Added

+ +

+Changed

+
    +
  • nimconfig.h (Arduino) is now easier to use.
  • +
  • NimBLEServer::getServiceByUUID Now takes an extra parameter of instanceID to support multiple services with the same UUID.
  • +
  • NimBLEService::getCharacteristic Now takes an extra parameter of instanceID to support multiple characteristics with the same UUID.
  • +
  • NimBLEAdvertising Transmission power is no longer advertised by default and can be added to the advertisement by calling NimBLEAdvertising::addTxPower
  • +
  • NimBLEAdvertising Custom scan response data can now be used without custom advertisment.
  • +
  • NimBLEScan Now uses the controller duplicate filter.
    +
  • +
  • NimBLEAdvertisedDevice Has been refactored to store the complete advertisement payload and no longer parses the data from each advertisement.
    + Instead the data will be parsed on-demand when the user application asks for specific data.
    +
  • +
+

+Fixed

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

+[1.1.0] - 2021-01-20

+

+Added

+
    +
  • NimBLEDevice::setOwnAddrType added to enable the use of random and random-resolvable addresses, by asukiaaa
    +
  • +
  • New examples for securing and authenticating client/server connections, by mblasee.
    +
  • +
  • NimBLEAdvertising::SetMinPreferred and NimBLEAdvertising::SetMinPreferred re-added.
    +
  • +
  • Conditional checks added for command line config options in nimconfig.h to support custom configuration in platformio.
    +
  • +
  • NimBLEClient::setValue Now takes an extra bool parameter response to enable the use of write with response (default = false).
    +
  • +
  • NimBLEClient::getCharacteristic(uint16_t handle) Enabling the use of the characteristic handle to be used to find the NimBLERemoteCharacteristic object.
    +
  • +
  • NimBLEHIDDevice class added by wakwak-koba.
    +
  • +
  • NimBLEServerCallbacks::onDisconnect overloaded callback added to provide a ble_gap_conn_desc parameter for the application
    + to obtain information about the disconnected client.
    +
  • +
  • Conditional checks in nimconfig.h for command line defined macros to support platformio config settings.
    +
  • +
+

+Changed

+
    +
  • NimBLEAdvertising::start now returns a bool value to indicate success/failure.
    +
  • +
  • Some asserts were removed in NimBLEAdvertising::start and replaced with better return code handling and logging.
    +
  • +
  • If a host reset event occurs, scanning and advertising will now only be restarted if their previous duration was indefinite.
    +
  • +
  • NimBLERemoteCharacteristic::subscribe and NimBLERemoteCharacteristic::registerForNotify will now set the callback regardless of the existance of the CCCD and return true unless the descriptor write operation failed.
    +
  • +
  • Advertising tx power level is now sent in the advertisement packet instead of scan response.
    +
  • +
  • NimBLEScan When the scan ends the scan stopped flag is now set before calling the scan complete callback (if used)
    + this allows the starting of a new scan from the callback function.
    +
  • +
+

+Fixed

+
    +
  • Sometimes NimBLEClient::connect would hang on the task block if no event arrived to unblock.
    + A time limit has been added to timeout appropriately.
    +
  • +
  • When getting descriptors for a characterisic the end handle of the service was used as a proxy for the characteristic end
    + handle. This would be rejected by some devices and has been changed to use the next characteristic handle as the end when possible.
    +
  • +
  • An exception could occur when deleting a client instance if a notification arrived while the attribute vectors were being
    + deleted. A flag has been added to prevent this.
    +
  • +
  • An exception could occur after a host reset event when the host re-synced if the tasks that were stopped during the event did
    + not finish processing. A yield has been added after re-syncing to allow tasks to finish before proceeding.
    +
  • +
  • Occasionally the controller would fail to send a disconnected event causing the client to indicate it is connected
    + and would be unable to reconnect. A timer has been added to reset the host/controller if it expires.
    +
  • +
  • Occasionally the call to start scanning would get stuck in a loop on BLE_HS_EBUSY, this loop has been removed.
    +
  • +
  • 16bit and 32bit UUID's in some cases were not discovered or compared correctly if the device
    + advertised them as 16/32bit but resolved them to 128bits. Both are now checked.
    +
  • +
  • FreeRTOS compile errors resolved in latest Ardruino core and IDF v3.3.
    +
  • +
  • Multiple instances of time() called inside critical sections caused sporadic crashes, these have been moved out of critical regions.
    +
  • +
  • Advertisement type now correctly set when using non-connectable (advertiser only) mode.
    +
  • +
  • Advertising payload length correction, now accounts for appearance.
    +
  • +
  • (Arduino) Ensure controller mode is set to BLE Only.
    +
  • +
+

+[1.0.2] - 2020-09-13

+

+Changed

+
    +
  • NimBLEAdvertising::start Now takes 2 optional parameters, the first is the duration to advertise for (in seconds), the second is a
    + callback that is invoked when advertsing ends and takes a pointer to a NimBLEAdvertising object (similar to the NimBLEScan::start API).
  • +
  • (Arduino) Maximum BLE connections can now be altered by only changing the value of CONFIG_BT_NIMBLE_MAX_CONNECTIONS in nimconfig.h. Any changes to the controller max connection settings in sdkconfig.h will now have no effect when using this library.
  • +
  • (Arduino) Revert the previous change to fix the advertising start delay. Instead a replacement fix that routes all BLE controller commands from
    + a task running on core 0 (same as the controller) has been implemented. This improves response times and reliability for all BLE functions.
  • +
+

+[1.0.1] - 2020-09-02

+

+Added

+ +

+Changed

+
    +
  • notify_callback typedef is now defined as std::function to enable the use of std::bind to call a class member function.
  • +
+

+Fixed

+
    +
  • Fix advertising start delay when first called.
  • +
+

+[1.0.0] - 2020-08-22

+

First stable release.

+

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

+
+
+
+ + + + diff --git a/md_docs__command_line_config.html b/md_docs__command_line_config.html new file mode 100644 index 0000000..ce76ba3 --- /dev/null +++ b/md_docs__command_line_config.html @@ -0,0 +1,251 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Arduino command line and platformio config options + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Arduino command line and platformio config options
+
+
+

CONFIG_BT_NIMBLE_MAX_CONNECTIONS
+

+

Sets the number of simultaneous connections (esp controller max is 9)
+

    +
  • Default value is 3
    +
    +
  • +
+

CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
+

+

Sets the default MTU size.
+

    +
  • Default value is 255
    +
    +
  • +
+

CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
+

+

Set the default device name
+

    +
  • Default value is "nimble"
    +
    +
  • +
+

CONFIG_BT_NIMBLE_DEBUG
+

+

If defined, enables debug log messages from the NimBLE host
+

    +
  • Uses approx. 32kB of flash memory.
    +
    +
  • +
+

CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT
+

+

If defined, NimBLE host return codes will be printed as text in debug log messages.
+

    +
  • Uses approx. 7kB of flash memory.
    +
    +
  • +
+

CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT
+

+

If defined, GAP event codes will be printed as text in debug log messages.
+

    +
  • Uses approx. 1kB of flash memory.
    +
    +
  • +
+

CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT
+

+

If defined, advertisment types will be printed as text while scanning in debug log messages.
+

    +
  • Uses approx. 250 bytes of flash memory.
    +
    +
  • +
+

CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
+

+

Set the default appearance.
+

    +
  • Default value is 0x00
    +
    +
  • +
+

CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED
+

+

If defined, NimBLE Client functions will not be included.
+

    +
  • Reduces flash size by approx. 7kB.
    +
    +
  • +
+

CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED
+

+

If defined, NimBLE Scan functions will not be included.
+

    +
  • Reduces flash size by approx. 26kB.
    +
    +
  • +
+

CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED
+

+

If defined NimBLE Server functions will not be included.
+

    +
  • Reduces flash size by approx. 16kB.
    +
    +
  • +
+

CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED
+

+

If defined, NimBLE Advertising functions will not be included.
+

    +
  • Reduces flash size by approx. 5kB.
    +
    +
  • +
+

CONFIG_BT_NIMBLE_MAX_BONDS
+

+

Sets the number of devices allowed to store/bond with
+

    +
  • Default value is 3
    +
    +
  • +
+

CONFIG_BT_NIMBLE_MAX_CCCDS
+

+

Sets the maximum number of CCCD subscriptions to store
+

    +
  • Default value is 8
    +
    +
  • +
+

CONFIG_BT_NIMBLE_RPA_TIMEOUT
+

+

Sets the random address refresh time in seconds.
+

    +
  • Default value is 900
    +
    +
  • +
+

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

    +
  • Default value is 12
    +
    +
  • +
+

CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
+

+

Sets the NimBLE stack to use external PSRAM will be loaded
+

    +
  • Must be defined with a value of 1; Default is CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL 1
    +
    +
  • +
+

CONFIG_BT_NIMBLE_PINNED_TO_CORE
+

+

Sets the core the NimBLE host stack will run on
+

    +
  • Options: 0 or 1
    +
  • +
+

CONFIG_BT_NIMBLE_TASK_STACK_SIZE
+

+

Set the task stack size for the NimBLE core.
+

    +
  • Default is 4096
    +
    +
  • +
+
+
+
+ + + + diff --git a/md_docs__improvements_and_updates.html b/md_docs__improvements_and_updates.html new file mode 100644 index 0000000..5c093e2 --- /dev/null +++ b/md_docs__improvements_and_updates.html @@ -0,0 +1,239 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Improvements and updates + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Improvements and updates
+
+
+

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

+ +

+

+Server

+

NimBLECharacteristic::setValue(const T &s)
+ NimBLEDescriptor::setValue(const T &s)
+

+

Now use a template to accomodate standard and custom types/values.
+

+

Example

struct my_struct{
+
uint8_t one;
+
uint16_t two;
+
uint32_t four;
+
uint64_t eight;
+
float flt;
+
}myStruct;
+
+
myStruct.one = 1;
+
myStruct.two = 2;
+
myStruct.four = 4;
+
myStruct.eight = 8;
+
myStruct.flt = 1234.56;
+
+
pCharacteristic->setValue(myStruct);
+

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

+

Example

time_t timestamp;
+
myStruct = pCharacteristic->getValue<myStruct>(&timestamp); // timestamp optional
+


+

+

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

+

+

+Advertising

+

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

+

Also now returns a bool value to indicate if advertising successfully started or not.
+
+

+

+

+Client

+

NimBLERemoteCharacteristic::readValue(time_t\*, bool)
+ NimBLERemoteDescriptor::readValue(bool)
+

+

Have been added as templates to allow reading the values as any specified type.
+

+

Example

struct my_struct{
+
uint8_t one;
+
uint16_t two;
+
uint32_t four;
+
uint64_t eight;
+
float flt;
+
}myStruct;
+
+
time_t timestamp;
+
myStruct = pRemoteCharacteristic->readValue<myStruct>(&timestamp); // timestamp optional
+


+

+

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

+

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:
+

using namespace std::placeholders;
+
notify_callback callback = std::bind(&<ClassName>::<memberFunctionCallbackName>, this, _1, _2, _3, _4);
+
<remoteCharacteristicInstance>->subscribe(true, callback);
+

NimBLERemoteCharacteristic::readValue and NimBLERemoteCharacteristic::getValue take an optional timestamp parameter which will update it's value with
+ the time the last value was recieved.
+

+
+

NimBLEClient::getService
+ 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 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().

+

+

+General

+

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

+
+
+
+ + + + diff --git a/md_docs__migration_guide.html b/md_docs__migration_guide.html new file mode 100644 index 0000000..44cf6d5 --- /dev/null +++ b/md_docs__migration_guide.html @@ -0,0 +1,531 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Migrating from Bluedroid to NimBLE + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Migrating from Bluedroid to NimBLE
+
+
+

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
+

+ +

+

+General Information

+

+Header Files

+

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

+

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

+

+BLE Addresses

+

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

+

+

+Server API

+

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

+

+

+Services

+

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

+

+

+Characteristics

+

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.

+

+Originally

+
+

BLECharacteristic::PROPERTY_READ |
+ BLECharacteristic::PROPERTY_WRITE
+

+
+

+Is Now

+
+

NIMBLE_PROPERTY::READ |
+ NIMBLE_PROPERTY::WRITE
+

+
+


+

+

+The full list of properties

+
+

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:

BLECharacteristic *pCharacteristic = pService->createCharacteristic(
+
CHARACTERISTIC_UUID,
+
BLECharacteristic::PROPERTY_READ |
+
BLECharacteristic::PROPERTY_WRITE
+
);
+

Needs to be changed to:

BLECharacteristic *pCharacteristic = pService->createCharacteristic(
+
CHARACTERISTIC_UUID,
+
NIMBLE_PROPERTY::READ |
+
NIMBLE_PROPERTY::WRITE
+
);
+


+

+

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
+

+
+

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:

std::string value = pCharacteristic->getValue();
+
uint8_t *pData = (uint8_t*)value.data();
+

Alternatively use the getValue template:

my_struct_t myStruct = pChr->getValue<my_struct_t>();
+


+

+

+

+Descriptors

+

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

+

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:

NimBLEDescriptor* createDescriptor(const char* uuid,
+
uint32_t properties =
+
NIMBLE_PROPERTY::READ |
+
NIMBLE_PROPERTY::WRITE,
+
uint16_t max_len = 100);
+
+
NimBLEDescriptor* createDescriptor(NimBLEUUID uuid,
+
uint32_t properties =
+
NIMBLE_PROPERTY::READ |
+
NIMBLE_PROPERTY::WRITE,
+
uint16_t max_len = 100);
+

+Example

+
pDescriptor = pCharacteristic->createDescriptor("ABCD",
+
NIMBLE_PROPERTY::READ |
+
NIMBLE_PROPERTY::WRITE |
+
NIMBLE_PROPERTY::WRITE_ENC,
+
25);
+

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.

+

+Example

+
p2904 = (NimBLE2904*)pCharacteristic->createDescriptor("2904");
+


+

+

+

+Server Security

+

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
+

+
+

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 API

+

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

+
+

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

+

+

+Client API

+

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

+
+

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 to std::vector instead of std::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.
+
+

+

+

+Remote Services

+

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 to std::vector instead of std::map.
+
+

+

+

+Remote Characteristics

+

BLERemoteCharacteristic (NimBLERemoteCharacteristic) There have been a few changes to the methods in this class:
+

+
+

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

+
+

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

+
+

Are deprecated a template: NimBLERemoteCharacteristic::readValue<type>(time_t*, bool) has been added to replace them.
+
+

+
+

BLERemoteCharacteristic::readRawData
+

+
+

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 use NimBLERemoteCharacteristic::readValue or NimBLERemoteCharacteristic::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();
+
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)
+

+
+

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 of std::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.
+
+

+

+

+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 original BLESecurity (NimBLESecurity) class is retained to minimize application code changes.
+

+

The callback methods are:

+
+

bool onConfirmPIN(uint32_t pin)
+

+
+

Receives the pin when using numeric comparison authentication, return true; to accept.
+
+

+
+

uint32_t onPassKeyRequest()
+

+
+

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

+
+

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

+
+

Sets the authorization mode for this device.
+
+

+
+

NimBLEDevice::setSecurityIOCap(uint8_t iocap)
+

+
+

Sets the Input/Output capabilities of this device.
+
+

+
+

NimBLEDevice::setSecurityInitKey(uint8_t init_key)
+

+
+

If we are the initiator of the security procedure this sets the keys we will distribute.
+
+

+
+

NimBLEDevice::setSecurityRespKey(uint8_t resp_key)
+

+
+

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

+

For details on the options, they are fully commented in nimconfig.h
+
+

+
+
+
+ + + + diff --git a/md_docs__new_user_guide.html b/md_docs__new_user_guide.html new file mode 100644 index 0000000..3f09ee5 --- /dev/null +++ b/md_docs__new_user_guide.html @@ -0,0 +1,408 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: New User Guide + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
New User Guide
+
+
+

Note: If you are migrating an existing project from the original Bluedroid library please see the Migration Guide.
+

+

If you are a new user this will guide you through a simple server and client application.
+

+ +

+Include Files

+

At the top of your application file add #include NimBLEDevice.h, this is the only header required and provides access to all classes.
+
+

+

+Using the Library

+

In order to perform any BLE tasks you must first initialize the library, this prepares the NimBLE stack to be ready for commands.
+

+

To do this you must call NimBLEDevice::init("your device name here"), the parameter passed is a character string containing the name you want to advertise.
+ If you're not creating a server or do not want to advertise a name, simply pass an empty string for the parameter.
+

+

This can be called any time you wish to use BLE functions and does not need to be called from app_main(IDF) or setup(Arduino) but usually is.
+
+

+

+

+Creating a Server

+

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

+

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

+

Once we have created the server we need to tell it the services it hosts.
+ To do this we call NimBLEServer::createService(const char* uuid). Which returns a pointer to an instance of NimBLEService.
+ The uuid parameter is a hexadecimal string with the uuid we want to give the service, it can be 16, 32, or 128 bits.
+

+

For this example we will keep it simple and use a 16 bit value: ABCD.
+
+

+

Example code:
+

#include "NimBLEDevice.h"
+
+
// void setup() in Arduino
+
void app_main(void)
+
{
+
NimBLEDevice::init("NimBLE");
+
+
NimBLEServer *pServer = NimBLEDevice::createServer();
+
NimBLEService *pService = pServer->createService("ABCD");
+
}
+

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

+

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

+

Here is the list of options:
+

+

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
+

+
+

For this example we won't need to specify these as the default value is NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE
+ which will allow reading and writing values to the characteristic without encryption or security.
+ The function call will simply be pService->createCharacteristic("1234");
+
+

+

Our example code now is:
+

#include "NimBLEDevice.h"
+
+
// void setup() in Arduino
+
void app_main(void)
+
{
+
NimBLEDevice::init("NimBLE");
+
+
NimBLEServer *pServer = NimBLEDevice::createServer();
+
NimBLEService *pService = pServer->createService("ABCD");
+
NimBLECharacteristic *pCharacteristic = pService->createCharacteristic("1234");
+
}
+

All that's left to do now is start the sevice, 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.
+ 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.
+ To do this we create an instance of NimBLEAdvertising add our service to it (optional) and start advertisng.
+

+

The code for this will be:
+

NimBLEAdvertising *pAdvertising = NimBLEDevice::getAdvertising(); // create advertising instance
+
pAdvertising->addServiceUUID("ABCD"); // tell advertising the UUID of our service
+
pAdvertising->start(); // start advertising
+

That's it, this will be enough to create a BLE server with a service and a characteristic and advertise for client connections.
+

+

The full example code:
+

#include "NimBLEDevice.h"
+
+
// void setup() in Arduino
+
void app_main(void)
+
{
+
NimBLEDevice::init("NimBLE");
+
+
NimBLEServer *pServer = NimBLEDevice::createServer();
+
NimBLEService *pService = pServer->createService("ABCD");
+
NimBLECharacteristic *pCharacteristic = pService->createCharacteristic("1234");
+
+
pService->start();
+
pCharacteristic->setValue("Hello BLE");
+
+
NimBLEAdvertising *pAdvertising = NimBLEDevice::getAdvertising();
+
pAdvertising->addServiceUUID("ABCD");
+
pAdvertising->start();
+
}
+

Now if you scan with your phone using nRFConnect or any other BLE app you should see a device named "NimBLE" with a service of "ABCD".
+

+

For more advanced features and options please see the server examples in the examples folder.
+
+

+

+

+Creating a Client

+

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

+

Once we have created the scan we can start looking for advertising servers.
+

+

To do this we call NimBLEScan::start(duration), the duration parameter is a uint32_t that specifies the number of seconds to scan for,
+ passing 0 will scan forever.
+

+

In this example we will scan for 10 seconds. This is a blocking function (a non blocking overload is also available).
+ This call returns an instance of NimBLEScanResults when the scan completes which can be parsed for advertisers we are interested in.
+

+

Example Code:
+

#include "NimBLEDevice.h"
+
+
// void setup() in Arduino
+
void app_main(void)
+
{
+
NimBLEDevice::init("");
+
+
NimBLEScan *pScan = NimBLEDevice::getScan();
+
NimBLEScanResults results = pScan->start(10);
+
}
+


+

+

Now that we have scanned we need to check the results for any advertisers we are interested in connecting to.
+

+

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.
+ This takes an instance of NimBLEUUID as a parameter so we will need to create one.
+

+

The code for this looks like:

NimBLEUUID serviceUuid("ABCD");
+
+
for(int i = 0; i < results.getCount(); i++) {
+
NimBLEAdvertisedDevice device = results.getDevice(i);
+
+
if (device.isAdvertisingService(serviceUuid)) {
+
// create a client and connect
+
}
+
}
+


+

+

Now that we can scan and parse advertisers we need to be able to create a NimBLEClient instance and use it to connect.
+

+

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.
+ This takes a pointer to the NimBLEAdvertisedDevice and returns true if successful.

+

Lets do that now:

NimBLEUUID serviceUuid("ABCD");
+
+
for(int i = 0; i < results.getCount(); i++) {
+
NimBLEAdvertisedDevice device = results.getDevice(i);
+
+
if (device.isAdvertisingService(serviceUuid)) {
+
NimBLEClient *pClient = NimBLEDevice::createClient();
+
+
if(pClient->connect(&device)) {
+
//success
+
} else {
+
// failed to connect
+
}
+
}
+
}
+

As shown, the call to NimBLEClient::connect should have it's eturn 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
+ a pointer to an instance of NimBLERemoteCharacteristic or nullptr if not found.
+

+

Finally we will read the characteristic value with NimBLERemoteCharacteristic::readValue().
+

+

Here is what that looks like:

NimBLEUUID serviceUuid("ABCD");
+
+
for(int i = 0; i < results.getCount(); i++) {
+
NimBLEAdvertisedDevice device = results.getDevice(i);
+
+
if (device.isAdvertisingService(serviceUuid)) {
+
NimBLEClient *pClient = NimBLEDevice::createClient();
+
+
if (pClient->connect(&device)) {
+
NimBLERemoteService *pService = pClient->getService(serviceUuid);
+
+
if (pService != nullptr) {
+
NimBLERemoteCharacteristic *pCharacteristic = pService->getCharacteristic("1234");
+
+
if (pCharacteristic != nullptr) {
+
std::string value = pCharacteristic->readValue();
+
// print or do whatever you need with the value
+
}
+
}
+
} else {
+
// failed to connect
+
}
+
}
+
}
+


+

+

The last thing we should do is clean up once we are done with the connection.
+ Because multiple clients are supported and can be created we should delete them when finished with them to conserve resources.
+ This is done by calling NimBLEDevice::deleteClient.

+

Lets add that now:

NimBLEUUID serviceUuid("ABCD");
+
+
for(int i = 0; i < results.getCount(); i++) {
+
NimBLEAdvertisedDevice device = results.getDevice(i);
+
+
if (device.isAdvertisingService(serviceUuid)) {
+
NimBLEClient *pClient = NimBLEDevice::createClient();
+
+
if (pClient->connect(&device)) {
+
NimBLERemoteService *pService = pClient->getService(serviceUuid);
+
+
if (pService != nullptr) {
+
NimBLERemoteCharacteristic *pCharacteristic = pService->getCharacteristic("1234");
+
+
if (pCharacteristic != nullptr) {
+
std::string value = pCharacteristic->readValue();
+
// print or do whatever you need with the value
+
}
+
}
+
} else {
+
// failed to connect
+
}
+
+
NimBLEDevice::deleteClient(pClient);
+
}
+
}
+

Note that there is no need to disconnect as that will be done when deleting the client instance.
+
+

+

Here is the full example code:
+

#include "NimBLEDevice.h"
+
+
// void setup() in Arduino
+
void app_main(void)
+
{
+
NimBLEDevice::init("");
+
+
NimBLEScan *pScan = NimBLEDevice::getScan();
+
NimBLEScanResults results = pScan->start(10);
+
+
NimBLEUUID serviceUuid("ABCD");
+
+
for(int i = 0; i < results.getCount(); i++) {
+
NimBLEAdvertisedDevice device = results.getDevice(i);
+
+
if (device.isAdvertisingService(serviceUuid)) {
+
NimBLEClient *pClient = NimBLEDevice::createClient();
+
+
if (pClient->connect(&device)) {
+
NimBLERemoteService *pService = pClient->getService(serviceUuid);
+
+
if (pService != nullptr) {
+
NimBLERemoteCharacteristic *pCharacteristic = pService->getCharacteristic("1234");
+
+
if (pCharacteristic != nullptr) {
+
std::string value = pCharacteristic->readValue();
+
// print or do whatever you need with the value
+
}
+
}
+
} else {
+
// failed to connect
+
}
+
+
NimBLEDevice::deleteClient(pClient);
+
}
+
}
+
}
+


+

+

For more advanced features and options please see the client examples in the examples folder.
+
+

+
+
+
+ + + + diff --git a/md_docs__usage_tips.html b/md_docs__usage_tips.html new file mode 100644 index 0000000..57e10ca --- /dev/null +++ b/md_docs__usage_tips.html @@ -0,0 +1,141 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Usage Tips + + + + + + + + + + + + + +
+
+ + + + + + +
+
esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Usage Tips
+
+
+

+Put BLE functions in a task running on the NimBLE stack core

+

When commands are sent to the stack from a differnt 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.
+
+

+

+Do not delete client instances unless necessary or unused

+

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

+

It is recommended to retain the client instance in cases where the time between connecting to the same device is less than 5 minutes.
+
+
+

+

+Only retrieve the services and characteriscs needed

+

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

+

+Check return values

+

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

+

+There will be bugs - please report them

+

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

+

Bug reports can be made at https://github.com/h2zero/NimBLE-Arduino/issues or https://github.com/h2zero/esp-nimble-cpp/issues.
+ Questions and suggestions will be happily accepted there as well.

+
+
+
+ + + + diff --git a/menu.js b/menu.js new file mode 100644 index 0000000..2fe2214 --- /dev/null +++ b/menu.js @@ -0,0 +1,51 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 0000000..0f81b86 --- /dev/null +++ b/menudata.js @@ -0,0 +1,78 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{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:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{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:"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"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Enumerations",url:"functions_enum.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/nav_f.png differ diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/nav_g.png differ diff --git a/nav_h.png b/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/nav_h.png differ diff --git a/navtree.css b/navtree.css new file mode 100644 index 0000000..33341a6 --- /dev/null +++ b/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 0000000..1e272d3 --- /dev/null +++ b/navtree.js @@ -0,0 +1,546 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/nimconfig.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    nimconfig.h File Reference
    +
    +
    + +

    Go to the source code of this file.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    +#define CONFIG_BT_NIMBLE_MAX_CONNECTIONS   3
     Un-comment to change the number of simultaneous connections (esp controller max is 9)
     
    +#define CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU   255
     Un-comment to change the default MTU size.
     
    +#define CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME   "nimble"
     Un-comment to change default device name.
     
    +#define CONFIG_BT_NIMBLE_DEBUG
     Un-comment to see debug log messages from the NimBLE host Uses approx. 32kB of flash memory.
     
    +#define CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT
     Un-comment to see NimBLE host return codes as text debug log messages. Uses approx. 7kB of flash memory.
     
    +#define CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT
     Un-comment to see GAP event codes as text in debug log messages. Uses approx. 1kB of flash memory.
     
    +#define CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT
     Un-comment to see advertisment types as text while scanning in debug log messages. Uses approx. 250 bytes of flash memory.
     
    +#define CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE   0x0
     Un-comment to change the default GAP appearance.
     
    +#define CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED
     Un-comment if not using NimBLE Client functions
    +Reduces flash size by approx. 7kB.
     
    +#define CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED
     Un-comment if not using NimBLE Scan functions
    +Reduces flash size by approx. 26kB.
     
    +#define CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED
     Un-comment if not using NimBLE Server functions
    +Reduces flash size by approx. 16kB.
     
    +#define CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED
     Un-comment if not using NimBLE Advertising functions
    +Reduces flash size by approx. 5kB.
     
    +#define CONFIG_BT_NIMBLE_MAX_BONDS   3
     Un-comment to change the number of devices allowed to store/bond with.
     
    +#define CONFIG_BT_NIMBLE_MAX_CCCDS   8
     Un-comment to change the maximum number of CCCD subscriptions to store.
     
    +#define CONFIG_BT_NIMBLE_RPA_TIMEOUT   900
     Un-comment to change the random address refresh time (in seconds)
     
    #define CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT   12
     Un-comment to change the number of MSYS buffers available. More...
     
    +#define CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL   1
     Un-comment to use external PSRAM for the NimBLE host.
     
    +#define CONFIG_BT_NIMBLE_PINNED_TO_CORE   0
     Un-comment to change the core NimBLE host runs on.
     
    +#define CONFIG_BT_NIMBLE_TASK_STACK_SIZE   4096
     Un-comment to change the stack size for the NimBLE host task.
     
    +

    Detailed Description

    +

    IGNORE THIS FILE IF USING ESP-IDF, USE MENUCONFIG TO SET NIMBLE OPTIONS.

    +

    The config options here are for doxygen documentation only.

    +

    Macro Definition Documentation

    + +

    ◆ CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT

    + +
    +
    + + + + +
    #define CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT   12
    +
    + +

    Un-comment to change the number of MSYS buffers available.

    +

    MSYS is a system level mbuf registry. For prepare write & prepare
    +responses MBUFs are allocated out of msys_1 pool. 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.

    + +
    +
    +
    +
    + + + + diff --git a/nimconfig_8h.js b/nimconfig_8h.js new file mode 100644 index 0000000..dea1877 --- /dev/null +++ b/nimconfig_8h.js @@ -0,0 +1,22 @@ +var nimconfig_8h = +[ + [ "CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU", "nimconfig_8h.html#a8fa28ebea6e979630359a2acde3ae578", null ], + [ "CONFIG_BT_NIMBLE_DEBUG", "nimconfig_8h.html#aeebbc5c476d2a6de28f2d9ebf2948cb5", null ], + [ "CONFIG_BT_NIMBLE_MAX_BONDS", "nimconfig_8h.html#a11ebe4c94e55f9e710be03169b91f964", null ], + [ "CONFIG_BT_NIMBLE_MAX_CCCDS", "nimconfig_8h.html#abdc3219ca772a22427beed33477ea252", null ], + [ "CONFIG_BT_NIMBLE_MAX_CONNECTIONS", "nimconfig_8h.html#a2ea633774bbf41ac57b314875f16d5f9", null ], + [ "CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL", "nimconfig_8h.html#a1f39f56a0fe8a36ef7823a7c3e1c6e3b", null ], + [ "CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT", "nimconfig_8h.html#a2f0eb3c3124a34b191a70908dc5af441", null ], + [ "CONFIG_BT_NIMBLE_PINNED_TO_CORE", "nimconfig_8h.html#ab86912bde65d198f2f7aa7f83ef11ee8", null ], + [ "CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED", "nimconfig_8h.html#a2a6b4f35f8975778ac2aac5ff169cbda", null ], + [ "CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED", "nimconfig_8h.html#a6ebb331a6664a3863fb2a57b91a6cd2d", null ], + [ "CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED", "nimconfig_8h.html#ab91646223e52e5c24f1004a0ed21b829", null ], + [ "CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED", "nimconfig_8h.html#a677d7e75eef5bc96e8d0b4c659db90b0", null ], + [ "CONFIG_BT_NIMBLE_RPA_TIMEOUT", "nimconfig_8h.html#a9d22f9f555a2180787ccec86aa10dc24", null ], + [ "CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE", "nimconfig_8h.html#a300d3f8ff48d217a1a2b6608454dfadb", null ], + [ "CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME", "nimconfig_8h.html#a7b98160e6904e45e99e28a7fcc6b2a3a", null ], + [ "CONFIG_BT_NIMBLE_TASK_STACK_SIZE", "nimconfig_8h.html#a227a536958a284235daf409b2b3d1766", null ], + [ "CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT", "nimconfig_8h.html#a07c0fd3908c3466e9f4835f85d913880", null ], + [ "CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT", "nimconfig_8h.html#a97b51f4248845f6225806eadbab3bcdb", null ], + [ "CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT", "nimconfig_8h.html#a136a5d626ac04aa780c6ec07ee88d242", null ] +]; \ No newline at end of file diff --git a/nimconfig_8h_source.html b/nimconfig_8h_source.html new file mode 100644 index 0000000..9eae464 --- /dev/null +++ b/nimconfig_8h_source.html @@ -0,0 +1,146 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/nimconfig.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    nimconfig.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    8 #pragma once
    +
    9 
    +
    10 #include "sdkconfig.h"
    +
    11 #include "nimconfig_rename.h"
    +
    12 
    +
    13 #ifdef _DOXYGEN_
    +
    14 
    +
    16 #define CONFIG_BT_NIMBLE_MAX_CONNECTIONS 3
    +
    17 
    +
    19 #define CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU 255
    +
    20 
    +
    22 #define CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME "nimble"
    +
    23 
    +
    27 #define CONFIG_BT_NIMBLE_DEBUG
    +
    28 
    +
    32 #define CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT
    +
    33 
    +
    37 #define CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT
    +
    38 
    +
    42 #define CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT
    +
    43 
    +
    45 #define CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE 0x0
    +
    46 
    +
    50 #define CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED
    +
    51 
    +
    55 #define CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED
    +
    56 
    +
    60 #define CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED
    +
    61 
    +
    65 #define CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED
    +
    66 
    +
    68 #define CONFIG_BT_NIMBLE_MAX_BONDS 3
    +
    69 
    +
    71 #define CONFIG_BT_NIMBLE_MAX_CCCDS 8
    +
    72 
    +
    74 #define CONFIG_BT_NIMBLE_RPA_TIMEOUT 900
    +
    75 
    +
    82 #define CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT 12
    +
    83 
    +
    85 #define CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL 1
    +
    86 
    +
    88 #define CONFIG_BT_NIMBLE_PINNED_TO_CORE 0
    +
    89 
    +
    91 #define CONFIG_BT_NIMBLE_TASK_STACK_SIZE 4096
    +
    92 
    +
    93 #endif // _DOXYGEN_
    +
    +
    + + + + diff --git a/nimconfig__rename_8h_source.html b/nimconfig__rename_8h_source.html new file mode 100644 index 0000000..da52c98 --- /dev/null +++ b/nimconfig__rename_8h_source.html @@ -0,0 +1,160 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: src/nimconfig_rename.h Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    nimconfig_rename.h
    +
    +
    +
    1 /*
    +
    2  * For ESP-IDF compatibility
    +
    3  * Some versions of ESP-IDF used the config name format "CONFIG_NIMBLE_".
    +
    4  * This converts them to "CONFIG_BT_NIMBLE_" format used in the latest IDF.
    +
    5  */
    +
    6 
    +
    7 #if defined(CONFIG_NIMBLE_ENABLED) && !defined(CONFIG_BT_NIMBLE_ENABLED)
    +
    8 #define CONFIG_BT_NIMBLE_ENABLED
    +
    9 #endif
    +
    10 
    +
    11 #if defined(CONFIG_NIMBLE_ROLE_OBSERVER) && !defined(CONFIG_BT_NIMBLE_ROLE_OBSERVER)
    +
    12 #define CONFIG_BT_NIMBLE_ROLE_OBSERVER
    +
    13 #endif
    +
    14 
    +
    15 #if defined(CONFIG_NIMBLE_ROLE_BROADCASTER) && !defined(CONFIG_BT_NIMBLE_ROLE_BROADCASTER)
    +
    16 #define CONFIG_BT_NIMBLE_ROLE_BROADCASTER
    +
    17 #endif
    +
    18 
    +
    19 #if defined(CONFIG_NIMBLE_ROLE_CENTRAL) && !defined(CONFIG_BT_NIMBLE_ROLE_CENTRAL)
    +
    20 #define CONFIG_BT_NIMBLE_ROLE_CENTRAL
    +
    21 #endif
    +
    22 
    +
    23 #if defined(CONFIG_NIMBLE_ROLE_PERIPHERAL) && !defined(CONFIG_BT_NIMBLE_ROLE_PERIPHERAL)
    +
    24 #define CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
    +
    25 #endif
    +
    26 
    +
    27 #if defined(CONFIG_NIMBLE_DEBUG) && !defined(CONFIG_BT_NIMBLE_DEBUG)
    +
    28 #define CONFIG_BT_NIMBLE_DEBUG
    +
    29 #endif
    +
    30 
    +
    31 #if defined(CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR) && !defined(CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE)
    +
    32 #define CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR
    +
    33 #endif
    +
    34 
    +
    35 #if defined(CONFIG_SCAN_DUPLICATE_BY_ADV_DATA ) && !defined(CONFIG_BTDM_SCAN_DUPL_TYPE_DATA)
    +
    36 #define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA CONFIG_SCAN_DUPLICATE_BY_ADV_DATA
    +
    37 #endif
    +
    38 
    +
    39 #if defined(CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR) && !defined(CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE)
    +
    40 #define CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR
    +
    41 #endif
    +
    42 
    +
    43 #if defined(CONFIG_SCAN_DUPLICATE_TYPE) && !defined(CONFIG_BTDM_SCAN_DUPL_TYPE)
    +
    44 #define CONFIG_BTDM_SCAN_DUPL_TYPE CONFIG_SCAN_DUPLICATE_TYPE
    +
    45 #endif
    +
    46 
    +
    47 #if defined(CONFIG_BT_CTRL_SCAN_DUPL_TYPE) && !defined(CONFIG_BTDM_SCAN_DUPL_TYPE)
    +
    48 #define CONFIG_BTDM_SCAN_DUPL_TYPE CONFIG_BT_CTRL_SCAN_DUPL_TYPE
    +
    49 #endif
    +
    50 
    +
    51 #if defined(CONFIG_DUPLICATE_SCAN_CACHE_SIZE) && !defined(CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE)
    +
    52 #define CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE CONFIG_DUPLICATE_SCAN_CACHE_SIZE
    +
    53 #endif
    +
    54 
    +
    55 #if defined(CONFIG_BT_CTRL_SCAN_DUPL_CACHE_SIZE) && !defined(CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE)
    +
    56 #define CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE CONFIG_BT_CTRL_SCAN_DUPL_CACHE_SIZE
    +
    57 #endif
    +
    58 
    +
    59 #if defined(CONFIG_NIMBLE_MAX_CONNECTIONS ) && !defined(CONFIG_BT_NIMBLE_MAX_CONNECTIONS)
    +
    60 #define CONFIG_BT_NIMBLE_MAX_CONNECTIONS CONFIG_NIMBLE_MAX_CONNECTIONS
    +
    61 #endif
    +
    +
    + + + + diff --git a/open.png b/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/open.png differ diff --git a/pages.html b/pages.html new file mode 100644 index 0000000..c67ed7f --- /dev/null +++ b/pages.html @@ -0,0 +1,110 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Related Pages + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    + +
    + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 0000000..e1ad0fe --- /dev/null +++ b/resize.js @@ -0,0 +1,140 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 0000000..a202f1e --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..6203bf8 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['addcharacteristic_0',['addCharacteristic',['../class_nim_b_l_e_service.html#af8215dbfdaf7ced32d6158f8ff5116e8',1,'NimBLEService']]], + ['adddata_1',['addData',['../class_nim_b_l_e_advertisement_data.html#aec5f567059c4b4fd0f6b5fc74a0ce870',1,'NimBLEAdvertisementData::addData(const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a2328f7df89a11d58818e98a6c889c8d4',1,'NimBLEAdvertisementData::addData(char *data, size_t length)']]], + ['adddescriptor_2',['addDescriptor',['../class_nim_b_l_e_characteristic.html#aed4b2241c89ad2a8f49117e2b9433e5b',1,'NimBLECharacteristic']]], + ['addignored_3',['addIgnored',['../class_nim_b_l_e_device.html#a732425c5c5f5b5b4730c1689700346c0',1,'NimBLEDevice']]], + ['addservice_4',['addService',['../class_nim_b_l_e_server.html#a6eda4c9e0ac1dd031c678d4bf7da1d56',1,'NimBLEServer']]], + ['addserviceuuid_5',['addServiceUUID',['../class_nim_b_l_e_advertising.html#a4f334752ea04223185292fe9ab524b69',1,'NimBLEAdvertising::addServiceUUID(const NimBLEUUID &serviceUUID)'],['../class_nim_b_l_e_advertising.html#a5e596e8dfa9268554a5b189380405d5c',1,'NimBLEAdvertising::addServiceUUID(const char *serviceUUID)']]], + ['addtxpower_6',['addTxPower',['../class_nim_b_l_e_advertisement_data.html#a480ffc91f212e877ae31ab47190006c3',1,'NimBLEAdvertisementData::addTxPower()'],['../class_nim_b_l_e_advertising.html#ac4ff0af45d1f7ed5bc208612852bc43a',1,'NimBLEAdvertising::addTxPower()']]], + ['advcompletecb_7',['advCompleteCB',['../class_nim_b_l_e_advertising.html#a4de7bf016a086a2d3f6f14ae134678f2',1,'NimBLEAdvertising']]], + ['advertiseondisconnect_8',['advertiseOnDisconnect',['../class_nim_b_l_e_server.html#a6bfd923ecd0ea06d5564343ab7209122',1,'NimBLEServer']]], + ['advtypetostring_9',['advTypeToString',['../class_nim_b_l_e_utils.html#a6de9354eeba9f126aa14cfa7ed43cda4',1,'NimBLEUtils']]], + ['arduino_20command_20line_20and_20platformio_20config_20options_10',['Arduino command line and platformio config options',['../md_docs__command_line_config.html',1,'']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 0000000..3c4e32f --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..a4f6348 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['batteryservice_11',['batteryService',['../class_nim_b_l_e_h_i_d_device.html#a24498f7b714574ab4a90288f7e4d58b7',1,'NimBLEHIDDevice']]], + ['begin_12',['begin',['../class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5',1,'NimBLEClient::begin()'],['../class_nim_b_l_e_remote_characteristic.html#a78ac88ca25d71dfe31b95898b79b0442',1,'NimBLERemoteCharacteristic::begin()'],['../class_nim_b_l_e_remote_service.html#a49bb3134b570db877fac67e6ed077aa2',1,'NimBLERemoteService::begin()'],['../class_nim_b_l_e_scan_results.html#ad426f221e8c18c0c3f5784786710e8f0',1,'NimBLEScanResults::begin()']]], + ['bitsize_13',['bitSize',['../class_nim_b_l_e_u_u_i_d.html#aefc88e493b63ccd6dc86227dc92af0c6',1,'NimBLEUUID']]], + ['bootinput_14',['bootInput',['../class_nim_b_l_e_h_i_d_device.html#a45ca7d4547dfea9a64987065d83653bd',1,'NimBLEHIDDevice']]], + ['bootoutput_15',['bootOutput',['../class_nim_b_l_e_h_i_d_device.html#ace0141db690f1afec1b266f9ac9aa0f0',1,'NimBLEHIDDevice']]], + ['buildhexdata_16',['buildHexData',['../class_nim_b_l_e_utils.html#a6382edb7e8e4030b4fc65d463fa2a886',1,'NimBLEUtils']]] +]; diff --git a/search/all_10.html b/search/all_10.html new file mode 100644 index 0000000..bf7e20b --- /dev/null +++ b/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 0000000..0c6e5f3 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['usage_20tips_355',['Usage Tips',['../md_docs__usage_tips.html',1,'']]], + ['unsubscribe_356',['unsubscribe',['../class_nim_b_l_e_remote_characteristic.html#a6e331afdbdbc32bf461c9866236a97aa',1,'NimBLERemoteCharacteristic']]], + ['updateconnparams_357',['updateConnParams',['../class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526',1,'NimBLEClient::updateConnParams()'],['../class_nim_b_l_e_server.html#a9b08738766de90d7065263761314030a',1,'NimBLEServer::updateConnParams()']]] +]; diff --git a/search/all_11.html b/search/all_11.html new file mode 100644 index 0000000..4a270ff --- /dev/null +++ b/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 0000000..f5f0cde --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['whitelistadd_358',['whiteListAdd',['../class_nim_b_l_e_device.html#aabc68166b6dd4a744a98f94e569f37db',1,'NimBLEDevice']]], + ['whitelistremove_359',['whiteListRemove',['../class_nim_b_l_e_device.html#a81abbad5e371fe1cdd91c002b42cc654',1,'NimBLEDevice']]], + ['writevalue_360',['writeValue',['../class_nim_b_l_e_remote_characteristic.html#a3c8d1fd77dd074df866c091c614eafb3',1,'NimBLERemoteCharacteristic::writeValue(const uint8_t *data, size_t length, bool response=false)'],['../class_nim_b_l_e_remote_characteristic.html#a2cfc2e8d2e281dd61e578eb5e860fc02',1,'NimBLERemoteCharacteristic::writeValue(const std::string &newValue, bool response=false)'],['../class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae',1,'NimBLERemoteCharacteristic::writeValue(const T &s, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a0d3fb6424b2c86730e1a292281cd836e',1,'NimBLERemoteDescriptor::writeValue(const uint8_t *data, size_t length, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a30bc16403ed53d3b4417c0a01cc4a40f',1,'NimBLERemoteDescriptor::writeValue(const std::string &newValue, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c',1,'NimBLERemoteDescriptor::writeValue(const T &s, bool response=false)']]] +]; diff --git a/search/all_12.html b/search/all_12.html new file mode 100644 index 0000000..ade0004 --- /dev/null +++ b/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 0000000..c2af401 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7enimblecharacteristic_361',['~NimBLECharacteristic',['../class_nim_b_l_e_characteristic.html#a7fe29c5ec571d0513c51b8cbac942f4a',1,'NimBLECharacteristic']]], + ['_7enimbledescriptor_362',['~NimBLEDescriptor',['../class_nim_b_l_e_descriptor.html#ad110851335bc7b225f5bea9ac11bedcc',1,'NimBLEDescriptor']]], + ['_7enimbleremotecharacteristic_363',['~NimBLERemoteCharacteristic',['../class_nim_b_l_e_remote_characteristic.html#a855d591de111b09013ae83c4043d06ed',1,'NimBLERemoteCharacteristic']]], + ['_7enimbleremoteservice_364',['~NimBLERemoteService',['../class_nim_b_l_e_remote_service.html#a2803aa5cdfdb622ae8fe255dc939cb1d',1,'NimBLERemoteService']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 0000000..b3f9d66 --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..2d7d8a3 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['canbroadcast_17',['canBroadcast',['../class_nim_b_l_e_remote_characteristic.html#a7163009a9f0ff718b5856d19cb4a3568',1,'NimBLERemoteCharacteristic']]], + ['canindicate_18',['canIndicate',['../class_nim_b_l_e_remote_characteristic.html#a53322384b295a2548b3399e2c63d76f4',1,'NimBLERemoteCharacteristic']]], + ['cannotify_19',['canNotify',['../class_nim_b_l_e_remote_characteristic.html#a9c41acdbf23dc036f321d4f0a66d40d1',1,'NimBLERemoteCharacteristic']]], + ['canread_20',['canRead',['../class_nim_b_l_e_remote_characteristic.html#a0eb6655635394268a76c68e845d14135',1,'NimBLERemoteCharacteristic']]], + ['canwrite_21',['canWrite',['../class_nim_b_l_e_remote_characteristic.html#aae71c20d300ead52770e66fb8a1a47ea',1,'NimBLERemoteCharacteristic']]], + ['canwritenoresponse_22',['canWriteNoResponse',['../class_nim_b_l_e_remote_characteristic.html#a2614c7f437b52f385fc4fd29abe358eb',1,'NimBLERemoteCharacteristic']]], + ['checkconnparams_23',['checkConnParams',['../class_nim_b_l_e_utils.html#ae521f9a6363c03e42da2f76f64ea431e',1,'NimBLEUtils']]], + ['clearduplicatecache_24',['clearDuplicateCache',['../class_nim_b_l_e_scan.html#a6a97fd1c7f16fccd7f19994592b6dfe6',1,'NimBLEScan']]], + ['clearresults_25',['clearResults',['../class_nim_b_l_e_scan.html#ad421a09eeb021755b193a7a5e01f183b',1,'NimBLEScan']]], + ['config_5fbt_5fnimble_5fatt_5fpreferred_5fmtu_26',['CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU',['../nimconfig_8h.html#a8fa28ebea6e979630359a2acde3ae578',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fdebug_27',['CONFIG_BT_NIMBLE_DEBUG',['../nimconfig_8h.html#aeebbc5c476d2a6de28f2d9ebf2948cb5',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fbonds_28',['CONFIG_BT_NIMBLE_MAX_BONDS',['../nimconfig_8h.html#a11ebe4c94e55f9e710be03169b91f964',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fcccds_29',['CONFIG_BT_NIMBLE_MAX_CCCDS',['../nimconfig_8h.html#abdc3219ca772a22427beed33477ea252',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fconnections_30',['CONFIG_BT_NIMBLE_MAX_CONNECTIONS',['../nimconfig_8h.html#a2ea633774bbf41ac57b314875f16d5f9',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmem_5falloc_5fmode_5fexternal_31',['CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL',['../nimconfig_8h.html#a1f39f56a0fe8a36ef7823a7c3e1c6e3b',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmsys1_5fblock_5fcount_32',['CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT',['../nimconfig_8h.html#a2f0eb3c3124a34b191a70908dc5af441',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fpinned_5fto_5fcore_33',['CONFIG_BT_NIMBLE_PINNED_TO_CORE',['../nimconfig_8h.html#ab86912bde65d198f2f7aa7f83ef11ee8',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fbroadcaster_5fdisabled_34',['CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED',['../nimconfig_8h.html#a2a6b4f35f8975778ac2aac5ff169cbda',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fcentral_5fdisabled_35',['CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED',['../nimconfig_8h.html#a6ebb331a6664a3863fb2a57b91a6cd2d',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fobserver_5fdisabled_36',['CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED',['../nimconfig_8h.html#ab91646223e52e5c24f1004a0ed21b829',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fperipheral_5fdisabled_37',['CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED',['../nimconfig_8h.html#a677d7e75eef5bc96e8d0b4c659db90b0',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frpa_5ftimeout_38',['CONFIG_BT_NIMBLE_RPA_TIMEOUT',['../nimconfig_8h.html#a9d22f9f555a2180787ccec86aa10dc24',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fsvc_5fgap_5fappearance_39',['CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE',['../nimconfig_8h.html#a300d3f8ff48d217a1a2b6608454dfadb',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fsvc_5fgap_5fdevice_5fname_40',['CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME',['../nimconfig_8h.html#a7b98160e6904e45e99e28a7fcc6b2a3a',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5ftask_5fstack_5fsize_41',['CONFIG_BT_NIMBLE_TASK_STACK_SIZE',['../nimconfig_8h.html#a227a536958a284235daf409b2b3d1766',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5fadvertisment_5ftype_5ftext_42',['CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT',['../nimconfig_8h.html#a07c0fd3908c3466e9f4835f85d913880',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5fgap_5fevent_5fcode_5ftext_43',['CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT',['../nimconfig_8h.html#a97b51f4248845f6225806eadbab3bcdb',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5freturn_5fcode_5ftext_44',['CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT',['../nimconfig_8h.html#a136a5d626ac04aa780c6ec07ee88d242',1,'nimconfig.h']]], + ['connect_45',['connect',['../class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a',1,'NimBLEClient::connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)'],['../class_nim_b_l_e_client.html#a9188741bf29d58d5ff1352383c959b7b',1,'NimBLEClient::connect(const NimBLEAddress &address, bool deleteAttibutes=true)'],['../class_nim_b_l_e_client.html#a836438fc9d5c2001207249661ad10e01',1,'NimBLEClient::connect(bool deleteAttibutes=true)']]], + ['createcharacteristic_46',['createCharacteristic',['../class_nim_b_l_e_service.html#adab5552c080b9cb88095af262d326309',1,'NimBLEService::createCharacteristic(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)'],['../class_nim_b_l_e_service.html#a80fe6bca60d0db69ea3ae689a3947c19',1,'NimBLEService::createCharacteristic(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)']]], + ['createclient_47',['createClient',['../class_nim_b_l_e_device.html#af8142995252f486916dbb9de2a5b0c9e',1,'NimBLEDevice']]], + ['createdescriptor_48',['createDescriptor',['../class_nim_b_l_e_characteristic.html#aae014669e9ce1ad01520d68fe0cc0fda',1,'NimBLECharacteristic::createDescriptor(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)'],['../class_nim_b_l_e_characteristic.html#a6523266a751a778a2c04fea19fed4de5',1,'NimBLECharacteristic::createDescriptor(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)']]], + ['createserver_49',['createServer',['../class_nim_b_l_e_device.html#a4d9780d0b5fafc279483822af802a508',1,'NimBLEDevice']]], + ['createservice_50',['createService',['../class_nim_b_l_e_server.html#aaeb58b4de85754d1aac6964e9248aa35',1,'NimBLEServer::createService(const char *uuid)'],['../class_nim_b_l_e_server.html#addc0753b57de87e172cc2d5f158bd6c6',1,'NimBLEServer::createService(const NimBLEUUID &uuid, uint32_t numHandles=15, uint8_t inst_id=0)']]], + ['changelog_51',['Changelog',['../md__c_h_a_n_g_e_l_o_g.html',1,'']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 0000000..8520455 --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..e20721e --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['deinit_52',['deinit',['../class_nim_b_l_e_device.html#ae95693ce0f5b8e784ea8e10834dd624c',1,'NimBLEDevice']]], + ['deleteallbonds_53',['deleteAllBonds',['../class_nim_b_l_e_device.html#ab436502ecd044f8b3480ec3e824e1418',1,'NimBLEDevice']]], + ['deletebond_54',['deleteBond',['../class_nim_b_l_e_device.html#a20fc979ec9dbad5cce7f73e41b2e422e',1,'NimBLEDevice']]], + ['deletecharacteristic_55',['deleteCharacteristic',['../class_nim_b_l_e_remote_service.html#a15b3b750b073f334c3be680a99ce2e02',1,'NimBLERemoteService']]], + ['deletecharacteristics_56',['deleteCharacteristics',['../class_nim_b_l_e_remote_service.html#a221069047193f8d25f7112b44bbcb28f',1,'NimBLERemoteService']]], + ['deleteclient_57',['deleteClient',['../class_nim_b_l_e_device.html#a83aa0a3d9d57358d35082a442edf8549',1,'NimBLEDevice']]], + ['deletedescriptor_58',['deleteDescriptor',['../class_nim_b_l_e_remote_characteristic.html#aad0ba99cad9779b33ea7cd4e94349099',1,'NimBLERemoteCharacteristic']]], + ['deletedescriptors_59',['deleteDescriptors',['../class_nim_b_l_e_remote_characteristic.html#a5f0a51b4a7fb2244d236dcb96fcf5205',1,'NimBLERemoteCharacteristic']]], + ['deleteservice_60',['deleteService',['../class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb',1,'NimBLEClient']]], + ['deleteservices_61',['deleteServices',['../class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3',1,'NimBLEClient']]], + ['deprecated_20list_62',['Deprecated List',['../deprecated.html',1,'']]], + ['deviceinfo_63',['deviceInfo',['../class_nim_b_l_e_h_i_d_device.html#a033c4ad91f1bc165ac6a322b4dcc1699',1,'NimBLEHIDDevice']]], + ['disconnect_64',['disconnect',['../class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c',1,'NimBLEClient::disconnect()'],['../class_nim_b_l_e_server.html#a63c9dce5c4bbc1c6bc720b6c51bcf3e1',1,'NimBLEServer::disconnect()']]], + ['discoverattributes_65',['discoverAttributes',['../class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d',1,'NimBLEClient']]], + ['dump_66',['dump',['../class_nim_b_l_e_scan_results.html#a2bbead75105733d04796b69e10c56cd4',1,'NimBLEScanResults::dump()'],['../class_nim_b_l_e_service.html#a71488881933ae8adbf11c5986f9dfb75',1,'NimBLEService::dump()']]], + ['dumpgapevent_67',['dumpGapEvent',['../class_nim_b_l_e_utils.html#a27df310308e72c477a3fda7a65806e01',1,'NimBLEUtils']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 0000000..5ea7897 --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..b1809b4 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['end_68',['end',['../class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe',1,'NimBLEClient::end()'],['../class_nim_b_l_e_remote_characteristic.html#a333adea9c9f243774c6a2f13beabd873',1,'NimBLERemoteCharacteristic::end()'],['../class_nim_b_l_e_remote_service.html#a10fe635fe9a0661d26c33021faaec53b',1,'NimBLERemoteService::end()'],['../class_nim_b_l_e_scan_results.html#a44e183a7ce0c9fb587d11910ce5ef200',1,'NimBLEScanResults::end()']]], + ['equals_69',['equals',['../class_nim_b_l_e_address.html#a826fe8850cbc7d54f0696b8af4637169',1,'NimBLEAddress::equals()'],['../class_nim_b_l_e_u_u_i_d.html#a3d9763ff434905457ed69118e93a35fd',1,'NimBLEUUID::equals()']]], + ['erase_70',['erase',['../class_nim_b_l_e_scan.html#a566a9ef25b04e946ac23402bb760cda1',1,'NimBLEScan']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 0000000..ceba7e9 --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..90d6c4e --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['featurereport_71',['featureReport',['../class_nim_b_l_e_h_i_d_device.html#a468e599c7d75e691f8d34e1b24db8a38',1,'NimBLEHIDDevice']]], + ['fromstring_72',['fromString',['../class_nim_b_l_e_u_u_i_d.html#ae09acdc52e23a3a38c57aaf859c278c2',1,'NimBLEUUID']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 0000000..965e5ad --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..f6f3c29 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,98 @@ +var searchData= +[ + ['gapeventtostring_73',['gapEventToString',['../class_nim_b_l_e_utils.html#afb2df39418324f93a2477e314883ccae',1,'NimBLEUtils']]], + ['getaddress_74',['getAddress',['../class_nim_b_l_e_advertised_device.html#aa60721a7b5b44a3bb66980f003517579',1,'NimBLEAdvertisedDevice::getAddress()'],['../class_nim_b_l_e_conn_info.html#af17023ca06c3d1b9e142dcd5f8c54847',1,'NimBLEConnInfo::getAddress()'],['../class_nim_b_l_e_device.html#a77f9f343143d4f074ffb545dd14cbb2b',1,'NimBLEDevice::getAddress()']]], + ['getaddresstype_75',['getAddressType',['../class_nim_b_l_e_advertised_device.html#afc79cdc087c81b34643d70c8259eb9a3',1,'NimBLEAdvertisedDevice']]], + ['getadvertising_76',['getAdvertising',['../class_nim_b_l_e_device.html#aa994b01b2b5bb9f677f3cffb2f05d140',1,'NimBLEDevice::getAdvertising()'],['../class_nim_b_l_e_server.html#ab41d8bb9b334734f95a726f1e15200fc',1,'NimBLEServer::getAdvertising()']]], + ['getadvinterval_77',['getAdvInterval',['../class_nim_b_l_e_advertised_device.html#a9a7a36e9937e16ffab4f1543ea54073f',1,'NimBLEAdvertisedDevice']]], + ['getadvlength_78',['getAdvLength',['../class_nim_b_l_e_advertised_device.html#ae960e43434bf62ec83e9230d7bf7046c',1,'NimBLEAdvertisedDevice']]], + ['getadvtype_79',['getAdvType',['../class_nim_b_l_e_advertised_device.html#a9d07ee4c38de4170db24a5e01663ee6d',1,'NimBLEAdvertisedDevice']]], + ['getappearance_80',['getAppearance',['../class_nim_b_l_e_advertised_device.html#a228afa5e43421b4d96d9c08241718309',1,'NimBLEAdvertisedDevice']]], + ['getbondedaddress_81',['getBondedAddress',['../class_nim_b_l_e_device.html#ac7f090f4b1a2d593f38b20859e071f0c',1,'NimBLEDevice']]], + ['getcallbacks_82',['getCallbacks',['../class_nim_b_l_e_characteristic.html#a1747ac4889c7adbb93a2d88a10327a47',1,'NimBLECharacteristic']]], + ['getcharacteristic_83',['getCharacteristic',['../class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009',1,'NimBLEClient::getCharacteristic()'],['../class_nim_b_l_e_descriptor.html#a412b3735186d94e9ddcf37a06c2055e1',1,'NimBLEDescriptor::getCharacteristic()'],['../class_nim_b_l_e_remote_service.html#ab12d195a2239a3808d60457184f0c487',1,'NimBLERemoteService::getCharacteristic(const char *uuid)'],['../class_nim_b_l_e_remote_service.html#a7ff4fc7bfb77adc33003dd6eb8e16957',1,'NimBLERemoteService::getCharacteristic(const NimBLEUUID &uuid)'],['../class_nim_b_l_e_service.html#a305b680286096638a4239620ec2de567',1,'NimBLEService::getCharacteristic(const char *uuid, uint16_t instanceId=0)'],['../class_nim_b_l_e_service.html#adfc4e67f79aaabc8f2c6bdb5c6966609',1,'NimBLEService::getCharacteristic(const NimBLEUUID &uuid, uint16_t instanceId=0)']]], + ['getcharacteristicbyhandle_84',['getCharacteristicByHandle',['../class_nim_b_l_e_service.html#a35b56ab3ef7fffb2b299f95d3176d07e',1,'NimBLEService']]], + ['getcharacteristics_85',['getCharacteristics',['../class_nim_b_l_e_remote_service.html#a2c9e91c842598a6a9576c7b87af0863a',1,'NimBLERemoteService::getCharacteristics()'],['../class_nim_b_l_e_service.html#aa2cba47cb4c935e15c77707643e5e9a5',1,'NimBLEService::getCharacteristics()'],['../class_nim_b_l_e_service.html#a24cf868e9eec7b5ecdf1e88d257e91d9',1,'NimBLEService::getCharacteristics(const char *uuid)'],['../class_nim_b_l_e_service.html#a55724788b3bf4614995ea656bf8fe1bb',1,'NimBLEService::getCharacteristics(const NimBLEUUID &uuid)']]], + ['getclient_86',['getClient',['../class_nim_b_l_e_remote_service.html#a3d1e7db457a9f3774eaa5e641dcc716e',1,'NimBLERemoteService']]], + ['getclientbyid_87',['getClientByID',['../class_nim_b_l_e_device.html#ac7adcd510eef2b9546bcde9a253e56a9',1,'NimBLEDevice']]], + ['getclientbypeeraddress_88',['getClientByPeerAddress',['../class_nim_b_l_e_device.html#ac4dbadc7fc170993e41532f675786504',1,'NimBLEDevice']]], + ['getclientlist_89',['getClientList',['../class_nim_b_l_e_device.html#a1a6fb5e8f0e2cdc012ebae4fb4d12fd0',1,'NimBLEDevice']]], + ['getclientlistsize_90',['getClientListSize',['../class_nim_b_l_e_device.html#abe21dcac43493689a06bc6ddb91b6faf',1,'NimBLEDevice']]], + ['getconnectedcount_91',['getConnectedCount',['../class_nim_b_l_e_server.html#a98ea12f57c10c0477b0c1c5efab23ee5',1,'NimBLEServer']]], + ['getconnhandle_92',['getConnHandle',['../class_nim_b_l_e_conn_info.html#a77e212f3e236b05da0978ea482e3efb4',1,'NimBLEConnInfo']]], + ['getconnid_93',['getConnId',['../class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896',1,'NimBLEClient']]], + ['getconninfo_94',['getConnInfo',['../class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267',1,'NimBLEClient']]], + ['getconninterval_95',['getConnInterval',['../class_nim_b_l_e_conn_info.html#aa43374d84b7564f6d187fd0c637b1049',1,'NimBLEConnInfo']]], + ['getconnlatency_96',['getConnLatency',['../class_nim_b_l_e_conn_info.html#a10c6093ca2f92ea61b82815909106430',1,'NimBLEConnInfo']]], + ['getconntimeout_97',['getConnTimeout',['../class_nim_b_l_e_conn_info.html#a8e885d340f1ab4e477c69ed7ea99b082',1,'NimBLEConnInfo']]], + ['getcount_98',['getCount',['../class_nim_b_l_e_eddystone_t_l_m.html#a556a6b6a75693997390f3bacf6e5ca5e',1,'NimBLEEddystoneTLM::getCount()'],['../class_nim_b_l_e_scan_results.html#ae4796dd6ce1845c46f66bc1a36ad746a',1,'NimBLEScanResults::getCount()']]], + ['getdata_99',['getData',['../class_nim_b_l_e_beacon.html#ae2458f7db169b696e6368802d5ece0d9',1,'NimBLEBeacon::getData()'],['../class_nim_b_l_e_eddystone_t_l_m.html#ae146a8f066ef3fc6994070654ec5d7ea',1,'NimBLEEddystoneTLM::getData()'],['../class_nim_b_l_e_eddystone_u_r_l.html#ac32c7066ce1ee8d495a35ec870f0e7bf',1,'NimBLEEddystoneURL::getData()']]], + ['getdatalength_100',['getDataLength',['../class_nim_b_l_e_characteristic.html#a580ad0133fd82a673027c91cbb1c74fa',1,'NimBLECharacteristic']]], + ['getdecodedurl_101',['getDecodedURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a8b68cc96a84da85e20d8583ba375c2ff',1,'NimBLEEddystoneURL']]], + ['getdefhandle_102',['getDefHandle',['../class_nim_b_l_e_remote_characteristic.html#aebbcd36740e49d7e29eb5b21d6802380',1,'NimBLERemoteCharacteristic']]], + ['getdescriptor_103',['getDescriptor',['../class_nim_b_l_e_remote_characteristic.html#a6178e1c58361b957be3c48548c1c4366',1,'NimBLERemoteCharacteristic']]], + ['getdescriptorbyhandle_104',['getDescriptorByHandle',['../class_nim_b_l_e_characteristic.html#a062f52918f13c49a37ce8e58b9e7382a',1,'NimBLECharacteristic']]], + ['getdescriptorbyuuid_105',['getDescriptorByUUID',['../class_nim_b_l_e_characteristic.html#abc5f4819e4d2c0956857ddd7a1064189',1,'NimBLECharacteristic::getDescriptorByUUID(const char *uuid)'],['../class_nim_b_l_e_characteristic.html#ae310b081d2d7d2a52ab2ddc11d5dbd99',1,'NimBLECharacteristic::getDescriptorByUUID(const NimBLEUUID &uuid)']]], + ['getdescriptors_106',['getDescriptors',['../class_nim_b_l_e_remote_characteristic.html#acf11d225fe5a25327742349e9d6061f9',1,'NimBLERemoteCharacteristic']]], + ['getdevice_107',['getDevice',['../class_nim_b_l_e_scan_results.html#a68aa3ebffb1be785497f228c1d11e500',1,'NimBLEScanResults::getDevice(uint32_t i)'],['../class_nim_b_l_e_scan_results.html#ac2356f6c1b8384ebc061d4b7953a9374',1,'NimBLEScanResults::getDevice(const NimBLEAddress &address)']]], + ['getdisconnectedclient_108',['getDisconnectedClient',['../class_nim_b_l_e_device.html#a10aec48b56ef404f42ade96d6244b312',1,'NimBLEDevice']]], + ['gethandle_109',['getHandle',['../class_nim_b_l_e_characteristic.html#acc3ea122771cd447103adfce22537379',1,'NimBLECharacteristic::getHandle()'],['../class_nim_b_l_e_descriptor.html#a486af6799753dfa60b3faddfac2adbcd',1,'NimBLEDescriptor::getHandle()'],['../class_nim_b_l_e_remote_characteristic.html#ab46121a8f5000c40d521e7ee5d92bee6',1,'NimBLERemoteCharacteristic::getHandle()'],['../class_nim_b_l_e_remote_descriptor.html#ab8a774ebc69c0fb7ea17f926a82dba21',1,'NimBLERemoteDescriptor::getHandle()'],['../class_nim_b_l_e_service.html#a86d65ef61a77bdd660632b4041c2b640',1,'NimBLEService::getHandle()']]], + ['getidaddress_110',['getIdAddress',['../class_nim_b_l_e_conn_info.html#a7bc23f09eb7dd53be902cb67d2ba745a',1,'NimBLEConnInfo']]], + ['getinitialized_111',['getInitialized',['../class_nim_b_l_e_device.html#ad6eda512195c7cbe249a1edbb99510cd',1,'NimBLEDevice']]], + ['getlength_112',['getLength',['../class_nim_b_l_e_descriptor.html#a378346f59afb706d4c1d961227b98c5d',1,'NimBLEDescriptor']]], + ['getmajor_113',['getMajor',['../class_nim_b_l_e_beacon.html#aac32b7f86c73221152909528c8dbad3c',1,'NimBLEBeacon']]], + ['getmanufacturerdata_114',['getManufacturerData',['../class_nim_b_l_e_advertised_device.html#afa334006230601cc5c6429b18819a2e2',1,'NimBLEAdvertisedDevice::getManufacturerData()'],['../class_nim_b_l_e_advertised_device.html#ae9a586e46a555cf5fc817c9fe301b295',1,'NimBLEAdvertisedDevice::getManufacturerData(bool skipSizeCheck=false)']]], + ['getmanufacturerid_115',['getManufacturerId',['../class_nim_b_l_e_beacon.html#a8803d70e8c238ccb98edcf31af0ead40',1,'NimBLEBeacon']]], + ['getmaxinterval_116',['getMaxInterval',['../class_nim_b_l_e_advertised_device.html#a450eca96c605f199d2786a044612db17',1,'NimBLEAdvertisedDevice']]], + ['getmininterval_117',['getMinInterval',['../class_nim_b_l_e_advertised_device.html#a33fcdc3bf5107c157b10ad4519938c9f',1,'NimBLEAdvertisedDevice']]], + ['getminor_118',['getMinor',['../class_nim_b_l_e_beacon.html#a4bc9fd3a68b4b1772dc4d102573c6788',1,'NimBLEBeacon']]], + ['getmtu_119',['getMTU',['../class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a',1,'NimBLEClient::getMTU()'],['../class_nim_b_l_e_conn_info.html#a94796b6446ef40c0ae0d1f8af1ff9462',1,'NimBLEConnInfo::getMTU()'],['../class_nim_b_l_e_device.html#a5520cf3f544d571636eed162de394ec2',1,'NimBLEDevice::getMTU()']]], + ['getname_120',['getName',['../class_nim_b_l_e_advertised_device.html#ae6c6b48369d71a5998c1393c0d6a0179',1,'NimBLEAdvertisedDevice']]], + ['getnative_121',['getNative',['../class_nim_b_l_e_address.html#adef69a03a08303957d7e40eef07b4d80',1,'NimBLEAddress::getNative()'],['../class_nim_b_l_e_u_u_i_d.html#a62e8e924f971c62cc42760d8c7dd6f28',1,'NimBLEUUID::getNative()']]], + ['getnumbonds_122',['getNumBonds',['../class_nim_b_l_e_device.html#a7fe0f568c17130150660e6307851be48',1,'NimBLEDevice']]], + ['getpayload_123',['getPayload',['../class_nim_b_l_e_advertised_device.html#afacf7717a15b36af184cd957d397e384',1,'NimBLEAdvertisedDevice::getPayload()'],['../class_nim_b_l_e_advertisement_data.html#acbd638708c8b8b4663c09107bc38feb1',1,'NimBLEAdvertisementData::getPayload()']]], + ['getpayloadlength_124',['getPayloadLength',['../class_nim_b_l_e_advertised_device.html#ac7879f4aa0f2b069b1d3aff4809ae62c',1,'NimBLEAdvertisedDevice']]], + ['getpeeraddress_125',['getPeerAddress',['../class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb',1,'NimBLEClient']]], + ['getpeerdevices_126',['getPeerDevices',['../class_nim_b_l_e_server.html#ab95c428ddc94eb019a26d91e70f5974b',1,'NimBLEServer']]], + ['getpeeridinfo_127',['getPeerIDInfo',['../class_nim_b_l_e_server.html#ad241eb42e9775fb2f8aaa87c9fb9a76b',1,'NimBLEServer']]], + ['getpeerinfo_128',['getPeerInfo',['../class_nim_b_l_e_server.html#a347c74f4ad6e2bcc2e301da11ae13e91',1,'NimBLEServer::getPeerInfo(size_t index)'],['../class_nim_b_l_e_server.html#ad91fbcb2717aa1969329f365692e1072',1,'NimBLEServer::getPeerInfo(const NimBLEAddress &address)']]], + ['getpeermtu_129',['getPeerMTU',['../class_nim_b_l_e_server.html#a9eb1f32b72ac93736585d6d89f393021',1,'NimBLEServer']]], + ['getpower_130',['getPower',['../class_nim_b_l_e_device.html#a34b50f12dc40ed47bdbb2b5ce4387a8c',1,'NimBLEDevice::getPower()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a42583c740bbdb9591422e8770f8bd0d5',1,'NimBLEEddystoneURL::getPower()']]], + ['getproperties_131',['getProperties',['../class_nim_b_l_e_characteristic.html#a79759a98d9bdb761cb12c1ea6f601afc',1,'NimBLECharacteristic']]], + ['getproximityuuid_132',['getProximityUUID',['../class_nim_b_l_e_beacon.html#a999ade63059620d619609676d85186ad',1,'NimBLEBeacon']]], + ['getremotecharacteristic_133',['getRemoteCharacteristic',['../class_nim_b_l_e_remote_descriptor.html#a529e80c6731f68f3598e015df7618cfe',1,'NimBLERemoteDescriptor']]], + ['getremoteservice_134',['getRemoteService',['../class_nim_b_l_e_remote_characteristic.html#a943183a55b020de9e09ac2cfaebcde32',1,'NimBLERemoteCharacteristic']]], + ['getresults_135',['getResults',['../class_nim_b_l_e_scan.html#a2ae53719546e2d410c816e12c56aad61',1,'NimBLEScan']]], + ['getrssi_136',['getRSSI',['../class_nim_b_l_e_advertised_device.html#acd42dfbc92a43fc90e933df975c029f3',1,'NimBLEAdvertisedDevice::getRSSI()'],['../class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78',1,'NimBLEClient::getRssi()']]], + ['getscan_137',['getScan',['../class_nim_b_l_e_advertised_device.html#ad3931c72aaded3b594896c29b3691562',1,'NimBLEAdvertisedDevice::getScan()'],['../class_nim_b_l_e_device.html#af93d92316454b051125460056368baec',1,'NimBLEDevice::getScan()']]], + ['getseckeysize_138',['getSecKeySize',['../class_nim_b_l_e_conn_info.html#a278a8456f9d7df9cea7d776e61b36782',1,'NimBLEConnInfo']]], + ['getsecuritypasskey_139',['getSecurityPasskey',['../class_nim_b_l_e_device.html#aa03937eadda020643b536c5d08174d3a',1,'NimBLEDevice']]], + ['getserver_140',['getServer',['../class_nim_b_l_e_device.html#a41d4cc7c85cba0721c6649b001b31b4d',1,'NimBLEDevice::getServer()'],['../class_nim_b_l_e_service.html#af304386c4e067dd0eeb27b86c0e59d0f',1,'NimBLEService::getServer()']]], + ['getservice_141',['getService',['../class_nim_b_l_e_characteristic.html#a84aa251a612810ec8d07e77ab03cb483',1,'NimBLECharacteristic::getService()'],['../class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366',1,'NimBLEClient::getService(const char *uuid)'],['../class_nim_b_l_e_client.html#ad8ba10522d79af1136019606802f0978',1,'NimBLEClient::getService(const NimBLEUUID &uuid)']]], + ['getservicebyhandle_142',['getServiceByHandle',['../class_nim_b_l_e_server.html#a1ff39fc5235d1374d99b4f3d3acb5ddb',1,'NimBLEServer']]], + ['getservicebyuuid_143',['getServiceByUUID',['../class_nim_b_l_e_server.html#a87ebb3d230e98a6b3cf85bc403d227e0',1,'NimBLEServer::getServiceByUUID(const char *uuid, uint16_t instanceId=0)'],['../class_nim_b_l_e_server.html#ac28df6ead4d7151df3e84f4fa991eb1f',1,'NimBLEServer::getServiceByUUID(const NimBLEUUID &uuid, uint16_t instanceId=0)']]], + ['getservicedata_144',['getServiceData',['../class_nim_b_l_e_advertised_device.html#aecb3e30a94abd59401cafb70a5903abb',1,'NimBLEAdvertisedDevice::getServiceData(uint8_t index=0)'],['../class_nim_b_l_e_advertised_device.html#acf4398ca81f800445092ccc77deaf00b',1,'NimBLEAdvertisedDevice::getServiceData(const NimBLEUUID &uuid)'],['../class_nim_b_l_e_advertised_device.html#a9017ce5b59bdae3cebf33c54f28cee70',1,'NimBLEAdvertisedDevice::getServiceData(uint8_t index=0, bool skipSizeCheck=false)'],['../class_nim_b_l_e_advertised_device.html#a9ca1c022e10764ec72850ff3a011b009',1,'NimBLEAdvertisedDevice::getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false)']]], + ['getservicedatacount_145',['getServiceDataCount',['../class_nim_b_l_e_advertised_device.html#a5fc9be9de9209622259f8d28b01825df',1,'NimBLEAdvertisedDevice']]], + ['getservicedatauuid_146',['getServiceDataUUID',['../class_nim_b_l_e_advertised_device.html#a4f89e99dffdfde45c1cafff74a20a95f',1,'NimBLEAdvertisedDevice']]], + ['getservices_147',['getServices',['../class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a',1,'NimBLEClient']]], + ['getserviceuuid_148',['getServiceUUID',['../class_nim_b_l_e_advertised_device.html#ab53f862df15953d19ba7a45d4cf51b46',1,'NimBLEAdvertisedDevice']]], + ['getserviceuuidcount_149',['getServiceUUIDCount',['../class_nim_b_l_e_advertised_device.html#a6dc4484bc89ea5560a51c349b5300049',1,'NimBLEAdvertisedDevice']]], + ['getsignalpower_150',['getSignalPower',['../class_nim_b_l_e_beacon.html#a4eb27b3e447f8f0b44128f77933be668',1,'NimBLEBeacon']]], + ['getstringvalue_151',['getStringValue',['../class_nim_b_l_e_descriptor.html#a7153e051e5808469c23e2207fa6711db',1,'NimBLEDescriptor']]], + ['getsubscribedcount_152',['getSubscribedCount',['../class_nim_b_l_e_characteristic.html#aced225d46153b6969f6ded30c0190e39',1,'NimBLECharacteristic']]], + ['gettargetaddress_153',['getTargetAddress',['../class_nim_b_l_e_advertised_device.html#a599cad9a3f3d535049c87a911bc1b14d',1,'NimBLEAdvertisedDevice']]], + ['gettargetaddresscount_154',['getTargetAddressCount',['../class_nim_b_l_e_advertised_device.html#a9352a7760d9e4af0561d7923fcbe2535',1,'NimBLEAdvertisedDevice']]], + ['gettemp_155',['getTemp',['../class_nim_b_l_e_eddystone_t_l_m.html#abda56940f7d9f7ccef2629b75880dd5f',1,'NimBLEEddystoneTLM']]], + ['gettime_156',['getTime',['../class_nim_b_l_e_eddystone_t_l_m.html#ab1c4a13c2f57a6e0293810dd09be3db3',1,'NimBLEEddystoneTLM']]], + ['gettimestamp_157',['getTimestamp',['../class_nim_b_l_e_advertised_device.html#a1855415f3c60bc88d62e9206fe6ed75a',1,'NimBLEAdvertisedDevice']]], + ['gettxpower_158',['getTXPower',['../class_nim_b_l_e_advertised_device.html#afee346437447173eed1b9edf1de70f34',1,'NimBLEAdvertisedDevice']]], + ['gettype_159',['getType',['../class_nim_b_l_e_address.html#a18f8361ed20146cbc374a246d87015eb',1,'NimBLEAddress']]], + ['geturi_160',['getURI',['../class_nim_b_l_e_advertised_device.html#ad65f8040a142f8d6d0763d4876f0d22e',1,'NimBLEAdvertisedDevice']]], + ['geturl_161',['getURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a0109874399f3e70a72ee9f4a909710e1',1,'NimBLEEddystoneURL']]], + ['getuuid_162',['getUUID',['../class_nim_b_l_e_characteristic.html#a28b03617fe753133582ba4e58c60e52e',1,'NimBLECharacteristic::getUUID()'],['../class_nim_b_l_e_descriptor.html#abc5398a570edc197fbadad3f5b45e186',1,'NimBLEDescriptor::getUUID()'],['../class_nim_b_l_e_eddystone_t_l_m.html#aa511375f22952c0f5846a51e6c2511c5',1,'NimBLEEddystoneTLM::getUUID()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a1fde0fcf7d90f79e0eb718967518247a',1,'NimBLEEddystoneURL::getUUID()'],['../class_nim_b_l_e_remote_characteristic.html#ad62c63468995a24d736c4176c9607eeb',1,'NimBLERemoteCharacteristic::getUUID()'],['../class_nim_b_l_e_remote_descriptor.html#ace6b19cd3d9aa8226b4c17371616ad58',1,'NimBLERemoteDescriptor::getUUID()'],['../class_nim_b_l_e_remote_service.html#a565ed7d306645772d4e03ca65a07f7e5',1,'NimBLERemoteService::getUUID()'],['../class_nim_b_l_e_service.html#ab000b7d2b7dbb3978a5a8c1e17b1d649',1,'NimBLEService::getUUID()']]], + ['getvalue_163',['getValue',['../class_nim_b_l_e_characteristic.html#a37e908d114f6ad2b4bf19c7cc4db9c54',1,'NimBLECharacteristic::getValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_characteristic.html#a7d09c29b26362f6ddcaf51a9c9dc8be4',1,'NimBLECharacteristic::getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3',1,'NimBLEClient::getValue()'],['../class_nim_b_l_e_descriptor.html#ac54fd0830ceb64b91037b623dbc427b5',1,'NimBLEDescriptor::getValue()'],['../class_nim_b_l_e_remote_characteristic.html#add1a1daed14b5f3e729e284dbd369257',1,'NimBLERemoteCharacteristic::getValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_remote_characteristic.html#a74ad8484cbc88d8eb36d4684233c538b',1,'NimBLERemoteCharacteristic::getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_remote_service.html#a4a9b63b4e5cedb51a7748a88daeb518b',1,'NimBLERemoteService::getValue()']]], + ['getversion_164',['getVersion',['../class_nim_b_l_e_eddystone_t_l_m.html#ae9f17d2c1e4150775881babb73f0b10c',1,'NimBLEEddystoneTLM']]], + ['getvolt_165',['getVolt',['../class_nim_b_l_e_eddystone_t_l_m.html#af9862f983df6f48a96220e936d13d17b',1,'NimBLEEddystoneTLM']]], + ['getwhitelistaddress_166',['getWhiteListAddress',['../class_nim_b_l_e_device.html#a4a2229e9e517b84773e65c75124b0789',1,'NimBLEDevice']]], + ['getwhitelistcount_167',['getWhiteListCount',['../class_nim_b_l_e_device.html#ab28cc2ec59fc9e62d05826633f53d2a0',1,'NimBLEDevice']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 0000000..4ef8d9b --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..ee8e14f --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['haveadvinterval_168',['haveAdvInterval',['../class_nim_b_l_e_advertised_device.html#aa8b4660e5d123f16a07e0fefa3bcf4bc',1,'NimBLEAdvertisedDevice']]], + ['haveappearance_169',['haveAppearance',['../class_nim_b_l_e_advertised_device.html#accc6713f85db6174cfe8436059aa8bf1',1,'NimBLEAdvertisedDevice']]], + ['haveconnparams_170',['haveConnParams',['../class_nim_b_l_e_advertised_device.html#a3274624943c942f357c6f8d489481bc8',1,'NimBLEAdvertisedDevice']]], + ['havemanufacturerdata_171',['haveManufacturerData',['../class_nim_b_l_e_advertised_device.html#abe58f5fde119d8c0a8fb85ba1e8cc5c9',1,'NimBLEAdvertisedDevice']]], + ['havename_172',['haveName',['../class_nim_b_l_e_advertised_device.html#a86805fecd4432335feecf77bb6a0f12e',1,'NimBLEAdvertisedDevice']]], + ['haverssi_173',['haveRSSI',['../class_nim_b_l_e_advertised_device.html#a611802e8898e422842d60486b60b8c42',1,'NimBLEAdvertisedDevice']]], + ['haveservicedata_174',['haveServiceData',['../class_nim_b_l_e_advertised_device.html#afba3425cfcfc12eca219a1abe5f6732c',1,'NimBLEAdvertisedDevice']]], + ['haveserviceuuid_175',['haveServiceUUID',['../class_nim_b_l_e_advertised_device.html#a5c4aae7e27c27201846ba4e15448e557',1,'NimBLEAdvertisedDevice']]], + ['havetargetaddress_176',['haveTargetAddress',['../class_nim_b_l_e_advertised_device.html#a1172d33a77bc018e314be78664b222b9',1,'NimBLEAdvertisedDevice']]], + ['havetxpower_177',['haveTXPower',['../class_nim_b_l_e_advertised_device.html#af5293030ef439856c195caa3aba86543',1,'NimBLEAdvertisedDevice']]], + ['haveuri_178',['haveURI',['../class_nim_b_l_e_advertised_device.html#a83ebd08b512dc936b1059db7a69b9ead',1,'NimBLEAdvertisedDevice']]], + ['hidcontrol_179',['hidControl',['../class_nim_b_l_e_h_i_d_device.html#a5c42da43e0b8dfcd1d045e8a86d0b5a2',1,'NimBLEHIDDevice']]], + ['hidinfo_180',['hidInfo',['../class_nim_b_l_e_h_i_d_device.html#a33fc2bfc990ecd250859ca8f34a4314e',1,'NimBLEHIDDevice']]], + ['hidservice_181',['hidService',['../class_nim_b_l_e_h_i_d_device.html#ae80cf58c481c25bd6d7392a43b6fa48b',1,'NimBLEHIDDevice']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 0000000..8d9e2b3 --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..63036ca --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['indicate_182',['indicate',['../class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434',1,'NimBLECharacteristic']]], + ['init_183',['init',['../class_nim_b_l_e_device.html#a674d2e68d4ba0e3f84d7993f9da7d15b',1,'NimBLEDevice']]], + ['inputreport_184',['inputReport',['../class_nim_b_l_e_h_i_d_device.html#a91cfe81b47cea229e9bbe3c55be33701',1,'NimBLEHIDDevice']]], + ['isadvertising_185',['isAdvertising',['../class_nim_b_l_e_advertising.html#ac257ab68520a244cb6494d793f9b6c2a',1,'NimBLEAdvertising']]], + ['isadvertisingservice_186',['isAdvertisingService',['../class_nim_b_l_e_advertised_device.html#a37ad095c066aa231a52a7259734c9bce',1,'NimBLEAdvertisedDevice']]], + ['isauthenticated_187',['isAuthenticated',['../class_nim_b_l_e_conn_info.html#a7229e53d21c9c6b5b9fb5bd232862c89',1,'NimBLEConnInfo']]], + ['isbonded_188',['isBonded',['../class_nim_b_l_e_conn_info.html#af281a25921d36dc75cf1e37561940125',1,'NimBLEConnInfo::isBonded()'],['../class_nim_b_l_e_device.html#a16bf4f5394735ed8d7f0bb32ca5d269a',1,'NimBLEDevice::isBonded()']]], + ['isconnected_189',['isConnected',['../class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c',1,'NimBLEClient']]], + ['isencrypted_190',['isEncrypted',['../class_nim_b_l_e_conn_info.html#a8ecf3c58da6ffb529215ce6f13c96744',1,'NimBLEConnInfo']]], + ['isignored_191',['isIgnored',['../class_nim_b_l_e_device.html#a14ebc6070a261d7a6518ad435b673962',1,'NimBLEDevice']]], + ['ismaster_192',['isMaster',['../class_nim_b_l_e_conn_info.html#a63ff245a8848bf1cc5839adee7aa41c4',1,'NimBLEConnInfo']]], + ['isscanning_193',['isScanning',['../class_nim_b_l_e_scan.html#ab788ad282fdbf4467302f6ad2d4d6016',1,'NimBLEScan']]], + ['isslave_194',['isSlave',['../class_nim_b_l_e_conn_info.html#abfb91b833cb200f795bc63d5affff6af',1,'NimBLEConnInfo']]], + ['improvements_20and_20updates_195',['Improvements and updates',['../md_docs__improvements_and_updates.html',1,'']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 0000000..dd63b51 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..eb257f3 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['manufacturer_196',['manufacturer',['../class_nim_b_l_e_h_i_d_device.html#a3e5b8291ca88d85a352429415abaec9c',1,'NimBLEHIDDevice::manufacturer()'],['../class_nim_b_l_e_h_i_d_device.html#ac04ed297cf6adbec210873739d2dc74d',1,'NimBLEHIDDevice::manufacturer(std::string name)']]], + ['migrating_20from_20bluedroid_20to_20nimble_197',['Migrating from Bluedroid to NimBLE',['../md_docs__migration_guide.html',1,'']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 0000000..aa45147 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..b54ebb3 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['new_20user_20guide_198',['New User Guide',['../md_docs__new_user_guide.html',1,'']]], + ['nimble2904_199',['NimBLE2904',['../class_nim_b_l_e2904.html',1,'']]], + ['nimbleaddress_200',['NimBLEAddress',['../class_nim_b_l_e_address.html',1,'NimBLEAddress'],['../class_nim_b_l_e_address.html#a19058addb94417e2921cade37a79d04c',1,'NimBLEAddress::NimBLEAddress()'],['../class_nim_b_l_e_address.html#ab8c9105b825ed0be5d1bbab966f2a0cf',1,'NimBLEAddress::NimBLEAddress(ble_addr_t address)'],['../class_nim_b_l_e_address.html#a92637adc75c8010bcf34e2dd8f16cd94',1,'NimBLEAddress::NimBLEAddress(uint8_t address[6], uint8_t type=BLE_ADDR_PUBLIC)'],['../class_nim_b_l_e_address.html#aeb6dafff197dc01e2713bbf43e21f1f3',1,'NimBLEAddress::NimBLEAddress(const std::string &stringAddress, uint8_t type=BLE_ADDR_PUBLIC)'],['../class_nim_b_l_e_address.html#a139790cf03d8297e253e5353a0213bff',1,'NimBLEAddress::NimBLEAddress(const uint64_t &address, uint8_t type=BLE_ADDR_PUBLIC)']]], + ['nimbleadvertiseddevice_201',['NimBLEAdvertisedDevice',['../class_nim_b_l_e_advertised_device.html',1,'NimBLEAdvertisedDevice'],['../class_nim_b_l_e_advertised_device.html#ab8972714ecd578fca51fb63d9834a34e',1,'NimBLEAdvertisedDevice::NimBLEAdvertisedDevice()']]], + ['nimbleadvertiseddevicecallbacks_202',['NimBLEAdvertisedDeviceCallbacks',['../class_nim_b_l_e_advertised_device_callbacks.html',1,'']]], + ['nimbleadvertisementdata_203',['NimBLEAdvertisementData',['../class_nim_b_l_e_advertisement_data.html',1,'']]], + ['nimbleadvertising_204',['NimBLEAdvertising',['../class_nim_b_l_e_advertising.html',1,'NimBLEAdvertising'],['../class_nim_b_l_e_advertising.html#abe6258a917243a4567c3d6eece2ddcdd',1,'NimBLEAdvertising::NimBLEAdvertising()']]], + ['nimblebeacon_205',['NimBLEBeacon',['../class_nim_b_l_e_beacon.html',1,'NimBLEBeacon'],['../class_nim_b_l_e_beacon.html#ac99e1fb4ef4795785a655b117dabdd37',1,'NimBLEBeacon::NimBLEBeacon()']]], + ['nimblecharacteristic_206',['NimBLECharacteristic',['../class_nim_b_l_e_characteristic.html',1,'NimBLECharacteristic'],['../class_nim_b_l_e_characteristic.html#a942b2d29d77fcef233549d0c4fd798da',1,'NimBLECharacteristic::NimBLECharacteristic(const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)'],['../class_nim_b_l_e_characteristic.html#acdbd57f7e97646403e520edc35c34c8b',1,'NimBLECharacteristic::NimBLECharacteristic(const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)']]], + ['nimblecharacteristiccallbacks_207',['NimBLECharacteristicCallbacks',['../class_nim_b_l_e_characteristic_callbacks.html',1,'']]], + ['nimbleclient_208',['NimBLEClient',['../class_nim_b_l_e_client.html',1,'']]], + ['nimbleclientcallbacks_209',['NimBLEClientCallbacks',['../class_nim_b_l_e_client_callbacks.html',1,'']]], + ['nimbleconninfo_210',['NimBLEConnInfo',['../class_nim_b_l_e_conn_info.html',1,'']]], + ['nimbledescriptor_211',['NimBLEDescriptor',['../class_nim_b_l_e_descriptor.html',1,'NimBLEDescriptor'],['../class_nim_b_l_e_descriptor.html#a3cf995352eb1b1c212a7911a05c33b25',1,'NimBLEDescriptor::NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)'],['../class_nim_b_l_e_descriptor.html#a7ecb634b7d6390677cad232bd6be6638',1,'NimBLEDescriptor::NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)']]], + ['nimbledescriptorcallbacks_212',['NimBLEDescriptorCallbacks',['../class_nim_b_l_e_descriptor_callbacks.html',1,'']]], + ['nimbledevice_213',['NimBLEDevice',['../class_nim_b_l_e_device.html',1,'']]], + ['nimbleeddystonetlm_214',['NimBLEEddystoneTLM',['../class_nim_b_l_e_eddystone_t_l_m.html',1,'NimBLEEddystoneTLM'],['../class_nim_b_l_e_eddystone_t_l_m.html#a4d87d0b11420af2ae04bc4e6ce2f8607',1,'NimBLEEddystoneTLM::NimBLEEddystoneTLM()']]], + ['nimbleeddystoneurl_215',['NimBLEEddystoneURL',['../class_nim_b_l_e_eddystone_u_r_l.html',1,'NimBLEEddystoneURL'],['../class_nim_b_l_e_eddystone_u_r_l.html#ae102214d20e32e31c9c84d723f67df15',1,'NimBLEEddystoneURL::NimBLEEddystoneURL()']]], + ['nimblehiddevice_216',['NimBLEHIDDevice',['../class_nim_b_l_e_h_i_d_device.html',1,'NimBLEHIDDevice'],['../class_nim_b_l_e_h_i_d_device.html#a95b4935280494ffa24bfae89753f199a',1,'NimBLEHIDDevice::NimBLEHIDDevice()']]], + ['nimbleremotecharacteristic_217',['NimBLERemoteCharacteristic',['../class_nim_b_l_e_remote_characteristic.html',1,'']]], + ['nimbleremotedescriptor_218',['NimBLERemoteDescriptor',['../class_nim_b_l_e_remote_descriptor.html',1,'']]], + ['nimbleremoteservice_219',['NimBLERemoteService',['../class_nim_b_l_e_remote_service.html',1,'']]], + ['nimblescan_220',['NimBLEScan',['../class_nim_b_l_e_scan.html',1,'']]], + ['nimblescanresults_221',['NimBLEScanResults',['../class_nim_b_l_e_scan_results.html',1,'']]], + ['nimblesecurity_222',['NimBLESecurity',['../class_nim_b_l_e_security.html',1,'']]], + ['nimblesecuritycallbacks_223',['NimBLESecurityCallbacks',['../class_nim_b_l_e_security_callbacks.html',1,'']]], + ['nimbleserver_224',['NimBLEServer',['../class_nim_b_l_e_server.html',1,'']]], + ['nimbleservercallbacks_225',['NimBLEServerCallbacks',['../class_nim_b_l_e_server_callbacks.html',1,'']]], + ['nimbleservice_226',['NimBLEService',['../class_nim_b_l_e_service.html',1,'NimBLEService'],['../class_nim_b_l_e_service.html#a2f21520dead11ac352562c7b232bc854',1,'NimBLEService::NimBLEService(const char *uuid, uint16_t numHandles, NimBLEServer *pServer)'],['../class_nim_b_l_e_service.html#a66b3bc41ed067ea7f5f00a8af53dd1ef',1,'NimBLEService::NimBLEService(const NimBLEUUID &uuid, uint16_t numHandles, NimBLEServer *pServer)']]], + ['nimbleutils_227',['NimBLEUtils',['../class_nim_b_l_e_utils.html',1,'']]], + ['nimbleuuid_228',['NimBLEUUID',['../class_nim_b_l_e_u_u_i_d.html',1,'NimBLEUUID'],['../class_nim_b_l_e_u_u_i_d.html#a6fd3849062c96cee3d6cd00544fadfac',1,'NimBLEUUID::NimBLEUUID(const std::string &uuid)'],['../class_nim_b_l_e_u_u_i_d.html#aadbfc5504e63cd91c59c778607b8dd92',1,'NimBLEUUID::NimBLEUUID(uint16_t uuid)'],['../class_nim_b_l_e_u_u_i_d.html#ab4e1658b1c414edb9aea5cf5140fa461',1,'NimBLEUUID::NimBLEUUID(uint32_t uuid)'],['../class_nim_b_l_e_u_u_i_d.html#ac9fbd00e7ffeb334571016c61bca9286',1,'NimBLEUUID::NimBLEUUID(const ble_uuid128_t *uuid)'],['../class_nim_b_l_e_u_u_i_d.html#a6eda1a14d4590dd25e6a2f7a49ad528e',1,'NimBLEUUID::NimBLEUUID(const uint8_t *pData, size_t size, bool msbFirst)'],['../class_nim_b_l_e_u_u_i_d.html#a399dca7d70ee262aa155b39d357321b1',1,'NimBLEUUID::NimBLEUUID(uint32_t first, uint16_t second, uint16_t third, uint64_t fourth)'],['../class_nim_b_l_e_u_u_i_d.html#abec7913c5989c3620c423c6717111453',1,'NimBLEUUID::NimBLEUUID()']]], + ['nimconfig_2eh_229',['nimconfig.h',['../nimconfig_8h.html',1,'']]], + ['notify_230',['notify',['../class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813',1,'NimBLECharacteristic']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 0000000..66b3089 --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..1ca9d2d --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['overview_231',['Overview',['../index.html',1,'']]], + ['onauthenticationcomplete_232',['onAuthenticationComplete',['../class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065',1,'NimBLEClientCallbacks::onAuthenticationComplete()'],['../class_nim_b_l_e_security_callbacks.html#a22a8079906070a13583daafd1521a125',1,'NimBLESecurityCallbacks::onAuthenticationComplete()'],['../class_nim_b_l_e_server_callbacks.html#a6a18155a8d3fa0980fab51f08ce5de2d',1,'NimBLEServerCallbacks::onAuthenticationComplete()']]], + ['onconfirmpin_233',['onConfirmPIN',['../class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0',1,'NimBLEClientCallbacks::onConfirmPIN()'],['../class_nim_b_l_e_security_callbacks.html#a2ce6a03693a43a55e51598d8b2654a92',1,'NimBLESecurityCallbacks::onConfirmPIN()'],['../class_nim_b_l_e_server_callbacks.html#a5327d11f249e8f020b59529b634e0c91',1,'NimBLEServerCallbacks::onConfirmPIN()']]], + ['onconnect_234',['onConnect',['../class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae',1,'NimBLEClientCallbacks::onConnect()'],['../class_nim_b_l_e_server_callbacks.html#a80348ab2d08bbec7a6910c96662fc1d4',1,'NimBLEServerCallbacks::onConnect(NimBLEServer *pServer)'],['../class_nim_b_l_e_server_callbacks.html#a76f32bb22a34b33ee2a934f101d925b1',1,'NimBLEServerCallbacks::onConnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)']]], + ['onconnparamsupdaterequest_235',['onConnParamsUpdateRequest',['../class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6',1,'NimBLEClientCallbacks']]], + ['ondisconnect_236',['onDisconnect',['../class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808',1,'NimBLEClientCallbacks::onDisconnect()'],['../class_nim_b_l_e_server_callbacks.html#a3dbf72280a895e80e0972599a7373ca0',1,'NimBLEServerCallbacks::onDisconnect(NimBLEServer *pServer)'],['../class_nim_b_l_e_server_callbacks.html#a60e1ad35979434000d04fdbb374acc18',1,'NimBLEServerCallbacks::onDisconnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)']]], + ['onmtuchange_237',['onMTUChange',['../class_nim_b_l_e_server_callbacks.html#ab4533f1317b36216c3c86695613c80a6',1,'NimBLEServerCallbacks']]], + ['onnotify_238',['onNotify',['../class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9',1,'NimBLECharacteristicCallbacks']]], + ['onpasskeynotify_239',['onPassKeyNotify',['../class_nim_b_l_e_security_callbacks.html#aa984ec6f29741b49bdd7dbfde60177be',1,'NimBLESecurityCallbacks']]], + ['onpasskeyrequest_240',['onPassKeyRequest',['../class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5',1,'NimBLEClientCallbacks::onPassKeyRequest()'],['../class_nim_b_l_e_security_callbacks.html#a1cfc9c48c02aece1736f9070dc6ff90f',1,'NimBLESecurityCallbacks::onPassKeyRequest()'],['../class_nim_b_l_e_server_callbacks.html#ad2c3035c3a284d03673ff1b5aeaa0fca',1,'NimBLEServerCallbacks::onPassKeyRequest()']]], + ['onread_241',['onRead',['../class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93',1,'NimBLECharacteristicCallbacks::onRead(NimBLECharacteristic *pCharacteristic)'],['../class_nim_b_l_e_characteristic_callbacks.html#acae83420ae378277c225ce465f979f88',1,'NimBLECharacteristicCallbacks::onRead(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)'],['../class_nim_b_l_e_descriptor_callbacks.html#a6b13d2a8447f50a089b869cea9fcdcbc',1,'NimBLEDescriptorCallbacks::onRead()']]], + ['onresult_242',['onResult',['../class_nim_b_l_e_advertised_device_callbacks.html#af6a25e1bb773a147536b1785b2aae606',1,'NimBLEAdvertisedDeviceCallbacks']]], + ['onsecurityrequest_243',['onSecurityRequest',['../class_nim_b_l_e_security_callbacks.html#a620de166c3fe26027871d18535839cdd',1,'NimBLESecurityCallbacks']]], + ['onstatus_244',['onStatus',['../class_nim_b_l_e_characteristic_callbacks.html#ab17e7c61723a33cd3c922e3ca9c20f1e',1,'NimBLECharacteristicCallbacks']]], + ['onsubscribe_245',['onSubscribe',['../class_nim_b_l_e_characteristic_callbacks.html#a3c0c0f524bc0d00d24a7c5ea92c5cb7e',1,'NimBLECharacteristicCallbacks']]], + ['onwhitelist_246',['onWhiteList',['../class_nim_b_l_e_device.html#ae51e2d4d6169a61133178a1b0d6b5b45',1,'NimBLEDevice']]], + ['onwrite_247',['onWrite',['../class_nim_b_l_e_characteristic_callbacks.html#aac7caf4a80da061b5beda5ebcd214fc3',1,'NimBLECharacteristicCallbacks::onWrite(NimBLECharacteristic *pCharacteristic)'],['../class_nim_b_l_e_characteristic_callbacks.html#a303a44a2efad76d54d67955fcb7b05d7',1,'NimBLECharacteristicCallbacks::onWrite(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)'],['../class_nim_b_l_e_descriptor_callbacks.html#a7081bf2c4f22225c4715e09762be40ed',1,'NimBLEDescriptorCallbacks::onWrite()']]], + ['operator_20uint64_5ft_248',['operator uint64_t',['../class_nim_b_l_e_address.html#aa7d5d8d323d2846bf2082b83381bd7c8',1,'NimBLEAddress']]], + ['operator_21_3d_249',['operator!=',['../class_nim_b_l_e_address.html#ae243127c78af69b26dfa225effd806ce',1,'NimBLEAddress::operator!=()'],['../class_nim_b_l_e_u_u_i_d.html#abeee22e6661f7533f05802e1f89fedfe',1,'NimBLEUUID::operator!=()']]], + ['operator_3d_3d_250',['operator==',['../class_nim_b_l_e_address.html#a87e8ccc81c2d83bf0503166939319164',1,'NimBLEAddress::operator==()'],['../class_nim_b_l_e_u_u_i_d.html#a46484dcb0a1bfef6a8afe97f49f97875',1,'NimBLEUUID::operator==()']]], + ['outputreport_251',['outputReport',['../class_nim_b_l_e_h_i_d_device.html#ac1e63972c6a77665a6bbc76f9ff4a717',1,'NimBLEHIDDevice']]], + ['string_252',['string',['../class_nim_b_l_e_address.html#a5398ed7c6d8e95a7527103095e07093a',1,'NimBLEAddress::string()'],['../class_nim_b_l_e_u_u_i_d.html#a4315e760bf763333022658ff980f3048',1,'NimBLEUUID::string()']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 0000000..0a2069b --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..743b7bc --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pnp_253',['pnp',['../class_nim_b_l_e_h_i_d_device.html#a5309df317aa42de7ced2e34219b6666a',1,'NimBLEHIDDevice']]], + ['protocolmode_254',['protocolMode',['../class_nim_b_l_e_h_i_d_device.html#a1118c1e730f38b8b17795c8eb41a0861',1,'NimBLEHIDDevice']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 0000000..4b92eda --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..6b37839 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['readfloat_255',['readFloat',['../class_nim_b_l_e_remote_characteristic.html#a81f39759d48a8fb792c94e4b3b455eef',1,'NimBLERemoteCharacteristic']]], + ['readuint16_256',['readUInt16',['../class_nim_b_l_e_remote_characteristic.html#a181c54862bc422d8ad0b326af675922d',1,'NimBLERemoteCharacteristic::readUInt16()'],['../class_nim_b_l_e_remote_descriptor.html#a14351ea51b7b04f91b71e388881edd53',1,'NimBLERemoteDescriptor::readUInt16()']]], + ['readuint32_257',['readUInt32',['../class_nim_b_l_e_remote_characteristic.html#a71793454ffab034f87af3a5e9677a63d',1,'NimBLERemoteCharacteristic::readUInt32()'],['../class_nim_b_l_e_remote_descriptor.html#a219606f84d63bc02f093051d66f05204',1,'NimBLERemoteDescriptor::readUInt32()']]], + ['readuint8_258',['readUInt8',['../class_nim_b_l_e_remote_characteristic.html#ade5c6ae280c3cf36c9905be23df8f080',1,'NimBLERemoteCharacteristic::readUInt8()'],['../class_nim_b_l_e_remote_descriptor.html#ab07e86707a91e48f68e9de55686e939b',1,'NimBLERemoteDescriptor::readUInt8()']]], + ['readvalue_259',['readValue',['../class_nim_b_l_e_remote_characteristic.html#a7e10fa37095d7c80dc36c768fe783e67',1,'NimBLERemoteCharacteristic::readValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_remote_characteristic.html#a463760cabc9ca104a6fe094eb942fec0',1,'NimBLERemoteCharacteristic::readValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_remote_descriptor.html#a3b6952aa46b3541fb0a8247e4e542257',1,'NimBLERemoteDescriptor::readValue()'],['../class_nim_b_l_e_remote_descriptor.html#ac4e3a21818903b69ace41c36a58d3c46',1,'NimBLERemoteDescriptor::readValue(bool skipSizeCheck=false)']]], + ['registerfornotify_260',['registerForNotify',['../class_nim_b_l_e_remote_characteristic.html#ab4f54eabe90a416546b7b3fc3477f49c',1,'NimBLERemoteCharacteristic']]], + ['removecharacteristic_261',['removeCharacteristic',['../class_nim_b_l_e_service.html#af992d0c27e3a559789fb77fc46623234',1,'NimBLEService']]], + ['removedescriptor_262',['removeDescriptor',['../class_nim_b_l_e_characteristic.html#a2c0ed8932ee257a8632e3d72e353489b',1,'NimBLECharacteristic']]], + ['removeignored_263',['removeIgnored',['../class_nim_b_l_e_device.html#a0374ab8e323277bd8498609559966924',1,'NimBLEDevice']]], + ['removeservice_264',['removeService',['../class_nim_b_l_e_server.html#a00c92f62f41ec1c499dfaf042b487d75',1,'NimBLEServer']]], + ['removeserviceuuid_265',['removeServiceUUID',['../class_nim_b_l_e_advertising.html#a725437c00152ff57ef1e21bdf7be980d',1,'NimBLEAdvertising']]], + ['reportmap_266',['reportMap',['../class_nim_b_l_e_h_i_d_device.html#a5e996a1668785f7a978f9874b4ff3b3e',1,'NimBLEHIDDevice']]], + ['reset_267',['reset',['../class_nim_b_l_e_advertising.html#a545b505ea76396c33133d41a78fad5b8',1,'NimBLEAdvertising']]], + ['returncodetostring_268',['returnCodeToString',['../class_nim_b_l_e_utils.html#a9885eda5c51477aefc0ba9e1c96d5a34',1,'NimBLEUtils']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 0000000..51be0c7 --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..9ab8892 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,86 @@ +var searchData= +[ + ['secureconnection_269',['secureConnection',['../class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4',1,'NimBLEClient']]], + ['setactivescan_270',['setActiveScan',['../class_nim_b_l_e_scan.html#a7d24e77d6b339552b6ac16effdb54910',1,'NimBLEScan']]], + ['setadvertiseddevicecallbacks_271',['setAdvertisedDeviceCallbacks',['../class_nim_b_l_e_scan.html#ab275a9fec35c8957acf47689056d94af',1,'NimBLEScan']]], + ['setadvertisementdata_272',['setAdvertisementData',['../class_nim_b_l_e_advertising.html#af7083f58717b7e76d90d367f00a0ef08',1,'NimBLEAdvertising']]], + ['setadvertisementtype_273',['setAdvertisementType',['../class_nim_b_l_e_advertising.html#a68d54f11b47b9993322efec1d07c3519',1,'NimBLEAdvertising']]], + ['setappearance_274',['setAppearance',['../class_nim_b_l_e_advertisement_data.html#a0f209913ef9f3dfb5be8db39567b4f32',1,'NimBLEAdvertisementData::setAppearance()'],['../class_nim_b_l_e_advertising.html#aa0d30dfb57670cc8180e17dffddad416',1,'NimBLEAdvertising::setAppearance()']]], + ['setauthenticationmode_275',['setAuthenticationMode',['../class_nim_b_l_e_security.html#a5cf0d3672a16f557032bcbf39a9e22f2',1,'NimBLESecurity']]], + ['setbatterylevel_276',['setBatteryLevel',['../class_nim_b_l_e_h_i_d_device.html#a84e3127a05f7e6a44761ec4a9e7668e3',1,'NimBLEHIDDevice']]], + ['setcallbacks_277',['setCallbacks',['../class_nim_b_l_e_characteristic.html#a29dc2505e1d3b4a7d6800d1547965d17',1,'NimBLECharacteristic::setCallbacks()'],['../class_nim_b_l_e_descriptor.html#aa9cb8727f9e17cf8050cf619e5fe3096',1,'NimBLEDescriptor::setCallbacks()'],['../class_nim_b_l_e_server.html#a485c90ce36275f9e4ec26a7f3d348cd9',1,'NimBLEServer::setCallbacks()']]], + ['setcapability_278',['setCapability',['../class_nim_b_l_e_security.html#a1bb7902d5ceffaca86bd7638a74e35e3',1,'NimBLESecurity']]], + ['setclientcallbacks_279',['setClientCallbacks',['../class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c',1,'NimBLEClient']]], + ['setcompleteservices_280',['setCompleteServices',['../class_nim_b_l_e_advertisement_data.html#a67fd95e586559b73964d5739051f3822',1,'NimBLEAdvertisementData']]], + ['setcompleteservices16_281',['setCompleteServices16',['../class_nim_b_l_e_advertisement_data.html#a50a2584346208ef28274eeecc5befffb',1,'NimBLEAdvertisementData']]], + ['setcompleteservices32_282',['setCompleteServices32',['../class_nim_b_l_e_advertisement_data.html#a712aa09a4d7f2b3cae9b2f1f1be6372f',1,'NimBLEAdvertisementData']]], + ['setconnectionparams_283',['setConnectionParams',['../class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267',1,'NimBLEClient']]], + ['setconnecttimeout_284',['setConnectTimeout',['../class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e',1,'NimBLEClient']]], + ['setcount_285',['setCount',['../class_nim_b_l_e_eddystone_t_l_m.html#a6d033c09a513b2dfdad6f1b962b906a8',1,'NimBLEEddystoneTLM']]], + ['setcustomgaphandler_286',['setCustomGapHandler',['../class_nim_b_l_e_device.html#a8d4e1013815e7b021029f447f1702833',1,'NimBLEDevice']]], + ['setdata_287',['setData',['../class_nim_b_l_e_beacon.html#a92292c8b1f5ba0097f063ff6e60934ff',1,'NimBLEBeacon::setData()'],['../class_nim_b_l_e_eddystone_t_l_m.html#a160e33218dc7fb33f678cda1605da52e',1,'NimBLEEddystoneTLM::setData()'],['../class_nim_b_l_e_eddystone_u_r_l.html#ada3ac4a544b8565635871f39f1593811',1,'NimBLEEddystoneURL::setData()']]], + ['setdescription_288',['setDescription',['../class_nim_b_l_e2904.html#a498c863cb3fbf92eecc23f9f8856037c',1,'NimBLE2904']]], + ['setduplicatefilter_289',['setDuplicateFilter',['../class_nim_b_l_e_scan.html#ac40563af803f3b9ab88398c7f30e21bb',1,'NimBLEScan']]], + ['setexponent_290',['setExponent',['../class_nim_b_l_e2904.html#ab1c53f99246f67dca1d63b812bef631d',1,'NimBLE2904']]], + ['setfilterpolicy_291',['setFilterPolicy',['../class_nim_b_l_e_scan.html#a4248aabb5da67953eadab2a6f834d967',1,'NimBLEScan']]], + ['setflags_292',['setFlags',['../class_nim_b_l_e_advertisement_data.html#a73766a872477512bd750c773d96ca4e2',1,'NimBLEAdvertisementData']]], + ['setformat_293',['setFormat',['../class_nim_b_l_e2904.html#ab7f21651b4493fd3daaa0f1545032ff1',1,'NimBLE2904']]], + ['setinitencryptionkey_294',['setInitEncryptionKey',['../class_nim_b_l_e_security.html#adfc3caa3e1a5aedc3be5c0f1dc5c99ac',1,'NimBLESecurity']]], + ['setinterval_295',['setInterval',['../class_nim_b_l_e_scan.html#a3f3e30d8b79aeb4d64af10d5f9d33788',1,'NimBLEScan']]], + ['setkeysize_296',['setKeySize',['../class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b',1,'NimBLESecurity']]], + ['setlimitedonly_297',['setLimitedOnly',['../class_nim_b_l_e_scan.html#a77483be2bd9dad08322cc64f4e7012c1',1,'NimBLEScan']]], + ['setmajor_298',['setMajor',['../class_nim_b_l_e_beacon.html#abef1334108f8049832da7fffb56f6eea',1,'NimBLEBeacon']]], + ['setmanufacturerdata_299',['setManufacturerData',['../class_nim_b_l_e_advertisement_data.html#aa4df88b578782cda2bd77368b50f2d27',1,'NimBLEAdvertisementData::setManufacturerData()'],['../class_nim_b_l_e_advertising.html#a1eff592870a47b0f62b0f0894efadbd4',1,'NimBLEAdvertising::setManufacturerData()']]], + ['setmanufacturerid_300',['setManufacturerId',['../class_nim_b_l_e_beacon.html#a1ec99fe7684181e7b899cd763f9b44d9',1,'NimBLEBeacon']]], + ['setmaxinterval_301',['setMaxInterval',['../class_nim_b_l_e_advertising.html#aab512576d8873fbbb631bac8ada19530',1,'NimBLEAdvertising']]], + ['setmaxpreferred_302',['setMaxPreferred',['../class_nim_b_l_e_advertising.html#a3382cdf80f5ae46a52e3b9159f8e1b66',1,'NimBLEAdvertising']]], + ['setmaxresults_303',['setMaxResults',['../class_nim_b_l_e_scan.html#aad9cd2462d00d7c0fa39d095aa2d8e81',1,'NimBLEScan']]], + ['setmininterval_304',['setMinInterval',['../class_nim_b_l_e_advertising.html#a16bd135cab3f06bc0ba81c2aec19cbbc',1,'NimBLEAdvertising']]], + ['setminor_305',['setMinor',['../class_nim_b_l_e_beacon.html#a44d03b0c2b1bea3bee8f15feeb73fb8e',1,'NimBLEBeacon']]], + ['setminpreferred_306',['setMinPreferred',['../class_nim_b_l_e_advertising.html#a3bc158da1f732361df69cf16ca1cfd42',1,'NimBLEAdvertising']]], + ['setmtu_307',['setMTU',['../class_nim_b_l_e_device.html#a7d8203040611e3f82bf4848a9b371e98',1,'NimBLEDevice']]], + ['setname_308',['setName',['../class_nim_b_l_e_advertisement_data.html#a885b4ed75dd71c4c19b86048c16350bf',1,'NimBLEAdvertisementData::setName()'],['../class_nim_b_l_e_advertising.html#add2ecd09877d7e4548b11ec7cb8c7a47',1,'NimBLEAdvertising::setName()']]], + ['setnamespace_309',['setNamespace',['../class_nim_b_l_e2904.html#a2206274c217d43a8ba121e1d279f8962',1,'NimBLE2904']]], + ['setownaddrtype_310',['setOwnAddrType',['../class_nim_b_l_e_device.html#aa95f75d0a4325335ed0165f566d3a27d',1,'NimBLEDevice']]], + ['setpartialservices_311',['setPartialServices',['../class_nim_b_l_e_advertisement_data.html#af52546d7c3b733a831f6232a845bef85',1,'NimBLEAdvertisementData']]], + ['setpartialservices16_312',['setPartialServices16',['../class_nim_b_l_e_advertisement_data.html#a50063c7ffa24f0f0407366a450e23ae4',1,'NimBLEAdvertisementData']]], + ['setpartialservices32_313',['setPartialServices32',['../class_nim_b_l_e_advertisement_data.html#a0ff5a72bccd349e551270ceadf528306',1,'NimBLEAdvertisementData']]], + ['setpeeraddress_314',['setPeerAddress',['../class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07',1,'NimBLEClient']]], + ['setpower_315',['setPower',['../class_nim_b_l_e_device.html#ac81f123fc1345596eb147c4fad125b1c',1,'NimBLEDevice::setPower()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a8038c895e8da7c7ac861557ea0a9d91b',1,'NimBLEEddystoneURL::setPower()']]], + ['setpreferredparams_316',['setPreferredParams',['../class_nim_b_l_e_advertisement_data.html#a58ba06eb062a47cc58ba2829af8aafa5',1,'NimBLEAdvertisementData']]], + ['setproximityuuid_317',['setProximityUUID',['../class_nim_b_l_e_beacon.html#a7f33ffc298285d1ab02088b2584f2256',1,'NimBLEBeacon']]], + ['setrespencryptionkey_318',['setRespEncryptionKey',['../class_nim_b_l_e_security.html#aac8434faa02a6813b7efd87224e04714',1,'NimBLESecurity']]], + ['setscanduplicatecachesize_319',['setScanDuplicateCacheSize',['../class_nim_b_l_e_device.html#a9fdc368b81152a55599e2041181cef08',1,'NimBLEDevice']]], + ['setscanfilter_320',['setScanFilter',['../class_nim_b_l_e_advertising.html#aa3da80c7d17a7824484ee254076e4790',1,'NimBLEAdvertising']]], + ['setscanfiltermode_321',['setScanFilterMode',['../class_nim_b_l_e_device.html#aba7ad0c41541428243d5c5e94b512c93',1,'NimBLEDevice']]], + ['setscanresponse_322',['setScanResponse',['../class_nim_b_l_e_advertising.html#a6fb4d9ad3949928ac83d3e74857ab91f',1,'NimBLEAdvertising']]], + ['setscanresponsedata_323',['setScanResponseData',['../class_nim_b_l_e_advertising.html#a04a51a0c639a70295a9b671f73b34358',1,'NimBLEAdvertising']]], + ['setsecurityauth_324',['setSecurityAuth',['../class_nim_b_l_e_device.html#aa8e340c02418771ce72dec758d560938',1,'NimBLEDevice::setSecurityAuth(bool bonding, bool mitm, bool sc)'],['../class_nim_b_l_e_device.html#a2f10da171794581870d678fc947a5d1f',1,'NimBLEDevice::setSecurityAuth(uint8_t auth_req)']]], + ['setsecuritycallbacks_325',['setSecurityCallbacks',['../class_nim_b_l_e_device.html#a7d44bb960c0bb1bec02a33369c693085',1,'NimBLEDevice']]], + ['setsecurityinitkey_326',['setSecurityInitKey',['../class_nim_b_l_e_device.html#a92d36c3a34d9474fa1d7f66c0e477d1e',1,'NimBLEDevice']]], + ['setsecurityiocap_327',['setSecurityIOCap',['../class_nim_b_l_e_device.html#ab9fee9e810d5fa18bc8a37053eb9b5d0',1,'NimBLEDevice']]], + ['setsecuritypasskey_328',['setSecurityPasskey',['../class_nim_b_l_e_device.html#a84631f6d657fb6bd39722560fa229d35',1,'NimBLEDevice']]], + ['setsecurityrespkey_329',['setSecurityRespKey',['../class_nim_b_l_e_device.html#a57f0d4db1cc564176b23e860fce13f6a',1,'NimBLEDevice']]], + ['setservicedata_330',['setServiceData',['../class_nim_b_l_e_advertisement_data.html#aee4fdb5af06fcda9cab9fad3f5bf80d5',1,'NimBLEAdvertisementData::setServiceData()'],['../class_nim_b_l_e_advertising.html#a994e43e9e4ace6ce64c57e57d0575781',1,'NimBLEAdvertising::setServiceData()']]], + ['setshortname_331',['setShortName',['../class_nim_b_l_e_advertisement_data.html#ae5b514ad9be6552727f1c7a744a29ae5',1,'NimBLEAdvertisementData']]], + ['setsignalpower_332',['setSignalPower',['../class_nim_b_l_e_beacon.html#ae2dd8cd367260dd8374309576457cec0',1,'NimBLEBeacon']]], + ['setstaticpin_333',['setStaticPIN',['../class_nim_b_l_e_security.html#a0bb1535e1b0d48566c17f681b7539f82',1,'NimBLESecurity']]], + ['settemp_334',['setTemp',['../class_nim_b_l_e_eddystone_t_l_m.html#a8e8ee8fff10730089a370f9da7b6a691',1,'NimBLEEddystoneTLM']]], + ['settime_335',['setTime',['../class_nim_b_l_e_eddystone_t_l_m.html#a999d53f4bad59c2ebc688403f66474b1',1,'NimBLEEddystoneTLM']]], + ['setunit_336',['setUnit',['../class_nim_b_l_e2904.html#ad0cf78a2a1c3418be9a39beaa0c826ee',1,'NimBLE2904']]], + ['seturi_337',['setURI',['../class_nim_b_l_e_advertisement_data.html#aa003bc4cf9bff2b2bcac9b742ec97a36',1,'NimBLEAdvertisementData::setURI()'],['../class_nim_b_l_e_advertising.html#a6495d7c9ad80a8c2a5edf974705f8103',1,'NimBLEAdvertising::setURI()']]], + ['seturl_338',['setURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a8102533ff1e7b6527ea744279f8f64ca',1,'NimBLEEddystoneURL']]], + ['setuuid_339',['setUUID',['../class_nim_b_l_e_eddystone_t_l_m.html#a49fdfb7c2edf2ae92f69856ec0ce4291',1,'NimBLEEddystoneTLM::setUUID()'],['../class_nim_b_l_e_eddystone_u_r_l.html#af183e8483ae81fff65d909e67986fcad',1,'NimBLEEddystoneURL::setUUID()']]], + ['setvalue_340',['setValue',['../class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677',1,'NimBLECharacteristic::setValue(const uint8_t *data, size_t size)'],['../class_nim_b_l_e_characteristic.html#a3e77647e4c9bd02c96b761639c4d206f',1,'NimBLECharacteristic::setValue(const std::string &value)'],['../class_nim_b_l_e_characteristic.html#aba05898f446e31222fbe509fa357c730',1,'NimBLECharacteristic::setValue(const T &s)'],['../class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767',1,'NimBLEClient::setValue()'],['../class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923',1,'NimBLEDescriptor::setValue(const uint8_t *data, size_t size)'],['../class_nim_b_l_e_descriptor.html#ad14bda7d046b5f814ed599c8157c7e51',1,'NimBLEDescriptor::setValue(const std::string &value)'],['../class_nim_b_l_e_descriptor.html#a9136cc9e4b41110b3dd99d1c9553a477',1,'NimBLEDescriptor::setValue(const T &s)'],['../class_nim_b_l_e_remote_service.html#a4bb8c7c85580d86fd9ab7be5c3933b72',1,'NimBLERemoteService::setValue()']]], + ['setversion_341',['setVersion',['../class_nim_b_l_e_eddystone_t_l_m.html#a205e0e2efc09c4c5043f11aeddee4d63',1,'NimBLEEddystoneTLM']]], + ['setvolt_342',['setVolt',['../class_nim_b_l_e_eddystone_t_l_m.html#ad69af8fe47502d922203916357f6c206',1,'NimBLEEddystoneTLM']]], + ['setwindow_343',['setWindow',['../class_nim_b_l_e_scan.html#ac2e8c921413f1ad217f45fecf63c0d22',1,'NimBLEScan']]], + ['start_344',['start',['../class_nim_b_l_e_advertising.html#aeeee5a131b42a4f76010751f4c182e4f',1,'NimBLEAdvertising::start()'],['../class_nim_b_l_e_scan.html#a21b1e27816717b77533755f31dfaa820',1,'NimBLEScan::start(uint32_t duration, void(*scanCompleteCB)(NimBLEScanResults), bool is_continue=false)'],['../class_nim_b_l_e_scan.html#a8459a1c69476fcdfd6370a1d10e0e159',1,'NimBLEScan::start(uint32_t duration, bool is_continue=false)'],['../class_nim_b_l_e_server.html#ae94ad52f3c97f62553af9765acdb7bcb',1,'NimBLEServer::start()'],['../class_nim_b_l_e_service.html#ad37324ed0404d596923d6fdc0133b985',1,'NimBLEService::start()']]], + ['startadvertising_345',['startAdvertising',['../class_nim_b_l_e_device.html#ad0bc1019facfd79291b5353ff970473d',1,'NimBLEDevice::startAdvertising()'],['../class_nim_b_l_e_server.html#a2540ae7b61fc6513f794da2512d66f74',1,'NimBLEServer::startAdvertising()']]], + ['startsecurity_346',['startSecurity',['../class_nim_b_l_e_device.html#a339157bf3d8fc712fa838e9a5127cc62',1,'NimBLEDevice']]], + ['startservices_347',['startServices',['../class_nim_b_l_e_h_i_d_device.html#a5984042cd05ea4ead895f5577133a235',1,'NimBLEHIDDevice']]], + ['status_348',['Status',['../class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f',1,'NimBLECharacteristicCallbacks']]], + ['stop_349',['stop',['../class_nim_b_l_e_advertising.html#ab19c9e9015e812055e3cad29d52ed2ff',1,'NimBLEAdvertising::stop()'],['../class_nim_b_l_e_scan.html#a68fa5cc715f62a9a97ac0dccfb8557c1',1,'NimBLEScan::stop()']]], + ['stopadvertising_350',['stopAdvertising',['../class_nim_b_l_e_device.html#a8b23c6ade03a69048f0568eb9ad3b034',1,'NimBLEDevice::stopAdvertising()'],['../class_nim_b_l_e_server.html#ab713fd5619ddbfc1a88bf43a1686f454',1,'NimBLEServer::stopAdvertising()']]], + ['subscribe_351',['subscribe',['../class_nim_b_l_e_remote_characteristic.html#aa08b2f62376568e1fc833e4ff91e8aa7',1,'NimBLERemoteCharacteristic']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 0000000..d7d51cf --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..789d318 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['to128_352',['to128',['../class_nim_b_l_e_u_u_i_d.html#a7103976da820d0c1840aa77aca38306c',1,'NimBLEUUID']]], + ['todo_20list_353',['Todo List',['../todo.html',1,'']]], + ['tostring_354',['toString',['../class_nim_b_l_e_address.html#ac53b0cc945e1505d3e72d48164ad01d6',1,'NimBLEAddress::toString()'],['../class_nim_b_l_e_advertised_device.html#ac1b8ff0f2897abda335743d55668fcd9',1,'NimBLEAdvertisedDevice::toString()'],['../class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89',1,'NimBLECharacteristic::toString()'],['../class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab',1,'NimBLEClient::toString()'],['../class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5',1,'NimBLEDescriptor::toString()'],['../class_nim_b_l_e_device.html#abf8c494b54d9f0c9466c80f25dbdd961',1,'NimBLEDevice::toString()'],['../class_nim_b_l_e_eddystone_t_l_m.html#a970ba10424567d17c961ed3b3ef83d8e',1,'NimBLEEddystoneTLM::toString()'],['../class_nim_b_l_e_remote_characteristic.html#a4b86a1f600a61036487f5161f1f1726a',1,'NimBLERemoteCharacteristic::toString()'],['../class_nim_b_l_e_remote_descriptor.html#a008795a09d1fbe8533c2e9d0e8deb33a',1,'NimBLERemoteDescriptor::toString()'],['../class_nim_b_l_e_remote_service.html#aaf106a37f24a51b967dd0984c973750f',1,'NimBLERemoteService::toString()'],['../class_nim_b_l_e_service.html#a10d10d14f8c5a970a06915cd407a0a73',1,'NimBLEService::toString()'],['../class_nim_b_l_e_u_u_i_d.html#a9708e07b8e0915aafcfa32fe74ccdf64',1,'NimBLEUUID::toString()']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 0000000..e2eea59 --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..4f94223 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['nimble2904_365',['NimBLE2904',['../class_nim_b_l_e2904.html',1,'']]], + ['nimbleaddress_366',['NimBLEAddress',['../class_nim_b_l_e_address.html',1,'']]], + ['nimbleadvertiseddevice_367',['NimBLEAdvertisedDevice',['../class_nim_b_l_e_advertised_device.html',1,'']]], + ['nimbleadvertiseddevicecallbacks_368',['NimBLEAdvertisedDeviceCallbacks',['../class_nim_b_l_e_advertised_device_callbacks.html',1,'']]], + ['nimbleadvertisementdata_369',['NimBLEAdvertisementData',['../class_nim_b_l_e_advertisement_data.html',1,'']]], + ['nimbleadvertising_370',['NimBLEAdvertising',['../class_nim_b_l_e_advertising.html',1,'']]], + ['nimblebeacon_371',['NimBLEBeacon',['../class_nim_b_l_e_beacon.html',1,'']]], + ['nimblecharacteristic_372',['NimBLECharacteristic',['../class_nim_b_l_e_characteristic.html',1,'']]], + ['nimblecharacteristiccallbacks_373',['NimBLECharacteristicCallbacks',['../class_nim_b_l_e_characteristic_callbacks.html',1,'']]], + ['nimbleclient_374',['NimBLEClient',['../class_nim_b_l_e_client.html',1,'']]], + ['nimbleclientcallbacks_375',['NimBLEClientCallbacks',['../class_nim_b_l_e_client_callbacks.html',1,'']]], + ['nimbleconninfo_376',['NimBLEConnInfo',['../class_nim_b_l_e_conn_info.html',1,'']]], + ['nimbledescriptor_377',['NimBLEDescriptor',['../class_nim_b_l_e_descriptor.html',1,'']]], + ['nimbledescriptorcallbacks_378',['NimBLEDescriptorCallbacks',['../class_nim_b_l_e_descriptor_callbacks.html',1,'']]], + ['nimbledevice_379',['NimBLEDevice',['../class_nim_b_l_e_device.html',1,'']]], + ['nimbleeddystonetlm_380',['NimBLEEddystoneTLM',['../class_nim_b_l_e_eddystone_t_l_m.html',1,'']]], + ['nimbleeddystoneurl_381',['NimBLEEddystoneURL',['../class_nim_b_l_e_eddystone_u_r_l.html',1,'']]], + ['nimblehiddevice_382',['NimBLEHIDDevice',['../class_nim_b_l_e_h_i_d_device.html',1,'']]], + ['nimbleremotecharacteristic_383',['NimBLERemoteCharacteristic',['../class_nim_b_l_e_remote_characteristic.html',1,'']]], + ['nimbleremotedescriptor_384',['NimBLERemoteDescriptor',['../class_nim_b_l_e_remote_descriptor.html',1,'']]], + ['nimbleremoteservice_385',['NimBLERemoteService',['../class_nim_b_l_e_remote_service.html',1,'']]], + ['nimblescan_386',['NimBLEScan',['../class_nim_b_l_e_scan.html',1,'']]], + ['nimblescanresults_387',['NimBLEScanResults',['../class_nim_b_l_e_scan_results.html',1,'']]], + ['nimblesecurity_388',['NimBLESecurity',['../class_nim_b_l_e_security.html',1,'']]], + ['nimblesecuritycallbacks_389',['NimBLESecurityCallbacks',['../class_nim_b_l_e_security_callbacks.html',1,'']]], + ['nimbleserver_390',['NimBLEServer',['../class_nim_b_l_e_server.html',1,'']]], + ['nimbleservercallbacks_391',['NimBLEServerCallbacks',['../class_nim_b_l_e_server_callbacks.html',1,'']]], + ['nimbleservice_392',['NimBLEService',['../class_nim_b_l_e_service.html',1,'']]], + ['nimbleutils_393',['NimBLEUtils',['../class_nim_b_l_e_utils.html',1,'']]], + ['nimbleuuid_394',['NimBLEUUID',['../class_nim_b_l_e_u_u_i_d.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/defines_0.html b/search/defines_0.html new file mode 100644 index 0000000..e6a6201 --- /dev/null +++ b/search/defines_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 0000000..f1971dc --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['config_5fbt_5fnimble_5fatt_5fpreferred_5fmtu_713',['CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU',['../nimconfig_8h.html#a8fa28ebea6e979630359a2acde3ae578',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fdebug_714',['CONFIG_BT_NIMBLE_DEBUG',['../nimconfig_8h.html#aeebbc5c476d2a6de28f2d9ebf2948cb5',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fbonds_715',['CONFIG_BT_NIMBLE_MAX_BONDS',['../nimconfig_8h.html#a11ebe4c94e55f9e710be03169b91f964',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fcccds_716',['CONFIG_BT_NIMBLE_MAX_CCCDS',['../nimconfig_8h.html#abdc3219ca772a22427beed33477ea252',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmax_5fconnections_717',['CONFIG_BT_NIMBLE_MAX_CONNECTIONS',['../nimconfig_8h.html#a2ea633774bbf41ac57b314875f16d5f9',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmem_5falloc_5fmode_5fexternal_718',['CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL',['../nimconfig_8h.html#a1f39f56a0fe8a36ef7823a7c3e1c6e3b',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fmsys1_5fblock_5fcount_719',['CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT',['../nimconfig_8h.html#a2f0eb3c3124a34b191a70908dc5af441',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fpinned_5fto_5fcore_720',['CONFIG_BT_NIMBLE_PINNED_TO_CORE',['../nimconfig_8h.html#ab86912bde65d198f2f7aa7f83ef11ee8',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fbroadcaster_5fdisabled_721',['CONFIG_BT_NIMBLE_ROLE_BROADCASTER_DISABLED',['../nimconfig_8h.html#a2a6b4f35f8975778ac2aac5ff169cbda',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fcentral_5fdisabled_722',['CONFIG_BT_NIMBLE_ROLE_CENTRAL_DISABLED',['../nimconfig_8h.html#a6ebb331a6664a3863fb2a57b91a6cd2d',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fobserver_5fdisabled_723',['CONFIG_BT_NIMBLE_ROLE_OBSERVER_DISABLED',['../nimconfig_8h.html#ab91646223e52e5c24f1004a0ed21b829',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frole_5fperipheral_5fdisabled_724',['CONFIG_BT_NIMBLE_ROLE_PERIPHERAL_DISABLED',['../nimconfig_8h.html#a677d7e75eef5bc96e8d0b4c659db90b0',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5frpa_5ftimeout_725',['CONFIG_BT_NIMBLE_RPA_TIMEOUT',['../nimconfig_8h.html#a9d22f9f555a2180787ccec86aa10dc24',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fsvc_5fgap_5fappearance_726',['CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE',['../nimconfig_8h.html#a300d3f8ff48d217a1a2b6608454dfadb',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5fsvc_5fgap_5fdevice_5fname_727',['CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME',['../nimconfig_8h.html#a7b98160e6904e45e99e28a7fcc6b2a3a',1,'nimconfig.h']]], + ['config_5fbt_5fnimble_5ftask_5fstack_5fsize_728',['CONFIG_BT_NIMBLE_TASK_STACK_SIZE',['../nimconfig_8h.html#a227a536958a284235daf409b2b3d1766',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5fadvertisment_5ftype_5ftext_729',['CONFIG_NIMBLE_CPP_ENABLE_ADVERTISMENT_TYPE_TEXT',['../nimconfig_8h.html#a07c0fd3908c3466e9f4835f85d913880',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5fgap_5fevent_5fcode_5ftext_730',['CONFIG_NIMBLE_CPP_ENABLE_GAP_EVENT_CODE_TEXT',['../nimconfig_8h.html#a97b51f4248845f6225806eadbab3bcdb',1,'nimconfig.h']]], + ['config_5fnimble_5fcpp_5fenable_5freturn_5fcode_5ftext_731',['CONFIG_NIMBLE_CPP_ENABLE_RETURN_CODE_TEXT',['../nimconfig_8h.html#a136a5d626ac04aa780c6ec07ee88d242',1,'nimconfig.h']]] +]; diff --git a/search/enums_0.html b/search/enums_0.html new file mode 100644 index 0000000..390bf47 --- /dev/null +++ b/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..7699bf2 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['status_712',['Status',['../class_nim_b_l_e_characteristic_callbacks.html#a104baba3c4bbdee7aa28273d265e4c6f',1,'NimBLECharacteristicCallbacks']]] +]; diff --git a/search/files_0.html b/search/files_0.html new file mode 100644 index 0000000..9568048 --- /dev/null +++ b/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..7a227dd --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nimconfig_2eh_395',['nimconfig.h',['../nimconfig_8h.html',1,'']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 0000000..2057bad --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..e754981 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['addcharacteristic_396',['addCharacteristic',['../class_nim_b_l_e_service.html#af8215dbfdaf7ced32d6158f8ff5116e8',1,'NimBLEService']]], + ['adddata_397',['addData',['../class_nim_b_l_e_advertisement_data.html#aec5f567059c4b4fd0f6b5fc74a0ce870',1,'NimBLEAdvertisementData::addData(const std::string &data)'],['../class_nim_b_l_e_advertisement_data.html#a2328f7df89a11d58818e98a6c889c8d4',1,'NimBLEAdvertisementData::addData(char *data, size_t length)']]], + ['adddescriptor_398',['addDescriptor',['../class_nim_b_l_e_characteristic.html#aed4b2241c89ad2a8f49117e2b9433e5b',1,'NimBLECharacteristic']]], + ['addignored_399',['addIgnored',['../class_nim_b_l_e_device.html#a732425c5c5f5b5b4730c1689700346c0',1,'NimBLEDevice']]], + ['addservice_400',['addService',['../class_nim_b_l_e_server.html#a6eda4c9e0ac1dd031c678d4bf7da1d56',1,'NimBLEServer']]], + ['addserviceuuid_401',['addServiceUUID',['../class_nim_b_l_e_advertising.html#a4f334752ea04223185292fe9ab524b69',1,'NimBLEAdvertising::addServiceUUID(const NimBLEUUID &serviceUUID)'],['../class_nim_b_l_e_advertising.html#a5e596e8dfa9268554a5b189380405d5c',1,'NimBLEAdvertising::addServiceUUID(const char *serviceUUID)']]], + ['addtxpower_402',['addTxPower',['../class_nim_b_l_e_advertisement_data.html#a480ffc91f212e877ae31ab47190006c3',1,'NimBLEAdvertisementData::addTxPower()'],['../class_nim_b_l_e_advertising.html#ac4ff0af45d1f7ed5bc208612852bc43a',1,'NimBLEAdvertising::addTxPower()']]], + ['advcompletecb_403',['advCompleteCB',['../class_nim_b_l_e_advertising.html#a4de7bf016a086a2d3f6f14ae134678f2',1,'NimBLEAdvertising']]], + ['advertiseondisconnect_404',['advertiseOnDisconnect',['../class_nim_b_l_e_server.html#a6bfd923ecd0ea06d5564343ab7209122',1,'NimBLEServer']]], + ['advtypetostring_405',['advTypeToString',['../class_nim_b_l_e_utils.html#a6de9354eeba9f126aa14cfa7ed43cda4',1,'NimBLEUtils']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 0000000..b830118 --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..0443b60 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['batteryservice_406',['batteryService',['../class_nim_b_l_e_h_i_d_device.html#a24498f7b714574ab4a90288f7e4d58b7',1,'NimBLEHIDDevice']]], + ['begin_407',['begin',['../class_nim_b_l_e_client.html#ab09639b499fdcd0021a2432b2b8203f5',1,'NimBLEClient::begin()'],['../class_nim_b_l_e_remote_characteristic.html#a78ac88ca25d71dfe31b95898b79b0442',1,'NimBLERemoteCharacteristic::begin()'],['../class_nim_b_l_e_remote_service.html#a49bb3134b570db877fac67e6ed077aa2',1,'NimBLERemoteService::begin()'],['../class_nim_b_l_e_scan_results.html#ad426f221e8c18c0c3f5784786710e8f0',1,'NimBLEScanResults::begin()']]], + ['bitsize_408',['bitSize',['../class_nim_b_l_e_u_u_i_d.html#aefc88e493b63ccd6dc86227dc92af0c6',1,'NimBLEUUID']]], + ['bootinput_409',['bootInput',['../class_nim_b_l_e_h_i_d_device.html#a45ca7d4547dfea9a64987065d83653bd',1,'NimBLEHIDDevice']]], + ['bootoutput_410',['bootOutput',['../class_nim_b_l_e_h_i_d_device.html#ace0141db690f1afec1b266f9ac9aa0f0',1,'NimBLEHIDDevice']]], + ['buildhexdata_411',['buildHexData',['../class_nim_b_l_e_utils.html#a6382edb7e8e4030b4fc65d463fa2a886',1,'NimBLEUtils']]] +]; diff --git a/search/functions_10.html b/search/functions_10.html new file mode 100644 index 0000000..5d4fac1 --- /dev/null +++ b/search/functions_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 0000000..790d06b --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['unsubscribe_703',['unsubscribe',['../class_nim_b_l_e_remote_characteristic.html#a6e331afdbdbc32bf461c9866236a97aa',1,'NimBLERemoteCharacteristic']]], + ['updateconnparams_704',['updateConnParams',['../class_nim_b_l_e_client.html#aff7d389ec48567286ea732c54d320526',1,'NimBLEClient::updateConnParams()'],['../class_nim_b_l_e_server.html#a9b08738766de90d7065263761314030a',1,'NimBLEServer::updateConnParams()']]] +]; diff --git a/search/functions_11.html b/search/functions_11.html new file mode 100644 index 0000000..f9673ae --- /dev/null +++ b/search/functions_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 0000000..d8596fd --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['whitelistadd_705',['whiteListAdd',['../class_nim_b_l_e_device.html#aabc68166b6dd4a744a98f94e569f37db',1,'NimBLEDevice']]], + ['whitelistremove_706',['whiteListRemove',['../class_nim_b_l_e_device.html#a81abbad5e371fe1cdd91c002b42cc654',1,'NimBLEDevice']]], + ['writevalue_707',['writeValue',['../class_nim_b_l_e_remote_characteristic.html#a3c8d1fd77dd074df866c091c614eafb3',1,'NimBLERemoteCharacteristic::writeValue(const uint8_t *data, size_t length, bool response=false)'],['../class_nim_b_l_e_remote_characteristic.html#a2cfc2e8d2e281dd61e578eb5e860fc02',1,'NimBLERemoteCharacteristic::writeValue(const std::string &newValue, bool response=false)'],['../class_nim_b_l_e_remote_characteristic.html#acf8bcf2cf94ca8bd8cf0c7c39f9883ae',1,'NimBLERemoteCharacteristic::writeValue(const T &s, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a0d3fb6424b2c86730e1a292281cd836e',1,'NimBLERemoteDescriptor::writeValue(const uint8_t *data, size_t length, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a30bc16403ed53d3b4417c0a01cc4a40f',1,'NimBLERemoteDescriptor::writeValue(const std::string &newValue, bool response=false)'],['../class_nim_b_l_e_remote_descriptor.html#a1abc84a09001537dffd13c810a503b9c',1,'NimBLERemoteDescriptor::writeValue(const T &s, bool response=false)']]] +]; diff --git a/search/functions_12.html b/search/functions_12.html new file mode 100644 index 0000000..6fb7c0f --- /dev/null +++ b/search/functions_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 0000000..7fa0bfe --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7enimblecharacteristic_708',['~NimBLECharacteristic',['../class_nim_b_l_e_characteristic.html#a7fe29c5ec571d0513c51b8cbac942f4a',1,'NimBLECharacteristic']]], + ['_7enimbledescriptor_709',['~NimBLEDescriptor',['../class_nim_b_l_e_descriptor.html#ad110851335bc7b225f5bea9ac11bedcc',1,'NimBLEDescriptor']]], + ['_7enimbleremotecharacteristic_710',['~NimBLERemoteCharacteristic',['../class_nim_b_l_e_remote_characteristic.html#a855d591de111b09013ae83c4043d06ed',1,'NimBLERemoteCharacteristic']]], + ['_7enimbleremoteservice_711',['~NimBLERemoteService',['../class_nim_b_l_e_remote_service.html#a2803aa5cdfdb622ae8fe255dc939cb1d',1,'NimBLERemoteService']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 0000000..aa86404 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..fe1fd7a --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['canbroadcast_412',['canBroadcast',['../class_nim_b_l_e_remote_characteristic.html#a7163009a9f0ff718b5856d19cb4a3568',1,'NimBLERemoteCharacteristic']]], + ['canindicate_413',['canIndicate',['../class_nim_b_l_e_remote_characteristic.html#a53322384b295a2548b3399e2c63d76f4',1,'NimBLERemoteCharacteristic']]], + ['cannotify_414',['canNotify',['../class_nim_b_l_e_remote_characteristic.html#a9c41acdbf23dc036f321d4f0a66d40d1',1,'NimBLERemoteCharacteristic']]], + ['canread_415',['canRead',['../class_nim_b_l_e_remote_characteristic.html#a0eb6655635394268a76c68e845d14135',1,'NimBLERemoteCharacteristic']]], + ['canwrite_416',['canWrite',['../class_nim_b_l_e_remote_characteristic.html#aae71c20d300ead52770e66fb8a1a47ea',1,'NimBLERemoteCharacteristic']]], + ['canwritenoresponse_417',['canWriteNoResponse',['../class_nim_b_l_e_remote_characteristic.html#a2614c7f437b52f385fc4fd29abe358eb',1,'NimBLERemoteCharacteristic']]], + ['checkconnparams_418',['checkConnParams',['../class_nim_b_l_e_utils.html#ae521f9a6363c03e42da2f76f64ea431e',1,'NimBLEUtils']]], + ['clearduplicatecache_419',['clearDuplicateCache',['../class_nim_b_l_e_scan.html#a6a97fd1c7f16fccd7f19994592b6dfe6',1,'NimBLEScan']]], + ['clearresults_420',['clearResults',['../class_nim_b_l_e_scan.html#ad421a09eeb021755b193a7a5e01f183b',1,'NimBLEScan']]], + ['connect_421',['connect',['../class_nim_b_l_e_client.html#aab311f0a8af21fb63f78e7fbac29951a',1,'NimBLEClient::connect(NimBLEAdvertisedDevice *device, bool deleteAttibutes=true)'],['../class_nim_b_l_e_client.html#a9188741bf29d58d5ff1352383c959b7b',1,'NimBLEClient::connect(const NimBLEAddress &address, bool deleteAttibutes=true)'],['../class_nim_b_l_e_client.html#a836438fc9d5c2001207249661ad10e01',1,'NimBLEClient::connect(bool deleteAttibutes=true)']]], + ['createcharacteristic_422',['createCharacteristic',['../class_nim_b_l_e_service.html#adab5552c080b9cb88095af262d326309',1,'NimBLEService::createCharacteristic(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)'],['../class_nim_b_l_e_service.html#a80fe6bca60d0db69ea3ae689a3947c19',1,'NimBLEService::createCharacteristic(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE)']]], + ['createclient_423',['createClient',['../class_nim_b_l_e_device.html#af8142995252f486916dbb9de2a5b0c9e',1,'NimBLEDevice']]], + ['createdescriptor_424',['createDescriptor',['../class_nim_b_l_e_characteristic.html#aae014669e9ce1ad01520d68fe0cc0fda',1,'NimBLECharacteristic::createDescriptor(const char *uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)'],['../class_nim_b_l_e_characteristic.html#a6523266a751a778a2c04fea19fed4de5',1,'NimBLECharacteristic::createDescriptor(const NimBLEUUID &uuid, uint32_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, uint16_t max_len=100)']]], + ['createserver_425',['createServer',['../class_nim_b_l_e_device.html#a4d9780d0b5fafc279483822af802a508',1,'NimBLEDevice']]], + ['createservice_426',['createService',['../class_nim_b_l_e_server.html#aaeb58b4de85754d1aac6964e9248aa35',1,'NimBLEServer::createService(const char *uuid)'],['../class_nim_b_l_e_server.html#addc0753b57de87e172cc2d5f158bd6c6',1,'NimBLEServer::createService(const NimBLEUUID &uuid, uint32_t numHandles=15, uint8_t inst_id=0)']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 0000000..66b9fc3 --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..c097225 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['deinit_427',['deinit',['../class_nim_b_l_e_device.html#ae95693ce0f5b8e784ea8e10834dd624c',1,'NimBLEDevice']]], + ['deleteallbonds_428',['deleteAllBonds',['../class_nim_b_l_e_device.html#ab436502ecd044f8b3480ec3e824e1418',1,'NimBLEDevice']]], + ['deletebond_429',['deleteBond',['../class_nim_b_l_e_device.html#a20fc979ec9dbad5cce7f73e41b2e422e',1,'NimBLEDevice']]], + ['deletecharacteristic_430',['deleteCharacteristic',['../class_nim_b_l_e_remote_service.html#a15b3b750b073f334c3be680a99ce2e02',1,'NimBLERemoteService']]], + ['deletecharacteristics_431',['deleteCharacteristics',['../class_nim_b_l_e_remote_service.html#a221069047193f8d25f7112b44bbcb28f',1,'NimBLERemoteService']]], + ['deleteclient_432',['deleteClient',['../class_nim_b_l_e_device.html#a83aa0a3d9d57358d35082a442edf8549',1,'NimBLEDevice']]], + ['deletedescriptor_433',['deleteDescriptor',['../class_nim_b_l_e_remote_characteristic.html#aad0ba99cad9779b33ea7cd4e94349099',1,'NimBLERemoteCharacteristic']]], + ['deletedescriptors_434',['deleteDescriptors',['../class_nim_b_l_e_remote_characteristic.html#a5f0a51b4a7fb2244d236dcb96fcf5205',1,'NimBLERemoteCharacteristic']]], + ['deleteservice_435',['deleteService',['../class_nim_b_l_e_client.html#a0f940c51807469db1f1802b742180beb',1,'NimBLEClient']]], + ['deleteservices_436',['deleteServices',['../class_nim_b_l_e_client.html#a668d476de250055a106a9f46bb7719f3',1,'NimBLEClient']]], + ['deviceinfo_437',['deviceInfo',['../class_nim_b_l_e_h_i_d_device.html#a033c4ad91f1bc165ac6a322b4dcc1699',1,'NimBLEHIDDevice']]], + ['disconnect_438',['disconnect',['../class_nim_b_l_e_client.html#a5f77999664cc8a83f3cdb603ba4a5c8c',1,'NimBLEClient::disconnect()'],['../class_nim_b_l_e_server.html#a63c9dce5c4bbc1c6bc720b6c51bcf3e1',1,'NimBLEServer::disconnect()']]], + ['discoverattributes_439',['discoverAttributes',['../class_nim_b_l_e_client.html#a3d8cbf51caf8b3b8a0ec6ce2074ba71d',1,'NimBLEClient']]], + ['dump_440',['dump',['../class_nim_b_l_e_scan_results.html#a2bbead75105733d04796b69e10c56cd4',1,'NimBLEScanResults::dump()'],['../class_nim_b_l_e_service.html#a71488881933ae8adbf11c5986f9dfb75',1,'NimBLEService::dump()']]], + ['dumpgapevent_441',['dumpGapEvent',['../class_nim_b_l_e_utils.html#a27df310308e72c477a3fda7a65806e01',1,'NimBLEUtils']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 0000000..e5370bf --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..f7e74c8 --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['end_442',['end',['../class_nim_b_l_e_client.html#a0accd665926ea77d85ecb483b2b853fe',1,'NimBLEClient::end()'],['../class_nim_b_l_e_remote_characteristic.html#a333adea9c9f243774c6a2f13beabd873',1,'NimBLERemoteCharacteristic::end()'],['../class_nim_b_l_e_remote_service.html#a10fe635fe9a0661d26c33021faaec53b',1,'NimBLERemoteService::end()'],['../class_nim_b_l_e_scan_results.html#a44e183a7ce0c9fb587d11910ce5ef200',1,'NimBLEScanResults::end()']]], + ['equals_443',['equals',['../class_nim_b_l_e_address.html#a826fe8850cbc7d54f0696b8af4637169',1,'NimBLEAddress::equals()'],['../class_nim_b_l_e_u_u_i_d.html#a3d9763ff434905457ed69118e93a35fd',1,'NimBLEUUID::equals()']]], + ['erase_444',['erase',['../class_nim_b_l_e_scan.html#a566a9ef25b04e946ac23402bb760cda1',1,'NimBLEScan']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 0000000..52c6e18 --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 0000000..8a42d3b --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['featurereport_445',['featureReport',['../class_nim_b_l_e_h_i_d_device.html#a468e599c7d75e691f8d34e1b24db8a38',1,'NimBLEHIDDevice']]], + ['fromstring_446',['fromString',['../class_nim_b_l_e_u_u_i_d.html#ae09acdc52e23a3a38c57aaf859c278c2',1,'NimBLEUUID']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 0000000..743ec26 --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 0000000..bbc782b --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,98 @@ +var searchData= +[ + ['gapeventtostring_447',['gapEventToString',['../class_nim_b_l_e_utils.html#afb2df39418324f93a2477e314883ccae',1,'NimBLEUtils']]], + ['getaddress_448',['getAddress',['../class_nim_b_l_e_advertised_device.html#aa60721a7b5b44a3bb66980f003517579',1,'NimBLEAdvertisedDevice::getAddress()'],['../class_nim_b_l_e_conn_info.html#af17023ca06c3d1b9e142dcd5f8c54847',1,'NimBLEConnInfo::getAddress()'],['../class_nim_b_l_e_device.html#a77f9f343143d4f074ffb545dd14cbb2b',1,'NimBLEDevice::getAddress()']]], + ['getaddresstype_449',['getAddressType',['../class_nim_b_l_e_advertised_device.html#afc79cdc087c81b34643d70c8259eb9a3',1,'NimBLEAdvertisedDevice']]], + ['getadvertising_450',['getAdvertising',['../class_nim_b_l_e_device.html#aa994b01b2b5bb9f677f3cffb2f05d140',1,'NimBLEDevice::getAdvertising()'],['../class_nim_b_l_e_server.html#ab41d8bb9b334734f95a726f1e15200fc',1,'NimBLEServer::getAdvertising()']]], + ['getadvinterval_451',['getAdvInterval',['../class_nim_b_l_e_advertised_device.html#a9a7a36e9937e16ffab4f1543ea54073f',1,'NimBLEAdvertisedDevice']]], + ['getadvlength_452',['getAdvLength',['../class_nim_b_l_e_advertised_device.html#ae960e43434bf62ec83e9230d7bf7046c',1,'NimBLEAdvertisedDevice']]], + ['getadvtype_453',['getAdvType',['../class_nim_b_l_e_advertised_device.html#a9d07ee4c38de4170db24a5e01663ee6d',1,'NimBLEAdvertisedDevice']]], + ['getappearance_454',['getAppearance',['../class_nim_b_l_e_advertised_device.html#a228afa5e43421b4d96d9c08241718309',1,'NimBLEAdvertisedDevice']]], + ['getbondedaddress_455',['getBondedAddress',['../class_nim_b_l_e_device.html#ac7f090f4b1a2d593f38b20859e071f0c',1,'NimBLEDevice']]], + ['getcallbacks_456',['getCallbacks',['../class_nim_b_l_e_characteristic.html#a1747ac4889c7adbb93a2d88a10327a47',1,'NimBLECharacteristic']]], + ['getcharacteristic_457',['getCharacteristic',['../class_nim_b_l_e_client.html#a2fc46f43a71dd0df63a377961baf8009',1,'NimBLEClient::getCharacteristic()'],['../class_nim_b_l_e_descriptor.html#a412b3735186d94e9ddcf37a06c2055e1',1,'NimBLEDescriptor::getCharacteristic()'],['../class_nim_b_l_e_remote_service.html#ab12d195a2239a3808d60457184f0c487',1,'NimBLERemoteService::getCharacteristic(const char *uuid)'],['../class_nim_b_l_e_remote_service.html#a7ff4fc7bfb77adc33003dd6eb8e16957',1,'NimBLERemoteService::getCharacteristic(const NimBLEUUID &uuid)'],['../class_nim_b_l_e_service.html#a305b680286096638a4239620ec2de567',1,'NimBLEService::getCharacteristic(const char *uuid, uint16_t instanceId=0)'],['../class_nim_b_l_e_service.html#adfc4e67f79aaabc8f2c6bdb5c6966609',1,'NimBLEService::getCharacteristic(const NimBLEUUID &uuid, uint16_t instanceId=0)']]], + ['getcharacteristicbyhandle_458',['getCharacteristicByHandle',['../class_nim_b_l_e_service.html#a35b56ab3ef7fffb2b299f95d3176d07e',1,'NimBLEService']]], + ['getcharacteristics_459',['getCharacteristics',['../class_nim_b_l_e_remote_service.html#a2c9e91c842598a6a9576c7b87af0863a',1,'NimBLERemoteService::getCharacteristics()'],['../class_nim_b_l_e_service.html#aa2cba47cb4c935e15c77707643e5e9a5',1,'NimBLEService::getCharacteristics()'],['../class_nim_b_l_e_service.html#a24cf868e9eec7b5ecdf1e88d257e91d9',1,'NimBLEService::getCharacteristics(const char *uuid)'],['../class_nim_b_l_e_service.html#a55724788b3bf4614995ea656bf8fe1bb',1,'NimBLEService::getCharacteristics(const NimBLEUUID &uuid)']]], + ['getclient_460',['getClient',['../class_nim_b_l_e_remote_service.html#a3d1e7db457a9f3774eaa5e641dcc716e',1,'NimBLERemoteService']]], + ['getclientbyid_461',['getClientByID',['../class_nim_b_l_e_device.html#ac7adcd510eef2b9546bcde9a253e56a9',1,'NimBLEDevice']]], + ['getclientbypeeraddress_462',['getClientByPeerAddress',['../class_nim_b_l_e_device.html#ac4dbadc7fc170993e41532f675786504',1,'NimBLEDevice']]], + ['getclientlist_463',['getClientList',['../class_nim_b_l_e_device.html#a1a6fb5e8f0e2cdc012ebae4fb4d12fd0',1,'NimBLEDevice']]], + ['getclientlistsize_464',['getClientListSize',['../class_nim_b_l_e_device.html#abe21dcac43493689a06bc6ddb91b6faf',1,'NimBLEDevice']]], + ['getconnectedcount_465',['getConnectedCount',['../class_nim_b_l_e_server.html#a98ea12f57c10c0477b0c1c5efab23ee5',1,'NimBLEServer']]], + ['getconnhandle_466',['getConnHandle',['../class_nim_b_l_e_conn_info.html#a77e212f3e236b05da0978ea482e3efb4',1,'NimBLEConnInfo']]], + ['getconnid_467',['getConnId',['../class_nim_b_l_e_client.html#aa09466a7050bf08bab2390da66007896',1,'NimBLEClient']]], + ['getconninfo_468',['getConnInfo',['../class_nim_b_l_e_client.html#a566207f548c6b799792fc092f1748267',1,'NimBLEClient']]], + ['getconninterval_469',['getConnInterval',['../class_nim_b_l_e_conn_info.html#aa43374d84b7564f6d187fd0c637b1049',1,'NimBLEConnInfo']]], + ['getconnlatency_470',['getConnLatency',['../class_nim_b_l_e_conn_info.html#a10c6093ca2f92ea61b82815909106430',1,'NimBLEConnInfo']]], + ['getconntimeout_471',['getConnTimeout',['../class_nim_b_l_e_conn_info.html#a8e885d340f1ab4e477c69ed7ea99b082',1,'NimBLEConnInfo']]], + ['getcount_472',['getCount',['../class_nim_b_l_e_eddystone_t_l_m.html#a556a6b6a75693997390f3bacf6e5ca5e',1,'NimBLEEddystoneTLM::getCount()'],['../class_nim_b_l_e_scan_results.html#ae4796dd6ce1845c46f66bc1a36ad746a',1,'NimBLEScanResults::getCount()']]], + ['getdata_473',['getData',['../class_nim_b_l_e_beacon.html#ae2458f7db169b696e6368802d5ece0d9',1,'NimBLEBeacon::getData()'],['../class_nim_b_l_e_eddystone_t_l_m.html#ae146a8f066ef3fc6994070654ec5d7ea',1,'NimBLEEddystoneTLM::getData()'],['../class_nim_b_l_e_eddystone_u_r_l.html#ac32c7066ce1ee8d495a35ec870f0e7bf',1,'NimBLEEddystoneURL::getData()']]], + ['getdatalength_474',['getDataLength',['../class_nim_b_l_e_characteristic.html#a580ad0133fd82a673027c91cbb1c74fa',1,'NimBLECharacteristic']]], + ['getdecodedurl_475',['getDecodedURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a8b68cc96a84da85e20d8583ba375c2ff',1,'NimBLEEddystoneURL']]], + ['getdefhandle_476',['getDefHandle',['../class_nim_b_l_e_remote_characteristic.html#aebbcd36740e49d7e29eb5b21d6802380',1,'NimBLERemoteCharacteristic']]], + ['getdescriptor_477',['getDescriptor',['../class_nim_b_l_e_remote_characteristic.html#a6178e1c58361b957be3c48548c1c4366',1,'NimBLERemoteCharacteristic']]], + ['getdescriptorbyhandle_478',['getDescriptorByHandle',['../class_nim_b_l_e_characteristic.html#a062f52918f13c49a37ce8e58b9e7382a',1,'NimBLECharacteristic']]], + ['getdescriptorbyuuid_479',['getDescriptorByUUID',['../class_nim_b_l_e_characteristic.html#abc5f4819e4d2c0956857ddd7a1064189',1,'NimBLECharacteristic::getDescriptorByUUID(const char *uuid)'],['../class_nim_b_l_e_characteristic.html#ae310b081d2d7d2a52ab2ddc11d5dbd99',1,'NimBLECharacteristic::getDescriptorByUUID(const NimBLEUUID &uuid)']]], + ['getdescriptors_480',['getDescriptors',['../class_nim_b_l_e_remote_characteristic.html#acf11d225fe5a25327742349e9d6061f9',1,'NimBLERemoteCharacteristic']]], + ['getdevice_481',['getDevice',['../class_nim_b_l_e_scan_results.html#a68aa3ebffb1be785497f228c1d11e500',1,'NimBLEScanResults::getDevice(uint32_t i)'],['../class_nim_b_l_e_scan_results.html#ac2356f6c1b8384ebc061d4b7953a9374',1,'NimBLEScanResults::getDevice(const NimBLEAddress &address)']]], + ['getdisconnectedclient_482',['getDisconnectedClient',['../class_nim_b_l_e_device.html#a10aec48b56ef404f42ade96d6244b312',1,'NimBLEDevice']]], + ['gethandle_483',['getHandle',['../class_nim_b_l_e_characteristic.html#acc3ea122771cd447103adfce22537379',1,'NimBLECharacteristic::getHandle()'],['../class_nim_b_l_e_descriptor.html#a486af6799753dfa60b3faddfac2adbcd',1,'NimBLEDescriptor::getHandle()'],['../class_nim_b_l_e_remote_characteristic.html#ab46121a8f5000c40d521e7ee5d92bee6',1,'NimBLERemoteCharacteristic::getHandle()'],['../class_nim_b_l_e_remote_descriptor.html#ab8a774ebc69c0fb7ea17f926a82dba21',1,'NimBLERemoteDescriptor::getHandle()'],['../class_nim_b_l_e_service.html#a86d65ef61a77bdd660632b4041c2b640',1,'NimBLEService::getHandle()']]], + ['getidaddress_484',['getIdAddress',['../class_nim_b_l_e_conn_info.html#a7bc23f09eb7dd53be902cb67d2ba745a',1,'NimBLEConnInfo']]], + ['getinitialized_485',['getInitialized',['../class_nim_b_l_e_device.html#ad6eda512195c7cbe249a1edbb99510cd',1,'NimBLEDevice']]], + ['getlength_486',['getLength',['../class_nim_b_l_e_descriptor.html#a378346f59afb706d4c1d961227b98c5d',1,'NimBLEDescriptor']]], + ['getmajor_487',['getMajor',['../class_nim_b_l_e_beacon.html#aac32b7f86c73221152909528c8dbad3c',1,'NimBLEBeacon']]], + ['getmanufacturerdata_488',['getManufacturerData',['../class_nim_b_l_e_advertised_device.html#afa334006230601cc5c6429b18819a2e2',1,'NimBLEAdvertisedDevice::getManufacturerData()'],['../class_nim_b_l_e_advertised_device.html#ae9a586e46a555cf5fc817c9fe301b295',1,'NimBLEAdvertisedDevice::getManufacturerData(bool skipSizeCheck=false)']]], + ['getmanufacturerid_489',['getManufacturerId',['../class_nim_b_l_e_beacon.html#a8803d70e8c238ccb98edcf31af0ead40',1,'NimBLEBeacon']]], + ['getmaxinterval_490',['getMaxInterval',['../class_nim_b_l_e_advertised_device.html#a450eca96c605f199d2786a044612db17',1,'NimBLEAdvertisedDevice']]], + ['getmininterval_491',['getMinInterval',['../class_nim_b_l_e_advertised_device.html#a33fcdc3bf5107c157b10ad4519938c9f',1,'NimBLEAdvertisedDevice']]], + ['getminor_492',['getMinor',['../class_nim_b_l_e_beacon.html#a4bc9fd3a68b4b1772dc4d102573c6788',1,'NimBLEBeacon']]], + ['getmtu_493',['getMTU',['../class_nim_b_l_e_client.html#ab971537eec4e53d621598eb1c760af3a',1,'NimBLEClient::getMTU()'],['../class_nim_b_l_e_conn_info.html#a94796b6446ef40c0ae0d1f8af1ff9462',1,'NimBLEConnInfo::getMTU()'],['../class_nim_b_l_e_device.html#a5520cf3f544d571636eed162de394ec2',1,'NimBLEDevice::getMTU()']]], + ['getname_494',['getName',['../class_nim_b_l_e_advertised_device.html#ae6c6b48369d71a5998c1393c0d6a0179',1,'NimBLEAdvertisedDevice']]], + ['getnative_495',['getNative',['../class_nim_b_l_e_address.html#adef69a03a08303957d7e40eef07b4d80',1,'NimBLEAddress::getNative()'],['../class_nim_b_l_e_u_u_i_d.html#a62e8e924f971c62cc42760d8c7dd6f28',1,'NimBLEUUID::getNative()']]], + ['getnumbonds_496',['getNumBonds',['../class_nim_b_l_e_device.html#a7fe0f568c17130150660e6307851be48',1,'NimBLEDevice']]], + ['getpayload_497',['getPayload',['../class_nim_b_l_e_advertised_device.html#afacf7717a15b36af184cd957d397e384',1,'NimBLEAdvertisedDevice::getPayload()'],['../class_nim_b_l_e_advertisement_data.html#acbd638708c8b8b4663c09107bc38feb1',1,'NimBLEAdvertisementData::getPayload()']]], + ['getpayloadlength_498',['getPayloadLength',['../class_nim_b_l_e_advertised_device.html#ac7879f4aa0f2b069b1d3aff4809ae62c',1,'NimBLEAdvertisedDevice']]], + ['getpeeraddress_499',['getPeerAddress',['../class_nim_b_l_e_client.html#a0477ba593f0b7c0cfc4697efdba703eb',1,'NimBLEClient']]], + ['getpeerdevices_500',['getPeerDevices',['../class_nim_b_l_e_server.html#ab95c428ddc94eb019a26d91e70f5974b',1,'NimBLEServer']]], + ['getpeeridinfo_501',['getPeerIDInfo',['../class_nim_b_l_e_server.html#ad241eb42e9775fb2f8aaa87c9fb9a76b',1,'NimBLEServer']]], + ['getpeerinfo_502',['getPeerInfo',['../class_nim_b_l_e_server.html#a347c74f4ad6e2bcc2e301da11ae13e91',1,'NimBLEServer::getPeerInfo(size_t index)'],['../class_nim_b_l_e_server.html#ad91fbcb2717aa1969329f365692e1072',1,'NimBLEServer::getPeerInfo(const NimBLEAddress &address)']]], + ['getpeermtu_503',['getPeerMTU',['../class_nim_b_l_e_server.html#a9eb1f32b72ac93736585d6d89f393021',1,'NimBLEServer']]], + ['getpower_504',['getPower',['../class_nim_b_l_e_device.html#a34b50f12dc40ed47bdbb2b5ce4387a8c',1,'NimBLEDevice::getPower()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a42583c740bbdb9591422e8770f8bd0d5',1,'NimBLEEddystoneURL::getPower()']]], + ['getproperties_505',['getProperties',['../class_nim_b_l_e_characteristic.html#a79759a98d9bdb761cb12c1ea6f601afc',1,'NimBLECharacteristic']]], + ['getproximityuuid_506',['getProximityUUID',['../class_nim_b_l_e_beacon.html#a999ade63059620d619609676d85186ad',1,'NimBLEBeacon']]], + ['getremotecharacteristic_507',['getRemoteCharacteristic',['../class_nim_b_l_e_remote_descriptor.html#a529e80c6731f68f3598e015df7618cfe',1,'NimBLERemoteDescriptor']]], + ['getremoteservice_508',['getRemoteService',['../class_nim_b_l_e_remote_characteristic.html#a943183a55b020de9e09ac2cfaebcde32',1,'NimBLERemoteCharacteristic']]], + ['getresults_509',['getResults',['../class_nim_b_l_e_scan.html#a2ae53719546e2d410c816e12c56aad61',1,'NimBLEScan']]], + ['getrssi_510',['getRSSI',['../class_nim_b_l_e_advertised_device.html#acd42dfbc92a43fc90e933df975c029f3',1,'NimBLEAdvertisedDevice::getRSSI()'],['../class_nim_b_l_e_client.html#ae216993cf4eeb5780a104a8b14044f78',1,'NimBLEClient::getRssi()']]], + ['getscan_511',['getScan',['../class_nim_b_l_e_advertised_device.html#ad3931c72aaded3b594896c29b3691562',1,'NimBLEAdvertisedDevice::getScan()'],['../class_nim_b_l_e_device.html#af93d92316454b051125460056368baec',1,'NimBLEDevice::getScan()']]], + ['getseckeysize_512',['getSecKeySize',['../class_nim_b_l_e_conn_info.html#a278a8456f9d7df9cea7d776e61b36782',1,'NimBLEConnInfo']]], + ['getsecuritypasskey_513',['getSecurityPasskey',['../class_nim_b_l_e_device.html#aa03937eadda020643b536c5d08174d3a',1,'NimBLEDevice']]], + ['getserver_514',['getServer',['../class_nim_b_l_e_device.html#a41d4cc7c85cba0721c6649b001b31b4d',1,'NimBLEDevice::getServer()'],['../class_nim_b_l_e_service.html#af304386c4e067dd0eeb27b86c0e59d0f',1,'NimBLEService::getServer()']]], + ['getservice_515',['getService',['../class_nim_b_l_e_characteristic.html#a84aa251a612810ec8d07e77ab03cb483',1,'NimBLECharacteristic::getService()'],['../class_nim_b_l_e_client.html#ae22379ab10bd82932d2303fb3753c366',1,'NimBLEClient::getService(const char *uuid)'],['../class_nim_b_l_e_client.html#ad8ba10522d79af1136019606802f0978',1,'NimBLEClient::getService(const NimBLEUUID &uuid)']]], + ['getservicebyhandle_516',['getServiceByHandle',['../class_nim_b_l_e_server.html#a1ff39fc5235d1374d99b4f3d3acb5ddb',1,'NimBLEServer']]], + ['getservicebyuuid_517',['getServiceByUUID',['../class_nim_b_l_e_server.html#a87ebb3d230e98a6b3cf85bc403d227e0',1,'NimBLEServer::getServiceByUUID(const char *uuid, uint16_t instanceId=0)'],['../class_nim_b_l_e_server.html#ac28df6ead4d7151df3e84f4fa991eb1f',1,'NimBLEServer::getServiceByUUID(const NimBLEUUID &uuid, uint16_t instanceId=0)']]], + ['getservicedata_518',['getServiceData',['../class_nim_b_l_e_advertised_device.html#aecb3e30a94abd59401cafb70a5903abb',1,'NimBLEAdvertisedDevice::getServiceData(uint8_t index=0)'],['../class_nim_b_l_e_advertised_device.html#acf4398ca81f800445092ccc77deaf00b',1,'NimBLEAdvertisedDevice::getServiceData(const NimBLEUUID &uuid)'],['../class_nim_b_l_e_advertised_device.html#a9017ce5b59bdae3cebf33c54f28cee70',1,'NimBLEAdvertisedDevice::getServiceData(uint8_t index=0, bool skipSizeCheck=false)'],['../class_nim_b_l_e_advertised_device.html#a9ca1c022e10764ec72850ff3a011b009',1,'NimBLEAdvertisedDevice::getServiceData(const NimBLEUUID &uuid, bool skipSizeCheck=false)']]], + ['getservicedatacount_519',['getServiceDataCount',['../class_nim_b_l_e_advertised_device.html#a5fc9be9de9209622259f8d28b01825df',1,'NimBLEAdvertisedDevice']]], + ['getservicedatauuid_520',['getServiceDataUUID',['../class_nim_b_l_e_advertised_device.html#a4f89e99dffdfde45c1cafff74a20a95f',1,'NimBLEAdvertisedDevice']]], + ['getservices_521',['getServices',['../class_nim_b_l_e_client.html#acb9007569b3bb13b3b49f3c4cb47b21a',1,'NimBLEClient']]], + ['getserviceuuid_522',['getServiceUUID',['../class_nim_b_l_e_advertised_device.html#ab53f862df15953d19ba7a45d4cf51b46',1,'NimBLEAdvertisedDevice']]], + ['getserviceuuidcount_523',['getServiceUUIDCount',['../class_nim_b_l_e_advertised_device.html#a6dc4484bc89ea5560a51c349b5300049',1,'NimBLEAdvertisedDevice']]], + ['getsignalpower_524',['getSignalPower',['../class_nim_b_l_e_beacon.html#a4eb27b3e447f8f0b44128f77933be668',1,'NimBLEBeacon']]], + ['getstringvalue_525',['getStringValue',['../class_nim_b_l_e_descriptor.html#a7153e051e5808469c23e2207fa6711db',1,'NimBLEDescriptor']]], + ['getsubscribedcount_526',['getSubscribedCount',['../class_nim_b_l_e_characteristic.html#aced225d46153b6969f6ded30c0190e39',1,'NimBLECharacteristic']]], + ['gettargetaddress_527',['getTargetAddress',['../class_nim_b_l_e_advertised_device.html#a599cad9a3f3d535049c87a911bc1b14d',1,'NimBLEAdvertisedDevice']]], + ['gettargetaddresscount_528',['getTargetAddressCount',['../class_nim_b_l_e_advertised_device.html#a9352a7760d9e4af0561d7923fcbe2535',1,'NimBLEAdvertisedDevice']]], + ['gettemp_529',['getTemp',['../class_nim_b_l_e_eddystone_t_l_m.html#abda56940f7d9f7ccef2629b75880dd5f',1,'NimBLEEddystoneTLM']]], + ['gettime_530',['getTime',['../class_nim_b_l_e_eddystone_t_l_m.html#ab1c4a13c2f57a6e0293810dd09be3db3',1,'NimBLEEddystoneTLM']]], + ['gettimestamp_531',['getTimestamp',['../class_nim_b_l_e_advertised_device.html#a1855415f3c60bc88d62e9206fe6ed75a',1,'NimBLEAdvertisedDevice']]], + ['gettxpower_532',['getTXPower',['../class_nim_b_l_e_advertised_device.html#afee346437447173eed1b9edf1de70f34',1,'NimBLEAdvertisedDevice']]], + ['gettype_533',['getType',['../class_nim_b_l_e_address.html#a18f8361ed20146cbc374a246d87015eb',1,'NimBLEAddress']]], + ['geturi_534',['getURI',['../class_nim_b_l_e_advertised_device.html#ad65f8040a142f8d6d0763d4876f0d22e',1,'NimBLEAdvertisedDevice']]], + ['geturl_535',['getURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a0109874399f3e70a72ee9f4a909710e1',1,'NimBLEEddystoneURL']]], + ['getuuid_536',['getUUID',['../class_nim_b_l_e_characteristic.html#a28b03617fe753133582ba4e58c60e52e',1,'NimBLECharacteristic::getUUID()'],['../class_nim_b_l_e_descriptor.html#abc5398a570edc197fbadad3f5b45e186',1,'NimBLEDescriptor::getUUID()'],['../class_nim_b_l_e_eddystone_t_l_m.html#aa511375f22952c0f5846a51e6c2511c5',1,'NimBLEEddystoneTLM::getUUID()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a1fde0fcf7d90f79e0eb718967518247a',1,'NimBLEEddystoneURL::getUUID()'],['../class_nim_b_l_e_remote_characteristic.html#ad62c63468995a24d736c4176c9607eeb',1,'NimBLERemoteCharacteristic::getUUID()'],['../class_nim_b_l_e_remote_descriptor.html#ace6b19cd3d9aa8226b4c17371616ad58',1,'NimBLERemoteDescriptor::getUUID()'],['../class_nim_b_l_e_remote_service.html#a565ed7d306645772d4e03ca65a07f7e5',1,'NimBLERemoteService::getUUID()'],['../class_nim_b_l_e_service.html#ab000b7d2b7dbb3978a5a8c1e17b1d649',1,'NimBLEService::getUUID()']]], + ['getvalue_537',['getValue',['../class_nim_b_l_e_characteristic.html#a37e908d114f6ad2b4bf19c7cc4db9c54',1,'NimBLECharacteristic::getValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_characteristic.html#a7d09c29b26362f6ddcaf51a9c9dc8be4',1,'NimBLECharacteristic::getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_client.html#afd7b5c40f3c190a542f25b0b9e4afaf3',1,'NimBLEClient::getValue()'],['../class_nim_b_l_e_descriptor.html#ac54fd0830ceb64b91037b623dbc427b5',1,'NimBLEDescriptor::getValue()'],['../class_nim_b_l_e_remote_characteristic.html#add1a1daed14b5f3e729e284dbd369257',1,'NimBLERemoteCharacteristic::getValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_remote_characteristic.html#a74ad8484cbc88d8eb36d4684233c538b',1,'NimBLERemoteCharacteristic::getValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_remote_service.html#a4a9b63b4e5cedb51a7748a88daeb518b',1,'NimBLERemoteService::getValue()']]], + ['getversion_538',['getVersion',['../class_nim_b_l_e_eddystone_t_l_m.html#ae9f17d2c1e4150775881babb73f0b10c',1,'NimBLEEddystoneTLM']]], + ['getvolt_539',['getVolt',['../class_nim_b_l_e_eddystone_t_l_m.html#af9862f983df6f48a96220e936d13d17b',1,'NimBLEEddystoneTLM']]], + ['getwhitelistaddress_540',['getWhiteListAddress',['../class_nim_b_l_e_device.html#a4a2229e9e517b84773e65c75124b0789',1,'NimBLEDevice']]], + ['getwhitelistcount_541',['getWhiteListCount',['../class_nim_b_l_e_device.html#ab28cc2ec59fc9e62d05826633f53d2a0',1,'NimBLEDevice']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 0000000..437a604 --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 0000000..5e2539d --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['haveadvinterval_542',['haveAdvInterval',['../class_nim_b_l_e_advertised_device.html#aa8b4660e5d123f16a07e0fefa3bcf4bc',1,'NimBLEAdvertisedDevice']]], + ['haveappearance_543',['haveAppearance',['../class_nim_b_l_e_advertised_device.html#accc6713f85db6174cfe8436059aa8bf1',1,'NimBLEAdvertisedDevice']]], + ['haveconnparams_544',['haveConnParams',['../class_nim_b_l_e_advertised_device.html#a3274624943c942f357c6f8d489481bc8',1,'NimBLEAdvertisedDevice']]], + ['havemanufacturerdata_545',['haveManufacturerData',['../class_nim_b_l_e_advertised_device.html#abe58f5fde119d8c0a8fb85ba1e8cc5c9',1,'NimBLEAdvertisedDevice']]], + ['havename_546',['haveName',['../class_nim_b_l_e_advertised_device.html#a86805fecd4432335feecf77bb6a0f12e',1,'NimBLEAdvertisedDevice']]], + ['haverssi_547',['haveRSSI',['../class_nim_b_l_e_advertised_device.html#a611802e8898e422842d60486b60b8c42',1,'NimBLEAdvertisedDevice']]], + ['haveservicedata_548',['haveServiceData',['../class_nim_b_l_e_advertised_device.html#afba3425cfcfc12eca219a1abe5f6732c',1,'NimBLEAdvertisedDevice']]], + ['haveserviceuuid_549',['haveServiceUUID',['../class_nim_b_l_e_advertised_device.html#a5c4aae7e27c27201846ba4e15448e557',1,'NimBLEAdvertisedDevice']]], + ['havetargetaddress_550',['haveTargetAddress',['../class_nim_b_l_e_advertised_device.html#a1172d33a77bc018e314be78664b222b9',1,'NimBLEAdvertisedDevice']]], + ['havetxpower_551',['haveTXPower',['../class_nim_b_l_e_advertised_device.html#af5293030ef439856c195caa3aba86543',1,'NimBLEAdvertisedDevice']]], + ['haveuri_552',['haveURI',['../class_nim_b_l_e_advertised_device.html#a83ebd08b512dc936b1059db7a69b9ead',1,'NimBLEAdvertisedDevice']]], + ['hidcontrol_553',['hidControl',['../class_nim_b_l_e_h_i_d_device.html#a5c42da43e0b8dfcd1d045e8a86d0b5a2',1,'NimBLEHIDDevice']]], + ['hidinfo_554',['hidInfo',['../class_nim_b_l_e_h_i_d_device.html#a33fc2bfc990ecd250859ca8f34a4314e',1,'NimBLEHIDDevice']]], + ['hidservice_555',['hidService',['../class_nim_b_l_e_h_i_d_device.html#ae80cf58c481c25bd6d7392a43b6fa48b',1,'NimBLEHIDDevice']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 0000000..38ecf56 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 0000000..31e5310 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['indicate_556',['indicate',['../class_nim_b_l_e_characteristic.html#a2ce9f62ecc3d1644ef4d58efe7a3c434',1,'NimBLECharacteristic']]], + ['init_557',['init',['../class_nim_b_l_e_device.html#a674d2e68d4ba0e3f84d7993f9da7d15b',1,'NimBLEDevice']]], + ['inputreport_558',['inputReport',['../class_nim_b_l_e_h_i_d_device.html#a91cfe81b47cea229e9bbe3c55be33701',1,'NimBLEHIDDevice']]], + ['isadvertising_559',['isAdvertising',['../class_nim_b_l_e_advertising.html#ac257ab68520a244cb6494d793f9b6c2a',1,'NimBLEAdvertising']]], + ['isadvertisingservice_560',['isAdvertisingService',['../class_nim_b_l_e_advertised_device.html#a37ad095c066aa231a52a7259734c9bce',1,'NimBLEAdvertisedDevice']]], + ['isauthenticated_561',['isAuthenticated',['../class_nim_b_l_e_conn_info.html#a7229e53d21c9c6b5b9fb5bd232862c89',1,'NimBLEConnInfo']]], + ['isbonded_562',['isBonded',['../class_nim_b_l_e_conn_info.html#af281a25921d36dc75cf1e37561940125',1,'NimBLEConnInfo::isBonded()'],['../class_nim_b_l_e_device.html#a16bf4f5394735ed8d7f0bb32ca5d269a',1,'NimBLEDevice::isBonded()']]], + ['isconnected_563',['isConnected',['../class_nim_b_l_e_client.html#af1603da59b829f75b162ac4a65ce181c',1,'NimBLEClient']]], + ['isencrypted_564',['isEncrypted',['../class_nim_b_l_e_conn_info.html#a8ecf3c58da6ffb529215ce6f13c96744',1,'NimBLEConnInfo']]], + ['isignored_565',['isIgnored',['../class_nim_b_l_e_device.html#a14ebc6070a261d7a6518ad435b673962',1,'NimBLEDevice']]], + ['ismaster_566',['isMaster',['../class_nim_b_l_e_conn_info.html#a63ff245a8848bf1cc5839adee7aa41c4',1,'NimBLEConnInfo']]], + ['isscanning_567',['isScanning',['../class_nim_b_l_e_scan.html#ab788ad282fdbf4467302f6ad2d4d6016',1,'NimBLEScan']]], + ['isslave_568',['isSlave',['../class_nim_b_l_e_conn_info.html#abfb91b833cb200f795bc63d5affff6af',1,'NimBLEConnInfo']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 0000000..5c952f0 --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 0000000..5b70564 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['manufacturer_569',['manufacturer',['../class_nim_b_l_e_h_i_d_device.html#a3e5b8291ca88d85a352429415abaec9c',1,'NimBLEHIDDevice::manufacturer()'],['../class_nim_b_l_e_h_i_d_device.html#ac04ed297cf6adbec210873739d2dc74d',1,'NimBLEHIDDevice::manufacturer(std::string name)']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 0000000..c6fdd86 --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 0000000..3d299cb --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['nimbleaddress_570',['NimBLEAddress',['../class_nim_b_l_e_address.html#a19058addb94417e2921cade37a79d04c',1,'NimBLEAddress::NimBLEAddress()'],['../class_nim_b_l_e_address.html#ab8c9105b825ed0be5d1bbab966f2a0cf',1,'NimBLEAddress::NimBLEAddress(ble_addr_t address)'],['../class_nim_b_l_e_address.html#a92637adc75c8010bcf34e2dd8f16cd94',1,'NimBLEAddress::NimBLEAddress(uint8_t address[6], uint8_t type=BLE_ADDR_PUBLIC)'],['../class_nim_b_l_e_address.html#aeb6dafff197dc01e2713bbf43e21f1f3',1,'NimBLEAddress::NimBLEAddress(const std::string &stringAddress, uint8_t type=BLE_ADDR_PUBLIC)'],['../class_nim_b_l_e_address.html#a139790cf03d8297e253e5353a0213bff',1,'NimBLEAddress::NimBLEAddress(const uint64_t &address, uint8_t type=BLE_ADDR_PUBLIC)']]], + ['nimbleadvertiseddevice_571',['NimBLEAdvertisedDevice',['../class_nim_b_l_e_advertised_device.html#ab8972714ecd578fca51fb63d9834a34e',1,'NimBLEAdvertisedDevice']]], + ['nimbleadvertising_572',['NimBLEAdvertising',['../class_nim_b_l_e_advertising.html#abe6258a917243a4567c3d6eece2ddcdd',1,'NimBLEAdvertising']]], + ['nimblebeacon_573',['NimBLEBeacon',['../class_nim_b_l_e_beacon.html#ac99e1fb4ef4795785a655b117dabdd37',1,'NimBLEBeacon']]], + ['nimblecharacteristic_574',['NimBLECharacteristic',['../class_nim_b_l_e_characteristic.html#a942b2d29d77fcef233549d0c4fd798da',1,'NimBLECharacteristic::NimBLECharacteristic(const char *uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)'],['../class_nim_b_l_e_characteristic.html#acdbd57f7e97646403e520edc35c34c8b',1,'NimBLECharacteristic::NimBLECharacteristic(const NimBLEUUID &uuid, uint16_t properties=NIMBLE_PROPERTY::READ|NIMBLE_PROPERTY::WRITE, NimBLEService *pService=nullptr)']]], + ['nimbledescriptor_575',['NimBLEDescriptor',['../class_nim_b_l_e_descriptor.html#a3cf995352eb1b1c212a7911a05c33b25',1,'NimBLEDescriptor::NimBLEDescriptor(const char *uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)'],['../class_nim_b_l_e_descriptor.html#a7ecb634b7d6390677cad232bd6be6638',1,'NimBLEDescriptor::NimBLEDescriptor(NimBLEUUID uuid, uint16_t properties, uint16_t max_len, NimBLECharacteristic *pCharacteristic=nullptr)']]], + ['nimbleeddystonetlm_576',['NimBLEEddystoneTLM',['../class_nim_b_l_e_eddystone_t_l_m.html#a4d87d0b11420af2ae04bc4e6ce2f8607',1,'NimBLEEddystoneTLM']]], + ['nimbleeddystoneurl_577',['NimBLEEddystoneURL',['../class_nim_b_l_e_eddystone_u_r_l.html#ae102214d20e32e31c9c84d723f67df15',1,'NimBLEEddystoneURL']]], + ['nimblehiddevice_578',['NimBLEHIDDevice',['../class_nim_b_l_e_h_i_d_device.html#a95b4935280494ffa24bfae89753f199a',1,'NimBLEHIDDevice']]], + ['nimbleservice_579',['NimBLEService',['../class_nim_b_l_e_service.html#a2f21520dead11ac352562c7b232bc854',1,'NimBLEService::NimBLEService(const char *uuid, uint16_t numHandles, NimBLEServer *pServer)'],['../class_nim_b_l_e_service.html#a66b3bc41ed067ea7f5f00a8af53dd1ef',1,'NimBLEService::NimBLEService(const NimBLEUUID &uuid, uint16_t numHandles, NimBLEServer *pServer)']]], + ['nimbleuuid_580',['NimBLEUUID',['../class_nim_b_l_e_u_u_i_d.html#a6fd3849062c96cee3d6cd00544fadfac',1,'NimBLEUUID::NimBLEUUID(const std::string &uuid)'],['../class_nim_b_l_e_u_u_i_d.html#aadbfc5504e63cd91c59c778607b8dd92',1,'NimBLEUUID::NimBLEUUID(uint16_t uuid)'],['../class_nim_b_l_e_u_u_i_d.html#ab4e1658b1c414edb9aea5cf5140fa461',1,'NimBLEUUID::NimBLEUUID(uint32_t uuid)'],['../class_nim_b_l_e_u_u_i_d.html#ac9fbd00e7ffeb334571016c61bca9286',1,'NimBLEUUID::NimBLEUUID(const ble_uuid128_t *uuid)'],['../class_nim_b_l_e_u_u_i_d.html#a6eda1a14d4590dd25e6a2f7a49ad528e',1,'NimBLEUUID::NimBLEUUID(const uint8_t *pData, size_t size, bool msbFirst)'],['../class_nim_b_l_e_u_u_i_d.html#a399dca7d70ee262aa155b39d357321b1',1,'NimBLEUUID::NimBLEUUID(uint32_t first, uint16_t second, uint16_t third, uint64_t fourth)'],['../class_nim_b_l_e_u_u_i_d.html#abec7913c5989c3620c423c6717111453',1,'NimBLEUUID::NimBLEUUID()']]], + ['notify_581',['notify',['../class_nim_b_l_e_characteristic.html#aa45461059e1992c816e32c371d17e813',1,'NimBLECharacteristic']]] +]; diff --git a/search/functions_b.html b/search/functions_b.html new file mode 100644 index 0000000..52a6a34 --- /dev/null +++ b/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 0000000..d774b43 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['onauthenticationcomplete_582',['onAuthenticationComplete',['../class_nim_b_l_e_client_callbacks.html#a40fb2013fc4ebe51f770699377922065',1,'NimBLEClientCallbacks::onAuthenticationComplete()'],['../class_nim_b_l_e_security_callbacks.html#a22a8079906070a13583daafd1521a125',1,'NimBLESecurityCallbacks::onAuthenticationComplete()'],['../class_nim_b_l_e_server_callbacks.html#a6a18155a8d3fa0980fab51f08ce5de2d',1,'NimBLEServerCallbacks::onAuthenticationComplete()']]], + ['onconfirmpin_583',['onConfirmPIN',['../class_nim_b_l_e_client_callbacks.html#ace39ee838319e415bd0fc5c72a653ff0',1,'NimBLEClientCallbacks::onConfirmPIN()'],['../class_nim_b_l_e_security_callbacks.html#a2ce6a03693a43a55e51598d8b2654a92',1,'NimBLESecurityCallbacks::onConfirmPIN()'],['../class_nim_b_l_e_server_callbacks.html#a5327d11f249e8f020b59529b634e0c91',1,'NimBLEServerCallbacks::onConfirmPIN()']]], + ['onconnect_584',['onConnect',['../class_nim_b_l_e_client_callbacks.html#a96de53d9745f243d544cd89498f979ae',1,'NimBLEClientCallbacks::onConnect()'],['../class_nim_b_l_e_server_callbacks.html#a80348ab2d08bbec7a6910c96662fc1d4',1,'NimBLEServerCallbacks::onConnect(NimBLEServer *pServer)'],['../class_nim_b_l_e_server_callbacks.html#a76f32bb22a34b33ee2a934f101d925b1',1,'NimBLEServerCallbacks::onConnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)']]], + ['onconnparamsupdaterequest_585',['onConnParamsUpdateRequest',['../class_nim_b_l_e_client_callbacks.html#a8bc6a072e1cc974ef084eb2cad18dac6',1,'NimBLEClientCallbacks']]], + ['ondisconnect_586',['onDisconnect',['../class_nim_b_l_e_client_callbacks.html#a3e5571e4d5ee53c5c4b25ceaac66b808',1,'NimBLEClientCallbacks::onDisconnect()'],['../class_nim_b_l_e_server_callbacks.html#a3dbf72280a895e80e0972599a7373ca0',1,'NimBLEServerCallbacks::onDisconnect(NimBLEServer *pServer)'],['../class_nim_b_l_e_server_callbacks.html#a60e1ad35979434000d04fdbb374acc18',1,'NimBLEServerCallbacks::onDisconnect(NimBLEServer *pServer, ble_gap_conn_desc *desc)']]], + ['onmtuchange_587',['onMTUChange',['../class_nim_b_l_e_server_callbacks.html#ab4533f1317b36216c3c86695613c80a6',1,'NimBLEServerCallbacks']]], + ['onnotify_588',['onNotify',['../class_nim_b_l_e_characteristic_callbacks.html#a185eb5298cc042f1aceeba21caf0dcc9',1,'NimBLECharacteristicCallbacks']]], + ['onpasskeynotify_589',['onPassKeyNotify',['../class_nim_b_l_e_security_callbacks.html#aa984ec6f29741b49bdd7dbfde60177be',1,'NimBLESecurityCallbacks']]], + ['onpasskeyrequest_590',['onPassKeyRequest',['../class_nim_b_l_e_client_callbacks.html#a9850764aec546747537c6baa2a4622f5',1,'NimBLEClientCallbacks::onPassKeyRequest()'],['../class_nim_b_l_e_security_callbacks.html#a1cfc9c48c02aece1736f9070dc6ff90f',1,'NimBLESecurityCallbacks::onPassKeyRequest()'],['../class_nim_b_l_e_server_callbacks.html#ad2c3035c3a284d03673ff1b5aeaa0fca',1,'NimBLEServerCallbacks::onPassKeyRequest()']]], + ['onread_591',['onRead',['../class_nim_b_l_e_characteristic_callbacks.html#a523904b8d39e364db094f623403bad93',1,'NimBLECharacteristicCallbacks::onRead(NimBLECharacteristic *pCharacteristic)'],['../class_nim_b_l_e_characteristic_callbacks.html#acae83420ae378277c225ce465f979f88',1,'NimBLECharacteristicCallbacks::onRead(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)'],['../class_nim_b_l_e_descriptor_callbacks.html#a6b13d2a8447f50a089b869cea9fcdcbc',1,'NimBLEDescriptorCallbacks::onRead()']]], + ['onresult_592',['onResult',['../class_nim_b_l_e_advertised_device_callbacks.html#af6a25e1bb773a147536b1785b2aae606',1,'NimBLEAdvertisedDeviceCallbacks']]], + ['onsecurityrequest_593',['onSecurityRequest',['../class_nim_b_l_e_security_callbacks.html#a620de166c3fe26027871d18535839cdd',1,'NimBLESecurityCallbacks']]], + ['onstatus_594',['onStatus',['../class_nim_b_l_e_characteristic_callbacks.html#ab17e7c61723a33cd3c922e3ca9c20f1e',1,'NimBLECharacteristicCallbacks']]], + ['onsubscribe_595',['onSubscribe',['../class_nim_b_l_e_characteristic_callbacks.html#a3c0c0f524bc0d00d24a7c5ea92c5cb7e',1,'NimBLECharacteristicCallbacks']]], + ['onwhitelist_596',['onWhiteList',['../class_nim_b_l_e_device.html#ae51e2d4d6169a61133178a1b0d6b5b45',1,'NimBLEDevice']]], + ['onwrite_597',['onWrite',['../class_nim_b_l_e_characteristic_callbacks.html#aac7caf4a80da061b5beda5ebcd214fc3',1,'NimBLECharacteristicCallbacks::onWrite(NimBLECharacteristic *pCharacteristic)'],['../class_nim_b_l_e_characteristic_callbacks.html#a303a44a2efad76d54d67955fcb7b05d7',1,'NimBLECharacteristicCallbacks::onWrite(NimBLECharacteristic *pCharacteristic, ble_gap_conn_desc *desc)'],['../class_nim_b_l_e_descriptor_callbacks.html#a7081bf2c4f22225c4715e09762be40ed',1,'NimBLEDescriptorCallbacks::onWrite()']]], + ['operator_20uint64_5ft_598',['operator uint64_t',['../class_nim_b_l_e_address.html#aa7d5d8d323d2846bf2082b83381bd7c8',1,'NimBLEAddress']]], + ['operator_21_3d_599',['operator!=',['../class_nim_b_l_e_address.html#ae243127c78af69b26dfa225effd806ce',1,'NimBLEAddress::operator!=()'],['../class_nim_b_l_e_u_u_i_d.html#abeee22e6661f7533f05802e1f89fedfe',1,'NimBLEUUID::operator!=()']]], + ['operator_3d_3d_600',['operator==',['../class_nim_b_l_e_address.html#a87e8ccc81c2d83bf0503166939319164',1,'NimBLEAddress::operator==()'],['../class_nim_b_l_e_u_u_i_d.html#a46484dcb0a1bfef6a8afe97f49f97875',1,'NimBLEUUID::operator==()']]], + ['outputreport_601',['outputReport',['../class_nim_b_l_e_h_i_d_device.html#ac1e63972c6a77665a6bbc76f9ff4a717',1,'NimBLEHIDDevice']]], + ['string_602',['string',['../class_nim_b_l_e_address.html#a5398ed7c6d8e95a7527103095e07093a',1,'NimBLEAddress::string()'],['../class_nim_b_l_e_u_u_i_d.html#a4315e760bf763333022658ff980f3048',1,'NimBLEUUID::string()']]] +]; diff --git a/search/functions_c.html b/search/functions_c.html new file mode 100644 index 0000000..e88e96c --- /dev/null +++ b/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 0000000..914c429 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['pnp_603',['pnp',['../class_nim_b_l_e_h_i_d_device.html#a5309df317aa42de7ced2e34219b6666a',1,'NimBLEHIDDevice']]], + ['protocolmode_604',['protocolMode',['../class_nim_b_l_e_h_i_d_device.html#a1118c1e730f38b8b17795c8eb41a0861',1,'NimBLEHIDDevice']]] +]; diff --git a/search/functions_d.html b/search/functions_d.html new file mode 100644 index 0000000..a47af2d --- /dev/null +++ b/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 0000000..b712ef4 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['readfloat_605',['readFloat',['../class_nim_b_l_e_remote_characteristic.html#a81f39759d48a8fb792c94e4b3b455eef',1,'NimBLERemoteCharacteristic']]], + ['readuint16_606',['readUInt16',['../class_nim_b_l_e_remote_characteristic.html#a181c54862bc422d8ad0b326af675922d',1,'NimBLERemoteCharacteristic::readUInt16()'],['../class_nim_b_l_e_remote_descriptor.html#a14351ea51b7b04f91b71e388881edd53',1,'NimBLERemoteDescriptor::readUInt16()']]], + ['readuint32_607',['readUInt32',['../class_nim_b_l_e_remote_characteristic.html#a71793454ffab034f87af3a5e9677a63d',1,'NimBLERemoteCharacteristic::readUInt32()'],['../class_nim_b_l_e_remote_descriptor.html#a219606f84d63bc02f093051d66f05204',1,'NimBLERemoteDescriptor::readUInt32()']]], + ['readuint8_608',['readUInt8',['../class_nim_b_l_e_remote_characteristic.html#ade5c6ae280c3cf36c9905be23df8f080',1,'NimBLERemoteCharacteristic::readUInt8()'],['../class_nim_b_l_e_remote_descriptor.html#ab07e86707a91e48f68e9de55686e939b',1,'NimBLERemoteDescriptor::readUInt8()']]], + ['readvalue_609',['readValue',['../class_nim_b_l_e_remote_characteristic.html#a7e10fa37095d7c80dc36c768fe783e67',1,'NimBLERemoteCharacteristic::readValue(time_t *timestamp=nullptr)'],['../class_nim_b_l_e_remote_characteristic.html#a463760cabc9ca104a6fe094eb942fec0',1,'NimBLERemoteCharacteristic::readValue(time_t *timestamp=nullptr, bool skipSizeCheck=false)'],['../class_nim_b_l_e_remote_descriptor.html#a3b6952aa46b3541fb0a8247e4e542257',1,'NimBLERemoteDescriptor::readValue()'],['../class_nim_b_l_e_remote_descriptor.html#ac4e3a21818903b69ace41c36a58d3c46',1,'NimBLERemoteDescriptor::readValue(bool skipSizeCheck=false)']]], + ['registerfornotify_610',['registerForNotify',['../class_nim_b_l_e_remote_characteristic.html#ab4f54eabe90a416546b7b3fc3477f49c',1,'NimBLERemoteCharacteristic']]], + ['removecharacteristic_611',['removeCharacteristic',['../class_nim_b_l_e_service.html#af992d0c27e3a559789fb77fc46623234',1,'NimBLEService']]], + ['removedescriptor_612',['removeDescriptor',['../class_nim_b_l_e_characteristic.html#a2c0ed8932ee257a8632e3d72e353489b',1,'NimBLECharacteristic']]], + ['removeignored_613',['removeIgnored',['../class_nim_b_l_e_device.html#a0374ab8e323277bd8498609559966924',1,'NimBLEDevice']]], + ['removeservice_614',['removeService',['../class_nim_b_l_e_server.html#a00c92f62f41ec1c499dfaf042b487d75',1,'NimBLEServer']]], + ['removeserviceuuid_615',['removeServiceUUID',['../class_nim_b_l_e_advertising.html#a725437c00152ff57ef1e21bdf7be980d',1,'NimBLEAdvertising']]], + ['reportmap_616',['reportMap',['../class_nim_b_l_e_h_i_d_device.html#a5e996a1668785f7a978f9874b4ff3b3e',1,'NimBLEHIDDevice']]], + ['reset_617',['reset',['../class_nim_b_l_e_advertising.html#a545b505ea76396c33133d41a78fad5b8',1,'NimBLEAdvertising']]], + ['returncodetostring_618',['returnCodeToString',['../class_nim_b_l_e_utils.html#a9885eda5c51477aefc0ba9e1c96d5a34',1,'NimBLEUtils']]] +]; diff --git a/search/functions_e.html b/search/functions_e.html new file mode 100644 index 0000000..2c24e2e --- /dev/null +++ b/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 0000000..02f5f44 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,85 @@ +var searchData= +[ + ['secureconnection_619',['secureConnection',['../class_nim_b_l_e_client.html#a79935ecbe94f2a41e0106d011edafac4',1,'NimBLEClient']]], + ['setactivescan_620',['setActiveScan',['../class_nim_b_l_e_scan.html#a7d24e77d6b339552b6ac16effdb54910',1,'NimBLEScan']]], + ['setadvertiseddevicecallbacks_621',['setAdvertisedDeviceCallbacks',['../class_nim_b_l_e_scan.html#ab275a9fec35c8957acf47689056d94af',1,'NimBLEScan']]], + ['setadvertisementdata_622',['setAdvertisementData',['../class_nim_b_l_e_advertising.html#af7083f58717b7e76d90d367f00a0ef08',1,'NimBLEAdvertising']]], + ['setadvertisementtype_623',['setAdvertisementType',['../class_nim_b_l_e_advertising.html#a68d54f11b47b9993322efec1d07c3519',1,'NimBLEAdvertising']]], + ['setappearance_624',['setAppearance',['../class_nim_b_l_e_advertisement_data.html#a0f209913ef9f3dfb5be8db39567b4f32',1,'NimBLEAdvertisementData::setAppearance()'],['../class_nim_b_l_e_advertising.html#aa0d30dfb57670cc8180e17dffddad416',1,'NimBLEAdvertising::setAppearance()']]], + ['setauthenticationmode_625',['setAuthenticationMode',['../class_nim_b_l_e_security.html#a5cf0d3672a16f557032bcbf39a9e22f2',1,'NimBLESecurity']]], + ['setbatterylevel_626',['setBatteryLevel',['../class_nim_b_l_e_h_i_d_device.html#a84e3127a05f7e6a44761ec4a9e7668e3',1,'NimBLEHIDDevice']]], + ['setcallbacks_627',['setCallbacks',['../class_nim_b_l_e_characteristic.html#a29dc2505e1d3b4a7d6800d1547965d17',1,'NimBLECharacteristic::setCallbacks()'],['../class_nim_b_l_e_descriptor.html#aa9cb8727f9e17cf8050cf619e5fe3096',1,'NimBLEDescriptor::setCallbacks()'],['../class_nim_b_l_e_server.html#a485c90ce36275f9e4ec26a7f3d348cd9',1,'NimBLEServer::setCallbacks()']]], + ['setcapability_628',['setCapability',['../class_nim_b_l_e_security.html#a1bb7902d5ceffaca86bd7638a74e35e3',1,'NimBLESecurity']]], + ['setclientcallbacks_629',['setClientCallbacks',['../class_nim_b_l_e_client.html#aeede4deef7421b9121387a786c07820c',1,'NimBLEClient']]], + ['setcompleteservices_630',['setCompleteServices',['../class_nim_b_l_e_advertisement_data.html#a67fd95e586559b73964d5739051f3822',1,'NimBLEAdvertisementData']]], + ['setcompleteservices16_631',['setCompleteServices16',['../class_nim_b_l_e_advertisement_data.html#a50a2584346208ef28274eeecc5befffb',1,'NimBLEAdvertisementData']]], + ['setcompleteservices32_632',['setCompleteServices32',['../class_nim_b_l_e_advertisement_data.html#a712aa09a4d7f2b3cae9b2f1f1be6372f',1,'NimBLEAdvertisementData']]], + ['setconnectionparams_633',['setConnectionParams',['../class_nim_b_l_e_client.html#a17718339f76eb621db0d7919c73b9267',1,'NimBLEClient']]], + ['setconnecttimeout_634',['setConnectTimeout',['../class_nim_b_l_e_client.html#a4068b29a9bd12e3110465908864dd20e',1,'NimBLEClient']]], + ['setcount_635',['setCount',['../class_nim_b_l_e_eddystone_t_l_m.html#a6d033c09a513b2dfdad6f1b962b906a8',1,'NimBLEEddystoneTLM']]], + ['setcustomgaphandler_636',['setCustomGapHandler',['../class_nim_b_l_e_device.html#a8d4e1013815e7b021029f447f1702833',1,'NimBLEDevice']]], + ['setdata_637',['setData',['../class_nim_b_l_e_beacon.html#a92292c8b1f5ba0097f063ff6e60934ff',1,'NimBLEBeacon::setData()'],['../class_nim_b_l_e_eddystone_t_l_m.html#a160e33218dc7fb33f678cda1605da52e',1,'NimBLEEddystoneTLM::setData()'],['../class_nim_b_l_e_eddystone_u_r_l.html#ada3ac4a544b8565635871f39f1593811',1,'NimBLEEddystoneURL::setData()']]], + ['setdescription_638',['setDescription',['../class_nim_b_l_e2904.html#a498c863cb3fbf92eecc23f9f8856037c',1,'NimBLE2904']]], + ['setduplicatefilter_639',['setDuplicateFilter',['../class_nim_b_l_e_scan.html#ac40563af803f3b9ab88398c7f30e21bb',1,'NimBLEScan']]], + ['setexponent_640',['setExponent',['../class_nim_b_l_e2904.html#ab1c53f99246f67dca1d63b812bef631d',1,'NimBLE2904']]], + ['setfilterpolicy_641',['setFilterPolicy',['../class_nim_b_l_e_scan.html#a4248aabb5da67953eadab2a6f834d967',1,'NimBLEScan']]], + ['setflags_642',['setFlags',['../class_nim_b_l_e_advertisement_data.html#a73766a872477512bd750c773d96ca4e2',1,'NimBLEAdvertisementData']]], + ['setformat_643',['setFormat',['../class_nim_b_l_e2904.html#ab7f21651b4493fd3daaa0f1545032ff1',1,'NimBLE2904']]], + ['setinitencryptionkey_644',['setInitEncryptionKey',['../class_nim_b_l_e_security.html#adfc3caa3e1a5aedc3be5c0f1dc5c99ac',1,'NimBLESecurity']]], + ['setinterval_645',['setInterval',['../class_nim_b_l_e_scan.html#a3f3e30d8b79aeb4d64af10d5f9d33788',1,'NimBLEScan']]], + ['setkeysize_646',['setKeySize',['../class_nim_b_l_e_security.html#ab2be50284a325ec8937abdab0baafd4b',1,'NimBLESecurity']]], + ['setlimitedonly_647',['setLimitedOnly',['../class_nim_b_l_e_scan.html#a77483be2bd9dad08322cc64f4e7012c1',1,'NimBLEScan']]], + ['setmajor_648',['setMajor',['../class_nim_b_l_e_beacon.html#abef1334108f8049832da7fffb56f6eea',1,'NimBLEBeacon']]], + ['setmanufacturerdata_649',['setManufacturerData',['../class_nim_b_l_e_advertisement_data.html#aa4df88b578782cda2bd77368b50f2d27',1,'NimBLEAdvertisementData::setManufacturerData()'],['../class_nim_b_l_e_advertising.html#a1eff592870a47b0f62b0f0894efadbd4',1,'NimBLEAdvertising::setManufacturerData()']]], + ['setmanufacturerid_650',['setManufacturerId',['../class_nim_b_l_e_beacon.html#a1ec99fe7684181e7b899cd763f9b44d9',1,'NimBLEBeacon']]], + ['setmaxinterval_651',['setMaxInterval',['../class_nim_b_l_e_advertising.html#aab512576d8873fbbb631bac8ada19530',1,'NimBLEAdvertising']]], + ['setmaxpreferred_652',['setMaxPreferred',['../class_nim_b_l_e_advertising.html#a3382cdf80f5ae46a52e3b9159f8e1b66',1,'NimBLEAdvertising']]], + ['setmaxresults_653',['setMaxResults',['../class_nim_b_l_e_scan.html#aad9cd2462d00d7c0fa39d095aa2d8e81',1,'NimBLEScan']]], + ['setmininterval_654',['setMinInterval',['../class_nim_b_l_e_advertising.html#a16bd135cab3f06bc0ba81c2aec19cbbc',1,'NimBLEAdvertising']]], + ['setminor_655',['setMinor',['../class_nim_b_l_e_beacon.html#a44d03b0c2b1bea3bee8f15feeb73fb8e',1,'NimBLEBeacon']]], + ['setminpreferred_656',['setMinPreferred',['../class_nim_b_l_e_advertising.html#a3bc158da1f732361df69cf16ca1cfd42',1,'NimBLEAdvertising']]], + ['setmtu_657',['setMTU',['../class_nim_b_l_e_device.html#a7d8203040611e3f82bf4848a9b371e98',1,'NimBLEDevice']]], + ['setname_658',['setName',['../class_nim_b_l_e_advertisement_data.html#a885b4ed75dd71c4c19b86048c16350bf',1,'NimBLEAdvertisementData::setName()'],['../class_nim_b_l_e_advertising.html#add2ecd09877d7e4548b11ec7cb8c7a47',1,'NimBLEAdvertising::setName()']]], + ['setnamespace_659',['setNamespace',['../class_nim_b_l_e2904.html#a2206274c217d43a8ba121e1d279f8962',1,'NimBLE2904']]], + ['setownaddrtype_660',['setOwnAddrType',['../class_nim_b_l_e_device.html#aa95f75d0a4325335ed0165f566d3a27d',1,'NimBLEDevice']]], + ['setpartialservices_661',['setPartialServices',['../class_nim_b_l_e_advertisement_data.html#af52546d7c3b733a831f6232a845bef85',1,'NimBLEAdvertisementData']]], + ['setpartialservices16_662',['setPartialServices16',['../class_nim_b_l_e_advertisement_data.html#a50063c7ffa24f0f0407366a450e23ae4',1,'NimBLEAdvertisementData']]], + ['setpartialservices32_663',['setPartialServices32',['../class_nim_b_l_e_advertisement_data.html#a0ff5a72bccd349e551270ceadf528306',1,'NimBLEAdvertisementData']]], + ['setpeeraddress_664',['setPeerAddress',['../class_nim_b_l_e_client.html#a93b5b7c01e58a95dcea335f837d81d07',1,'NimBLEClient']]], + ['setpower_665',['setPower',['../class_nim_b_l_e_device.html#ac81f123fc1345596eb147c4fad125b1c',1,'NimBLEDevice::setPower()'],['../class_nim_b_l_e_eddystone_u_r_l.html#a8038c895e8da7c7ac861557ea0a9d91b',1,'NimBLEEddystoneURL::setPower()']]], + ['setpreferredparams_666',['setPreferredParams',['../class_nim_b_l_e_advertisement_data.html#a58ba06eb062a47cc58ba2829af8aafa5',1,'NimBLEAdvertisementData']]], + ['setproximityuuid_667',['setProximityUUID',['../class_nim_b_l_e_beacon.html#a7f33ffc298285d1ab02088b2584f2256',1,'NimBLEBeacon']]], + ['setrespencryptionkey_668',['setRespEncryptionKey',['../class_nim_b_l_e_security.html#aac8434faa02a6813b7efd87224e04714',1,'NimBLESecurity']]], + ['setscanduplicatecachesize_669',['setScanDuplicateCacheSize',['../class_nim_b_l_e_device.html#a9fdc368b81152a55599e2041181cef08',1,'NimBLEDevice']]], + ['setscanfilter_670',['setScanFilter',['../class_nim_b_l_e_advertising.html#aa3da80c7d17a7824484ee254076e4790',1,'NimBLEAdvertising']]], + ['setscanfiltermode_671',['setScanFilterMode',['../class_nim_b_l_e_device.html#aba7ad0c41541428243d5c5e94b512c93',1,'NimBLEDevice']]], + ['setscanresponse_672',['setScanResponse',['../class_nim_b_l_e_advertising.html#a6fb4d9ad3949928ac83d3e74857ab91f',1,'NimBLEAdvertising']]], + ['setscanresponsedata_673',['setScanResponseData',['../class_nim_b_l_e_advertising.html#a04a51a0c639a70295a9b671f73b34358',1,'NimBLEAdvertising']]], + ['setsecurityauth_674',['setSecurityAuth',['../class_nim_b_l_e_device.html#aa8e340c02418771ce72dec758d560938',1,'NimBLEDevice::setSecurityAuth(bool bonding, bool mitm, bool sc)'],['../class_nim_b_l_e_device.html#a2f10da171794581870d678fc947a5d1f',1,'NimBLEDevice::setSecurityAuth(uint8_t auth_req)']]], + ['setsecuritycallbacks_675',['setSecurityCallbacks',['../class_nim_b_l_e_device.html#a7d44bb960c0bb1bec02a33369c693085',1,'NimBLEDevice']]], + ['setsecurityinitkey_676',['setSecurityInitKey',['../class_nim_b_l_e_device.html#a92d36c3a34d9474fa1d7f66c0e477d1e',1,'NimBLEDevice']]], + ['setsecurityiocap_677',['setSecurityIOCap',['../class_nim_b_l_e_device.html#ab9fee9e810d5fa18bc8a37053eb9b5d0',1,'NimBLEDevice']]], + ['setsecuritypasskey_678',['setSecurityPasskey',['../class_nim_b_l_e_device.html#a84631f6d657fb6bd39722560fa229d35',1,'NimBLEDevice']]], + ['setsecurityrespkey_679',['setSecurityRespKey',['../class_nim_b_l_e_device.html#a57f0d4db1cc564176b23e860fce13f6a',1,'NimBLEDevice']]], + ['setservicedata_680',['setServiceData',['../class_nim_b_l_e_advertisement_data.html#aee4fdb5af06fcda9cab9fad3f5bf80d5',1,'NimBLEAdvertisementData::setServiceData()'],['../class_nim_b_l_e_advertising.html#a994e43e9e4ace6ce64c57e57d0575781',1,'NimBLEAdvertising::setServiceData()']]], + ['setshortname_681',['setShortName',['../class_nim_b_l_e_advertisement_data.html#ae5b514ad9be6552727f1c7a744a29ae5',1,'NimBLEAdvertisementData']]], + ['setsignalpower_682',['setSignalPower',['../class_nim_b_l_e_beacon.html#ae2dd8cd367260dd8374309576457cec0',1,'NimBLEBeacon']]], + ['setstaticpin_683',['setStaticPIN',['../class_nim_b_l_e_security.html#a0bb1535e1b0d48566c17f681b7539f82',1,'NimBLESecurity']]], + ['settemp_684',['setTemp',['../class_nim_b_l_e_eddystone_t_l_m.html#a8e8ee8fff10730089a370f9da7b6a691',1,'NimBLEEddystoneTLM']]], + ['settime_685',['setTime',['../class_nim_b_l_e_eddystone_t_l_m.html#a999d53f4bad59c2ebc688403f66474b1',1,'NimBLEEddystoneTLM']]], + ['setunit_686',['setUnit',['../class_nim_b_l_e2904.html#ad0cf78a2a1c3418be9a39beaa0c826ee',1,'NimBLE2904']]], + ['seturi_687',['setURI',['../class_nim_b_l_e_advertisement_data.html#aa003bc4cf9bff2b2bcac9b742ec97a36',1,'NimBLEAdvertisementData::setURI()'],['../class_nim_b_l_e_advertising.html#a6495d7c9ad80a8c2a5edf974705f8103',1,'NimBLEAdvertising::setURI()']]], + ['seturl_688',['setURL',['../class_nim_b_l_e_eddystone_u_r_l.html#a8102533ff1e7b6527ea744279f8f64ca',1,'NimBLEEddystoneURL']]], + ['setuuid_689',['setUUID',['../class_nim_b_l_e_eddystone_t_l_m.html#a49fdfb7c2edf2ae92f69856ec0ce4291',1,'NimBLEEddystoneTLM::setUUID()'],['../class_nim_b_l_e_eddystone_u_r_l.html#af183e8483ae81fff65d909e67986fcad',1,'NimBLEEddystoneURL::setUUID()']]], + ['setvalue_690',['setValue',['../class_nim_b_l_e_characteristic.html#a7cd211a8bb9a0c2ffaed57f2af273677',1,'NimBLECharacteristic::setValue(const uint8_t *data, size_t size)'],['../class_nim_b_l_e_characteristic.html#a3e77647e4c9bd02c96b761639c4d206f',1,'NimBLECharacteristic::setValue(const std::string &value)'],['../class_nim_b_l_e_characteristic.html#aba05898f446e31222fbe509fa357c730',1,'NimBLECharacteristic::setValue(const T &s)'],['../class_nim_b_l_e_client.html#a0910bbe298a68e9122a169ab229bf767',1,'NimBLEClient::setValue()'],['../class_nim_b_l_e_descriptor.html#a9447cee9092dc516266f7764131ba923',1,'NimBLEDescriptor::setValue(const uint8_t *data, size_t size)'],['../class_nim_b_l_e_descriptor.html#ad14bda7d046b5f814ed599c8157c7e51',1,'NimBLEDescriptor::setValue(const std::string &value)'],['../class_nim_b_l_e_descriptor.html#a9136cc9e4b41110b3dd99d1c9553a477',1,'NimBLEDescriptor::setValue(const T &s)'],['../class_nim_b_l_e_remote_service.html#a4bb8c7c85580d86fd9ab7be5c3933b72',1,'NimBLERemoteService::setValue()']]], + ['setversion_691',['setVersion',['../class_nim_b_l_e_eddystone_t_l_m.html#a205e0e2efc09c4c5043f11aeddee4d63',1,'NimBLEEddystoneTLM']]], + ['setvolt_692',['setVolt',['../class_nim_b_l_e_eddystone_t_l_m.html#ad69af8fe47502d922203916357f6c206',1,'NimBLEEddystoneTLM']]], + ['setwindow_693',['setWindow',['../class_nim_b_l_e_scan.html#ac2e8c921413f1ad217f45fecf63c0d22',1,'NimBLEScan']]], + ['start_694',['start',['../class_nim_b_l_e_advertising.html#aeeee5a131b42a4f76010751f4c182e4f',1,'NimBLEAdvertising::start()'],['../class_nim_b_l_e_scan.html#a21b1e27816717b77533755f31dfaa820',1,'NimBLEScan::start(uint32_t duration, void(*scanCompleteCB)(NimBLEScanResults), bool is_continue=false)'],['../class_nim_b_l_e_scan.html#a8459a1c69476fcdfd6370a1d10e0e159',1,'NimBLEScan::start(uint32_t duration, bool is_continue=false)'],['../class_nim_b_l_e_server.html#ae94ad52f3c97f62553af9765acdb7bcb',1,'NimBLEServer::start()'],['../class_nim_b_l_e_service.html#ad37324ed0404d596923d6fdc0133b985',1,'NimBLEService::start()']]], + ['startadvertising_695',['startAdvertising',['../class_nim_b_l_e_device.html#ad0bc1019facfd79291b5353ff970473d',1,'NimBLEDevice::startAdvertising()'],['../class_nim_b_l_e_server.html#a2540ae7b61fc6513f794da2512d66f74',1,'NimBLEServer::startAdvertising()']]], + ['startsecurity_696',['startSecurity',['../class_nim_b_l_e_device.html#a339157bf3d8fc712fa838e9a5127cc62',1,'NimBLEDevice']]], + ['startservices_697',['startServices',['../class_nim_b_l_e_h_i_d_device.html#a5984042cd05ea4ead895f5577133a235',1,'NimBLEHIDDevice']]], + ['stop_698',['stop',['../class_nim_b_l_e_advertising.html#ab19c9e9015e812055e3cad29d52ed2ff',1,'NimBLEAdvertising::stop()'],['../class_nim_b_l_e_scan.html#a68fa5cc715f62a9a97ac0dccfb8557c1',1,'NimBLEScan::stop()']]], + ['stopadvertising_699',['stopAdvertising',['../class_nim_b_l_e_device.html#a8b23c6ade03a69048f0568eb9ad3b034',1,'NimBLEDevice::stopAdvertising()'],['../class_nim_b_l_e_server.html#ab713fd5619ddbfc1a88bf43a1686f454',1,'NimBLEServer::stopAdvertising()']]], + ['subscribe_700',['subscribe',['../class_nim_b_l_e_remote_characteristic.html#aa08b2f62376568e1fc833e4ff91e8aa7',1,'NimBLERemoteCharacteristic']]] +]; diff --git a/search/functions_f.html b/search/functions_f.html new file mode 100644 index 0000000..79f068d --- /dev/null +++ b/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 0000000..f637687 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['to128_701',['to128',['../class_nim_b_l_e_u_u_i_d.html#a7103976da820d0c1840aa77aca38306c',1,'NimBLEUUID']]], + ['tostring_702',['toString',['../class_nim_b_l_e_address.html#ac53b0cc945e1505d3e72d48164ad01d6',1,'NimBLEAddress::toString()'],['../class_nim_b_l_e_advertised_device.html#ac1b8ff0f2897abda335743d55668fcd9',1,'NimBLEAdvertisedDevice::toString()'],['../class_nim_b_l_e_characteristic.html#a4fa6b8ed011d12e2b1f16e92a02b9a89',1,'NimBLECharacteristic::toString()'],['../class_nim_b_l_e_client.html#aba9ae035357776514b61c2b6286ce1ab',1,'NimBLEClient::toString()'],['../class_nim_b_l_e_descriptor.html#ac15dc6c9c24d280c4b0eb766080497e5',1,'NimBLEDescriptor::toString()'],['../class_nim_b_l_e_device.html#abf8c494b54d9f0c9466c80f25dbdd961',1,'NimBLEDevice::toString()'],['../class_nim_b_l_e_eddystone_t_l_m.html#a970ba10424567d17c961ed3b3ef83d8e',1,'NimBLEEddystoneTLM::toString()'],['../class_nim_b_l_e_remote_characteristic.html#a4b86a1f600a61036487f5161f1f1726a',1,'NimBLERemoteCharacteristic::toString()'],['../class_nim_b_l_e_remote_descriptor.html#a008795a09d1fbe8533c2e9d0e8deb33a',1,'NimBLERemoteDescriptor::toString()'],['../class_nim_b_l_e_remote_service.html#aaf106a37f24a51b967dd0984c973750f',1,'NimBLERemoteService::toString()'],['../class_nim_b_l_e_service.html#a10d10d14f8c5a970a06915cd407a0a73',1,'NimBLEService::toString()'],['../class_nim_b_l_e_u_u_i_d.html#a9708e07b8e0915aafcfa32fe74ccdf64',1,'NimBLEUUID::toString()']]] +]; diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 0000000..1e78fe0 --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..d68e123 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['arduino_20command_20line_20and_20platformio_20config_20options_732',['Arduino command line and platformio config options',['../md_docs__command_line_config.html',1,'']]] +]; diff --git a/search/pages_1.html b/search/pages_1.html new file mode 100644 index 0000000..01d47ce --- /dev/null +++ b/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000..3b9634e --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['changelog_733',['Changelog',['../md__c_h_a_n_g_e_l_o_g.html',1,'']]] +]; diff --git a/search/pages_2.html b/search/pages_2.html new file mode 100644 index 0000000..4ddfec1 --- /dev/null +++ b/search/pages_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 0000000..c258d12 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['deprecated_20list_734',['Deprecated List',['../deprecated.html',1,'']]] +]; diff --git a/search/pages_3.html b/search/pages_3.html new file mode 100644 index 0000000..0ec11f9 --- /dev/null +++ b/search/pages_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 0000000..bafd946 --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['improvements_20and_20updates_735',['Improvements and updates',['../md_docs__improvements_and_updates.html',1,'']]] +]; diff --git a/search/pages_4.html b/search/pages_4.html new file mode 100644 index 0000000..c820bb5 --- /dev/null +++ b/search/pages_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_4.js b/search/pages_4.js new file mode 100644 index 0000000..9092e0e --- /dev/null +++ b/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['migrating_20from_20bluedroid_20to_20nimble_736',['Migrating from Bluedroid to NimBLE',['../md_docs__migration_guide.html',1,'']]] +]; diff --git a/search/pages_5.html b/search/pages_5.html new file mode 100644 index 0000000..5196c55 --- /dev/null +++ b/search/pages_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_5.js b/search/pages_5.js new file mode 100644 index 0000000..2e1dafb --- /dev/null +++ b/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['new_20user_20guide_737',['New User Guide',['../md_docs__new_user_guide.html',1,'']]] +]; diff --git a/search/pages_6.html b/search/pages_6.html new file mode 100644 index 0000000..41ad347 --- /dev/null +++ b/search/pages_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_6.js b/search/pages_6.js new file mode 100644 index 0000000..313dde3 --- /dev/null +++ b/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['overview_738',['Overview',['../index.html',1,'']]] +]; diff --git a/search/pages_7.html b/search/pages_7.html new file mode 100644 index 0000000..9ba9767 --- /dev/null +++ b/search/pages_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_7.js b/search/pages_7.js new file mode 100644 index 0000000..fbc423d --- /dev/null +++ b/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['todo_20list_739',['Todo List',['../todo.html',1,'']]] +]; diff --git a/search/pages_8.html b/search/pages_8.html new file mode 100644 index 0000000..4da5dd1 --- /dev/null +++ b/search/pages_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_8.js b/search/pages_8.js new file mode 100644 index 0000000..86e8cdd --- /dev/null +++ b/search/pages_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usage_20tips_740',['Usage Tips',['../md_docs__usage_tips.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..e365871 --- /dev/null +++ b/search/search.css @@ -0,0 +1,255 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..fb226f7 --- /dev/null +++ b/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/todo.html b/todo.html new file mode 100644 index 0000000..20ee9fe --- /dev/null +++ b/todo.html @@ -0,0 +1,103 @@ + + + + + + + +esp-nimble-cpp / NimBLE-Arduino: Todo List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    esp-nimble-cpp / NimBLE-Arduino +  1.3.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Todo List
    +
    +
    +
    +
    Member NimBLESecurity::setKeySize (uint8_t key_size=16)
    +
    Requires implementation
    +
    +
    +
    +
    + + + +