1 /*******************************************************************
\r
4 hci_event.h - list of Event packet structures + list of event fce
\r
6 Copyright (C) 2006 by Petr Kovacik petr_kovacik@gmail.com
\r
8 *******************************************************************/
\r
13 /* ---- HCI Events ---- */
\r
15 #define EVT_INQUIRY_COMPLETE 0x01
\r
17 #define EVT_INQUIRY_RESULT 0x02
\r
18 /*--------------------------------*/
\r
21 uint8_t pscan_rep_mode;
\r
22 uint8_t pscan_period_mode;
\r
24 uint8_t dev_class[3];
\r
25 uint16_t clock_offset;
\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
40 #define EVT_CONN_COMPLETE 0x03
\r
41 /*--------------------------------*/
\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
60 #define EVT_CONN_REQUEST 0x04
\r
61 /*--------------------------------*/
\r
64 uint8_t dev_class[3];
\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
76 #define EVT_DISCONN_COMPLETE 0x05
\r
77 /*--------------------------------*/
\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
92 #define EVT_AUTH_COMPLETE 0x06
\r
93 /*--------------------------------*/
\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
107 #define EVT_REMOTE_NAME_REQ_COMPLETE 0x07
\r
108 /*--------------------------------*/
\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
123 #define EVT_ENCRYPT_CHANGE 0x08
\r
124 /*--------------------------------*/
\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
139 #define EVT_CHANGE_CONN_LINK_KEY_COMPLETE 0x09
\r
140 /*--------------------------------*/
\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
153 #define EVT_MASTER_LINK_KEY_COMPLETE 0x0A
\r
154 /*--------------------------------*/
\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
169 #define EVT_READ_REMOTE_FEATURES_COMPLETE 0x0B
\r
170 /*--------------------------------*/
\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
185 #define EVT_READ_REMOTE_VERSION_COMPLETE 0x0C
\r
186 /*--------------------------------*/
\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
202 //#define EVT_QOS_SETUP_COMPLETE 0x0D
\r
205 // uint16_t handle;
\r
206 // uint8_t flags; /* Reserved */
\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
219 #define EVT_CMD_COMPLETE 0x0E
\r
220 /*--------------------------------*/
\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
234 #define EVT_CMD_STATUS 0x0F
\r
235 /*--------------------------------*/
\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
250 #define EVT_HARDWARE_ERROR 0x10
\r
251 /*--------------------------------*/
\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
262 #define EVT_FLUSH_OCCURRED 0x11
\r
263 /*--------------------------------*/
\r
266 } evt_flush_occured;
\r
267 #define EVT_FLUSH_OCCURED____handle 0
\r
268 /*--------------------------------*/
\r
269 #define EVT_FLUSH_OCCURRED_SIZE 2
\r
271 #define EVT_ROLE_CHANGE 0x12
\r
272 /*--------------------------------*/
\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
287 #define EVT_NUM_COMP_PKTS 0x13
\r
288 /*--------------------------------*/
\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
300 #define EVT_MODE_CHANGE 0x14
\r
301 /*--------------------------------*/
\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
318 #define EVT_RETURN_LINK_KEYS 0x15
\r
319 /*--------------------------------*/
\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
331 #define EVT_PIN_CODE_REQ 0x16
\r
332 /*--------------------------------*/
\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
343 #define EVT_LINK_KEY_REQ 0x17
\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
354 #define EVT_LINK_KEY_NOTIFY 0x18
\r
355 /*--------------------------------*/
\r
358 uint8_t link_key[16];
\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
370 #define EVT_LOOPBACK_COMMAND 0x19
\r
372 #define EVT_DATA_BUFFER_OVERFLOW 0x1A
\r
373 /*--------------------------------*/
\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
384 #define EVT_MAX_SLOTS_CHANGE 0x1B
\r
385 /*--------------------------------*/
\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
398 #define EVT_READ_CLOCK_OFFSET_COMPLETE 0x1C
\r
399 /*--------------------------------*/
\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
414 #define EVT_CONN_PTYPE_CHANGED 0x1D
\r
415 /*--------------------------------*/
\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
430 #define EVT_QOS_VIOLATION 0x1E
\r
431 /*--------------------------------*/
\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
442 #define EVT_PSCAN_REP_MODE_CHANGE 0x20
\r
443 /*--------------------------------*/
\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
456 #define EVT_FLOW_SPEC_COMPLETE 0x21
\r
457 /*--------------------------------*/
\r
460 // uint16_t handle;
\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
473 /****************************************************************************/
\r
474 /****************************************************************************/
\r
475 /*------------------------------- RSSI -------------------------------------*/
\r
476 #define EVT_INQUIRY_RESULT_WITH_RSSI 0x22
\r
477 /*--------------------------------*/
\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
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
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
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
517 #define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE 0x23
\r
518 /*--------------------------------*/
\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
537 #define EVT_SYNC_CONN_COMPLETE 0x2C
\r
538 /*--------------------------------*/
\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
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
565 #define EVT_SYNC_CONN_CHANGED 0x2D
\r
566 /*--------------------------------*/
\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
587 #define EVT_TESTING 0xFE
\r
589 #define EVT_VENDOR 0xFF
\r
591 /********************************************************************************/
\r
592 /********************************************************************************/
\r
593 /* Informational Parameters */
\r
594 #define OGF_INFO_PARAM 0x04
\r
596 #define OCF_READ_LOCAL_VERSION 0x0001
\r
597 /*--------------------------------*/
\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
618 #define OCF_READ_LOCAL_COMMANDS 0x0002
\r
619 /*--------------------------------*/
\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
632 #define OCF_READ_LOCAL_FEATURES 0x0003
\r
633 /*--------------------------------*/
\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
646 #define OCF_READ_LOCAL_EXT_FEATURES 0x0004
\r
647 /*--------------------------------*/
\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
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
671 #define OCF_READ_BUFFER_SIZE 0x0005
\r
672 /*--------------------------------*/
\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
691 #define OCF_READ_BD_ADDR 0x0009
\r
692 /*--------------------------------*/
\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
703 /********************************************************************************/
\r
704 /********************************************************************************/
\r
705 /********************************************************************************/
\r
706 /* Status params */
\r
707 #define OGF_STATUS_PARAM 0x05
\r
709 #define OCF_READ_FAILED_CONTACT_COUNTER 0x0001
\r
710 /*--------------------------------*/
\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
725 #define OCF_RESET_FAILED_CONTACT_COUNTER 0x0002
\r
726 /*--------------------------------*/
\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
739 #define OCF_READ_LINK_QUALITY 0x0003
\r
740 /*--------------------------------*/
\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
755 #define OCF_READ_RSSI 0x0005
\r
756 /*--------------------------------*/
\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
771 #define OCF_READ_AFH_MAP 0x0006
\r
772 /*--------------------------------*/
\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
789 #define OCF_READ_CLOCK 0x0007
\r
790 /*--------------------------------*/
\r
793 uint8_t which_clock;
\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
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
813 /* Testing commands */
\r
814 #define OGF_TESTING_CMD 0x3e
\r
816 /* Vendor specific commands */
\r
817 #define OGF_VENDOR_CMD 0x3f
\r
822 int bth_del_event(uint16_t opcode);
\r
823 inline int bth_find_if_bdaddr_accept(bdaddr_t *bdaddr);
\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