1 /* 2 * Copyright (C) 2015 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the copyright holders nor the names of 14 * contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 4. Any redistribution, use, or modification is done solely for 17 * personal benefit and not for any commercial purpose or for 18 * monetary gain. 19 * 20 * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN 24 * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * Please inquire about commercial licensing options at 34 * [email protected] 35 * 36 */ 37 38 /** 39 * 40 * BTstack definitions, events, and error codes 41 * 42 */ 43 44 #ifndef BTSTACK_DEFINES_H 45 #define BTSTACK_DEFINES_H 46 #include <stdint.h> 47 48 #include "btstack_linked_list.h" 49 50 // UNUSED macro 51 #ifndef UNUSED 52 #define UNUSED(x) (void)(sizeof(x)) 53 #endif 54 55 // TYPES 56 57 // packet handler 58 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 59 60 // packet callback supporting multiple registrations 61 typedef struct { 62 btstack_linked_item_t item; 63 btstack_packet_handler_t callback; 64 } btstack_packet_callback_registration_t; 65 66 // context callback supporting multiple registrations 67 typedef struct { 68 btstack_linked_item_t * item; 69 void (*callback)(void * context); 70 void * context; 71 } btstack_context_callback_registration_t; 72 73 /** 74 * @brief 128 bit key used with AES128 in Security Manager 75 */ 76 typedef uint8_t sm_key_t[16]; 77 78 // DEFINES 79 80 // hci con handles (12 bit): 0x0000..0x0fff 81 #define HCI_CON_HANDLE_INVALID 0xffffu 82 83 84 #define DAEMON_EVENT_PACKET 0x05u 85 86 // L2CAP data 87 #define L2CAP_DATA_PACKET 0x06u 88 89 // RFCOMM data 90 #define RFCOMM_DATA_PACKET 0x07u 91 92 // Attribute protocol data 93 #define ATT_DATA_PACKET 0x08u 94 95 // Security Manager protocol data 96 #define SM_DATA_PACKET 0x09u 97 98 // SDP query result - only used by daemon 99 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 100 #define SDP_CLIENT_PACKET 0x0au 101 102 // BNEP data 103 #define BNEP_DATA_PACKET 0x0bu 104 105 // Unicast Connectionless Data 106 #define UCD_DATA_PACKET 0x0cu 107 108 // GOEP data 109 #define GOEP_DATA_PACKET 0x0du 110 111 // PBAP data 112 #define PBAP_DATA_PACKET 0x0eu 113 114 // AVRCP browsing data 115 #define AVRCP_BROWSING_DATA_PACKET 0x0fu 116 117 // MAP data 118 #define MAP_DATA_PACKET 0x10u 119 120 // Mesh Provisioning PDU 121 #define PROVISIONING_DATA_PACKET 0x11u 122 123 // Mesh Proxy PDU 124 #define MESH_PROXY_DATA_PACKET 0x11u 125 126 // Mesh Network PDU 127 #define MESH_NETWORK_PACKET 0x12u 128 129 // Mesh Network PDU 130 #define MESH_BEACON_PACKET 0x13u 131 132 // debug log messages 133 #define LOG_MESSAGE_PACKET 0xfcu 134 135 136 // DAEMON COMMANDS 137 138 #define OGF_BTSTACK 0x3du 139 140 // cmds for BTstack 141 // get state: @return HCI_STATE 142 #define BTSTACK_GET_STATE 0x01u 143 144 // set power mode: param HCI_POWER_MODE 145 #define BTSTACK_SET_POWER_MODE 0x02u 146 147 // set capture mode: param on 148 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03u 149 150 // get BTstack version 151 #define BTSTACK_GET_VERSION 0x04u 152 153 // get system Bluetooth state 154 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05u 155 156 // set system Bluetooth state 157 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06u 158 159 // enable inquiry scan for this client 160 #define BTSTACK_SET_DISCOVERABLE 0x07u 161 162 // set global Bluetooth state 163 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08u 164 165 // create l2cap channel: param bd_addr(48), psm (16) 166 #define L2CAP_CREATE_CHANNEL 0x20u 167 168 // disconnect l2cap disconnect, param channel(16), reason(8) 169 #define L2CAP_DISCONNECT 0x21u 170 171 // register l2cap service: param psm(16), mtu (16) 172 #define L2CAP_REGISTER_SERVICE 0x22u 173 174 // unregister l2cap disconnect, param psm(16) 175 #define L2CAP_UNREGISTER_SERVICE 0x23u 176 177 // accept connection param bd_addr(48), dest cid (16) 178 #define L2CAP_ACCEPT_CONNECTION 0x24u 179 180 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 181 #define L2CAP_DECLINE_CONNECTION 0x25u 182 183 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 184 #define L2CAP_CREATE_CHANNEL_MTU 0x26u 185 186 // request can send now event: l2cap_cid 187 #define L2CAP_REQUEST_CAN_SEND_NOW 0x27u 188 189 // register SDP Service Record: service record (size) 190 #define SDP_REGISTER_SERVICE_RECORD 0x30u 191 192 // unregister SDP Service Record 193 #define SDP_UNREGISTER_SERVICE_RECORD 0x31u 194 195 // Get remote RFCOMM services 196 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32u 197 198 // Get remote SDP services 199 #define SDP_CLIENT_QUERY_SERVICES 0x33u 200 201 // RFCOMM "HCI" Commands 202 #define RFCOMM_CREATE_CHANNEL 0x40u 203 #define RFCOMM_DISCONNECT 0x41u 204 #define RFCOMM_REGISTER_SERVICE 0x42u 205 #define RFCOMM_UNREGISTER_SERVICE 0x43u 206 #define RFCOMM_ACCEPT_CONNECTION 0x44u 207 #define RFCOMM_DECLINE_CONNECTION 0x45u 208 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47u 209 #define RFCOMM_PERSISTENT_CHANNEL 0x46u 210 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48u 211 #define RFCOMM_GRANT_CREDITS 0x49u 212 // request can send now event: rfcomm_cid 213 #define RFCOMM_REQUEST_CAN_SEND_NOW 0x4Au 214 215 // GAP Classic 0x50u 216 #define GAP_DISCONNECT 0x50u 217 #define GAP_INQUIRY_START 0x51u 218 #define GAP_INQUIRY_STOP 0x52u 219 #define GAP_REMOTE_NAME_REQUEST 0x53u 220 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54u 221 #define GAP_DELETE_ALL_LINK_KEYS 0x55u 222 #define GAP_PIN_CODE_RESPONSE 0x56u 223 #define GAP_PIN_CODE_NEGATIVE 0x57u 224 225 // GAP LE 0x60u 226 #define GAP_LE_SCAN_START 0x60u 227 #define GAP_LE_SCAN_STOP 0x61u 228 #define GAP_LE_CONNECT 0x62u 229 #define GAP_LE_CONNECT_CANCEL 0x63u 230 #define GAP_LE_SET_SCAN_PARAMETERS 0x64u 231 232 // GATT (Client) 0x70u 233 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70u 234 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71u 235 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72u 236 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73u 237 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74u 238 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75u 239 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76u 240 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77u 241 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78u 242 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79u 243 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7Au 244 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Bu 245 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7Cu 246 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7Du 247 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7Eu 248 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7Fu 249 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80u 250 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81u 251 #define GATT_GET_MTU 0x82u 252 253 // SM 0x90u 254 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90u 255 #define SM_SET_IO_CAPABILITIES 0x92u 256 #define SM_BONDING_DECLINE 0x93u 257 #define SM_JUST_WORKS_CONFIRM 0x94u 258 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95u 259 #define SM_PASSKEY_INPUT 0x96u 260 261 // ATT 262 263 // .. 264 // Internal properties reuse some GATT Characteristic Properties fields 265 #define ATT_DB_VERSION 0x01u 266 267 // EVENTS 268 269 // Events from host controller to host 270 271 /** 272 * @brief Custom NOP Event - used for internal testing 273 */ 274 #define HCI_EVENT_NOP 0x00u 275 276 /** 277 * @format 1 278 * @param status 279 */ 280 #define HCI_EVENT_INQUIRY_COMPLETE 0x01u 281 282 /** 283 * @format 1B11132 284 * @param num_responses 285 * @param bd_addr 286 * @param page_scan_repetition_mode 287 * @param reserved1 288 * @param reserved2 289 * @param class_of_device 290 * @param clock_offset 291 */ 292 #define HCI_EVENT_INQUIRY_RESULT 0x02u 293 294 /** 295 * @format 12B11 296 * @param status 297 * @param connection_handle 298 * @param bd_addr 299 * @param link_type 300 * @param encryption_enabled 301 */ 302 #define HCI_EVENT_CONNECTION_COMPLETE 0x03u 303 /** 304 * @format B31 305 * @param bd_addr 306 * @param class_of_device 307 * @param link_type 308 */ 309 #define HCI_EVENT_CONNECTION_REQUEST 0x04u 310 /** 311 * @format 121 312 * @param status 313 * @param connection_handle 314 * @param reason 315 */ 316 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05u 317 /** 318 * @format 12 319 * @param status 320 * @param connection_handle 321 */ 322 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06u 323 324 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 325 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 326 327 /** 328 * @format 1BN 329 * @param status 330 * @param bd_addr 331 * @param remote_name 332 */ 333 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07u 334 335 /** 336 * @format 121 337 * @param status 338 * @param connection_handle 339 * @param encryption_enabled 340 */ 341 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08u 342 343 /** 344 * @format 12 345 * @param status 346 * @param connection_handle 347 */ 348 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09u 349 350 /** 351 * @format 121 352 * @param status 353 * @param connection_handle 354 * @param key_flag 355 */ 356 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0Au 357 358 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0Bu 359 360 /** 361 * @format 12122 362 * @param status 363 * @param connection_handle 364 * @param version 365 * @param manufacturer_name 366 * @param subversion 367 */ 368 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0Cu 369 370 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0Du 371 372 /** 373 * @format 12R 374 * @param num_hci_command_packets 375 * @param command_opcode 376 * @param return_parameters 377 */ 378 #define HCI_EVENT_COMMAND_COMPLETE 0x0Eu 379 /** 380 * @format 112 381 * @param status 382 * @param num_hci_command_packets 383 * @param command_opcode 384 */ 385 #define HCI_EVENT_COMMAND_STATUS 0x0Fu 386 387 /** 388 * @format 1 389 * @param hardware_code 390 */ 391 #define HCI_EVENT_HARDWARE_ERROR 0x10u 392 393 /** 394 * @format H 395 * @param handle 396 */ 397 #define HCI_EVENT_FLUSH_OCCURRED 0x11u 398 399 /** 400 * @format 1B1 401 * @param status 402 * @param bd_addr 403 * @param role 404 */ 405 #define HCI_EVENT_ROLE_CHANGE 0x12u 406 407 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 408 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13u 409 410 /** 411 * @format 1H12 412 * @param status 413 * @param handle 414 * @param mode 415 * @param interval 416 */ 417 #define HCI_EVENT_MODE_CHANGE 0x14u 418 419 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 420 #define HCI_EVENT_RETURN_LINK_KEYS 0x15u 421 422 /** 423 * @format B 424 * @param bd_addr 425 */ 426 #define HCI_EVENT_PIN_CODE_REQUEST 0x16u 427 428 /** 429 * @format B 430 * @param bd_addr 431 */ 432 #define HCI_EVENT_LINK_KEY_REQUEST 0x17u 433 434 // TODO: bd_addr B, link_key 16octets, key_type 1 435 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18u 436 437 // event params contains HCI ccommand 438 #define HCI_EVENT_LOOPBACK_COMMAND 0x19u 439 440 /** 441 * @format 1 442 * @param link_type 443 */ 444 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1Au 445 446 /** 447 * @format H1 448 * @param handle 449 * @param lmp_max_slots 450 */ 451 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1Bu 452 453 /** 454 * @format 1H2 455 * @param status 456 * @param handle 457 * @param clock_offset 458 */ 459 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1Cu 460 461 /** 462 * @format 1H2 463 * @param status 464 * @param handle 465 * @param packet_types 466 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 467 */ 468 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1Du 469 470 /** 471 * @format H 472 * @param handle 473 */ 474 #define HCI_EVENT_QOS_VIOLATION 0x1Eu 475 476 // 0x1f not defined 477 478 /** 479 * @format H1 480 * @param handle 481 * @param page_scan_repetition_mode 482 */ 483 #define HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE 0x20u 484 485 /** 486 * @format 1H1114444 487 * @param status 488 * @param handle 489 * @param unused 490 * @param flow_direction 491 * @param service_type 492 * @param token_rate 493 * @param token_bucket_size 494 * @param peak_bandwidth 495 * @param access_latency 496 * 497 */ 498 #define HCI_EVENT_FLOW_SPECIFICATION_COMPLETE 0x21u 499 500 /** 501 * @format 1B11321 502 * @param num_responses 503 * @param bd_addr 504 * @param page_scan_repetition_mode 505 * @param reserved 506 * @param class_of_device 507 * @param clock_offset 508 * @param rssi 509 */ 510 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22u 511 512 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE 0x23u 513 514 // 0x24..0x2b not defined 515 516 /** 517 * @format 1HB111221 518 * @param status 519 * @param handle 520 * @param bd_addr 521 * @param link_type 522 * @param transmission_interval 523 * @param retransmission_interval 524 * @param rx_packet_length 525 * @param tx_packet_length 526 * @param air_mode 527 */ 528 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2Cu 529 530 /** 531 * @format 1H1122 532 * @param status 533 * @param handle 534 * @param transmission_interval 535 * @param retransmission_interval 536 * @param rx_packet_length 537 * @param tx_packet_length 538 */ 539 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_CHANGED 0x2Du 540 541 /** 542 * @format 1H2222 543 * @param status 544 * @param handle 545 * @param max_tx_latency 546 * @param max_rx_latency 547 * @param min_remote_timeout 548 * @param min_local_timeout 549 */ 550 #define HCI_EVENT_SNIFF_SUBRATING 0x2Eu 551 552 // TODO: serialize extended_inquiry_response and provide parser 553 554 /** 555 * @format 1B11321 556 * @param num_responses 557 * @param bd_addr 558 * @param page_scan_repetition_mode 559 * @param reserved 560 * @param class_of_device 561 * @param clock_offset 562 * @param rssi 563 */ 564 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2Fu 565 566 /** 567 * @format 1H 568 * @param status 569 * @param handle 570 */ 571 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30u 572 573 /** 574 * @format B 575 * @param bd_addr 576 */ 577 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31u 578 579 /** 580 * @format B111 581 * @param bd_addr 582 * @param io_capability 583 * @param oob_data_present 584 * @param authentication_requirements 585 */ 586 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32u 587 588 /** 589 * @format B4 590 * @param bd_addr 591 * @param numeric_value 592 */ 593 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33u 594 595 /** 596 * @format B 597 * @param bd_addr 598 */ 599 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34u 600 601 /** 602 * @format B 603 * @param bd_addr 604 */ 605 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35u 606 607 /** 608 * @format 1B 609 * @param status 610 * @param bd_addr 611 */ 612 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36u 613 614 /** 615 * @format H2 616 * @param handle 617 * @param link_supervision_timeout 618 */ 619 #define HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED 0x38u 620 621 /** 622 * @format H 623 * @param handle 624 */ 625 #define HCI_EVENT_ENHANCED_FLUSH_COMPLETE 0x39u 626 627 // 0x03a not defined 628 629 /** 630 * @format B4 631 * @param bd_addr 632 * @param numeric_value 633 */ 634 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION 0x3Bu 635 636 /** 637 * @format B1 638 * @param bd_addr 639 * @param notification_type 640 */ 641 #define HCI_EVENT_KEYPRESS_NOTIFICATION 0x3Cu 642 643 #define HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES 0x3Du 644 645 #define HCI_EVENT_LE_META 0x3Eu 646 647 // 0x3f..0x47 not defined 648 649 #define HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS 0x48u 650 651 // 0x49..0x58 not defined 652 653 /** 654 * @format 1211 655 * @param status 656 * @param connection_handle 657 * @param encryption_enabled 658 * @param encryption_key_size 659 */ 660 #define HCI_EVENT_ENCRYPTION_CHANGE_V2 0x59u 661 662 // last used HCI_EVENT in 5.3 is 0x59u 663 664 #define HCI_EVENT_VENDOR_SPECIFIC 0xFFu 665 666 /** 667 * @format 11H11B2221 668 * @param subevent_code 669 * @param status 670 * @param connection_handle 671 * @param role 672 * @param peer_address_type 673 * @param peer_address 674 * @param conn_interval 675 * @param conn_latency 676 * @param supervision_timeout 677 * @param master_clock_accuracy 678 */ 679 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01u 680 681 // array of advertisements, not handled by event accessor generator 682 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02u 683 684 /** 685 * @format 11H222 686 * @param subevent_code 687 * @param status 688 * @param connection_handle 689 * @param conn_interval 690 * @param conn_latency 691 * @param supervision_timeout 692 */ 693 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03u 694 695 /** 696 * @format 1HD 697 * @param subevent_code 698 * @param connection_handle 699 * @param le_features 700 */ 701 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04u 702 703 /** 704 * @format 1HD2 705 * @param subevent_code 706 * @param connection_handle 707 * @param random_number 708 * @param encryption_diversifier 709 */ 710 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05u 711 712 /** 713 * @format 1H2222 714 * @param subevent_code 715 * @param connection_handle 716 * @param interval_min 717 * @param interval_max 718 * @param latency 719 * @param timeout 720 */ 721 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06u 722 723 /** 724 * @format 1H2222 725 * @param subevent_code 726 * @param connection_handle 727 * @param max_tx_octets 728 * @param max_tx_time 729 * @param max_rx_octets 730 * @param max_rx_time 731 */ 732 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07u 733 734 /** 735 * @format 11QQ 736 * @param subevent_code 737 * @param status 738 * @param dhkey_x x coordinate of P256 public key 739 * @param dhkey_y y coordinate of P256 public key 740 */ 741 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08u 742 743 /** 744 * @format 11Q 745 * @param subevent_code 746 * @param status 747 * @param dhkey Diffie-Hellman key 748 */ 749 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09u 750 751 /** 752 * @format 11H11BBB2221 753 * @param subevent_code 754 * @param status 755 * @param connection_handle 756 * @param role 757 * @param peer_address_type 758 * @param peer_addresss 759 * @param local_resolvable_private_addres 760 * @param peer_resolvable_private_addres 761 * @param conn_interval 762 * @param conn_latency 763 * @param supervision_timeout 764 * @param master_clock_accuracy 765 */ 766 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0Au 767 768 // array of advertisements, not handled by event accessor generator 769 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0Bu 770 771 /** 772 * @format 11H1 773 * @param subevent_code 774 * @param status 775 * @param connection_handle 776 * @param tx_phy 777 */ 778 #define HCI_SUBEVENT_LE_PHY_UPDATE_COMPLETE 0x0Cu 779 780 // array of advertisements, not handled by event accessor generator 781 #define HCI_SUBEVENT_LE_EXTENDED_ADVERTISING_REPORT 0x0Du 782 783 /** 784 * @format 11H11B121 785 * @param subevent_code 786 * @param status 787 * @param sync_handle 788 * @param advertising_sid 789 * @param advertiser_address_type 790 * @param advertiser_address 791 * @param advertiser_phy 792 * @param periodic_advertising_interval 793 * @param advertiser_clock_accuracy 794 */ 795 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_ESTABLISHMENT 0x0Eu 796 797 /** 798 * @format 1H1111JV 799 * @param subevent_code 800 * @param sync_handle 801 * @param tx_power 802 * @param rssi 803 * @param cte_type 804 * @param data_status 805 * @param data_length 806 * @param data 807 */ 808 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_REPORT 0x0Fu 809 810 /** 811 * @format 1H 812 * @param subevent_code 813 * @param sync_handle 814 */ 815 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_LOST 0x10u 816 817 /** 818 * @format 1 819 * @param subevent_code 820 */ 821 #define HCI_SUBEVENT_LE_SCAN_TIMEOUT 0x11u 822 823 /** 824 * @format 111H1 825 * @param subevent_code 826 * @param status 827 * @param advertising_handle 828 * @param connection_handle 829 * @param num_completed_exteneded_advertising_events 830 */ 831 #define HCI_SUBEVENT_LE_ADVERTISING_SET_TERMINATED 0x12u 832 833 /** 834 * @format 111B 835 * @param subevent_code 836 * @param advertising_handle 837 * @param scanner_address_type 838 * @param scanner_address 839 */ 840 #define HCI_SUBEVENT_LE_SCAN_REQUEST_RECEIVED 0x13u 841 842 /** 843 * @format 1H1 844 * @param subevent_code 845 * @param connection_handle 846 * @param channel_selection_algorithm 847 */ 848 #define HCI_SUBEVENT_LE_CHANNEL_SELECTION_ALGORITHM 0x14u 849 850 // array of advertisements, not handled by event accessor generator 851 #define HCI_SUBEVENT_LE_CONNECTIONLESS_IQ_REPORT 0x15u 852 853 // array of advertisements, not handled by event accessor generator 854 #define HCI_SUBEVENT_LE_CONNECTION_IQ_REPORT 0x16u 855 856 /** 857 * @format 11H 858 * @param subevent_code 859 * @param status 860 * @param connection_handle 861 */ 862 #define HCI_SUBEVENT_LE_LE_CTE_REQUEST_FAILED 0x17u 863 864 /** 865 * @format 11H2H11B121 866 * @param subevent_code 867 * @param status 868 * @param connection_handle 869 * @param service_data 870 * @param sync_handle 871 * @param advertising_sid 872 * @param advertiser_address_type 873 * @param advertiser_address 874 * @param advertiser_phy 875 * @param periodic_advertising_interval 876 * @param advertiser_clock_accuracy 877 */ 878 #define HCI_SUBEVENT_LE_PERIODIC_ADVERTISING_SYNC_TRANSFER_RECEIVED 0x18u 879 880 /** 881 * @format 11H33331111111222 882 * @param subevent_code 883 * @param status 884 * @param connection_handle 885 * @param cig_sync_delay 886 * @param cis_sync_delay 887 * @param transport_latency_c_to_p 888 * @param transport_latency_p_to_c 889 * @param phy_c_to_p 890 * @param phy_p_to_c 891 * @param nse 892 * @param bn_c_to_p 893 * @param bn_p_to_c 894 * @param ft_c_to_p 895 * @param ft_p_to_c 896 * @param max_pdu_c_to_p 897 * @param max_pdu_p_to_c 898 * @param iso_interval 899 */ 900 #define HCI_SUBEVENT_LE_CIS_ESTABLISHED 0x19u 901 902 /** 903 * @format 1HH11 904 * @param subevent_code 905 * @param acl_connection_handle 906 * @param cis_connection_handle 907 * @param cig_id 908 * @param cis_id 909 */ 910 #define HCI_SUBEVENT_LE_CIS_REQUEST 0x1au 911 912 // array of advertisements, not handled by event accessor generator 913 #define HCI_SUBEVENT_LE_CREATE_BIG_COMPLETE 0x1Bu 914 915 /** 916 * @format 111 917 * @param subevent_code 918 * @param big_handle 919 * @param reason 920 */ 921 #define HCI_SUBEVENT_LE_TERMINATE_BIG_COMPLETE 0x1Cu 922 923 // array of advertisements, not handled by event accessor generator 924 #define HCI_SUBEVENT_LE_BIG_SYNC_ESTABLISHED 0x1Du 925 926 /** 927 * @format 111 928 * @param subevent_code 929 * @param big_handle 930 * @param reason 931 */ 932 #define HCI_SUBEVENT_LE_BIG_SYNC_LOST 0x1Eu 933 934 /** 935 * @format 11H1 936 * @param subevent_code 937 * @param status 938 * @param connection_handle 939 * @param peer_clock_accuracy 940 */ 941 #define HCI_SUBEVENT_LE_REQUEST_PEER_SCA_COMPLETE 0x1Fu 942 943 /** 944 * @format 11H11111 945 * @param subevent_code 946 * @param status 947 * @param connection_handle 948 * @param reason 949 * @param phy 950 * @param tx_power_level 951 * @param tx_power_level_flag 952 * @param delta 953 */ 954 #define HCI_SUBEVENT_LE_TRANSMIT_POWER_REPORTING 0x21u 955 956 /** 957 * @format 1H112111232111 958 * @param subevent_code 959 * @param sync_handle 960 * @param num_bis 961 * @param nse 962 * @param iso_interval 963 * @param bn 964 * @param pto 965 * @param irc 966 * @param max_pdu 967 * @param sdu_interval 968 * @param max_sdu 969 * @param phy 970 * @param framing 971 * @param encryption 972 */ 973 #define HCI_SUBEVENT_LE_BIGINFO_ADVERTISING_REPORT 0x22u 974 975 /** 976 * @format 11H2222 977 * @param subevent_code 978 * @param status 979 * @param connection_handle 980 * @param subrate_factor 981 * @param peripheral_latency 982 * @param continuation_number 983 * @param supervision_timeout 984 */ 985 #define HCI_SUBEVENT_LE_SUBRATE_CHANGE 0x23u 986 987 /** 988 * @format 1 989 * @param state 990 */ 991 #define BTSTACK_EVENT_STATE 0x60u 992 993 /** 994 * @format 1 995 * @param number_connections 996 */ 997 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61u 998 999 /** 1000 * @format 1001 */ 1002 #define BTSTACK_EVENT_POWERON_FAILED 0x62u 1003 1004 /** 1005 * @format 11 1006 * @param discoverable 1007 * @param connectable 1008 */ 1009 #define BTSTACK_EVENT_SCAN_MODE_CHANGED 0x66u 1010 1011 // Daemon Events 1012 1013 /** 1014 * @format 112 1015 * @param major 1016 * @param minor 1017 @ @param revision 1018 */ 1019 #define DAEMON_EVENT_VERSION 0x63u 1020 1021 // data: system bluetooth on/off (bool) 1022 /** 1023 * @format 1 1024 * param system_bluetooth_enabled 1025 */ 1026 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64u 1027 1028 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 1029 1030 /* 1031 * @format 1BT 1032 * @param status == 0 to match read_remote_name_request 1033 * @param address 1034 * @param name 1035 */ 1036 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65u 1037 1038 // internal - data: event(8) 1039 #define DAEMON_EVENT_CONNECTION_OPENED 0x67u 1040 1041 // internal - data: event(8) 1042 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68u 1043 1044 // data: event(8), len(8), local_cid(16), credits(8) 1045 #define DAEMON_EVENT_L2CAP_CREDITS 0x74u 1046 1047 /** 1048 * @format 12 1049 * @param status 1050 * @param psm 1051 */ 1052 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75u 1053 1054 /** 1055 * @format 11 1056 * @param status 1057 * @param channel_id 1058 */ 1059 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85u 1060 1061 /** 1062 * @format 11 1063 * @param status 1064 * @param server_channel_id 1065 */ 1066 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86u 1067 1068 /** 1069 * @format 14 1070 * @param status 1071 * @param service_record_handle 1072 */ 1073 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90u 1074 1075 1076 1077 // additional HCI events 1078 1079 /** 1080 * @brief Indicates HCI transport enters/exits Sleep mode 1081 * @format 1 1082 * @param active 1083 */ 1084 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69u 1085 1086 /** 1087 * @brief Transport USB Bluetooth Controller info 1088 * @format 22JV 1089 * @param vendor_id 1090 * @param product_id 1091 * @param path_len 1092 * @param path 1093 */ 1094 #define HCI_EVENT_TRANSPORT_USB_INFO 0x6Au 1095 1096 /** 1097 * @brief Transport ready 1098 */ 1099 #define HCI_EVENT_TRANSPORT_READY 0x6Du 1100 1101 /** 1102 * @brief Outgoing packet 1103 */ 1104 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6Eu 1105 1106 /** 1107 * @format B 1108 * @param handle 1109 */ 1110 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6Fu 1111 1112 1113 // L2CAP EVENTS 1114 1115 /** 1116 * @format 1BH222222111 1117 * @param status 1118 * @param address 1119 * @param handle 1120 * @param psm 1121 * @param local_cid 1122 * @param remote_cid 1123 * @param local_mtu 1124 * @param remote_mtu 1125 * @param flush_timeout 1126 * @param incoming 1127 * @param mode 1128 * @param fcs 1129 */ 1130 #define L2CAP_EVENT_CHANNEL_OPENED 0x70u 1131 1132 /* 1133 * @format 2 1134 * @param local_cid 1135 */ 1136 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71u 1137 1138 /** 1139 * @format BH222 1140 * @param address 1141 * @param handle 1142 * @param psm 1143 * @param local_cid 1144 * @param remote_cid 1145 */ 1146 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72u 1147 1148 // ?? 1149 // data: event(8), len(8), handle(16) 1150 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73u 1151 1152 /** 1153 * @format H2222 1154 * @param handle 1155 * @param interval_min 1156 * @param interval_max 1157 * @param latencey 1158 * @param timeout_multiplier 1159 */ 1160 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76u 1161 1162 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 1163 /** 1164 * @format H2 1165 * @param handle 1166 * @param result 1167 */ 1168 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77u 1169 1170 /* 1171 * @format H22 1172 * @param con_handle 1173 * @param extended_feature_mask 1174 * @param fixed_channels_supported 1175 */ 1176 #define L2CAP_EVENT_INFORMATION_RESPONSE 0x78u 1177 1178 /** 1179 * @format 2 1180 * @param local_cid 1181 */ 1182 #define L2CAP_EVENT_CAN_SEND_NOW 0x79u 1183 1184 /* 1185 * @format 2 1186 * @param local_cid 1187 */ 1188 #define L2CAP_EVENT_PACKET_SENT 0x7au 1189 1190 /* 1191 * @format 2 1192 * @param local_cid 1193 */ 1194 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7bu 1195 1196 // L2CAP Channel in LE Credit-based Flow-Control Mode (CBM) 1197 1198 /** 1199 * @format 1BH2222 1200 * @param address_type 1201 * @param address 1202 * @param handle 1203 * @param psm 1204 * @param local_cid 1205 * @param remote_cid 1206 * @param remote_mtu 1207 */ 1208 #define L2CAP_EVENT_CBM_INCOMING_CONNECTION 0x7cu 1209 1210 /** 1211 * @format 11BH122222 1212 * @param status 1213 * @param address_type 1214 * @param address 1215 * @param handle 1216 * @param incoming 1217 * @param psm 1218 * @param local_cid 1219 * @param remote_cid 1220 * @param local_mtu 1221 * @param remote_mtu 1222 */ 1223 #define L2CAP_EVENT_CBM_CHANNEL_OPENED 0x7du 1224 1225 /* 1226 * @format 1227 */ 1228 #define L2CAP_EVENT_TRIGGER_RUN 0x7eu 1229 1230 /** 1231 * @format 1BH212 1232 * @param address_type 1233 * @param address 1234 * @param handle 1235 * @param psm 1236 * @param num_channels 1237 * @param local_cid first new cid 1238 */ 1239 #define L2CAP_EVENT_ECBM_INCOMING_CONNECTION 0x7fu 1240 1241 /** 1242 * @format 11BH122222 1243 * @param status 1244 * @param address_type 1245 * @param address 1246 * @param handle 1247 * @param incoming 1248 * @param psm 1249 * @param local_cid 1250 * @param remote_cid 1251 * @param local_mtu 1252 * @param remote_mtu 1253 */ 1254 #define L2CAP_EVENT_ECBM_CHANNEL_OPENED 0x8au 1255 1256 /* 1257 * @format 222 1258 * @param remote_cid 1259 * @param mtu 1260 * @param mps 1261 */ 1262 #define L2CAP_EVENT_ECBM_RECONFIGURED 0x8bu 1263 1264 /* 1265 * @format 22 1266 * @param local_cid 1267 * @param reconfigure_result 1268 */ 1269 #define L2CAP_EVENT_ECBM_RECONFIGURATION_COMPLETE 0x8cu 1270 1271 1272 // RFCOMM EVENTS 1273 1274 /** 1275 * @format 1B21221 1276 * @param status 1277 * @param bd_addr 1278 * @param con_handle 1279 * @param server_channel 1280 * @param rfcomm_cid 1281 * @param max_frame_size 1282 * @param incoming 1283 */ 1284 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80u 1285 1286 /** 1287 * @format 2 1288 * @param rfcomm_cid 1289 */ 1290 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81u 1291 1292 /** 1293 * @format B12H 1294 * @param bd_addr 1295 * @param server_channel 1296 * @param rfcomm_cid 1297 * @param con_handle 1298 1299 */ 1300 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82u 1301 1302 /** 1303 * @format 21 1304 * @param rfcomm_cid 1305 * @param line_status 1306 */ 1307 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83u 1308 1309 /** 1310 * @format 21 1311 * @param rfcomm_cid 1312 * @param modem_status 1313 */ 1314 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87u 1315 1316 /** 1317 * note: port configuration not parsed by stack, getters provided by rfcomm.h 1318 * param rfcomm_cid 1319 * param remote - 0 for local port, 1 for remote port 1320 * param baud_rate 1321 * param data_bits 1322 * param stop_bits 1323 * param parity 1324 * param flow_control 1325 * param xon 1326 * param xoff 1327 */ 1328 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88u 1329 1330 /** 1331 * @format 2 1332 * @param rfcomm_cid 1333 */ 1334 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89u 1335 1336 1337 /** 1338 * @format 1 1339 * @param status 1340 */ 1341 #define SDP_EVENT_QUERY_COMPLETE 0x91u 1342 1343 /** 1344 * @format 1T 1345 * @param rfcomm_channel 1346 * @param name 1347 */ 1348 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92u 1349 1350 /** 1351 * @format 22221 1352 * @param record_id 1353 * @param attribute_id 1354 * @param attribute_length 1355 * @param data_offset 1356 * @param data 1357 */ 1358 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93u 1359 1360 /** 1361 * @format 22LV 1362 * @param record_id 1363 * @param attribute_id 1364 * @param attribute_length 1365 * @param attribute_value 1366 */ 1367 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94u 1368 1369 /** 1370 * @format 224 1371 * @param total_count 1372 * @param record_index 1373 * @param record_handle 1374 * @note Not provided by daemon, only used for internal testing 1375 */ 1376 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95u 1377 1378 /** 1379 * @format H1 1380 * @param handle 1381 * @param att_status see ATT errors in bluetooth.h 1382 */ 1383 #define GATT_EVENT_QUERY_COMPLETE 0xA0u 1384 1385 /** 1386 * @format HX 1387 * @param handle 1388 * @param service 1389 */ 1390 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1u 1391 1392 /** 1393 * @format HY 1394 * @param handle 1395 * @param characteristic 1396 */ 1397 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2u 1398 1399 /** 1400 * @format H2X 1401 * @param handle 1402 * @param include_handle 1403 * @param service 1404 */ 1405 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3u 1406 1407 /** 1408 * @format HZ 1409 * @param handle 1410 * @param characteristic_descriptor 1411 */ 1412 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4u 1413 1414 /** 1415 * @format H2LV 1416 * @param handle 1417 * @param value_handle 1418 * @param value_length 1419 * @param value 1420 */ 1421 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5u 1422 1423 /** 1424 * @format H22LV 1425 * @param handle 1426 * @param value_handle 1427 * @param value_offset 1428 * @param value_length 1429 * @param value 1430 */ 1431 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6u 1432 1433 /** 1434 * @format H2LV 1435 * @param handle 1436 * @param value_handle 1437 * @param value_length 1438 * @param value 1439 */ 1440 #define GATT_EVENT_NOTIFICATION 0xA7u 1441 1442 /** 1443 * @format H2LV 1444 * @param handle 1445 * @param value_handle 1446 * @param value_length 1447 * @param value 1448 */ 1449 #define GATT_EVENT_INDICATION 0xA8u 1450 1451 /** 1452 * @format H2LV 1453 * @param handle 1454 * @param descriptor_handle 1455 * @param descriptor_length 1456 * @param descriptor 1457 */ 1458 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9u 1459 1460 /** 1461 * @format H2LV 1462 * @param handle 1463 * @param descriptor_offset 1464 * @param descriptor_length 1465 * @param descriptor 1466 */ 1467 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAAu 1468 1469 /** 1470 * @format H2 1471 * @param handle 1472 * @param MTU 1473 */ 1474 #define GATT_EVENT_MTU 0xABu 1475 1476 /** 1477 * @format H 1478 * @param handle 1479 */ 1480 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xACu 1481 1482 1483 /** 1484 * @format 1BH 1485 * @param address_type 1486 * @param address 1487 * @param handle 1488 */ 1489 #define ATT_EVENT_CONNECTED 0xB3u 1490 1491 /** 1492 * @format H 1493 * @param handle 1494 */ 1495 #define ATT_EVENT_DISCONNECTED 0xB4u 1496 1497 /** 1498 * @format H2 1499 * @param handle 1500 * @param MTU 1501 */ 1502 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5u 1503 1504 /** 1505 * @format 1H2 1506 * @param status 1507 * @param conn_handle 1508 * @param attribute_handle 1509 */ 1510 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6u 1511 1512 /** 1513 * @format 1514 */ 1515 #define ATT_EVENT_CAN_SEND_NOW 0xB7u 1516 1517 // TODO: daemon only event 1518 1519 /** 1520 * @format 12 1521 * @param status 1522 * @param service_uuid 1523 */ 1524 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0u 1525 1526 /** 1527 * @format 12222BH 1528 * @param status 1529 * @param bnep_cid 1530 * @param source_uuid 1531 * @param destination_uuid 1532 * @param mtu 1533 * @param remote_address 1534 * @param con_handle 1535 */ 1536 #define BNEP_EVENT_CHANNEL_OPENED 0xC1u 1537 1538 /** 1539 * @format 222B 1540 * @param bnep_cid 1541 * @param source_uuid 1542 * @param destination_uuid 1543 * @param remote_address 1544 */ 1545 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2u 1546 1547 /** 1548 * @format 222B1 1549 * @param bnep_cid 1550 * @param source_uuid 1551 * @param destination_uuid 1552 * @param remote_address 1553 * @param channel_state 1554 */ 1555 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3u 1556 1557 /** 1558 * @format 222B 1559 * @param bnep_cid 1560 * @param source_uuid 1561 * @param destination_uuid 1562 * @param remote_address 1563 */ 1564 #define BNEP_EVENT_CAN_SEND_NOW 0xC4u 1565 1566 /** 1567 * @format H1B1 1568 * @param handle 1569 * @param addr_type 1570 * @param address 1571 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1572 */ 1573 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8u 1574 1575 /** 1576 * @format H1B14 1577 * @param handle 1578 * @param addr_type 1579 * @param address 1580 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1581 * @param passkey 1582 */ 1583 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9u 1584 1585 /** 1586 * @format H1B 1587 * @param handle 1588 * @param addr_type 1589 * @param address 1590 */ 1591 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCAu 1592 1593 /** 1594 * @format H1B1 1595 * @param handle 1596 * @param addr_type 1597 * @param address 1598 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1599 */ 1600 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCBu 1601 1602 /** 1603 * @format H1B14 1604 * @param handle 1605 * @param addr_type 1606 * @param address 1607 * @param secure_connection - set to 1 if LE Secure Connection pairing will be used 1608 * @param passkey 1609 */ 1610 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCCu 1611 1612 /** 1613 * @format H1B 1614 * @param handle 1615 * @param addr_type 1616 * @param address 1617 */ 1618 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCDu 1619 1620 /** 1621 * @format H1B 1622 * @param handle 1623 * @param addr_type 1624 * @param address 1625 */ 1626 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCEu 1627 1628 /** 1629 * @brief Identify resolving succeeded 1630 * 1631 * @format H1B1B2 1632 * @param handle 1633 * @param addr_type 1634 * @param address 1635 * @param identity_addr_type 1636 * @param identity_address 1637 * @param index 1638 * 1639 */ 1640 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCFu 1641 1642 /** 1643 * @format H1B 1644 * @param handle 1645 * @param addr_type 1646 * @param address 1647 */ 1648 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0u 1649 1650 /** 1651 * @format H1B1 1652 * @param handle 1653 * @param addr_type 1654 * @param address 1655 * @param authorization_result 1656 */ 1657 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1u 1658 1659 /** 1660 * @format H1 1661 * @param handle 1662 * @param action see SM_KEYPRESS_* 1663 */ 1664 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2u 1665 1666 /** 1667 * @brief Emitted during pairing to inform app about address used as identity 1668 * 1669 * @format H1B1B2 1670 * @param handle 1671 * @param addr_type 1672 * @param address 1673 * @param identity_addr_type 1674 * @param identity_address 1675 * @param index 1676 */ 1677 #define SM_EVENT_IDENTITY_CREATED 0xD3u 1678 1679 /** 1680 * @brief Emitted to inform app that pairing has started. 1681 * @format H1B 1682 * @param handle 1683 * @param addr_type 1684 * @param address 1685 */ 1686 #define SM_EVENT_PAIRING_STARTED 0xD4u 1687 1688 /** 1689 * @brief Emitted to inform app that pairing is complete. Possible status values: 1690 * ERROR_CODE_SUCCESS -> pairing success 1691 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1692 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1693 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1694 * 1695 * @format H1B11 1696 * @param handle 1697 * @param addr_type 1698 * @param address 1699 * @param status 1700 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1701 */ 1702 #define SM_EVENT_PAIRING_COMPLETE 0xD5u 1703 1704 1705 /** 1706 * @brief Proactive Authentication for bonded devices started. 1707 * @format H1B 1708 * @param handle 1709 * @param addr_type 1710 * @param address 1711 */ 1712 #define SM_EVENT_REENCRYPTION_STARTED 0xD6u 1713 1714 /** 1715 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1716 * ERROR_CODE_SUCCESS -> connection secure 1717 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1718 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1719 * @format H1B1 1720 * @param handle 1721 * @param addr_type 1722 * @param address 1723 * @param status 1724 */ 1725 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7u 1726 1727 // GAP 1728 1729 /** 1730 * @format H1 1731 * @param handle 1732 * @param security_level 1733 */ 1734 #define GAP_EVENT_SECURITY_LEVEL 0xD8u 1735 1736 /** 1737 * @format 1B 1738 * @param status 1739 * @param address 1740 */ 1741 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9u 1742 1743 /** 1744 * @format 11B1JV 1745 * @param advertising_event_type 1746 * @param address_type 1747 * @param address 1748 * @param rssi 1749 * @param data_length 1750 * @param data 1751 */ 1752 #define GAP_EVENT_ADVERTISING_REPORT 0xDAu 1753 1754 /** 1755 * @format 21B1111121BJV 1756 * @param advertising_event_type 1757 * @param address_type 1758 * @param address 1759 * @param primary_phy 1760 * @param secondary_phy 1761 * @param advertising_sid 1762 * @param tx_power 1763 * @param rssi 1764 * @param periodic_advertising_interval 1765 * @param direct_address_type 1766 * @param direct_address 1767 * @param data_length 1768 * @param data 1769 */ 1770 #define GAP_EVENT_EXTENDED_ADVERTISING_REPORT 0xDBu 1771 1772 /** 1773 * @format B13211122221JV 1774 * @param bd_addr 1775 * @param page_scan_repetition_mode 1776 * @param class_of_device 1777 * @param clock_offset 1778 * @param rssi_available 1779 * @param rssi 1780 * @param device_id_available 1781 * @param device_id_vendor_id_source 1782 * @param device_id_vendor_id 1783 * @param device_id_product_id 1784 * @param device_id_version 1785 * @param name_available 1786 * @param name_len 1787 * @param name 1788 */ 1789 #define GAP_EVENT_INQUIRY_RESULT 0xDCu 1790 1791 /** 1792 * @format 1 1793 * @param status 1794 */ 1795 #define GAP_EVENT_INQUIRY_COMPLETE 0xDDu 1796 1797 /** 1798 * @format H1 1799 * @param con_handle 1800 * @param rssi (signed integer -127..127) 1801 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1802 * @note LE: rssi is absolute dBm 1803 */ 1804 #define GAP_EVENT_RSSI_MEASUREMENT 0xDEu 1805 1806 /** 1807 * @format 1KKKK 1808 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1809 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1810 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1811 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1812 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1813 */ 1814 #define GAP_EVENT_LOCAL_OOB_DATA 0xDFu 1815 1816 1817 /** 1818 * @format HB11 1819 * @param con_handle 1820 * @param bd_addr 1821 * @param ssp 1822 * @param initiator 1823 */ 1824 #define GAP_EVENT_PAIRING_STARTED 0xE0u 1825 1826 /** 1827 * @format HB1 1828 * @param con_handle 1829 * @param bd_addr 1830 * @param status 1831 */ 1832 #define GAP_EVENT_PAIRING_COMPLETE 0xE1u 1833 1834 // Meta Events, see below for sub events 1835 #define HCI_EVENT_META_GAP 0xE7u 1836 #define HCI_EVENT_HSP_META 0xE8u 1837 #define HCI_EVENT_HFP_META 0xE9u 1838 #define HCI_EVENT_ANCS_META 0xEAu 1839 #define HCI_EVENT_AVDTP_META 0xEBu 1840 #define HCI_EVENT_AVRCP_META 0xECu 1841 #define HCI_EVENT_GOEP_META 0xEDu 1842 #define HCI_EVENT_PBAP_META 0xEEu 1843 #define HCI_EVENT_HID_META 0xEFu 1844 #define HCI_EVENT_A2DP_META 0xF0u 1845 #define HCI_EVENT_HIDS_META 0xF1u 1846 #define HCI_EVENT_GATTSERVICE_META 0xF2u 1847 #define HCI_EVENT_BIP_META 0xF3u 1848 #define HCI_EVENT_MAP_META 0xF4u 1849 #define HCI_EVENT_MESH_META 0xF5u 1850 1851 // Potential other meta groups 1852 // #define HCI_EVENT_BNEP_META 0xxx 1853 // #define HCI_EVENT_GAP_META 0xxx 1854 // #define HCI_EVENT_GATT_META 0xxx 1855 // #define HCI_EVENT_PAN_META 0xxx 1856 // #define HCI_EVENT_SDP_META 0xxx 1857 // #define HCI_EVENT_SM_META 0xxx 1858 1859 /** GAP Subevent */ 1860 1861 1862 /** 1863 * @format 1111 1864 * @param subevent_code 1865 * @param advertisement_handle 1866 * @param status 1867 * @param selected_tx_power 1868 */ 1869 #define GAP_SUBEVENT_ADVERTISING_SET_INSTALLED 0x00u 1870 1871 /** 1872 * @format 11 1873 * @param subevent_code 1874 * @param advertisement_handle 1875 */ 1876 #define GAP_SUBEVENT_ADVERTISING_SET_REMOVED 0x01u 1877 1878 /** 1879 * @format 1111C 1880 * @param subevent_code 1881 * @param status 1882 * @param big_handle 1883 * @param num_bis 1884 * @param bis_con_handles 1885 */ 1886 #define GAP_SUBEVENT_BIG_CREATED 0x02u 1887 1888 /** 1889 * @format 11 1890 * @param subevent_code 1891 * @param big_handle 1892 */ 1893 #define GAP_SUBEVENT_BIG_TERMINATED 0x03u 1894 1895 /** 1896 * @format 1111C 1897 * @param subevent_code 1898 * @param status 1899 * @param big_handle 1900 * @param num_bis 1901 * @param bis_con_handles 1902 */ 1903 #define GAP_SUBEVENT_BIG_SYNC_CREATED 0x04u 1904 1905 /** 1906 * @format 11 1907 * @param subevent_code 1908 * @param big_handle 1909 */ 1910 #define GAP_SUBEVENT_BIG_SYNC_STOPPED 0x05u 1911 1912 /** HSP Subevent */ 1913 1914 /** 1915 * @format 1H1B 1916 * @param subevent_code 1917 * @param acl_handle 1918 * @param status 0 == OK 1919 * @param bd_addr 1920 */ 1921 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01u 1922 1923 /** 1924 * @format 1H 1925 * @param subevent_code 1926 * @param acl_handle 1927 */ 1928 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02u 1929 1930 /** 1931 * @format 1H1H 1932 * @param subevent_code 1933 * @param acl_handle 1934 * @param status 0 == OK 1935 * @param sco_handle 1936 */ 1937 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03u 1938 1939 /** 1940 * @format 1HH 1941 * @param subevent_code 1942 * @param acl_handle 1943 * @param sco_handle 1944 */ 1945 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04u 1946 1947 /** 1948 * @format 1H 1949 * @param subevent_code 1950 * @param acl_handle 1951 */ 1952 #define HSP_SUBEVENT_RING 0x05u 1953 1954 /** 1955 * @format 1H1 1956 * @param subevent_code 1957 * @param acl_handle 1958 * @param gain Valid range: [0,15] 1959 */ 1960 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06u 1961 1962 /** 1963 * @format 1H1 1964 * @param subevent_code 1965 * @param acl_handle 1966 * @param gain Valid range: [0,15] 1967 */ 1968 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07u 1969 1970 /** 1971 * @format 1HJV 1972 * @param subevent_code 1973 * @param acl_handle 1974 * @param value_length 1975 * @param value 1976 */ 1977 #define HSP_SUBEVENT_HS_COMMAND 0x08u 1978 1979 /** 1980 * @format 1HJV 1981 * @param subevent_code 1982 * @param acl_handle 1983 * @param value_length 1984 * @param value 1985 */ 1986 #define HSP_SUBEVENT_AG_INDICATION 0x09u 1987 1988 /** 1989 * @format 1H 1990 * @param subevent_code 1991 * @param acl_handle 1992 */ 1993 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0au 1994 1995 /** HFP Subevent */ 1996 1997 /** 1998 * @format 1H1B 1999 * @param subevent_code 2000 * @param acl_handle 2001 * @param status 0 == OK 2002 * @param bd_addr 2003 */ 2004 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01u 2005 2006 /** 2007 * @format 1H 2008 * @param subevent_code 2009 * @param acl_handle 2010 */ 2011 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02u 2012 2013 /** 2014 * @format 1H1HB1 2015 * @param subevent_code 2016 * @param acl_handle 2017 * @param status 0 == OK 2018 * @param sco_handle 2019 * @param bd_addr 2020 * @param negotiated_codec 2021 */ 2022 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03u 2023 2024 /** 2025 * @format 1HH 2026 * @param subevent_code 2027 * @param acl_handle 2028 * @param sco_handle 2029 */ 2030 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04u 2031 2032 /** 2033 * @format 1H1 2034 * @param subevent_code 2035 * @param acl_handle 2036 * @param status 0 == OK 2037 */ 2038 #define HFP_SUBEVENT_COMPLETE 0x05u 2039 2040 /** 2041 * @format 1H111T 2042 * @param subevent_code 2043 * @param acl_handle 2044 * @param indicator_index 2045 * @param indicator_min_range 2046 * @param indicator_max_range 2047 * @param indicator_name 2048 */ 2049 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06u 2050 2051 /** 2052 * @format 1H1111111T 2053 * @param subevent_code 2054 * @param acl_handle 2055 * @param indicator_index 2056 * @param indicator_status 2057 * @param indicator_min_range 2058 * @param indicator_max_range 2059 * @param indicator_mandatory 2060 * @param indicator_enabled 2061 * @param indicator_status_changed 2062 * @param indicator_name 2063 */ 2064 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07u 2065 2066 /** 2067 * @format 1H11T 2068 * @param subevent_code 2069 * @param acl_handle 2070 * @param network_operator_mode 2071 * @param network_operator_format 2072 * @param network_operator_name 2073 */ 2074 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08u 2075 2076 /** 2077 * @format 1H1 2078 * @param subevent_code 2079 * @param acl_handle 2080 * @param error 2081 */ 2082 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09u 2083 2084 /** 2085 * @format 1H 2086 * @param subevent_code 2087 * @param acl_handle 2088 */ 2089 #define HFP_SUBEVENT_START_RINGING 0x0Au 2090 2091 /** 2092 * @format 1H 2093 * @param subevent_code 2094 * @param acl_handle 2095 */ 2096 #define HFP_SUBEVENT_RING 0x0Bu 2097 2098 /** 2099 * @format 1H 2100 * @param subevent_code 2101 * @param acl_handle 2102 */ 2103 #define HFP_SUBEVENT_STOP_RINGING 0x0Cu 2104 2105 /** 2106 * @format 1HT 2107 * @param subevent_code 2108 * @param acl_handle 2109 * @param number 2110 */ 2111 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0Du 2112 2113 /** 2114 * @format 1H 2115 * @param subevent_code 2116 * @param acl_handle 2117 */ 2118 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0Eu 2119 2120 /** 2121 * @format 1HT 2122 * @param subevent_code 2123 * @param acl_handle 2124 * @param number 2125 */ 2126 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0Fu 2127 2128 /** 2129 * @format 1HT 2130 * @param subevent_code 2131 * @param acl_handle 2132 * @param dtmf code 2133 */ 2134 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10u 2135 2136 /** 2137 * @format 1H 2138 * @param subevent_code 2139 * @param acl_handle 2140 */ 2141 #define HFP_SUBEVENT_CALL_ANSWERED 0x11u 2142 2143 /** 2144 * @format 1H 2145 * @param subevent_code 2146 * @param acl_handle 2147 */ 2148 #define HFP_SUBEVENT_CALL_TERMINATED 0x12u 2149 2150 /** 2151 * @format 1H 2152 * @param subevent_code 2153 * @param acl_handle 2154 */ 2155 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13u 2156 2157 2158 /** 2159 * @format 1H1 2160 * @param subevent_code 2161 * @param acl_handle 2162 * @param gain 2163 */ 2164 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14u 2165 2166 /** 2167 * @format 1H1 2168 * @param subevent_code 2169 * @param acl_handle 2170 * @param gain 2171 */ 2172 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15u 2173 2174 /** 2175 * @format 1H1JVJV 2176 * @param subevent_code 2177 * @param acl_handle 2178 * @param type 2179 * @param number_length 2180 * @param number 2181 * @param alpha_length 2182 * @param alpha 2183 */ 2184 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16u 2185 2186 /** 2187 * @format 1H1JVJV 2188 * @param subevent_code 2189 * @param acl_handle 2190 * @param type 2191 * @param number_length 2192 * @param number 2193 * @param alpha_length 2194 * @param alpha 2195 */ 2196 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17u 2197 2198 /** 2199 * @format 1H111111T 2200 * @param subevent_code 2201 * @param acl_handle 2202 * @param clcc_idx 2203 * @param clcc_dir 2204 * @param clcc_status 2205 * @param clcc_mode 2206 * @param clcc_mpty 2207 * @param bnip_type 2208 * @param bnip_number 2209 */ 2210 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18u 2211 2212 /** 2213 * @format 1H11T 2214 * @param subevent_code 2215 * @param acl_handle 2216 * @param status 2217 * @param bnip_type 2218 * @param bnip_number 2219 */ 2220 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19u 2221 2222 /** 2223 * @format 1HT 2224 * @param subevent_code 2225 * @param acl_handle 2226 * @param value 2227 */ 2228 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1Au 2229 2230 /** 2231 * @format 1HT 2232 * @param subevent_code 2233 * @param acl_handle 2234 * @param command 2235 */ 2236 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1Bu 2237 2238 /** 2239 * @format 1HT 2240 * @param subevent_code 2241 * @param acl_handle 2242 * @param command 2243 */ 2244 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1Cu 2245 2246 /** 2247 * @format 1H1 2248 * @param subevent_code 2249 * @param acl_handle 2250 * @param status 2251 */ 2252 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1Du 2253 2254 /** 2255 * @format 1H11 2256 * @param subevent_code 2257 * @param acl_handle 2258 * @param status // 0-success 2259 * @param enhanced // 0-legacy, 1-enhanced 2260 */ 2261 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1Eu 2262 2263 /** 2264 * @format 1H1 2265 * @param subevent_code 2266 * @param acl_handle 2267 * @param status // 0-success 2268 */ 2269 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1Fu 2270 2271 /** 2272 * @format 1H1 2273 * @param subevent_code 2274 * @param acl_handle 2275 * @param status 2276 */ 2277 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20u 2278 2279 2280 /** 2281 * @format 1H1 2282 * @param subevent_code 2283 * @param acl_handle 2284 * @param status 2285 */ 2286 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21u 2287 2288 /** 2289 * @format 1H1 2290 * @param subevent_code 2291 * @param acl_handle 2292 * @param status 2293 */ 2294 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22u 2295 2296 /** 2297 * @format 1H1 2298 * @param subevent_code 2299 * @param acl_handle 2300 * @param status 2301 */ 2302 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23u 2303 2304 /** 2305 * @format 1H1 2306 * @param subevent_code 2307 * @param acl_handle 2308 * @param status 2309 */ 2310 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24u 2311 2312 2313 /** 2314 * @format 1H211LV 2315 * @param subevent_code 2316 * @param acl_handle 2317 * @param text_id 2318 * @param text_type 2319 * @param text_operation 2320 * @param text_length 2321 * @param text 2322 */ 2323 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25u 2324 2325 /** 2326 * @format 1H1 2327 * @param subevent_code 2328 * @param acl_handle 2329 * @param status 2330 */ 2331 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26u 2332 2333 /** 2334 * @format 1H21 2335 * @param subevent_code 2336 * @param acl_handle 2337 * @param uuid 2338 * @param value 2339 */ 2340 #define HFP_SUBEVENT_HF_INDICATOR 0x27u 2341 2342 /** 2343 * @format 1H2T 2344 * @param subevent_code 2345 * @param acl_handle 2346 * @param command_id 2347 * @param command_string 2348 */ 2349 #define HFP_SUBEVENT_CUSTOM_AT_COMMAND 0x28u 2350 2351 2352 // ANCS Client 2353 2354 /** 2355 * @format 1H 2356 * @param subevent_code 2357 * @param handle 2358 */ 2359 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0u 2360 2361 /** 2362 * @format 1H2T 2363 * @param subevent_code 2364 * @param handle 2365 * @param attribute_id 2366 * @param text 2367 */ 2368 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1u 2369 2370 /** 2371 * @format 1H 2372 * @param subevent_code 2373 * @param handle 2374 */ 2375 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2u 2376 2377 2378 /** AVDTP Subevent */ 2379 2380 /** 2381 * @format 12111 2382 * @param subevent_code 2383 * @param avdtp_cid 2384 * @param local_seid 2385 * @param is_initiator 2386 * @param signal_identifier 2387 */ 2388 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01u 2389 2390 /** 2391 * @format 12111 2392 * @param subevent_code 2393 * @param avdtp_cid 2394 * @param local_seid 2395 * @param is_initiator 2396 * @param signal_identifier 2397 */ 2398 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02u 2399 2400 /** 2401 * @format 12111 2402 * @param subevent_code 2403 * @param avdtp_cid 2404 * @param local_seid 2405 * @param is_initiator 2406 * @param signal_identifier 2407 */ 2408 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03u 2409 2410 /** 2411 * @format 12B21 2412 * @param subevent_code 2413 * @param avdtp_cid 2414 * @param bd_addr 2415 * @param con_handle 2416 * @param status 0 == OK 2417 */ 2418 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04u 2419 2420 /** 2421 * @format 12 2422 * @param subevent_code 2423 * @param avdtp_cid 2424 */ 2425 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05u 2426 2427 /** 2428 * @format 121111 2429 * @param subevent_code 2430 * @param avdtp_cid 2431 * @param remote_seid 0x01u – 0x3Eu 2432 * @param in_use 0-not in use, 1-in use 2433 * @param media_type 0-audio, 1-video, 2-multimedia 2434 * @param sep_type 0-source, 1-sink 2435 */ 2436 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06u 2437 2438 /** 2439 * @format 12111111111 2440 * @param subevent_code 2441 * @param avdtp_cid 2442 * @param remote_seid 2443 * @param media_type 2444 * @param sampling_frequency_bitmap 2445 * @param channel_mode_bitmap 2446 * @param block_length_bitmap 2447 * @param subbands_bitmap 2448 * @param allocation_method_bitmap 2449 * @param min_bitpool_value 2450 * @param max_bitpool_value 2451 */ 2452 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07u 2453 2454 /** 2455 * @format 12111111112 2456 * @param subevent_code 2457 * @param avdtp_cid 2458 * @param remote_seid 2459 * @param media_type 2460 * @param layer_bitmap 2461 * @param crc 2462 * @param channel_mode_bitmap 2463 * @param media_payload_format 2464 * @param sampling_frequency_bitmap 2465 * @param vbr 2466 * @param bit_rate_index_bitmap 2467 */ 2468 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08u 2469 2470 /** 2471 * @format 121112131 2472 * @param subevent_code 2473 * @param avdtp_cid 2474 * @param remote_seid 2475 * @param media_type 2476 * @param object_type_bitmap 2477 * @param sampling_frequency_bitmap 2478 * @param channels_bitmap 2479 * @param bit_rate 2480 * @param vbr 2481 */ 2482 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09u 2483 2484 /** 2485 * @format 1211111132 2486 * @param subevent_code 2487 * @param avdtp_cid 2488 * @param remote_seid 2489 * @param media_type 2490 * @param version 2491 * @param channel_mode_bitmap 2492 * @param sampling_frequency_bitmap 2493 * @param vbr 2494 * @param bit_rate_index_bitmap 2495 * @param maximum_sul 2496 */ 2497 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0Au 2498 2499 /** 2500 * @format 12112LV 2501 * @param subevent_code 2502 * @param avdtp_cid 2503 * @param remote_seid 2504 * @param media_type 2505 * @param media_codec_type 2506 * @param media_codec_information_len 2507 * @param media_codec_information 2508 */ 2509 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0Bu 2510 2511 2512 /** 2513 * @format 121 2514 * @param subevent_code 2515 * @param avdtp_cid 2516 * @param remote_seid 2517 */ 2518 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0Cu 2519 2520 2521 /** 2522 * @format 121 2523 * @param subevent_code 2524 * @param avdtp_cid 2525 * @param remote_seid 2526 */ 2527 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0Du 2528 2529 2530 /** 2531 * @format 121111 2532 * @param subevent_code 2533 * @param avdtp_cid 2534 * @param remote_seid 2535 * @param recovery_type 2536 * @param maximum_recovery_window_size 2537 * @param maximum_number_media_packets 2538 */ 2539 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0Eu 2540 2541 2542 /** 2543 * @format 1212LV 2544 * @param subevent_code 2545 * @param avdtp_cid 2546 * @param remote_seid 2547 * @param cp_type 2548 * @param cp_type_value_len 2549 * @param cp_type_value 2550 */ 2551 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0Fu 2552 2553 2554 /** 2555 * @format 12111111111 2556 * @param subevent_code 2557 * @param avdtp_cid 2558 * @param remote_seid 2559 * @param fragmentation 2560 * @param transport_identifiers_num 2561 * @param transport_session_identifier_1 2562 * @param transport_session_identifier_2 2563 * @param transport_session_identifier_3 2564 * @param tcid_1 2565 * @param tcid_2 2566 * @param tcid_3 2567 */ 2568 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10u 2569 2570 2571 /** 2572 * @format 121 2573 * @param subevent_code 2574 * @param avdtp_cid 2575 * @param remote_seid 2576 */ 2577 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11u 2578 2579 2580 /** 2581 * @format 121111 2582 * @param subevent_code 2583 * @param avdtp_cid 2584 * @param remote_seid 2585 * @param back_ch 2586 * @param media 2587 * @param recovery 2588 */ 2589 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12u 2590 2591 /** 2592 * @format 121 2593 * @param subevent_code 2594 * @param avdtp_cid 2595 * @param remote_seid 2596 */ 2597 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13u 2598 2599 2600 /** 2601 * @format 12111121111111 2602 * @param subevent_code 2603 * @param avdtp_cid 2604 * @param local_seid 2605 * @param remote_seid 2606 * @param reconfigure 2607 * @param media_type 2608 * @param sampling_frequency 2609 * @param channel_mode 2610 * @param num_channels 2611 * @param block_length 2612 * @param subbands 2613 * @param allocation_method 2614 * @param min_bitpool_value 2615 * @param max_bitpool_value 2616 */ 2617 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14u 2618 2619 /** 2620 * @format 12111111111211 2621 * @param subevent_code 2622 * @param avdtp_cid 2623 * @param local_seid 2624 * @param remote_seid 2625 * @param reconfigure 2626 * @param media_type 2627 * @param layer 2628 * @param crc 2629 * @param channel_mode 2630 * @param num_channels 2631 * @param media_payload_format 2632 * @param sampling_frequency 2633 * @param vbr 2634 * @param bit_rate_index 2635 */ 2636 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15u 2637 2638 /** 2639 * @format 12111113131 2640 * @param subevent_code 2641 * @param avdtp_cid 2642 * @param local_seid 2643 * @param remote_seid 2644 * @param reconfigure 2645 * @param media_type 2646 * @param object_type 2647 * @param sampling_frequency 2648 * @param num_channels 2649 * @param bit_rate 2650 * @param vbr 2651 */ 2652 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16u 2653 2654 /** 2655 * @format 1211111112112 2656 * @param subevent_code 2657 * @param avdtp_cid 2658 * @param local_seid 2659 * @param remote_seid 2660 * @param reconfigure 2661 * @param media_type 2662 * @param version 2663 * @param channel_mode 2664 * @param num_channels 2665 * @param sampling_frequency 2666 * @param vbr 2667 * @param bit_rate_index 2668 * @param maximum_sul 2669 */ 2670 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17u 2671 2672 /** 2673 * @format 1211112LV 2674 * @param subevent_code 2675 * @param avdtp_cid 2676 * @param local_seid 2677 * @param remote_seid 2678 * @param reconfigure 2679 * @param media_type 2680 * @param media_codec_type 2681 * @param media_codec_information_len 2682 * @param media_codec_information 2683 */ 2684 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18u 2685 2686 /** 2687 * @format 12B111 2688 * @param subevent_code 2689 * @param avdtp_cid 2690 * @param bd_addr 2691 * @param local_seid 2692 * @param remote_seid 2693 * @param status 0 == OK 2694 */ 2695 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19u 2696 2697 /** 2698 * @format 121 2699 * @param subevent_code 2700 * @param avdtp_cid 2701 * @param local_seid 2702 */ 2703 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1Au 2704 2705 /** 2706 * @format 1212 2707 * @param subevent_code 2708 * @param avdtp_cid 2709 * @param local_seid 2710 * @param sequence_number 2711 */ 2712 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1Bu 2713 2714 2715 /** 2716 * @format 12 2717 * @param subevent_code 2718 * @param avdtp_cid 2719 */ 2720 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1Cu 2721 2722 /** 2723 * @format 1212 2724 * @param subevent_code 2725 * @param avdtp_cid 2726 * @param local_seid 2727 * @param delay_100us 2728 */ 2729 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1Du 2730 2731 2732 /** A2DP Subevent */ 2733 /* Stream goes through following states: 2734 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2735 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2736 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2737 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2738 2739 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2740 START can come only after the stream is OPENED, and indicates that media transfer is started. 2741 SUSPEND is optional, it pauses the stream. 2742 */ 2743 2744 /** 2745 * @format 121 Sent only by A2DP source. 2746 * @param subevent_code 2747 * @param a2dp_cid 2748 * @param local_seid 2749 */ 2750 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01u 2751 2752 /** 2753 * @format 12111121111111 2754 * @param subevent_code 2755 * @param a2dp_cid 2756 * @param local_seid 2757 * @param remote_seid 2758 * @param reconfigure 2759 * @param media_type 2760 * @param sampling_frequency 2761 * @param channel_mode 2762 * @param num_channels 2763 * @param block_length 2764 * @param subbands 2765 * @param allocation_method 2766 * @param min_bitpool_value 2767 * @param max_bitpool_value 2768 */ 2769 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02u 2770 2771 /** 2772 * @format 12111111111211 2773 * @param subevent_code 2774 * @param a2dp_cid 2775 * @param local_seid 2776 * @param remote_seid 2777 * @param reconfigure 2778 * @param media_type 2779 * @param layer 2780 * @param crc 2781 * @param channel_mode 2782 * @param num_channels 2783 * @param media_payload_format 2784 * @param sampling_frequency 2785 * @param vbr 2786 * @param bit_rate_index 2787 */ 2788 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03u 2789 2790 /** 2791 * @format 12111113131 2792 * @param subevent_code 2793 * @param a2dp_cid 2794 * @param local_seid 2795 * @param remote_seid 2796 * @param reconfigure 2797 * @param media_type 2798 * @param object_type 2799 * @param sampling_frequency 2800 * @param num_channels 2801 * @param bit_rate 2802 * @param vbr 2803 */ 2804 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04u 2805 2806 /** 2807 * @format 1211111112112 2808 * @param subevent_code 2809 * @param a2dp_cid 2810 * @param local_seid 2811 * @param remote_seid 2812 * @param reconfigure 2813 * @param media_type 2814 * @param version 2815 * @param channel_mode 2816 * @param num_channels 2817 * @param sampling_frequency 2818 * @param vbr 2819 * @param bit_rate_index 2820 * @param maximum_sul 2821 */ 2822 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05u 2823 2824 /** 2825 * @format 1211112LV 2826 * @param subevent_code 2827 * @param a2dp_cid 2828 * @param local_seid 2829 * @param remote_seid 2830 * @param reconfigure 2831 * @param media_type 2832 * @param media_codec_type 2833 * @param media_codec_information_len 2834 * @param media_codec_information 2835 */ 2836 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06u 2837 2838 /** 2839 * @format 12B111 Stream is opened but not started. 2840 * @param subevent_code 2841 * @param a2dp_cid 2842 * @param bd_addr 2843 * @param local_seid 2844 * @param remote_seid 2845 * @param status 2846 */ 2847 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07u 2848 2849 /** 2850 * @format 121 If ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION, user must explicitly accept stream start. 2851 * @param subevent_code 2852 * @param a2dp_cid 2853 * @param local_seid 2854 */ 2855 #define A2DP_SUBEVENT_START_STREAM_REQUESTED 0x08u 2856 2857 /** 2858 * @format 121 Indicates that media transfer is started. 2859 * @param subevent_code 2860 * @param a2dp_cid 2861 * @param local_seid 2862 */ 2863 #define A2DP_SUBEVENT_STREAM_STARTED 0x09u 2864 2865 /** 2866 * @format 121 Stream is paused. 2867 * @param subevent_code 2868 * @param a2dp_cid 2869 * @param local_seid 2870 */ 2871 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x0Au 2872 2873 /** 2874 * @format 121 Stream is stopped or aborted. 2875 * @param subevent_code 2876 * @param a2dp_cid 2877 * @param local_seid 2878 */ 2879 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0Bu 2880 2881 /** 2882 * @format 121 Stream is released. 2883 * @param subevent_code 2884 * @param a2dp_cid 2885 * @param local_seid 2886 */ 2887 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0Cu 2888 2889 /** 2890 * @format 1211 2891 * @param subevent_code 2892 * @param a2dp_cid 2893 * @param local_seid 2894 * @param signal_identifier 2895 */ 2896 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0Du 2897 2898 /** 2899 * @format 12111 2900 * @param subevent_code 2901 * @param a2dp_cid 2902 * @param local_seid 2903 * @param is_initiator 2904 * @param signal_identifier 2905 */ 2906 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0Eu 2907 2908 /** 2909 * @format 12B21 2910 * @param subevent_code 2911 * @param a2dp_cid 2912 * @param bd_addr 2913 * @param con_handle 2914 * @param status 0 == OK 2915 */ 2916 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0Fu 2917 2918 /** 2919 * @format 12 Signaling channel is released. 2920 * @param subevent_code 2921 * @param a2dp_cid 2922 */ 2923 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x10u 2924 2925 /** 2926 * @format 1211 Stream was reconfigured 2927 * @param subevent_code 2928 * @param a2dp_cid 2929 * @param local_seid 2930 * @param status 2931 */ 2932 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x12u 2933 2934 /** 2935 * @format 12111111111 2936 * @param subevent_code 2937 * @param a2dp_cid 2938 * @param remote_seid 2939 * @param media_type 2940 * @param sampling_frequency_bitmap 2941 * @param channel_mode_bitmap 2942 * @param block_length_bitmap 2943 * @param subbands_bitmap 2944 * @param allocation_method_bitmap 2945 * @param min_bitpool_value 2946 * @param max_bitpool_value 2947 */ 2948 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x13u 2949 2950 /** 2951 * @format 12111111112 2952 * @param subevent_code 2953 * @param a2dp_cid 2954 * @param remote_seid 2955 * @param media_type 2956 * @param layer_bitmap 2957 * @param crc 2958 * @param channel_mode_bitmap 2959 * @param media_payload_format 2960 * @param sampling_frequency_bitmap 2961 * @param vbr 2962 * @param bit_rate_index_bitmap 2963 */ 2964 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x14u 2965 2966 /** 2967 * @format 121112131 2968 * @param subevent_code 2969 * @param a2dp_cid 2970 * @param remote_seid 2971 * @param media_type 2972 * @param object_type_bitmap 2973 * @param sampling_frequency_bitmap 2974 * @param channels_bitmap 2975 * @param bit_rate 2976 * @param vbr 2977 */ 2978 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x15u 2979 2980 /** 2981 * @format 1211111132 2982 * @param subevent_code 2983 * @param a2dp_cid 2984 * @param remote_seid 2985 * @param media_type 2986 * @param version 2987 * @param channel_mode_bitmap 2988 * @param sampling_frequency_bitmap 2989 * @param vbr 2990 * @param bit_rate_index_bitmap 2991 * @param maximum_sul 2992 */ 2993 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x16u 2994 2995 /** 2996 * @format 12112LV 2997 * @param subevent_code 2998 * @param a2dp_cid 2999 * @param remote_seid 3000 * @param media_type 3001 * @param media_codec_type 3002 * @param media_codec_information_len 3003 * @param media_codec_information 3004 */ 3005 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x17u 3006 3007 /** 3008 * @format 121 3009 * @param subevent_code 3010 * @param a2dp_cid 3011 * @param remote_seid 3012 */ 3013 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x18u 3014 3015 3016 /** 3017 * @format 1212 3018 * @param subevent_code 3019 * @param a2dp_cid 3020 * @param local_seid 3021 * @param delay_100us 3022 */ 3023 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x19u 3024 3025 /** 3026 * @format 121 3027 * @param subevent_code 3028 * @param a2dp_cid 3029 * @param remote_seid 3030 */ 3031 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x1Au 3032 3033 /** 3034 * @format 12 3035 * @param subevent_code 3036 * @param a2dp_cid 3037 */ 3038 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x1Bu 3039 3040 3041 /** AVRCP Subevent */ 3042 3043 /** 3044 * @format 1211 3045 * @param subevent_code 3046 * @param avrcp_cid 3047 * @param command_type 3048 * @param play_status 3049 */ 3050 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01u 3051 3052 /** 3053 * @format 121 3054 * @param subevent_code 3055 * @param avrcp_cid 3056 * @param command_type 3057 */ 3058 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02u 3059 3060 /** 3061 * @format 121 3062 * @param subevent_code 3063 * @param avrcp_cid 3064 * @param command_type 3065 */ 3066 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03u 3067 3068 /** 3069 * @format 121 3070 * @param subevent_code 3071 * @param avrcp_cid 3072 * @param command_type 3073 */ 3074 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04u 3075 3076 /** 3077 * @format 1214 3078 * @param subevent_code 3079 * @param avrcp_cid 3080 * @param command_type 3081 * @param playback_position If no track currently selected, then return 0xFFuFFFFFF in the INTERIM response. 3082 */ 3083 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05u 3084 3085 /** 3086 * @format 1211 3087 * @param subevent_code 3088 * @param avrcp_cid 3089 * @param command_type 3090 * @param battery_status see avrcp_battery_status_t 3091 */ 3092 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06u 3093 3094 /** 3095 * @format 1211 3096 * @param subevent_code 3097 * @param avrcp_cid 3098 * @param command_type 3099 * @param system_status see avrcp_system_status_t 3100 */ 3101 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07u 3102 3103 3104 // Recquires 1 byte for num_attributes, followed by num_attributes tuples [attribute_id(1), value_id(1)], see avrcp_player_application_setting_attribute_id_t 3105 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08u 3106 3107 /** 3108 * @format 121 3109 * @param subevent_code 3110 * @param avrcp_cid 3111 * @param command_type 3112 */ 3113 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09u 3114 3115 /** 3116 * @format 121 3117 * @param subevent_code 3118 * @param avrcp_cid 3119 * @param command_type 3120 */ 3121 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0Au 3122 3123 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0bu, -- The Addressed Player has been changed, see 6.9.2. 3124 3125 /** 3126 * @format 1212 3127 * @param subevent_code 3128 * @param avrcp_cid 3129 * @param command_type 3130 * @param uid_counter of the currently browsed player 3131 */ 3132 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0Cu 3133 3134 /** 3135 * @format 1211 3136 * @param subevent_code 3137 * @param avrcp_cid 3138 * @param command_type 3139 * @param absolute_volume 3140 */ 3141 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0Du 3142 3143 3144 /** 3145 * @format 1211 3146 * @param subevent_code 3147 * @param avrcp_cid 3148 * @param command_type 3149 * @param absolute_volume 3150 */ 3151 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10u 3152 3153 /** 3154 * @format 12111 3155 * @param subevent_code 3156 * @param avrcp_cid 3157 * @param status 3158 * @param enabled // 1 enabled, 0 disabled 3159 * @param event_id 3160 */ 3161 #define AVRCP_SUBEVENT_NOTIFICATION_STATE 0x11u 3162 3163 /** 3164 * @format 112B2 3165 * @param subevent_code 3166 * @param status 0 == OK 3167 * @param avrcp_cid 3168 * @param bd_addr 3169 * @param con_handle 3170 */ 3171 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12u 3172 3173 /** 3174 * @format 12 3175 * @param subevent_code 3176 * @param avrcp_cid 3177 */ 3178 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13u 3179 3180 /** 3181 * @format 12111 3182 * @param subevent_code 3183 * @param avrcp_cid 3184 * @param command_type 3185 * @param repeat_mode 3186 * @param shuffle_mode 3187 */ 3188 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14u 3189 3190 /** 3191 * @format 121441 3192 * @param subevent_code 3193 * @param avrcp_cid 3194 * @param command_type 3195 * @param song_length 3196 * @param song_position 3197 * @param play_status 3198 */ 3199 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15u 3200 3201 /** 3202 * @format 1211 3203 * @param subevent_code 3204 * @param avrcp_cid 3205 * @param command_type 3206 * @param operation_id 3207 */ 3208 #define AVRCP_SUBEVENT_OPERATION_START 0x16u 3209 3210 /** 3211 * @format 1211 3212 * @param subevent_code 3213 * @param avrcp_cid 3214 * @param command_type 3215 * @param operation_id 3216 */ 3217 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17u 3218 3219 /** 3220 * @format 121 3221 * @param subevent_code 3222 * @param avrcp_cid 3223 * @param command_type 3224 */ 3225 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18u 3226 3227 /** 3228 * @format 12 3229 * @param subevent_code 3230 * @param avrcp_cid 3231 */ 3232 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x19u 3233 3234 /** 3235 * @format 121111 3236 * @param subevent_code 3237 * @param avrcp_cid 3238 * @param operation_id 3239 * @param button_pressed 3240 * @param operands_length 3241 * @param operand 3242 */ 3243 #define AVRCP_SUBEVENT_OPERATION 0x1Au 3244 3245 /** 3246 * @format 1211 3247 * @param subevent_code 3248 * @param avrcp_cid 3249 * @param command_type 3250 * @param track 3251 */ 3252 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1Bu 3253 3254 /** 3255 * @format 1211 3256 * @param subevent_code 3257 * @param avrcp_cid 3258 * @param command_type 3259 * @param total_tracks 3260 */ 3261 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1Cu 3262 3263 /** 3264 * @format 1214 3265 * @param subevent_code 3266 * @param avrcp_cid 3267 * @param command_type 3268 * @param song_length in ms 3269 */ 3270 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1Du 3271 3272 /** 3273 * @format 121JV 3274 * @param subevent_code 3275 * @param avrcp_cid 3276 * @param command_type 3277 * @param value_len 3278 * @param value 3279 */ 3280 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x1Eu 3281 3282 /* 3283 * @format 121JV 3284 * @param subevent_code 3285 * @param avrcp_cid 3286 * @param command_type 3287 * @param value_len 3288 * @param value 3289 */ 3290 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x1Fu 3291 3292 /* 3293 * @format 121JV 3294 * @param subevent_code 3295 * @param avrcp_cid 3296 * @param command_type 3297 * @param value_len 3298 * @param value 3299 */ 3300 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x20u 3301 3302 /* 3303 * @format 121JV 3304 * @param subevent_code 3305 * @param avrcp_cid 3306 * @param command_type 3307 * @param value_len 3308 * @param value 3309 */ 3310 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x21u 3311 3312 /* 3313 * @format 1211 3314 * @param subevent_code 3315 * @param avrcp_cid 3316 * @param command_type 3317 * @param status 3318 */ 3319 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x22u 3320 3321 /** 3322 * @format 1214 3323 * @param subevent_code 3324 * @param avrcp_cid 3325 * @param command_type 3326 * @param playback_position_ms 3327 */ 3328 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x23u 3329 3330 /* 3331 * @format 12111 3332 * @param subevent_code 3333 * @param avrcp_cid 3334 * @param command_type 3335 * @param status 3336 * @param event_id 3337 */ 3338 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x24u 3339 /* 3340 * @format 1211 3341 * @param subevent_code 3342 * @param avrcp_cid 3343 * @param command_type 3344 * @param status 3345 */ 3346 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x25u 3347 3348 /* 3349 * @format 12113 3350 * @param subevent_code 3351 * @param avrcp_cid 3352 * @param command_type 3353 * @param status 3354 * @param company_id 3355 */ 3356 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x26u 3357 /* 3358 * @format 1211 3359 * @param subevent_code 3360 * @param avrcp_cid 3361 * @param command_type 3362 * @param status 3363 */ 3364 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x27u 3365 3366 /** 3367 * @format 1211LV 3368 * @param subevent_code 3369 * @param avrcp_cid 3370 * @param command_type 3371 * @param pdu_id 3372 * @param params_len 3373 * @param params 3374 */ 3375 #define AVRCP_SUBEVENT_CUSTOM_COMMAND_RESPONSE 0x28u 3376 3377 3378 /** 3379 * @format 1B2 3380 * @param subevent_code 3381 * @param bd_addr 3382 * @param browsing_cid 3383 */ 3384 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30u 3385 3386 /** 3387 * @format 11B2 3388 * @param subevent_code 3389 * @param status 0 == OK 3390 * @param bd_addr 3391 * @param browsing_cid 3392 */ 3393 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31u 3394 3395 /** 3396 * @format 12 3397 * @param subevent_code 3398 * @param browsing_cid 3399 */ 3400 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32u 3401 3402 /** 3403 * @format 12211 3404 * @param subevent_code 3405 * @param browsing_cid 3406 * @param uid_counter 3407 * @param browsing_status 3408 * @param bluetooth_status 3409 */ 3410 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33u 3411 3412 /** 3413 * @format 1214 3414 * @param subevent_code 3415 * @param browsing_cid 3416 * @param scope 3417 * @param attr_bitmap 3418 */ 3419 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34u 3420 3421 /** 3422 * @format 121 3423 * @param subevent_code 3424 * @param browsing_cid 3425 * @param scope 3426 */ 3427 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35u 3428 3429 /** 3430 * @format 122 3431 * @param subevent_code 3432 * @param browsing_cid 3433 * @param player_id 3434 */ 3435 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36u 3436 3437 3438 /** 3439 * @format 12BH 3440 * @param subevent_code 3441 * @param goep_cid 3442 * @param address 3443 * @param handle 3444 */ 3445 #define GOEP_SUBEVENT_INCOMING_CONNECTION 0x01u 3446 3447 /** 3448 * @format 121BH1 3449 * @param subevent_code 3450 * @param goep_cid 3451 * @param status 3452 * @param bd_addr 3453 * @param con_handle 3454 * @param incoming 3455 */ 3456 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x02u 3457 3458 /** 3459 * @format 12 3460 * @param subevent_code 3461 * @param goep_cid 3462 */ 3463 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x03u 3464 3465 /** 3466 * @format 12 3467 * @param subevent_code 3468 * @param goep_cid 3469 */ 3470 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x04u 3471 3472 /** 3473 * @format 121BH1 3474 * @param subevent_code 3475 * @param pbap_cid 3476 * @param status 3477 * @param bd_addr 3478 * @param con_handle 3479 * @param incoming 3480 */ 3481 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01u 3482 3483 /** 3484 * @format 12 3485 * @param subevent_code 3486 * @param goep_cid 3487 */ 3488 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02u 3489 3490 /** 3491 * @format 121 3492 * @param subevent_code 3493 * @param goep_cid 3494 * @param status 3495 */ 3496 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03u 3497 3498 /** 3499 * @format 1212 3500 * @param subevent_code 3501 * @param goep_cid 3502 * @param status 3503 * @param phonebook_size 3504 */ 3505 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04u 3506 3507 /** 3508 * @format 1211 3509 * @param subevent_code 3510 * @param goep_cid 3511 * @param user_id_required 3512 * @param full_access 3513 */ 3514 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05u 3515 3516 /** 3517 * @format 12JVJV 3518 * @param subevent_code 3519 * @param goep_cid 3520 * @param name_len 3521 * @param name 3522 * @param handle_len 3523 * @param handle 3524 */ 3525 #define PBAP_SUBEVENT_CARD_RESULT 0x06u 3526 3527 /** 3528 * @format 121 3529 * @param subevent_code 3530 * @param goep_cid 3531 * @param phonebook 3532 */ 3533 #define PBAP_SUBEVENT_RESET_MISSED_CALLS 0x0Au 3534 3535 /** 3536 * @format 12411 3537 * @param subevent_code 3538 * @param goep_cid 3539 * @param vcard_selector 3540 * @param vcard_selector_operator 3541 * @param phonebook 3542 */ 3543 #define PBAP_SUBEVENT_QUERY_PHONEBOOK_SIZE 0x0Bu 3544 3545 /** 3546 * @format 1244122411 3547 * @param subevent_code 3548 * @param goep_cid 3549 * @param continuation - value provided by caller of pbap_server_send_pull_response 3550 * @param property_selector 3551 * @param format 3552 * @param max_list_count 0xffff for unlimited 3553 * @param list_start_offset 3554 * @param vcard_selector 3555 * @param vcard_selector_operator 3556 * @param phonebook 3557 */ 3558 #define PBAP_SUBEVENT_PULL_PHONEBOOK 0x0Cu 3559 3560 /** 3561 * @format 124122411JV1 3562 * @param subevent_code 3563 * @param goep_cid 3564 * @param continuation - value provided by caller of pbap_server_send_pull_response 3565 * @param order 3566 * @param max_list_count 0xffff for unlimited 3567 * @param list_start_offset 3568 * @param vcard_selector 3569 * @param vcard_selector_operator 3570 * @param search_property 3571 * @param search_value_len 3572 * @param search_value 3573 * @param phonebook 3574 */ 3575 #define PBAP_SUBEVENT_PULL_VCARD_LISTING 0x0Du 3576 3577 /** 3578 * @format 124411T 3579 * @param subevent_code 3580 * @param goep_cid 3581 * @param continuation - value provided by caller of pbap_server_send_pull_response 3582 * @param property_selector 3583 * @param format 3584 * @param phonebook 3585 * @param name 3586 */ 3587 #define PBAP_SUBEVENT_PULL_VCARD_ENTRY 0x0Eu 3588 3589 3590 // HID Meta Event Group 3591 3592 /** 3593 * @format 12BH 3594 * @param subevent_code 3595 * @param hid_cid 3596 * @param address 3597 * @param handle 3598 */ 3599 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01u 3600 3601 /** 3602 * @format 121BH1 3603 * @param subevent_code 3604 * @param hid_cid 3605 * @param status 3606 * @param bd_addr 3607 * @param con_handle 3608 * @param incoming 3609 */ 3610 #define HID_SUBEVENT_CONNECTION_OPENED 0x02u 3611 3612 /** 3613 * @format 12 3614 * @param subevent_code 3615 * @param hid_cid 3616 */ 3617 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03u 3618 3619 /** 3620 * @format 12 3621 * @param subevent_code 3622 * @param hid_cid 3623 */ 3624 #define HID_SUBEVENT_CAN_SEND_NOW 0x04u 3625 3626 /** 3627 * @format 12 3628 * @param subevent_code 3629 * @param hid_cid 3630 */ 3631 #define HID_SUBEVENT_SUSPEND 0x05u 3632 3633 /** 3634 * @format 12 3635 * @param subevent_code 3636 * @param hid_cid 3637 */ 3638 #define HID_SUBEVENT_EXIT_SUSPEND 0x06u 3639 3640 /** 3641 * @format 12 3642 * @param subevent_code 3643 * @param hid_cid 3644 */ 3645 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07u 3646 3647 /** 3648 * @format 121LV 3649 * @param subevent_code 3650 * @param hid_cid 3651 * @param handshake_status 3652 * @param report_len 3653 * @param report 3654 */ 3655 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08u 3656 3657 /** 3658 * @format 121 3659 * @param subevent_code 3660 * @param hid_cid 3661 * @param handshake_status 3662 */ 3663 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09u 3664 3665 /** 3666 * @format 1211 3667 * @param subevent_code 3668 * @param hid_cid 3669 * @param handshake_status 3670 * @param protocol_mode 3671 */ 3672 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0Au 3673 3674 /** 3675 * @format 1211 3676 * @param subevent_code 3677 * @param hid_cid 3678 * @param handshake_status 3679 * @param protocol_mode 3680 */ 3681 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0Bu 3682 3683 /** 3684 * @format 12LV 3685 * @param subevent_code 3686 * @param hid_cid 3687 * @param report_len 3688 * @param report 3689 */ 3690 #define HID_SUBEVENT_REPORT 0x0Cu 3691 3692 /** 3693 * @format 121 3694 * @param subevent_code 3695 * @param hid_cid 3696 * @param status 3697 */ 3698 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0Du 3699 3700 /** 3701 * @format 1222 3702 * @param subevent_code 3703 * @param hid_cid 3704 * @param host_max_latency 3705 * @param host_min_timeout 3706 */ 3707 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0Eu 3708 3709 // HIDS Meta Event Group 3710 3711 /** 3712 * @format 12 3713 * @param subevent_code 3714 * @param con_handle 3715 */ 3716 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01u 3717 3718 /** 3719 * @format 121 3720 * @param subevent_code 3721 * @param con_handle 3722 * @param protocol_mode 3723 */ 3724 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02u 3725 3726 /** 3727 * @format 121 3728 * @param subevent_code 3729 * @param con_handle 3730 * @param enable 3731 */ 3732 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03u 3733 3734 /** 3735 * @format 121 3736 * @param subevent_code 3737 * @param con_handle 3738 * @param enable 3739 */ 3740 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04u 3741 3742 /** 3743 * @format 121 3744 * @param subevent_code 3745 * @param con_handle 3746 * @param enable 3747 */ 3748 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05u 3749 3750 /** 3751 * @format 121 3752 * @param subevent_code 3753 * @param con_handle 3754 * @param enable 3755 */ 3756 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06u 3757 3758 /** 3759 * @format 121 3760 * @param subevent_code 3761 * @param con_handle 3762 * @param enable 3763 */ 3764 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07u 3765 3766 /** 3767 * @format 12 3768 * @param subevent_code 3769 * @param con_handle 3770 */ 3771 #define HIDS_SUBEVENT_SUSPEND 0x08u 3772 3773 /** 3774 * @format 12 3775 * @param subevent_code 3776 * @param con_handle 3777 */ 3778 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09u 3779 3780 /** 3781 * @format 1211 3782 * @param subevent_code 3783 * @param con_handle 3784 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3785 * @param is_enhanced 3786 */ 3787 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01u 3788 3789 /** 3790 * @format 12 3791 * @param subevent_code 3792 * @param con_handle 3793 */ 3794 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02u 3795 3796 /** 3797 * @format 12 3798 * @param subevent_code 3799 * @param con_handle 3800 */ 3801 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03u 3802 3803 /** 3804 * @format 12111 3805 * @param subevent_code 3806 * @param hids_cid 3807 * @param status 3808 * @param num_instances 3809 * @param poll_bitmap 3810 */ 3811 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04u 3812 3813 /** 3814 * @format 12111 3815 * @param subevent_code 3816 * @param hids_cid 3817 * @param sevice_index 3818 * @param att_status see ATT errors in bluetooth.h 3819 * @param level 3820 */ 3821 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05u 3822 3823 /** 3824 * @format 1H1 3825 * @param subevent_code 3826 * @param con_handle 3827 * @param att_status 3828 */ 3829 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06u 3830 3831 /** 3832 * @format 1H1T 3833 * @param subevent_code 3834 * @param con_handle 3835 * @param att_status 3836 * @param value 3837 */ 3838 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07u 3839 3840 /** 3841 * @format 1H1T 3842 * @param subevent_code 3843 * @param con_handle 3844 * @param att_status 3845 * @param value 3846 */ 3847 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08u 3848 3849 /** 3850 * @format 1H1T 3851 * @param subevent_code 3852 * @param con_handle 3853 * @param att_status 3854 * @param value 3855 */ 3856 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09u 3857 3858 /** 3859 * @format 1H1T 3860 * @param subevent_code 3861 * @param con_handle 3862 * @param att_status 3863 * @param value 3864 */ 3865 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0Au 3866 3867 /** 3868 * @format 1H1T 3869 * @param subevent_code 3870 * @param con_handle 3871 * @param att_status 3872 * @param value 3873 */ 3874 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0Bu 3875 3876 /** 3877 * @format 1H1T 3878 * @param subevent_code 3879 * @param con_handle 3880 * @param att_status 3881 * @param value 3882 */ 3883 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0Cu 3884 3885 /** 3886 * @format 1H1413 3887 * @param subevent_code 3888 * @param con_handle 3889 * @param att_status 3890 * @param manufacturer_id_low 3891 * @param manufacturer_id_high 3892 * @param organizationally_unique_id 3893 */ 3894 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0Du 3895 3896 /** 3897 * @format 1H122 3898 * @param subevent_code 3899 * @param con_handle 3900 * @param att_status 3901 * @param value_a 3902 * @param value_b 3903 */ 3904 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0Eu 3905 3906 /** 3907 * @format 1H11222 3908 * @param subevent_code 3909 * @param con_handle 3910 * @param att_status 3911 * @param vendor_source_id 3912 * @param vendor_id 3913 * @param product_id 3914 * @param product_version 3915 */ 3916 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0Fu 3917 3918 /** 3919 * @format 1H1 3920 * @param subevent_code 3921 * @param con_handle 3922 * @param att_status 3923 */ 3924 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10u 3925 3926 /** 3927 * @format 1H 3928 * @param subevent_code 3929 * @param con_handle 3930 */ 3931 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11u 3932 3933 /** 3934 * @format 1H 3935 * @param subevent_code 3936 * @param con_handle 3937 */ 3938 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12u 3939 3940 /** 3941 * @format 12111 3942 * @param subevent_code 3943 * @param hids_cid 3944 * @param status 3945 * @param protocol_mode 3946 * @param num_instances 3947 */ 3948 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13u 3949 3950 /** 3951 * @format 1211LV 3952 * @param subevent_code 3953 * @param hids_cid 3954 * @param service_index 3955 * @param report_id 3956 * @param report_len 3957 * @param report 3958 */ 3959 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14u 3960 3961 /** 3962 * @format 1212111 3963 * @param subevent_code 3964 * @param hids_cid 3965 * @param service_index 3966 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3967 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3968 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3969 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3970 */ 3971 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15u 3972 3973 /** 3974 * @format 1211 3975 * @param subevent_code 3976 * @param hids_cid 3977 * @param service_index 3978 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3979 */ 3980 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16u 3981 3982 /** 3983 * @format 121 3984 * @param subevent_code 3985 * @param hids_cid 3986 * @param configuration 3987 */ 3988 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17u 3989 3990 /** 3991 * @format 1H22 3992 * @param subevent_code 3993 * @param con_handle 3994 * @param max_scan_interval 3995 * @param min_scan_window 3996 */ 3997 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18u 3998 3999 // LE Audio 4000 4001 /** 4002 * @format 121 4003 * @param subevent_code 4004 * @param hids_cid 4005 * @param status 4006 */ 4007 #define GATTSERVICE_SUBEVENT_MICS_CONNECTED 0x19u 4008 4009 /** 4010 * @format 1211 4011 * @param subevent_code 4012 * @param cid 4013 * @param status 4014 * @param state 4015 */ 4016 #define GATTSERVICE_SUBEVENT_REMOTE_MICS_MUTE 0x1Au 4017 4018 /** 4019 * @format 121 4020 * @param subevent_code 4021 * @param con_handle 4022 * @param state 4023 */ 4024 #define GATTSERVICE_SUBEVENT_LOCAL_MICS_MUTE 0x1Bu 4025 4026 /** 4027 * @format 1211 4028 * @param subevent_code 4029 * @param con_handle 4030 * @param index 4031 * @param state 4032 */ 4033 #define GATTSERVICE_SUBEVENT_AICS_MUTE_MODE 0x1Cu 4034 4035 /** 4036 * @format 1211 4037 * @param subevent_code 4038 * @param con_handle 4039 * @param index 4040 * @param state 4041 */ 4042 #define GATTSERVICE_SUBEVENT_AICS_GAIN_MODE 0x1Du 4043 4044 /** 4045 * @format 1211 4046 * @param subevent_code 4047 * @param con_handle 4048 * @param index 4049 * @param gain_db 4050 */ 4051 #define GATTSERVICE_SUBEVENT_AICS_GAIN_CHANGED 0x1Eu 4052 4053 /** 4054 * @format 121JV 4055 * @param subevent_code 4056 * @param con_handle 4057 * @param index 4058 * @param description_len 4059 * @param description 4060 */ 4061 #define GATTSERVICE_SUBEVENT_AICS_AUDIO_INPUT_DESC_CHANGED 0x20u 4062 4063 /** 4064 * @format 1212 4065 * @param subevent_code 4066 * @param con_handle 4067 * @param index 4068 * @param volume_offset 4069 */ 4070 #define GATTSERVICE_SUBEVENT_VOCS_VOLUME_OFFSET 0x21u 4071 4072 /** 4073 * @format 1214 4074 * @param subevent_code 4075 * @param con_handle 4076 * @param index 4077 * @param audio_location 4078 */ 4079 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_LOCATION 0x22u 4080 4081 /** 4082 * @format 121JV 4083 * @param subevent_code 4084 * @param con_handle 4085 * @param index 4086 * @param description_len 4087 * @param description 4088 */ 4089 #define GATTSERVICE_SUBEVENT_VOCS_AUDIO_OUTPUT_DESC_CHANGED 0x23u 4090 4091 /** 4092 * @format 12111 4093 * @param subevent_code 4094 * @param con_handle 4095 * @param volume_setting 4096 * @param volume_change_step 4097 * @param mute 4098 */ 4099 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_STATE 0x24u 4100 4101 /** 4102 * @format 121 4103 * @param subevent_code 4104 * @param con_handle 4105 * @param flags 4106 */ 4107 #define GATTSERVICE_SUBEVENT_VCS_VOLUME_FLAGS 0x25u 4108 4109 4110 // MAP Meta Event Group 4111 4112 /** 4113 * @format 121BH1 4114 * @param subevent_code 4115 * @param map_cid 4116 * @param status 4117 * @param bd_addr 4118 * @param con_handle 4119 * @param incoming 4120 */ 4121 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01u 4122 4123 /** 4124 * @format 12 4125 * @param subevent_code 4126 * @param map_cid 4127 */ 4128 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02u 4129 4130 /** 4131 * @format 121 4132 * @param subevent_code 4133 * @param map_cid 4134 * @param status 4135 */ 4136 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03u 4137 4138 4139 /** 4140 * @format 12LV 4141 * @param subevent_code 4142 * @param map_cid 4143 * @param name_len 4144 * @param name 4145 */ 4146 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04u 4147 4148 /** 4149 * @format 12D 4150 * @param subevent_code 4151 * @param map_cid 4152 * @param handle 4153 4154 */ 4155 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05u 4156 4157 /** 4158 * @format 12 4159 * @param subevent_code 4160 * @param map_cid 4161 */ 4162 #define MAP_SUBEVENT_PARSING_DONE 0x06u 4163 4164 4165 // MESH Meta Event Group 4166 4167 /** 4168 * @format 1 4169 * @param subevent_code 4170 */ 4171 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01u 4172 4173 /** 4174 * @format 11 4175 * @param subevent_code 4176 * @param status 4177 */ 4178 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02u 4179 4180 /** 4181 * @format 1121 4182 * @param subevent_code 4183 * @param status 4184 * @param pb_transport_cid 4185 * @param pb_type 4186 */ 4187 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03u 4188 4189 /** 4190 * @format 112 4191 * @param subevent_code 4192 * @param pb_transport_cid 4193 * @param reason 4194 */ 4195 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04u 4196 4197 /** 4198 * @format 121 4199 * @param subevent_code 4200 * @param pb_transport_cid 4201 * @param attention_time in seconds 4202 */ 4203 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10u 4204 4205 /** 4206 * Device Role 4207 * @format 12 4208 * @param subevent_code 4209 * @param pb_transport_cid 4210 */ 4211 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11u 4212 4213 /** 4214 * Device Role 4215 * @format 12 4216 * @param subevent_code 4217 * @param pb_transport_cid 4218 */ 4219 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12u 4220 4221 /** 4222 * Device Role 4223 * @format 12 4224 * @param subevent_code 4225 * @param pb_transport_cid 4226 */ 4227 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13u 4228 4229 /** 4230 * Device Role 4231 * @format 124 4232 * @param subevent_code 4233 * @param pb_transport_cid 4234 * @param output_oob number 4235 */ 4236 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15u 4237 4238 /** 4239 * Device Role 4240 * @format 12 4241 * @param subevent_code 4242 * @param pb_transport_cid 4243 */ 4244 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16u 4245 4246 /** 4247 * Provisioner Role 4248 * @format 12 4249 * @param subevent_code 4250 * @param pb_transport_cid 4251 */ 4252 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17u 4253 4254 /** 4255 * Provisioner Role 4256 * @format 12 4257 * @param subevent_code 4258 * @param pb_transport_cid 4259 */ 4260 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18u 4261 4262 /** 4263 * Provisioner Role 4264 * @format 12 4265 * @param subevent_code 4266 * @param pb_transport_cid 4267 */ 4268 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19u 4269 4270 /** 4271 * Provisioner Role 4272 * @format 124 4273 * @param subevent_code 4274 * @param pb_transport_cid 4275 * @param output_oob number 4276 */ 4277 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1au 4278 4279 /** 4280 * Provisioner Role 4281 * @format 12 4282 * @param subevent_code 4283 * @param pb_transport_cid 4284 */ 4285 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1bu 4286 4287 /** 4288 * Provisioner Role 4289 * @format 1212111212 4290 * @param subevent_code 4291 * @param pb_transport_cid 4292 * @param num_elements 4293 * @param algorithms 4294 * @param public_key 4295 * @param static_oob_type 4296 * @param output_oob_size 4297 * @param output_oob_action 4298 * @param input_oob_size 4299 * @param input_oob_action 4300 */ 4301 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1cu 4302 4303 /** 4304 * @format 12 4305 * @param subevent_code 4306 * @param pb_transport_cid 4307 */ 4308 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1du 4309 4310 /** 4311 * @format 11 4312 * @param subevent_code 4313 * @param attention_time in seconds 4314 */ 4315 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1eu 4316 4317 /** 4318 * @format 1H 4319 * @param subevent_code 4320 * @param con_handle 4321 */ 4322 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20u 4323 4324 /** 4325 * @format 1H 4326 * @param subevent_code 4327 * @param con_handle 4328 */ 4329 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21u 4330 4331 /** 4332 * @format 1H 4333 * @param subevent_code 4334 * @param con_handle 4335 */ 4336 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22u 4337 4338 /** 4339 * @format 1H 4340 * @param subevent_code 4341 * @param con_handle 4342 */ 4343 #define MESH_SUBEVENT_MESSAGE_SENT 0x23u 4344 4345 /** 4346 * @format 114411 4347 * @param subevent_code 4348 * @param element_index 4349 * @param model_identifier 4350 * @param state_identifier 4351 * @param reason 4352 * @param value 4353 */ 4354 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24u 4355 4356 /** 4357 * @format 114412 4358 * @param subevent_code 4359 * @param element_index 4360 * @param model_identifier 4361 * @param state_identifier 4362 * @param reason 4363 * @param value 4364 */ 4365 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25u 4366 4367 // Mesh Client Events 4368 /** 4369 * @format 11442 4370 * @param subevent_code 4371 * @param element_index 4372 * @param model_identifier 4373 * @param opcode 4374 * @param dest 4375 */ 4376 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30u 4377 4378 /** 4379 * @format 121114 4380 * @param subevent_code 4381 * @param dest 4382 * @param status 4383 * @param present_value 4384 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4385 * @param remaining_time_ms 4386 */ 4387 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31u 4388 4389 /** 4390 * @format 121224 4391 * @param subevent_code 4392 * @param dest 4393 * @param status 4394 * @param present_value 4395 * @param target_value optional, if value > 0, than remaining_time_ms must be read 4396 * @param remaining_time_ms 4397 */ 4398 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32u 4399 4400 /** 4401 * @format 1222211 4402 * @param subevent_code 4403 * @param dest 4404 * @param netkey_index 4405 * @param appkey_index 4406 * @param company_id 4407 * @param test_id 4408 * @param acknowledged 4409 */ 4410 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33u 4411 4412 /** 4413 * @format 11 4414 * @param subevent_code 4415 * @param element_index 4416 */ 4417 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34u 4418 4419 /** 4420 * @format 1211 4421 * @param subevent_code 4422 * @param dest 4423 * @param status 4424 * @param transition_time_gdtt 4425 */ 4426 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35u 4427 4428 /** 4429 * @format 1211 4430 * @param subevent_code 4431 * @param dest 4432 * @param foundation_status 4433 * @param secure_network_beacon_state 4434 */ 4435 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36u 4436 4437 // Composition Data has variable of element descriptions, with two lists of model lists 4438 // Use .. getters to access data 4439 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37u 4440 4441 /** 4442 * @format 1211 4443 * @param subevent_code 4444 * @param dest 4445 * @param foundation_status 4446 * @param default_ttl 4447 */ 4448 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38u 4449 4450 /** 4451 * @format 1211 4452 * @param subevent_code 4453 * @param dest 4454 * @param foundation_status 4455 * @param gatt_proxy_state 4456 */ 4457 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39u 4458 4459 /** 4460 * @format 121111 4461 * @param subevent_code 4462 * @param dest 4463 * @param foundation_status 4464 * @param relay 4465 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 4466 * @param retransmit_interval_ms retransmission interval in ms 4467 */ 4468 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40u 4469 4470 4471 /** 4472 * @format 12122111114 4473 * @param subevent_code 4474 * @param dest element_address 4475 * @param foundation_status 4476 * @param publish_address 4477 * @param appkey_index 4478 * @param credential_flag 4479 * @param publish_ttl 4480 * @param publish_period 4481 * @param publish_retransmit_count 4482 * @param publish_retransmit_interval_steps 4483 * @param model_identifier 4484 */ 4485 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41u 4486 4487 /** 4488 * @format 12124 4489 * @param subevent_code 4490 * @param dest 4491 * @param foundation_status 4492 * @param address 4493 * @param model_identifier 4494 */ 4495 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42u 4496 4497 /** 4498 * @format 1214112 4499 * @param subevent_code 4500 * @param dest 4501 * @param foundation_status 4502 * @param model_identifier 4503 * @param num_subscription_addresses 4504 * @param subscription_address_pos 4505 * @param subscription_address_item 4506 */ 4507 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43u 4508 4509 4510 /** 4511 * @format 121 4512 * @param subevent_code 4513 * @param dest 4514 * @param foundation_status 4515 */ 4516 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44u 4517 4518 /** 4519 * @format 121112 4520 * @param subevent_code 4521 * @param dest 4522 * @param foundation_status 4523 * @param num_netkey_indexes 4524 * @param netkey_index_pos 4525 * @param netkey_index_item 4526 */ 4527 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45u 4528 4529 /** 4530 * @format 12122 4531 * @param subevent_code 4532 * @param dest 4533 * @param foundation_status 4534 * @param netkey_index_item 4535 * @param appkey_index_item 4536 */ 4537 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46u 4538 4539 /** 4540 * @format 12121122 4541 * @param subevent_code 4542 * @param dest 4543 * @param foundation_status 4544 * @param netkey_index 4545 * @param num_appkey_indexes 4546 * @param appkey_index_pos 4547 * @param netkey_index_item 4548 * @param appkey_index_item 4549 */ 4550 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47u 4551 4552 /** 4553 * @format 12121 4554 * @param subevent_code 4555 * @param dest 4556 * @param foundation_status 4557 * @param netkey_index_item 4558 * @param identity_status 4559 */ 4560 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48u 4561 4562 /** 4563 * @format 12124 4564 * @param subevent_code 4565 * @param dest 4566 * @param foundation_status 4567 * @param appkey_index 4568 * @param model_identifier 4569 */ 4570 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49u 4571 4572 /** 4573 * @format 1214112 4574 * @param subevent_code 4575 * @param dest 4576 * @param foundation_status 4577 * @param model_id 4578 * @param num_appkey_indexes 4579 * @param appkey_index_pos 4580 * @param appkey_index_item 4581 */ 4582 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50u 4583 4584 /** 4585 * @format 121 4586 * @param subevent_code 4587 * @param dest 4588 * @param foundation_status 4589 */ 4590 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51u 4591 4592 /** 4593 * @format 1211 4594 * @param subevent_code 4595 * @param dest 4596 * @param foundation_status 4597 * @param friend_state 4598 */ 4599 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52u 4600 4601 /** 4602 * @format 12121 4603 * @param subevent_code 4604 * @param dest 4605 * @param foundation_status 4606 * @param netkey_index 4607 * @param phase 4608 */ 4609 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53u 4610 4611 /** 4612 * @format 121222122 4613 * @param subevent_code 4614 * @param dest 4615 * @param foundation_status 4616 * @param heartbeat_destination 4617 * @param count_S 4618 * @param period_S 4619 * @param ttl 4620 * @param features 4621 * @param netkey_index 4622 */ 4623 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54u 4624 4625 /** 4626 * @format 121222211 4627 * @param subevent_code 4628 * @param dest 4629 * @param foundation_status 4630 * @param heartbeat_destination 4631 * @param heartbeat_source 4632 * @param count_S 4633 * @param period_S 4634 * @param min_hops 4635 * @param max_hops 4636 */ 4637 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55u 4638 4639 /** 4640 * @format 12123 4641 * @param subevent_code 4642 * @param dest 4643 * @param foundation_status 4644 * @param lpn_address 4645 * @param poll_timeout 4646 */ 4647 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56u 4648 4649 /** 4650 * @format 12112 4651 * @param subevent_code 4652 * @param dest 4653 * @param foundation_status 4654 * @param transmit_count 4655 * @param transmit_interval_steps_ms 4656 */ 4657 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57u 4658 4659 4660 #endif 4661