]> rtime.felk.cvut.cz Git - mirosot.git/blob - bth_tests/bluetooth/hci_event.h
Added bth_test application. Not finished.
[mirosot.git] / bth_tests / bluetooth / hci_event.h
1 /*******************************************************************\r
2   bluetooth library\r
3 \r
4   hci_event.h - list of Event packet structures + list of event fce\r
5 \r
6   Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com\r
7 \r
8  *******************************************************************/\r
9 \r
10 #ifndef HCI_EVENT_H\r
11 #define HCI_EVENT_H\r
12 \r
13 /* ---- HCI Events ---- */\r
14 \r
15 #define EVT_INQUIRY_COMPLETE            0x01\r
16 \r
17 #define EVT_INQUIRY_RESULT              0x02\r
18 /*--------------------------------*/\r
19 typedef struct {\r
20         bdaddr_t        bdaddr;\r
21         uint8_t         pscan_rep_mode;\r
22         uint8_t         pscan_period_mode;\r
23         uint8_t         pscan_mode;\r
24         uint8_t         dev_class[3];\r
25         uint16_t        clock_offset;\r
26 }inquiry_info;\r
27     #define INQUIRY_INFO____bdaddr                              0\r
28         #define INQUIRY_INFO____pscan_rep_mode          6\r
29         #define INQUIRY_INFO____pscan_period_mode               7\r
30         #define INQUIRY_INFO____pscan_mode                      8\r
31         #define INQUIRY_INFO____dev_class                               9\r
32         #define INQUIRY_INFO____clock_offset                    10\r
33 /*--------------------------------*/\r
34 #define INQUIRY_INFO_SIZE 14\r
35 /****************************************************************/\r
36 /****************************************************************/\r
37 \r
38 \r
39 \r
40 #define EVT_CONN_COMPLETE               0x03\r
41 /*--------------------------------*/\r
42 typedef struct {\r
43         uint8_t         status;\r
44         uint16_t        handle;\r
45         bdaddr_t        bdaddr;\r
46         uint8_t         link_type;\r
47         uint8_t         encr_mode;\r
48 }  evt_conn_complete;\r
49     #define EVT_CONN_COMPLETE____status                 0\r
50         #define EVT_CONN_COMPLETE____handle                     1\r
51         #define EVT_CONN_COMPLETE____bdaddr                     3\r
52         #define EVT_CONN_COMPLETE____link_type          9\r
53         #define EVT_CONN_COMPLETE____encr_mode          10\r
54 /*--------------------------------*/\r
55 #define EVT_CONN_COMPLETE_SIZE 11 //puvodne 13 asi jejich chyba\r
56 /****************************************************************/\r
57 /****************************************************************/\r
58 \r
59 \r
60 #define EVT_CONN_REQUEST                0x04\r
61 /*--------------------------------*/\r
62 typedef struct {\r
63         bdaddr_t        bdaddr;\r
64         uint8_t         dev_class[3];\r
65         uint8_t         link_type;\r
66 }  evt_conn_request;\r
67     #define EVT_CONN_REQUEST____bdaddr          0\r
68         #define EVT_CONN_REQUEST____dev_class           6\r
69         #define EVT_CONN_REQUEST____link_type           9\r
70 /*--------------------------------*/\r
71 #define EVT_CONN_REQUEST_SIZE 10\r
72 /****************************************************************/\r
73 /****************************************************************/\r
74 \r
75 \r
76 #define EVT_DISCONN_COMPLETE            0x05\r
77 /*--------------------------------*/\r
78 typedef struct {\r
79         uint8_t         status;\r
80         uint16_t        handle;\r
81         uint8_t         reason;\r
82 }  evt_disconn_complete;\r
83     #define EVT_DISCONN_COMPLETE____status              0\r
84         #define EVT_DISCONN_COMPLETE____handle          1\r
85         #define EVT_DISCONN_COMPLETE____reason          3\r
86 /*--------------------------------*/\r
87 #define EVT_DISCONN_COMPLETE_SIZE 4\r
88 /****************************************************************/\r
89 /****************************************************************/\r
90 \r
91 \r
92 #define EVT_AUTH_COMPLETE               0x06\r
93 /*--------------------------------*/\r
94 typedef struct {\r
95         uint8_t         status;\r
96         uint16_t        handle;\r
97 }  evt_auth_complete;\r
98     #define EVT_AUTH_COMPLETE____status         0\r
99         #define EVT_AUTH_COMPLETE____handle             1\r
100 /*--------------------------------*/\r
101 #define EVT_AUTH_COMPLETE_SIZE 3\r
102 /****************************************************************/\r
103 /****************************************************************/\r
104 \r
105 \r
106 \r
107 #define EVT_REMOTE_NAME_REQ_COMPLETE    0x07\r
108 /*--------------------------------*/\r
109 typedef struct {\r
110         uint8_t         status;\r
111         bdaddr_t        bdaddr;\r
112         uint8_t         name[248];\r
113 }  evt_remote_name_req_complete;\r
114     #define EVT_REMOTE_NAME_REQ_COMPLETE____status              0\r
115         #define EVT_REMOTE_NAME_REQ_COMPLETE____bdaddr          1\r
116         #define EVT_REMOTE_NAME_REQ_COMPLETE____name                    7\r
117 /*--------------------------------*/\r
118 #define EVT_REMOTE_NAME_REQ_COMPLETE_SIZE 255\r
119 /****************************************************************/\r
120 /****************************************************************/\r
121 \r
122 \r
123 #define EVT_ENCRYPT_CHANGE              0x08\r
124 /*--------------------------------*/\r
125 typedef struct {\r
126         uint8_t         status;\r
127         uint16_t        handle;\r
128         uint8_t         encrypt;\r
129 }  evt_encrypt_change;\r
130     #define EVT_ENCRYPT_CHANGE____status                0\r
131     #define EVT_ENCRYPT_CHANGE____handle                1\r
132         #define EVT_ENCRYPT_CHANGE____encrypt           3\r
133 /*--------------------------------*/\r
134 #define EVT_ENCRYPT_CHANGE_SIZE 5\r
135 /****************************************************************/\r
136 /****************************************************************/\r
137 \r
138 \r
139 #define EVT_CHANGE_CONN_LINK_KEY_COMPLETE       0x09\r
140 /*--------------------------------*/\r
141 typedef struct {\r
142         uint8_t         status;\r
143         uint16_t        handle;\r
144 }   evt_change_conn_link_key_complete;\r
145     #define EVT_CHANGE_CONN_LINK_KEY_COMPLETE____status         0\r
146         #define EVT_CHANGE_CONN_LINK_KEY_COMPLETE____handle             1\r
147 /*--------------------------------*/\r
148 #define EVT_CHANGE_CONN_LINK_KEY_COMPLETE_SIZE 3\r
149 /****************************************************************/\r
150 /****************************************************************/\r
151 \r
152 \r
153 #define EVT_MASTER_LINK_KEY_COMPLETE            0x0A\r
154 /*--------------------------------*/\r
155 typedef struct {\r
156         uint8_t         status;\r
157         uint16_t        handle;\r
158         uint8_t         key_flag;\r
159 }  evt_master_link_key_complete;\r
160     #define EVT_MASTER_LINK_KEY_COMPLETE____status              0\r
161         #define EVT_MASTER_LINK_KEY_COMPLETE____handle          1\r
162         #define EVT_MASTER_LINK_KEY_COMPLETE____key_flag                3\r
163 /*--------------------------------*/\r
164 #define EVT_MASTER_LINK_KEY_COMPLETE_SIZE 4\r
165 /****************************************************************/\r
166 /****************************************************************/\r
167 \r
168 \r
169 #define EVT_READ_REMOTE_FEATURES_COMPLETE       0x0B\r
170 /*--------------------------------*/\r
171 typedef struct {\r
172         uint8_t         status;\r
173         uint16_t        handle;\r
174         uint8_t         features[8];\r
175 }  evt_read_remote_features_complete;\r
176     #define EVT_READ_REMOTE_FEATURES_COMPLETE____status         0\r
177         #define EVT_READ_REMOTE_FEATURES_COMPLETE____handle             1\r
178         #define EVT_READ_REMOTE_FEATURES_COMPLETE____features           3\r
179 /*--------------------------------*/\r
180 #define EVT_READ_REMOTE_FEATURES_COMPLETE_SIZE 11\r
181 /****************************************************************/\r
182 /****************************************************************/\r
183 \r
184 \r
185 #define EVT_READ_REMOTE_VERSION_COMPLETE        0x0C\r
186 /*--------------------------------*/\r
187 typedef struct {\r
188         uint8_t         status;\r
189         uint16_t        handle;\r
190         uint8_t         lmp_ver;\r
191         uint16_t        manufacturer;\r
192         uint16_t        lmp_subver;\r
193 }  evt_read_remote_version_complete;\r
194     #define EVT_READ_REMOTE_VERSION_COMPLETE____status                  0\r
195         #define EVT_READ_REMOTE_VERSION_COMPLETE____handle                      1\r
196     #define EVT_READ_REMOTE_VERSION_COMPLETE____lmp_ver                 3\r
197     #define EVT_READ_REMOTE_VERSION_COMPLETE____manufacturer            4\r
198         #define EVT_READ_REMOTE_VERSION_COMPLETE____lmp_subver          6\r
199 /*--------------------------------*/\r
200 #define EVT_READ_REMOTE_VERSION_COMPLETE_SIZE 8\r
201 \r
202 //#define EVT_QOS_SETUP_COMPLETE                0x0D\r
203 //typedef struct {\r
204 //      uint8_t         status;\r
205 //      uint16_t        handle;\r
206 //      uint8_t         flags;                  /* Reserved */\r
207 //      hci_qos         qos;\r
208 //}evt_qos_setup_complete;\r
209     #define EVT_QOS_SETUP_COMPLETE____status            0\r
210         #define EVT_QOS_SETUP_COMPLETE____handle                1\r
211     #define EVT_QOS_SETUP_COMPLETE____flags             3\r
212         #define EVT_QOS_SETUP_COMPLETE____qos                   4\r
213 /*--------------------------------*/\r
214 //#define EVT_QOS_SETUP_COMPLETE_SIZE (4 + HCI_QOS_CP_SIZE)\r
215 /****************************************************************/\r
216 /****************************************************************/\r
217 \r
218 \r
219 #define EVT_CMD_COMPLETE                0x0E\r
220 /*--------------------------------*/\r
221 typedef struct {\r
222         uint8_t         ncmd;\r
223         uint16_t        opcode;\r
224 }  evt_cmd_complete;\r
225     #define EVT_CMD_COMPLETE____ncmd            0\r
226         #define EVT_CMD_COMPLETE____opcode      1\r
227 /*--------------------------------*/\r
228 /*--------------------------------*/\r
229 #define EVT_CMD_COMPLETE_SIZE 3\r
230 /****************************************************************/\r
231 /****************************************************************/\r
232 \r
233 \r
234 #define EVT_CMD_STATUS                  0x0F\r
235 /*--------------------------------*/\r
236 typedef struct {\r
237         uint8_t         status;\r
238         uint8_t         ncmd;\r
239         uint16_t        opcode;\r
240 }  evt_cmd_status;\r
241     #define EVT_CMD_STATUS____status            0\r
242         #define EVT_CMD_STATUS____ncmd          1\r
243         #define EVT_CMD_STATUS____opcode                2\r
244 /*--------------------------------*/\r
245 #define EVT_CMD_STATUS_SIZE 4\r
246 /****************************************************************/\r
247 /****************************************************************/\r
248 \r
249 \r
250 #define EVT_HARDWARE_ERROR              0x10\r
251 /*--------------------------------*/\r
252 typedef struct {\r
253         uint8_t         code;\r
254 }  evt_hardware_error;\r
255         #define EVT_HARDWARE_ERROR____code              0\r
256 /*--------------------------------*/\r
257 #define EVT_HARDWARE_ERROR_SIZE 1\r
258 /****************************************************************/\r
259 /****************************************************************/\r
260 \r
261 \r
262 #define EVT_FLUSH_OCCURRED              0x11\r
263 /*--------------------------------*/\r
264 typedef struct {\r
265         uint16_t        handle;\r
266 }  evt_flush_occured;\r
267     #define EVT_FLUSH_OCCURED____handle         0\r
268 /*--------------------------------*/\r
269 #define EVT_FLUSH_OCCURRED_SIZE 2\r
270 \r
271 #define EVT_ROLE_CHANGE                 0x12\r
272 /*--------------------------------*/\r
273 typedef struct {\r
274         uint8_t         status;\r
275         bdaddr_t        bdaddr;\r
276         uint8_t         role;\r
277 }  evt_role_change;\r
278     #define EVT_ROLE_CHANGE____status           0\r
279     #define EVT_ROLE_CHANGE____bdaddr           1\r
280         #define EVT_ROLE_CHANGE____role         7\r
281 /*--------------------------------*/\r
282 #define EVT_ROLE_CHANGE_SIZE 8\r
283 /****************************************************************/\r
284 /****************************************************************/\r
285 \r
286 \r
287 #define EVT_NUM_COMP_PKTS               0x13\r
288 /*--------------------------------*/\r
289 typedef struct {\r
290         uint8_t         num_hndl;\r
291         /* variable length part */\r
292 }  evt_num_comp_pkts;\r
293         #define EVT_NUM_COMP_PKTS____num_hndl           0\r
294 /*--------------------------------*/\r
295 #define EVT_NUM_COMP_PKTS_SIZE 1\r
296 /****************************************************************/\r
297 /****************************************************************/\r
298 \r
299 \r
300 #define EVT_MODE_CHANGE                 0x14\r
301 /*--------------------------------*/\r
302 typedef struct {\r
303         uint8_t         status;\r
304         uint16_t        handle;\r
305         uint8_t         mode;\r
306         uint16_t        interval;\r
307 }  evt_mode_change;\r
308     #define EVT_MODE_CHANGE____status           0\r
309         #define EVT_MODE_CHANGE____handle               1\r
310     #define EVT_MODE_CHANGE____mode             3\r
311         #define EVT_MODE_CHANGE____interval     4\r
312 /*--------------------------------*/\r
313 #define EVT_MODE_CHANGE_SIZE 6\r
314 /****************************************************************/\r
315 /****************************************************************/\r
316 \r
317 \r
318 #define EVT_RETURN_LINK_KEYS            0x15\r
319 /*--------------------------------*/\r
320 typedef struct {\r
321         uint8_t         num_keys;\r
322         /* variable length part */\r
323 }  evt_return_link_keys;\r
324         #define EVT_RETURN_LINK_KEYS____num_keys                0\r
325 /*--------------------------------*/\r
326 #define EVT_RETURN_LINK_KEYS_SIZE 1\r
327 /****************************************************************/\r
328 /****************************************************************/\r
329 \r
330 \r
331 #define EVT_PIN_CODE_REQ                0x16\r
332 /*--------------------------------*/\r
333 typedef struct {\r
334         bdaddr_t        bdaddr;\r
335 }  evt_pin_code_req;\r
336         #define EVT_PIN_CODE_REQ____bdaddr              0\r
337 /*--------------------------------*/\r
338 #define EVT_PIN_CODE_REQ_SIZE 6\r
339 /****************************************************************/\r
340 /****************************************************************/\r
341 \r
342 \r
343 #define EVT_LINK_KEY_REQ                0x17\r
344 typedef struct {\r
345         bdaddr_t        bdaddr;\r
346 }  evt_link_key_req;\r
347         #define EVT_LINK_KEY_REQ____bdaddr              0\r
348 /*--------------------------------*/\r
349 #define EVT_LINK_KEY_REQ_SIZE 6\r
350 /****************************************************************/\r
351 /****************************************************************/\r
352 \r
353 \r
354 #define EVT_LINK_KEY_NOTIFY             0x18\r
355 /*--------------------------------*/\r
356 typedef struct {\r
357         bdaddr_t        bdaddr;\r
358         uint8_t         link_key[16];\r
359         uint8_t         key_type;\r
360 }  evt_link_key_notify;\r
361     #define EVT_LINK_KEY_NOTIFY____bdaddr                       0\r
362     #define EVT_LINK_KEY_NOTIFY____link_key             6\r
363         #define EVT_LINK_KEY_NOTIFY____key_type         22\r
364 /*--------------------------------*/\r
365 #define EVT_LINK_KEY_NOTIFY_SIZE 23\r
366 /****************************************************************/\r
367 /****************************************************************/\r
368 \r
369 \r
370 #define EVT_LOOPBACK_COMMAND            0x19\r
371 \r
372 #define EVT_DATA_BUFFER_OVERFLOW        0x1A\r
373 /*--------------------------------*/\r
374 typedef struct {\r
375         uint8_t         link_type;\r
376 }  evt_data_buffer_overflow;\r
377     #define EVT_DATA_BUFFER_OVERFLOW____link_type               0\r
378 /*--------------------------------*/\r
379 #define EVT_DATA_BUFFER_OVERFLOW_SIZE 1\r
380 /****************************************************************/\r
381 /****************************************************************/\r
382 \r
383 \r
384 #define EVT_MAX_SLOTS_CHANGE            0x1B\r
385 /*--------------------------------*/\r
386 typedef struct {\r
387         uint16_t        handle;\r
388         uint8_t         max_slots;\r
389 }  evt_max_slots_change;\r
390     #define EVT_MAX_SLOTS_CHANGE____handle              0\r
391         #define EVT_MAX_SLOTS_CHANGE____max_slots               2\r
392 /*--------------------------------*/\r
393 #define EVT_MAX_SLOTS_CHANGE_SIZE 3\r
394 /****************************************************************/\r
395 /****************************************************************/\r
396 \r
397 \r
398 #define EVT_READ_CLOCK_OFFSET_COMPLETE  0x1C\r
399 /*--------------------------------*/\r
400 typedef struct {\r
401         uint8_t         status;\r
402         uint16_t        handle;\r
403         uint16_t        clock_offset;\r
404 }  evt_read_clock_offset_complete;\r
405     #define EVT_READ_CLOCK_OFFSET_COMPLETE____status                    0\r
406         #define EVT_READ_CLOCK_OFFSET_COMPLETE____handle                        1\r
407         #define EVT_READ_CLOCK_OFFSET_COMPLETE____clock_offset  3\r
408 /*--------------------------------*/\r
409 #define EVT_READ_CLOCK_OFFSET_COMPLETE_SIZE 5\r
410 /****************************************************************/\r
411 /****************************************************************/\r
412 \r
413 \r
414 #define EVT_CONN_PTYPE_CHANGED          0x1D\r
415 /*--------------------------------*/\r
416 typedef struct {\r
417         uint8_t         status;\r
418         uint16_t        handle;\r
419         uint16_t        ptype;\r
420 }  evt_conn_ptype_changed;\r
421     #define EVT_CONN_PTYPE_CHANGED____status            0\r
422     #define EVT_CONN_PTYPE_CHANGED____handle            1\r
423         #define EVT_CONN_PTYPE_CHANGED____ptype         3\r
424 /*--------------------------------*/\r
425 #define EVT_CONN_PTYPE_CHANGED_SIZE 5\r
426 /****************************************************************/\r
427 /****************************************************************/\r
428 \r
429 \r
430 #define EVT_QOS_VIOLATION               0x1E\r
431 /*--------------------------------*/\r
432 typedef struct {\r
433         uint16_t        handle;\r
434 }  evt_qos_violation;\r
435         #define EVT_QOS_VIOLATION____handle             0\r
436 /*--------------------------------*/\r
437 #define EVT_QOS_VIOLATION_SIZE 2\r
438 /****************************************************************/\r
439 /****************************************************************/\r
440 \r
441 \r
442 #define EVT_PSCAN_REP_MODE_CHANGE       0x20\r
443 /*--------------------------------*/\r
444 typedef struct {\r
445         bdaddr_t        bdaddr;\r
446         uint8_t         pscan_rep_mode;\r
447 }  evt_pscan_rep_mode_change;\r
448     #define EVT_PSCAN_REP_MODE_CHANGE____bdaddr                 0\r
449         #define EVT_PSCAN_REP_MODE_CHANGE____pscan_rep_mode     6\r
450 /*--------------------------------*/\r
451 #define EVT_PSCAN_REP_MODE_CHANGE_SIZE 7\r
452 /****************************************************************/\r
453 /****************************************************************/\r
454 \r
455 \r
456 #define EVT_FLOW_SPEC_COMPLETE          0x21\r
457 /*--------------------------------*/\r
458 //typedef struct {\r
459 //      uint8_t         status;\r
460 //      uint16_t        handle;\r
461 //      uint8_t         flags;\r
462 //      uint8_t         direction;\r
463 //      hci_qos         qos;                            /*PREDELAT NESMI BYT TYP PROMENNE STRUKTURA!!!!!!*/\r
464 //}  evt_flow_spec_complete;\r
465     #define EVT_FLOW_SPEC_COMPLETE____status            0\r
466         #define EVT_FLOW_SPEC_COMPLETE____handle                1\r
467         #define EVT_FLOW_SPEC_COMPLETE____flags         3\r
468     #define EVT_FLOW_SPEC_COMPLETE____direction 4\r
469         #define EVT_FLOW_SPEC_COMPLETE____qos                   5\r
470 /*--------------------------------*/\r
471 #define EVT_FLOW_SPEC_COMPLETE_SIZE (5 + HCI_QOS_CP_SIZE)\r
472 \r
473 /****************************************************************************/\r
474 /****************************************************************************/\r
475 /*------------------------------- RSSI -------------------------------------*/\r
476 #define EVT_INQUIRY_RESULT_WITH_RSSI    0x22\r
477 /*--------------------------------*/\r
478 typedef struct {\r
479         bdaddr_t        bdaddr;\r
480         uint8_t         pscan_rep_mode;\r
481         uint8_t         pscan_period_mode;\r
482         uint8_t         dev_class[3];\r
483         uint16_t        clock_offset;\r
484         int8_t          rssi;\r
485 }  inquiry_info_with_rssi;\r
486     #define INQUIRY_INFO_WITH_RSSI____bdaddr                                    0\r
487         #define INQUIRY_INFO_WITH_RSSI____pscan_rep_mode                        6\r
488     #define INQUIRY_INFO_WITH_RSSI____pscan_period_mode         7\r
489         #define INQUIRY_INFO_WITH_RSSI____dev_class                             8\r
490     #define INQUIRY_INFO_WITH_RSSI____clock_offset                      11\r
491         #define INQUIRY_INFO_WITH_RSSI____rssi                                  13\r
492 /*--------------------------------*/\r
493 #define INQUIRY_INFO_WITH_RSSI_SIZE 14\r
494 /*--------------------------------*/\r
495 typedef struct {\r
496         bdaddr_t        bdaddr;\r
497         uint8_t         pscan_rep_mode;\r
498         uint8_t         pscan_period_mode;\r
499         uint8_t         pscan_mode;\r
500         uint8_t         dev_class[3];\r
501         uint16_t        clock_offset;\r
502         int8_t          rssi;\r
503 }  inquiry_info_with_rssi_and_pscan_mode;\r
504     #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____bdaddr                             0\r
505         #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____pscan_rep_mode         6\r
506     #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____pscan_period_mode  7\r
507         #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____pscan_mode                     8\r
508         #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____dev_class                      9\r
509     #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____clock_offset                       12\r
510         #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE____rssi                                   14      \r
511 /*--------------------------------*/\r
512 #define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE_SIZE 15\r
513 /****************************************************************/\r
514 /****************************************************************/\r
515 \r
516 \r
517 #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE   0x23\r
518 /*--------------------------------*/\r
519 typedef struct {\r
520         uint8_t         status;\r
521         uint16_t        handle;\r
522         uint8_t         page_num;\r
523         uint8_t         max_page_num;\r
524         uint8_t         features[8];\r
525 }  evt_read_remote_ext_features_complete;\r
526     #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE____status             0\r
527         #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE____handle         1\r
528         #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE____page_num               3\r
529     #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE____max_page_num       4\r
530         #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE____features               5\r
531 /*--------------------------------*/\r
532 #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE_SIZE 13\r
533 /****************************************************************/\r
534 /****************************************************************/\r
535 \r
536 \r
537 #define EVT_SYNC_CONN_COMPLETE          0x2C\r
538 /*--------------------------------*/\r
539 typedef struct {\r
540         uint8_t         status;\r
541         uint16_t        handle;\r
542         bdaddr_t        bdaddr;\r
543         uint8_t         link_type;\r
544         uint8_t         trans_interval;\r
545         uint8_t         retrans_window;\r
546         uint16_t        rx_pkt_len;\r
547         uint16_t        tx_pkt_len;\r
548         uint8_t         air_mode;\r
549 }  evt_sync_conn_complete;\r
550   #define EVT_SYNC_CONN_COMPLETE____status                      0\r
551   #define EVT_SYNC_CONN_COMPLETE____handle                      1\r
552   #define EVT_SYNC_CONN_COMPLETE____bdaddr                      3\r
553   #define EVT_SYNC_CONN_COMPLETE____link_type           9\r
554   #define EVT_SYNC_CONN_COMPLETE____trans_interval      10\r
555   #define EVT_SYNC_CONN_COMPLETE____retrans_window      11\r
556   #define EVT_SYNC_CONN_COMPLETE____rx_pkt_len          12\r
557   #define EVT_SYNC_CONN_COMPLETE____tx_pkt_len          14\r
558   #define EVT_SYNC_CONN_COMPLETE____air_mode            16\r
559 /*--------------------------------*/\r
560 #define EVT_SYNC_CONN_COMPLETE_SIZE 17\r
561 /****************************************************************/\r
562 /****************************************************************/\r
563 \r
564 \r
565 #define EVT_SYNC_CONN_CHANGED           0x2D\r
566 /*--------------------------------*/\r
567 typedef struct {\r
568         uint8_t         status;\r
569         uint16_t        handle;\r
570         uint8_t         trans_interval;\r
571         uint8_t         retrans_window;\r
572         uint16_t        rx_pkt_len;\r
573         uint16_t        tx_pkt_len;\r
574 }  evt_sync_conn_changed;\r
575   #define EVT_SYNC_CONN_CHANGED____status                               0\r
576         #define EVT_SYNC_CONN_CHANGED____handle                         1\r
577   #define EVT_SYNC_CONN_CHANGED____trans_interval               3\r
578         #define EVT_SYNC_CONN_CHANGED____retrans_window         4\r
579   #define EVT_SYNC_CONN_CHANGED____rx_pkt_len                   5\r
580         #define EVT_SYNC_CONN_CHANGED____tx_pkt_len                     7\r
581 /*--------------------------------*/\r
582 #define EVT_SYNC_CONN_CHANGED_SIZE 9\r
583 /****************************************************************/\r
584 /****************************************************************/\r
585 \r
586 \r
587 #define EVT_TESTING                     0xFE\r
588 \r
589 #define EVT_VENDOR                      0xFF\r
590 \r
591 /********************************************************************************/\r
592 /********************************************************************************/\r
593 /* Informational Parameters */\r
594 #define OGF_INFO_PARAM          0x04\r
595 \r
596 #define OCF_READ_LOCAL_VERSION          0x0001\r
597 /*--------------------------------*/\r
598 typedef struct {\r
599         uint8_t         status;\r
600         uint8_t         hci_ver;\r
601         uint16_t        hci_rev;\r
602         uint8_t         lmp_ver;\r
603         uint16_t        manufacturer;\r
604         uint16_t        lmp_subver;\r
605 }read_local_version_rp;\r
606   #define READ_LOCAL_VERSION_RP____status                       0\r
607         #define READ_LOCAL_VERSION_RP____hci_ver                        1\r
608   #define READ_LOCAL_VERSION_RP____hci_rev                      2\r
609         #define READ_LOCAL_VERSION_RP____lmp_ver                        4\r
610   #define READ_LOCAL_VERSION_RP____manufacturer         5\r
611         #define READ_LOCAL_VERSION_RP____lmp_subver             7\r
612 /*--------------------------------*/\r
613 #define READ_LOCAL_VERSION_RP_SIZE 9\r
614 /****************************************************************/\r
615 /****************************************************************/\r
616 \r
617 \r
618 #define OCF_READ_LOCAL_COMMANDS         0x0002\r
619 /*--------------------------------*/\r
620 typedef struct {\r
621         uint8_t         status;\r
622         uint8_t         commands[64];\r
623 }read_local_commands_rp;\r
624     #define READ_LOCAL_COMMANDS_RP____status            0\r
625         #define READ_LOCAL_COMMANDS_RP____commands      1\r
626 /*--------------------------------*/\r
627 #define READ_LOCAL_COMMANDS_RP_SIZE 65\r
628 /****************************************************************/\r
629 /****************************************************************/\r
630 \r
631 \r
632 #define OCF_READ_LOCAL_FEATURES         0x0003\r
633 /*--------------------------------*/\r
634 typedef struct {\r
635         uint8_t         status;\r
636         uint8_t         features[8];\r
637 }read_local_features_rp;\r
638     #define READ_LOCAL_FEATURES_RP____status            0\r
639         #define READ_LOCAL_FEATURES_RP____features      1\r
640 /*--------------------------------*/\r
641 #define READ_LOCAL_FEATURES_RP_SIZE 9\r
642 /****************************************************************/\r
643 /****************************************************************/\r
644 \r
645 \r
646 #define OCF_READ_LOCAL_EXT_FEATURES     0x0004\r
647 /*--------------------------------*/\r
648 typedef struct {\r
649         uint8_t         page_num;\r
650 }read_local_ext_features_cp;\r
651         #define READ_LOCAL_EXT_FEATURES_CP____page_num          0\r
652 /*--------------------------------*/\r
653 #define READ_LOCAL_EXT_FEATURES_CP_SIZE 1\r
654 /*--------------------------------*/\r
655 typedef struct {\r
656         uint8_t         status;\r
657         uint8_t         page_num;\r
658         uint8_t         max_page_num;\r
659         uint8_t         features[8];\r
660 }read_local_ext_features_rp;\r
661     #define READ_LOCAL_EXT_FEATURES_RP____status                        0\r
662         #define READ_LOCAL_EXT_FEATURES_RP____page_num          1\r
663     #define READ_LOCAL_EXT_FEATURES_RP____max_page_num  2\r
664         #define READ_LOCAL_EXT_FEATURES_RP____features          3\r
665 /*--------------------------------*/\r
666 #define READ_LOCAL_EXT_FEATURES_RP_SIZE 11\r
667 /****************************************************************/\r
668 /****************************************************************/\r
669 \r
670 \r
671 #define OCF_READ_BUFFER_SIZE            0x0005\r
672 /*--------------------------------*/\r
673 typedef struct {\r
674         uint8_t         status;\r
675         uint16_t        acl_mtu;\r
676         uint8_t         sco_mtu;\r
677         uint16_t        acl_max_pkt;\r
678         uint16_t        sco_max_pkt;\r
679 }read_buffer_size_rp;\r
680     #define READ_BUFFER_SIZE_RP____status                       0\r
681         #define READ_BUFFER_SIZE_RP____acl_mtu          1\r
682         #define READ_BUFFER_SIZE_RP____sco_mtu          3\r
683     #define READ_BUFFER_SIZE_RP____acl_max_pkt  4\r
684         #define READ_BUFFER_SIZE_RP____sco_max_pkt      6\r
685 /*--------------------------------*/\r
686 #define READ_BUFFER_SIZE_RP_SIZE 8\r
687 /****************************************************************/\r
688 /****************************************************************/\r
689 \r
690 \r
691 #define OCF_READ_BD_ADDR                0x0009\r
692 /*--------------------------------*/\r
693 typedef struct {\r
694         uint8_t         status;\r
695         bdaddr_t        bdaddr;\r
696 }read_bd_addr_rp;\r
697     #define READ_BD_ADDR_RP____status           0\r
698         #define READ_BD_ADDR_RP____bdaddr               1\r
699 /*--------------------------------*/\r
700 #define READ_BD_ADDR_RP_SIZE 7\r
701 \r
702 \r
703 /********************************************************************************/\r
704 /********************************************************************************/\r
705 /********************************************************************************/\r
706 /* Status params */\r
707 #define OGF_STATUS_PARAM        0x05\r
708 \r
709 #define OCF_READ_FAILED_CONTACT_COUNTER         0x0001\r
710 /*--------------------------------*/\r
711 typedef struct {\r
712         uint8_t         status;\r
713         uint16_t        handle;\r
714         uint8_t         counter;\r
715 } read_failed_contact_counter_rp;\r
716     #define READ_FAILED_CONTACT_COUNTER_RP____status            0\r
717         #define READ_FAILED_CONTACT_COUNTER_RP____handle                1\r
718         #define READ_FAILED_CONTACT_COUNTER_RP____counter               3\r
719 /*--------------------------------*/\r
720 #define READ_FAILED_CONTACT_COUNTER_RP_SIZE 4\r
721 /****************************************************************/\r
722 /****************************************************************/\r
723 \r
724 \r
725 #define OCF_RESET_FAILED_CONTACT_COUNTER        0x0002\r
726 /*--------------------------------*/\r
727 typedef struct {\r
728         uint8_t         status;\r
729         uint16_t        handle;\r
730 } reset_failed_contact_counter_rp;\r
731     #define RESET_FAILED_CONTACT_COUNTER_RP____status           0\r
732         #define RESET_FAILED_CONTACT_COUNTER_RP____handle               1\r
733 /*--------------------------------*/\r
734 #define RESET_FAILED_CONTACT_COUNTER_RP_SIZE 4\r
735 /****************************************************************/\r
736 /****************************************************************/\r
737 \r
738 \r
739 #define OCF_READ_LINK_QUALITY           0x0003\r
740 /*--------------------------------*/\r
741 typedef struct {\r
742         uint8_t         status;\r
743         uint16_t        handle;\r
744         uint8_t         link_quality;\r
745 } read_link_quality_rp;\r
746     #define READ_LINK_QUALITY_RP____status                      0\r
747     #define READ_LINK_QUALITY_RP____handle                      1\r
748         #define READ_LINK_QUALITY_RP____link_quality            3\r
749 /*--------------------------------*/\r
750 #define READ_LINK_QUALITY_RP_SIZE 4\r
751 /****************************************************************/\r
752 /****************************************************************/\r
753 \r
754 \r
755 #define OCF_READ_RSSI                   0x0005\r
756 /*--------------------------------*/\r
757 typedef struct {\r
758         uint8_t         status;\r
759         uint16_t        handle;\r
760         int8_t          rssi;\r
761 } read_rssi_rp;\r
762     #define READ_RSSI_RP____status              0\r
763     #define READ_RSSI_RP____handle              1\r
764         #define READ_RSSI_RP____rssi                    3\r
765 /*--------------------------------*/\r
766 #define READ_RSSI_RP_SIZE 4\r
767 /****************************************************************/\r
768 /****************************************************************/\r
769 \r
770 \r
771 #define OCF_READ_AFH_MAP                0x0006\r
772 /*--------------------------------*/\r
773 typedef struct {\r
774         uint8_t         status;\r
775         uint16_t        handle;\r
776         uint8_t         mode;\r
777         uint8_t         map[10];\r
778 } read_afh_map_rp;\r
779     #define READ_AFH_MAP_RP____status           0\r
780         #define READ_AFH_MAP_RP____handle               2\r
781     #define READ_AFH_MAP_RP____mode             3\r
782         #define READ_AFH_MAP_RP____map          4\r
783 /*--------------------------------*/\r
784 #define READ_AFH_MAP_RP_SIZE 14\r
785 /****************************************************************/\r
786 /****************************************************************/\r
787 \r
788 \r
789 #define OCF_READ_CLOCK                  0x0007\r
790 /*--------------------------------*/\r
791 typedef struct {\r
792         uint16_t        handle;\r
793         uint8_t         which_clock;\r
794 } read_clock_cp;\r
795     #define READ_CLOCK_CP____handle                     0\r
796         #define READ_CLOCK_CP____which_clock            2\r
797 /*--------------------------------*/\r
798 #define READ_CLOCK_CP_SIZE 3\r
799 /*--------------------------------*/\r
800 typedef struct {\r
801         uint8_t         status;\r
802         uint16_t        handle;\r
803         uint32_t        clock;\r
804         uint16_t        accuracy;\r
805 }read_clock_rp;\r
806     #define READ_CLOCK_RP____status             0\r
807         #define READ_CLOCK_RP____handle         1\r
808     #define READ_CLOCK_RP____clock              3\r
809         #define READ_CLOCK_RP____accuracy               7\r
810 /*--------------------------------*/\r
811 #define READ_CLOCK_RP_SIZE 9\r
812 \r
813 /* Testing commands */\r
814 #define OGF_TESTING_CMD         0x3e\r
815 \r
816 /* Vendor specific commands */\r
817 #define OGF_VENDOR_CMD          0x3f\r
818 \r
819 \r
820 \r
821 //funkce\r
822 int bth_del_event(uint16_t opcode);\r
823 inline int bth_find_if_bdaddr_accept(bdaddr_t   *bdaddr);\r
824 /**********/\r
825 int bth_evt_none(uint8_t *bth_p, uint8_t size);  //fce s neex. indexem evt codu\r
826 int bth_evt_inquiry_complete(uint8_t *bth_p, uint8_t size);  //0x01\r
827 int bth_evt_inquiry_result(uint8_t *bth_p, uint8_t size);   //0x02\r
828 int bth_evt_conn_complete(uint8_t *bth_p, uint8_t size);   //0x03\r
829 int bth_evt_conn_request(uint8_t *bth_p, uint8_t size);   //0x04\r
830 int bth_evt_disconn_complete(uint8_t *bth_p, uint8_t size);  //0x05\r
831 int bth_evt_auth_complete(uint8_t *bth_p, uint8_t size);  //0x06\r
832 int bth_remote_name_req_complete(uint8_t *bth_p, uint8_t size);   //0x07\r
833 int bth_evt_encrypt_cahnge(uint8_t *bth_p, uint8_t size);  //0x08\r
834 int bth_evt_change_conn_link_key_complete(uint8_t *bth_p, uint8_t size); //0x09\r
835 int bth_evt_master_link_key_complete(uint8_t *bth_p, uint8_t size); //0x0A\r
836 int bth_evt_read_remote_features_complete(uint8_t *bth_p, uint8_t size);  //0x0B\r
837 int bth_evt_read_remote_version_complete(uint8_t *bth_p, uint8_t size);  //0x0C\r
838 int bth_evt_qos_setup_complete(uint8_t *bth_p, uint8_t size); //0x0D\r
839 int bth_evt_cmd_complete(uint8_t *bth_p, uint8_t size);  //0x0E\r
840 int bth_evt_cmd_status(uint8_t *bth_p, uint8_t size); //0x0F\r
841 int bth_evt_hardware_error(uint8_t *bth_p, uint8_t size); //0x10\r
842 int bth_evt_flush_occurred(uint8_t *bth_p, uint8_t size); //0x11\r
843 int bth_evt_role_cahage(uint8_t *bth_p, uint8_t size); //0x12\r
844 int bth_evt_num_comp_pkts(uint8_t *bth_p, uint8_t size);  //0x13\r
845 int bth_evt_mode_change(uint8_t *bth_p, uint8_t size);  //0x14\r
846 int bth_evt_return_link_keys(uint8_t *bth_p, uint8_t size);  //0x15\r
847 int bth_evt_pin_code_req(uint8_t *bth_p, uint8_t size); //0x16\r
848 int bth_evt_link_key_req(uint8_t *bth_p, uint8_t size);  //0x17\r
849 int bth_evt_link_key_notify(uint8_t *bth_p, uint8_t size);  //0x18\r
850 int bth_evt_loopback_command(uint8_t *bth_p, uint8_t size);  //0x19\r
851 int bth_evt_data_buffer_overflow(uint8_t *bth_p, uint8_t size); //0x1A\r
852 int bth_evt_max_slots_change(uint8_t *bth_p, uint8_t size);  //0x1B\r
853 int bth_evt_read_clock_offset_complete(uint8_t *bth_p, uint8_t size);  //0x1C\r
854 int bth_evt_conn_ptype_changed(uint8_t *bth_p, uint8_t size);  //0x1D\r
855 int bth_evt_qos_violation(uint8_t *bth_p, uint8_t size); //0x1E\r
856 int bth_evt_page_scan_mode_change(uint8_t *bth_p, uint8_t size);  //0x1F\r
857 int bth_evt_pscan_rep_mode_change(uint8_t *bth_p, uint8_t size);  //0x20\r
858 int bth_evt_flow_spec_complete(uint8_t *bth_p, uint8_t size);  //0x21\r
859 int bth_evt_inquiry_result_with_rssi(uint8_t *bth_p, uint8_t size);;  //0x22\r
860 \r
861 \r
862 #endif\r
863 \r
864 \r