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 MATTHIAS 24 * RINGWALD 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 0xffff 82 83 84 #define DAEMON_EVENT_PACKET 0x05 85 86 // L2CAP data 87 #define L2CAP_DATA_PACKET 0x06 88 89 // RFCOMM data 90 #define RFCOMM_DATA_PACKET 0x07 91 92 // Attribute protocol data 93 #define ATT_DATA_PACKET 0x08 94 95 // Security Manager protocol data 96 #define SM_DATA_PACKET 0x09 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 0x0a 101 102 // BNEP data 103 #define BNEP_DATA_PACKET 0x0b 104 105 // Unicast Connectionless Data 106 #define UCD_DATA_PACKET 0x0c 107 108 // GOEP data 109 #define GOEP_DATA_PACKET 0x0d 110 111 // PBAP data 112 #define PBAP_DATA_PACKET 0x0e 113 114 // AVRCP browsing data 115 #define AVRCP_BROWSING_DATA_PACKET 0x0f 116 117 // MAP data 118 #define MAP_DATA_PACKET 0x10 119 120 // Mesh Provisioning PDU 121 #define PROVISIONING_DATA_PACKET 0x11 122 123 // Mesh Proxy PDU 124 #define MESH_PROXY_DATA_PACKET 0x11 125 126 // Mesh Network PDU 127 #define MESH_NETWORK_PACKET 0x12 128 129 // Mesh Network PDU 130 #define MESH_BEACON_PACKET 0x13 131 132 // debug log messages 133 #define LOG_MESSAGE_PACKET 0xfc 134 135 136 // DAEMON COMMANDS 137 138 #define OGF_BTSTACK 0x3d 139 140 // cmds for BTstack 141 // get state: @returns HCI_STATE 142 #define BTSTACK_GET_STATE 0x01 143 144 // set power mode: param HCI_POWER_MODE 145 #define BTSTACK_SET_POWER_MODE 0x02 146 147 // set capture mode: param on 148 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 149 150 // get BTstack version 151 #define BTSTACK_GET_VERSION 0x04 152 153 // get system Bluetooth state 154 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 155 156 // set system Bluetooth state 157 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 158 159 // enable inquiry scan for this client 160 #define BTSTACK_SET_DISCOVERABLE 0x07 161 162 // set global Bluetooth state 163 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 164 165 // create l2cap channel: param bd_addr(48), psm (16) 166 #define L2CAP_CREATE_CHANNEL 0x20 167 168 // disconnect l2cap disconnect, param channel(16), reason(8) 169 #define L2CAP_DISCONNECT 0x21 170 171 // register l2cap service: param psm(16), mtu (16) 172 #define L2CAP_REGISTER_SERVICE 0x22 173 174 // unregister l2cap disconnect, param psm(16) 175 #define L2CAP_UNREGISTER_SERVICE 0x23 176 177 // accept connection param bd_addr(48), dest cid (16) 178 #define L2CAP_ACCEPT_CONNECTION 0x24 179 180 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 181 #define L2CAP_DECLINE_CONNECTION 0x25 182 183 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 184 #define L2CAP_CREATE_CHANNEL_MTU 0x26 185 186 // register SDP Service Record: service record (size) 187 #define SDP_REGISTER_SERVICE_RECORD 0x30 188 189 // unregister SDP Service Record 190 #define SDP_UNREGISTER_SERVICE_RECORD 0x31 191 192 // Get remote RFCOMM services 193 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 194 195 // Get remote SDP services 196 #define SDP_CLIENT_QUERY_SERVICES 0x33 197 198 // RFCOMM "HCI" Commands 199 #define RFCOMM_CREATE_CHANNEL 0x40 200 #define RFCOMM_DISCONNECT 0x41 201 #define RFCOMM_REGISTER_SERVICE 0x42 202 #define RFCOMM_UNREGISTER_SERVICE 0x43 203 #define RFCOMM_ACCEPT_CONNECTION 0x44 204 #define RFCOMM_DECLINE_CONNECTION 0x45 205 #define RFCOMM_PERSISTENT_CHANNEL 0x46 206 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 207 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 208 #define RFCOMM_GRANT_CREDITS 0x49 209 210 // GAP Classic 0x50 211 #define GAP_DISCONNECT 0x50 212 #define GAP_INQUIRY_START 0x51 213 #define GAP_INQUIRY_STOP 0x52 214 #define GAP_REMOTE_NAME_REQUEST 0x53 215 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54 216 #define GAP_DELETE_ALL_LINK_KEYS 0x55 217 218 // GAP LE 0x60 219 #define GAP_LE_SCAN_START 0x60 220 #define GAP_LE_SCAN_STOP 0x61 221 #define GAP_LE_CONNECT 0x62 222 #define GAP_LE_CONNECT_CANCEL 0x63 223 #define GAP_LE_SET_SCAN_PARAMETERS 0x64 224 225 // GATT (Client) 0x70 226 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 227 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 228 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 229 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 230 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 231 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 232 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 233 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 234 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 235 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 236 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 237 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 238 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 239 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 240 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 241 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 242 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 243 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 244 #define GATT_GET_MTU 0x82 245 246 // SM 0x90 247 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90 248 #define SM_SET_IO_CAPABILITIES 0x92 249 #define SM_BONDING_DECLINE 0x93 250 #define SM_JUST_WORKS_CONFIRM 0x94 251 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95 252 #define SM_PASSKEY_INPUT 0x96 253 254 // ATT 255 256 // .. 257 // Internal properties reuse some GATT Characteristic Properties fields 258 #define ATT_DB_VERSION 0x01 259 260 // EVENTS 261 262 // Events from host controller to host 263 264 /** 265 * @format 1 266 * @param status 267 */ 268 #define HCI_EVENT_INQUIRY_COMPLETE 0x01 269 270 /** 271 * @format 1B11132 272 * @param num_responses 273 * @param bd_addr 274 * @param page_scan_repetition_mode 275 * @param reserved1 276 * @param reserved2 277 * @param class_of_device 278 * @param clock_offset 279 */ 280 #define HCI_EVENT_INQUIRY_RESULT 0x02 281 282 /** 283 * @format 12B11 284 * @param status 285 * @param connection_handle 286 * @param bd_addr 287 * @param link_type 288 * @param encryption_enabled 289 */ 290 #define HCI_EVENT_CONNECTION_COMPLETE 0x03 291 /** 292 * @format B31 293 * @param bd_addr 294 * @param class_of_device 295 * @param link_type 296 */ 297 #define HCI_EVENT_CONNECTION_REQUEST 0x04 298 /** 299 * @format 121 300 * @param status 301 * @param connection_handle 302 * @param reason 303 */ 304 #define HCI_EVENT_DISCONNECTION_COMPLETE 0x05 305 /** 306 * @format 12 307 * @param status 308 * @param connection_handle 309 */ 310 #define HCI_EVENT_AUTHENTICATION_COMPLETE 0x06 311 312 // HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT is deprecated, use HCI_EVENT_AUTHENTICATION_COMPLETE instead 313 #define HCI_EVENT_AUTHENTICATION_COMPLETE_EVENT HCI_EVENT_AUTHENTICATION_COMPLETE 314 315 /** 316 * @format 1BN 317 * @param status 318 * @param bd_addr 319 * @param remote_name 320 */ 321 #define HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE 0x07 322 /** 323 * @format 121 324 * @param status 325 * @param connection_handle 326 * @param encryption_enabled 327 */ 328 #define HCI_EVENT_ENCRYPTION_CHANGE 0x08 329 /** 330 * @format 12 331 * @param status 332 * @param connection_handle 333 */ 334 #define HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE 0x09 335 /** 336 * @format 121 337 * @param status 338 * @param connection_handle 339 * @param key_flag 340 */ 341 #define HCI_EVENT_MASTER_LINK_KEY_COMPLETE 0x0A 342 343 #define HCI_EVENT_READ_REMOTE_SUPPORTED_FEATURES_COMPLETE 0x0B 344 345 /** 346 * @format 12122 347 * @param status 348 * @param connection_handle 349 * @param version 350 * @param manufacturer_name 351 * @param subversion 352 */ 353 #define HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE 0x0C 354 355 #define HCI_EVENT_QOS_SETUP_COMPLETE 0x0D 356 357 /** 358 * @format 12R 359 * @param num_hci_command_packets 360 * @param command_opcode 361 * @param return_parameters 362 */ 363 #define HCI_EVENT_COMMAND_COMPLETE 0x0E 364 /** 365 * @format 112 366 * @param status 367 * @param num_hci_command_packets 368 * @param command_opcode 369 */ 370 #define HCI_EVENT_COMMAND_STATUS 0x0F 371 372 /** 373 * @format 1 374 * @param hardware_code 375 */ 376 #define HCI_EVENT_HARDWARE_ERROR 0x10 377 378 #define HCI_EVENT_FLUSH_OCCURRED 0x11 379 380 /** 381 * @format 1B1 382 * @param status 383 * @param bd_addr 384 * @param role 385 */ 386 #define HCI_EVENT_ROLE_CHANGE 0x12 387 388 // TODO: number_of_handles 1, connection_handle[H*i], hc_num_of_completed_packets[2*i] 389 #define HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS 0x13 390 391 /** 392 * @format 1H12 393 * @param status 394 * @param handle 395 * @param mode 396 * @param interval 397 */ 398 #define HCI_EVENT_MODE_CHANGE 0x14 399 400 // TODO: num_keys, bd_addr[B*i], link_key[16 octets * i] 401 #define HCI_EVENT_RETURN_LINK_KEYS 0x15 402 403 /** 404 * @format B 405 * @param bd_addr 406 */ 407 #define HCI_EVENT_PIN_CODE_REQUEST 0x16 408 409 /** 410 * @format B 411 * @param bd_addr 412 */ 413 #define HCI_EVENT_LINK_KEY_REQUEST 0x17 414 415 // TODO: bd_addr B, link_key 16octets, key_type 1 416 #define HCI_EVENT_LINK_KEY_NOTIFICATION 0x18 417 418 /** 419 * @format 1 420 * @param link_type 421 */ 422 #define HCI_EVENT_DATA_BUFFER_OVERFLOW 0x1A 423 424 /** 425 * @format H1 426 * @param handle 427 * @param lmp_max_slots 428 */ 429 #define HCI_EVENT_MAX_SLOTS_CHANGED 0x1B 430 431 /** 432 * @format 1H2 433 * @param status 434 * @param handle 435 * @param clock_offset 436 */ 437 #define HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE 0x1C 438 439 /** 440 * @format 1H2 441 * @param status 442 * @param handle 443 * @param packet_types 444 * @pnote packet_type is in plural to avoid clash with Java binding Packet.getPacketType() 445 */ 446 #define HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED 0x1D 447 448 /** 449 * @format 1B11321 450 * @param num_responses 451 * @param bd_addr 452 * @param page_scan_repetition_mode 453 * @param reserved 454 * @param class_of_device 455 * @param clock_offset 456 * @param rssi 457 */ 458 #define HCI_EVENT_INQUIRY_RESULT_WITH_RSSI 0x22 459 460 #define HCI_EVENT_READ_REMOTE_EXTENDED_FEATURES_COMPLETE 0x23 461 462 /** 463 * @format 1HB111221 464 * @param status 465 * @param handle 466 * @param bd_addr 467 * @param link_type 468 * @param transmission_interval 469 * @param retransmission_interval 470 * @param rx_packet_length 471 * @param tx_packet_length 472 * @param air_mode 473 */ 474 #define HCI_EVENT_SYNCHRONOUS_CONNECTION_COMPLETE 0x2C 475 476 // TODO: serialize extended_inquiry_response and provide parser 477 /** 478 * @format 1B11321 479 * @param num_responses 480 * @param bd_addr 481 * @param page_scan_repetition_mode 482 * @param reserved 483 * @param class_of_device 484 * @param clock_offset 485 * @param rssi 486 */ 487 #define HCI_EVENT_EXTENDED_INQUIRY_RESPONSE 0x2F 488 489 /** 490 * @format 1H 491 * @param status 492 * @param handle 493 */ 494 #define HCI_EVENT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30 495 496 /** 497 * @format B 498 * @param bd_addr 499 */ 500 #define HCI_EVENT_IO_CAPABILITY_REQUEST 0x31 501 502 /** 503 * @format B111 504 * @param bd_addr 505 * @param io_capability 506 * @param oob_data_present 507 * @param authentication_requirements 508 */ 509 #define HCI_EVENT_IO_CAPABILITY_RESPONSE 0x32 510 511 /** 512 * @format B4 513 * @param bd_addr 514 * @param numeric_value 515 */ 516 #define HCI_EVENT_USER_CONFIRMATION_REQUEST 0x33 517 518 /** 519 * @format B 520 * @param bd_addr 521 */ 522 #define HCI_EVENT_USER_PASSKEY_REQUEST 0x34 523 524 /** 525 * @format B 526 * @param bd_addr 527 */ 528 #define HCI_EVENT_REMOTE_OOB_DATA_REQUEST 0x35 529 530 /** 531 * @format 1B 532 * @param status 533 * @param bd_addr 534 */ 535 #define HCI_EVENT_SIMPLE_PAIRING_COMPLETE 0x36 536 537 /** 538 * @format B4 539 * @param bd_addr 540 * @param numeric_value 541 */ 542 #define HCI_EVENT_USER_PASSKEY_NOTIFICATION 0x3B 543 544 /** 545 * @format B1 546 * @param bd_addr 547 * @param notification_type 548 */ 549 #define HCI_EVENT_KEYPRESS_NOTIFICATION 0x3C 550 551 #define HCI_EVENT_LE_META 0x3E 552 553 // last used HCI_EVENT in 2.1 is 0x3d 554 // last used HCI_EVENT in 4.1 is 0x57 555 // last used HCI_EVENT in 5.2 is 0x58 556 557 #define HCI_EVENT_VENDOR_SPECIFIC 0xFF 558 559 /** 560 * @format 11H11B2221 561 * @param subevent_code 562 * @param status 563 * @param connection_handle 564 * @param role 565 * @param peer_address_type 566 * @param peer_address 567 * @param conn_interval 568 * @param conn_latency 569 * @param supervision_timeout 570 * @param master_clock_accuracy 571 */ 572 #define HCI_SUBEVENT_LE_CONNECTION_COMPLETE 0x01 573 574 // array of advertisements, not handled by event accessor generator 575 #define HCI_SUBEVENT_LE_ADVERTISING_REPORT 0x02 576 577 /** 578 * @format 11H222 579 * @param subevent_code 580 * @param status 581 * @param connection_handle 582 * @param conn_interval 583 * @param conn_latency 584 * @param supervision_timeout 585 */ 586 #define HCI_SUBEVENT_LE_CONNECTION_UPDATE_COMPLETE 0x03 587 588 /** 589 * @format 1HD 590 * @param subevent_code 591 * @param connection_handle 592 * @param le_features 593 */ 594 #define HCI_SUBEVENT_LE_READ_REMOTE_FEATURES_COMPLETE 0x04 595 596 /** 597 * @format 1HD2 598 * @param subevent_code 599 * @param connection_handle 600 * @param random_number 601 * @param encryption_diversifier 602 */ 603 #define HCI_SUBEVENT_LE_LONG_TERM_KEY_REQUEST 0x05 604 605 /** 606 * @format 1H2222 607 * @param subevent_code 608 * @param connection_handle 609 * @param interval_min 610 * @param interval_max 611 * @param latency 612 * @param timeout 613 */ 614 #define HCI_SUBEVENT_LE_REMOTE_CONNECTION_PARAMETER_REQUEST 0x06 615 616 /** 617 * @format 1H2222 618 * @param subevent_code 619 * @param connection_handle 620 * @param max_tx_octets 621 * @param max_tx_time 622 * @param max_rx_octets 623 * @param max_rx_time 624 */ 625 #define HCI_SUBEVENT_LE_DATA_LENGTH_CHANGE 0x07 626 627 /** 628 * @format 11QQ 629 * @param subevent_code 630 * @param status 631 * @param dhkey_x x coordinate of P256 public key 632 * @param dhkey_y y coordinate of P256 public key 633 */ 634 #define HCI_SUBEVENT_LE_READ_LOCAL_P256_PUBLIC_KEY_COMPLETE 0x08 635 /** 636 * @format 11Q 637 * @param subevent_code 638 * @param status 639 * @param dhkey Diffie-Hellman key 640 */ 641 #define HCI_SUBEVENT_LE_GENERATE_DHKEY_COMPLETE 0x09 642 643 /** 644 * @format 11H11BBB2221 645 * @param subevent_code 646 * @param status 647 * @param connection_handle 648 * @param role 649 * @param peer_address_type 650 * @param perr_addresss 651 * @param local_resolvable_private_addres 652 * @param peer_resolvable_private_addres 653 * @param conn_interval 654 * @param conn_latency 655 * @param supervision_timeout 656 * @param master_clock_accuracy 657 */ 658 #define HCI_SUBEVENT_LE_ENHANCED_CONNECTION_COMPLETE 0x0A 659 660 // array of advertisements, not handled by event accessor generator 661 #define HCI_SUBEVENT_LE_DIRECT_ADVERTISING_REPORT 0x0B 662 663 664 /** 665 * @format 1 666 * @param state 667 */ 668 #define BTSTACK_EVENT_STATE 0x60 669 670 /** 671 * @format 1 672 * @param number_connections 673 */ 674 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 675 676 /** 677 * @format 678 */ 679 #define BTSTACK_EVENT_POWERON_FAILED 0x62 680 681 /** 682 * @format 1 683 * @param discoverable 684 */ 685 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 686 687 // Daemon Events 688 689 /** 690 * @format 112 691 * @param major 692 * @param minor 693 @ @param revision 694 */ 695 #define DAEMON_EVENT_VERSION 0x63 696 697 // data: system bluetooth on/off (bool) 698 /** 699 * @format 1 700 * param system_bluetooth_enabled 701 */ 702 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 703 704 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 705 706 /* 707 * @format 1BT 708 * @param status == 0 to match read_remote_name_request 709 * @param address 710 * @param name 711 */ 712 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 713 714 // internal - data: event(8) 715 #define DAEMON_EVENT_CONNECTION_OPENED 0x67 716 717 // internal - data: event(8) 718 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 719 720 // data: event(8), len(8), local_cid(16), credits(8) 721 #define DAEMON_EVENT_L2CAP_CREDITS 0x74 722 723 /** 724 * @format 12 725 * @param status 726 * @param psm 727 */ 728 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 729 730 /** 731 * @format 21 732 * @param rfcomm_cid 733 * @param credits 734 */ 735 #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 736 737 /** 738 * @format 11 739 * @param status 740 * @param channel_id 741 */ 742 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 743 744 /** 745 * @format 11 746 * @param status 747 * @param server_channel_id 748 */ 749 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 750 751 /** 752 * @format 14 753 * @param status 754 * @param service_record_handle 755 */ 756 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 757 758 759 760 // additional HCI events 761 762 /** 763 * @brief Indicates HCI transport enters/exits Sleep mode 764 * @format 1 765 * @param active 766 */ 767 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 768 769 /** 770 * @brief Transport ready 771 */ 772 #define HCI_EVENT_TRANSPORT_READY 0x6D 773 774 /** 775 * @brief Outgoing packet 776 */ 777 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 778 779 /** 780 * @format B 781 * @param handle 782 */ 783 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 784 785 786 // L2CAP EVENTS 787 788 /** 789 * @format 1BH222222111 790 * @param status 791 * @param address 792 * @param handle 793 * @param psm 794 * @param local_cid 795 * @param remote_cid 796 * @param local_mtu 797 * @param remote_mtu 798 * @param flush_timeout 799 * @param incoming 800 * @param mode 801 * @param fcs 802 */ 803 #define L2CAP_EVENT_CHANNEL_OPENED 0x70 804 805 /* 806 * @format 2 807 * @param local_cid 808 */ 809 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 810 811 /** 812 * @format BH222 813 * @param address 814 * @param handle 815 * @param psm 816 * @param local_cid 817 * @param remote_cid 818 */ 819 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 820 821 // ?? 822 // data: event(8), len(8), handle(16) 823 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 824 825 /** 826 * @format H2222 827 * @param handle 828 * @param interval_min 829 * @param interval_max 830 * @param latencey 831 * @param timeout_multiplier 832 */ 833 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 834 835 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 836 /** 837 * @format H2 838 * @param handle 839 * @param result 840 */ 841 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 842 843 /** 844 * @format 2 845 * @param local_cid 846 */ 847 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 848 849 // LE Data Channels 850 851 /** 852 * @format 1BH2222 853 * @param address_type 854 * @param address 855 * @param handle 856 * @param psm 857 * @param local_cid 858 * @param remote_cid 859 * @param remote_mtu 860 */ 861 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 862 863 /** 864 * @format 11BH122222 865 * @param status 866 * @param address_type 867 * @param address 868 * @param handle 869 * @param incoming 870 * @param psm 871 * @param local_cid 872 * @param remote_cid 873 * @param local_mtu 874 * @param remote_mtu 875 */ 876 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 877 878 /* 879 * @format 2 880 * @param local_cid 881 */ 882 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 883 884 /* 885 * @format 2 886 * @param local_cid 887 */ 888 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 889 890 /* 891 * @format 2 892 * @param local_cid 893 */ 894 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 895 896 /* 897 * @format 2 898 * @param local_cid 899 */ 900 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 901 902 /* 903 * @format 904 */ 905 #define L2CAP_EVENT_TRIGGER_RUN 0x7f 906 907 908 // RFCOMM EVENTS 909 910 /** 911 * @format 1B21221 912 * @param status 913 * @param bd_addr 914 * @param con_handle 915 * @param server_channel 916 * @param rfcomm_cid 917 * @param max_frame_size 918 * @param incoming 919 */ 920 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 921 922 /** 923 * @format 2 924 * @param rfcomm_cid 925 */ 926 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 927 928 /** 929 * @format B12 930 * @param bd_addr 931 * @param server_channel 932 * @param rfcomm_cid 933 */ 934 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 935 936 /** 937 * @format 21 938 * @param rfcomm_cid 939 * @param line_status 940 */ 941 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 942 943 /** 944 * @format 21 945 * @param rfcomm_cid 946 * @param modem_status 947 */ 948 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 949 950 /** 951 * TODO: format for variable data 2? 952 * param rfcomm_cid 953 * param rpn_data 954 */ 955 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 956 957 /** 958 * @format 2 959 * @param rfcomm_cid 960 */ 961 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 962 963 964 /** 965 * @format 1 966 * @param status 967 */ 968 #define SDP_EVENT_QUERY_COMPLETE 0x91 969 970 /** 971 * @format 1T 972 * @param rfcomm_channel 973 * @param name 974 */ 975 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 976 977 /** 978 * @format 22221 979 * @param record_id 980 * @param attribute_id 981 * @param attribute_length 982 * @param data_offset 983 * @param data 984 */ 985 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 986 987 /** 988 * @format 22LV 989 * @param record_id 990 * @param attribute_id 991 * @param attribute_length 992 * @param attribute_value 993 */ 994 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 995 996 /** 997 * @format 224 998 * @param total_count 999 * @param record_index 1000 * @param record_handle 1001 * @note Not provided by daemon, only used for internal testing 1002 */ 1003 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 1004 1005 /** 1006 * @format H1 1007 * @param handle 1008 * @param att_status see ATT errors in bluetooth.h 1009 */ 1010 #define GATT_EVENT_QUERY_COMPLETE 0xA0 1011 1012 /** 1013 * @format HX 1014 * @param handle 1015 * @param service 1016 */ 1017 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 1018 1019 /** 1020 * @format HY 1021 * @param handle 1022 * @param characteristic 1023 */ 1024 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 1025 1026 /** 1027 * @format H2X 1028 * @param handle 1029 * @param include_handle 1030 * @param service 1031 */ 1032 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 1033 1034 /** 1035 * @format HZ 1036 * @param handle 1037 * @param characteristic_descriptor 1038 */ 1039 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 1040 1041 /** 1042 * @format H2LV 1043 * @param handle 1044 * @param value_handle 1045 * @param value_length 1046 * @param value 1047 */ 1048 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 1049 1050 /** 1051 * @format H22LV 1052 * @param handle 1053 * @param value_handle 1054 * @param value_offset 1055 * @param value_length 1056 * @param value 1057 */ 1058 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 1059 1060 /** 1061 * @format H2LV 1062 * @param handle 1063 * @param value_handle 1064 * @param value_length 1065 * @param value 1066 */ 1067 #define GATT_EVENT_NOTIFICATION 0xA7 1068 1069 /** 1070 * @format H2LV 1071 * @param handle 1072 * @param value_handle 1073 * @param value_length 1074 * @param value 1075 */ 1076 #define GATT_EVENT_INDICATION 0xA8 1077 1078 /** 1079 * @format H2LV 1080 * @param handle 1081 * @param descriptor_handle 1082 * @param descriptor_length 1083 * @param descriptor 1084 */ 1085 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 1086 1087 /** 1088 * @format H2LV 1089 * @param handle 1090 * @param descriptor_offset 1091 * @param descriptor_length 1092 * @param descriptor 1093 */ 1094 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 1095 1096 /** 1097 * @format H2 1098 * @param handle 1099 * @param MTU 1100 */ 1101 #define GATT_EVENT_MTU 0xAB 1102 1103 /** 1104 * @format H 1105 * @param handle 1106 */ 1107 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 1108 1109 1110 /** 1111 * @format 1BH 1112 * @param address_type 1113 * @param address 1114 * @param handle 1115 */ 1116 #define ATT_EVENT_CONNECTED 0xB3 1117 1118 /** 1119 * @format H 1120 * @param handle 1121 */ 1122 #define ATT_EVENT_DISCONNECTED 0xB4 1123 1124 /** 1125 * @format H2 1126 * @param handle 1127 * @param MTU 1128 */ 1129 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 1130 1131 /** 1132 * @format 1H2 1133 * @param status 1134 * @param conn_handle 1135 * @param attribute_handle 1136 */ 1137 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 1138 1139 /** 1140 * @format 1141 */ 1142 #define ATT_EVENT_CAN_SEND_NOW 0xB7 1143 1144 // TODO: daemon only event 1145 1146 /** 1147 * @format 12 1148 * @param status 1149 * @param service_uuid 1150 */ 1151 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 1152 1153 /** 1154 * @format 12222BH 1155 * @param status 1156 * @param bnep_cid 1157 * @param source_uuid 1158 * @param destination_uuid 1159 * @param mtu 1160 * @param remote_address 1161 * @param con_handle 1162 */ 1163 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 1164 1165 /** 1166 * @format 222B 1167 * @param bnep_cid 1168 * @param source_uuid 1169 * @param destination_uuid 1170 * @param remote_address 1171 */ 1172 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 1173 1174 /** 1175 * @format 222B1 1176 * @param bnep_cid 1177 * @param source_uuid 1178 * @param destination_uuid 1179 * @param remote_address 1180 * @param channel_state 1181 */ 1182 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 1183 1184 /** 1185 * @format 222B 1186 * @param bnep_cid 1187 * @param source_uuid 1188 * @param destination_uuid 1189 * @param remote_address 1190 */ 1191 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 1192 1193 /** 1194 * @format H1B 1195 * @param handle 1196 * @param addr_type 1197 * @param address 1198 */ 1199 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8 1200 1201 /** 1202 * @format H1B4 1203 * @param handle 1204 * @param addr_type 1205 * @param address 1206 * @param passkey 1207 */ 1208 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9 1209 1210 /** 1211 * @format H1B 1212 * @param handle 1213 * @param addr_type 1214 * @param address 1215 */ 1216 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCA 1217 1218 /** 1219 * @format H1B 1220 * @param handle 1221 * @param addr_type 1222 * @param address 1223 */ 1224 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCB 1225 1226 /** 1227 * @format H1B4 1228 * @param handle 1229 * @param addr_type 1230 * @param address 1231 * @param passkey 1232 */ 1233 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCC 1234 1235 /** 1236 * @format H1B 1237 * @param handle 1238 * @param addr_type 1239 * @param address 1240 */ 1241 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCD 1242 1243 /** 1244 * @format H1B 1245 * @param handle 1246 * @param addr_type 1247 * @param address 1248 */ 1249 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCE 1250 1251 /** 1252 * @brief Identify resolving succeeded 1253 * 1254 * @format H1B1B2 1255 * @param handle 1256 * @param addr_type 1257 * @param address 1258 * @param identity_addr_type 1259 * @param identity_address 1260 * @param index 1261 * 1262 */ 1263 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCF 1264 1265 /** 1266 * @format H1B 1267 * @param handle 1268 * @param addr_type 1269 * @param address 1270 */ 1271 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0 1272 1273 /** 1274 * @format H1B1 1275 * @param handle 1276 * @param addr_type 1277 * @param address 1278 * @param authorization_result 1279 */ 1280 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1 1281 1282 /** 1283 * @format H1 1284 * @param handle 1285 * @param action see SM_KEYPRESS_* 1286 */ 1287 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2 1288 1289 /** 1290 * @brief Emitted during pairing to inform app about address used as identity 1291 * 1292 * @format H1B1B2 1293 * @param handle 1294 * @param addr_type 1295 * @param address 1296 * @param identity_addr_type 1297 * @param identity_address 1298 * @param index 1299 */ 1300 #define SM_EVENT_IDENTITY_CREATED 0xD3 1301 1302 /** 1303 * @brief Emitted to inform app that pairing has started. 1304 * @format H1B 1305 * @param handle 1306 * @param addr_type 1307 * @param address 1308 */ 1309 #define SM_EVENT_PAIRING_STARTED 0xD4 1310 1311 /** 1312 * @brief Emitted to inform app that pairing is complete. Possible status values: 1313 * ERROR_CODE_SUCCESS -> pairing success 1314 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1315 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1316 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1317 * 1318 * @format H1B11 1319 * @param handle 1320 * @param addr_type 1321 * @param address 1322 * @param status 1323 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1324 */ 1325 #define SM_EVENT_PAIRING_COMPLETE 0xD5 1326 1327 1328 /** 1329 * @brief Proactive Authentication for bonded devices started. 1330 * @format H1B 1331 * @param handle 1332 * @param addr_type 1333 * @param address 1334 */ 1335 #define SM_EVENT_REENCRYPTION_STARTED 0xD6 1336 1337 /** 1338 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1339 * ERROR_CODE_SUCCESS -> connection secure 1340 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1341 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1342 * @format H1B1 1343 * @param handle 1344 * @param addr_type 1345 * @param address 1346 * @param status 1347 */ 1348 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7 1349 1350 // GAP 1351 1352 /** 1353 * @format H1 1354 * @param handle 1355 * @param security_level 1356 */ 1357 #define GAP_EVENT_SECURITY_LEVEL 0xD8 1358 1359 /** 1360 * @format 1B 1361 * @param status 1362 * @param address 1363 */ 1364 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9 1365 1366 /** 1367 * @format 11B1JV 1368 * @param advertising_event_type 1369 * @param address_type 1370 * @param address 1371 * @param rssi 1372 * @param data_length 1373 * @param data 1374 */ 1375 #define GAP_EVENT_ADVERTISING_REPORT 0xDA 1376 1377 /** 1378 * @format B13211122221JV 1379 * @param bd_addr 1380 * @param page_scan_repetition_mode 1381 * @param class_of_device 1382 * @param clock_offset 1383 * @param rssi_available 1384 * @param rssi 1385 * @param device_id_available 1386 * @param device_id_vendor_id_source 1387 * @param device_id_vendor_id 1388 * @param device_id_product_id 1389 * @param device_id_version 1390 * @param name_available 1391 * @param name_len 1392 * @param name 1393 */ 1394 #define GAP_EVENT_INQUIRY_RESULT 0xDB 1395 1396 /** 1397 * @format 1 1398 * @param status 1399 */ 1400 #define GAP_EVENT_INQUIRY_COMPLETE 0xDC 1401 1402 /** 1403 * @format H1 1404 * @param con_handle 1405 * @param rssi (signed integer -127..127) 1406 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1407 * @note LE: rssi is absolute dBm 1408 */ 1409 #define GAP_EVENT_RSSI_MEASUREMENT 0xDD 1410 1411 /** 1412 * @format 1KKKK 1413 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1414 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1415 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1416 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1417 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1418 */ 1419 #define GAP_EVENT_LOCAL_OOB_DATA 0xDE 1420 1421 1422 /** 1423 * @format HB11 1424 * @param con_handle 1425 * @param bd_addr 1426 * @param ssp 1427 * @param initiator 1428 */ 1429 #define GAP_EVENT_PAIRING_STARTED 0xDF 1430 1431 /** 1432 * @format HB1 1433 * @param con_handle 1434 * @param bd_addr 1435 * @param status 1436 */ 1437 #define GAP_EVENT_PAIRING_COMPLETE 0xE0 1438 1439 // Meta Events, see below for sub events 1440 #define HCI_EVENT_HSP_META 0xE8 1441 #define HCI_EVENT_HFP_META 0xE9 1442 #define HCI_EVENT_ANCS_META 0xEA 1443 #define HCI_EVENT_AVDTP_META 0xEB 1444 #define HCI_EVENT_AVRCP_META 0xEC 1445 #define HCI_EVENT_GOEP_META 0xED 1446 #define HCI_EVENT_PBAP_META 0xEE 1447 #define HCI_EVENT_HID_META 0xEF 1448 #define HCI_EVENT_A2DP_META 0xF0 1449 #define HCI_EVENT_HIDS_META 0xF1 1450 #define HCI_EVENT_GATTSERVICE_META 0xF2 1451 #define HCI_EVENT_BIP_META 0xF3 1452 #define HCI_EVENT_MAP_META 0xF4 1453 #define HCI_EVENT_MESH_META 0xF5 1454 1455 // Potential other meta groups 1456 // #define HCI_EVENT_BNEP_META 0xxx 1457 // #define HCI_EVENT_GAP_META 0xxx 1458 // #define HCI_EVENT_GATT_META 0xxx 1459 // #define HCI_EVENT_PAN_META 0xxx 1460 // #define HCI_EVENT_SDP_META 0xxx 1461 // #define HCI_EVENT_SM_META 0xxx 1462 1463 1464 /** HSP Subevent */ 1465 1466 /** 1467 * @format 11 1468 * @param subevent_code 1469 * @param status 0 == OK 1470 */ 1471 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1472 1473 /** 1474 * @format 11 1475 * @param subevent_code 1476 * @param status 0 == OK 1477 */ 1478 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1479 1480 1481 /** 1482 * @format 11H 1483 * @param subevent_code 1484 * @param status 0 == OK 1485 * @param handle 1486 */ 1487 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1488 1489 /** 1490 * @format 11 1491 * @param subevent_code 1492 * @param status 0 == OK 1493 */ 1494 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1495 1496 /** 1497 * @format 1 1498 * @param subevent_code 1499 */ 1500 #define HSP_SUBEVENT_RING 0x05 1501 1502 /** 1503 * @format 11 1504 * @param subevent_code 1505 * @param gain Valid range: [0,15] 1506 */ 1507 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1508 1509 /** 1510 * @format 11 1511 * @param subevent_code 1512 * @param gain Valid range: [0,15] 1513 */ 1514 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1515 1516 /** 1517 * @format 1JV 1518 * @param subevent_code 1519 * @param value_length 1520 * @param value 1521 */ 1522 #define HSP_SUBEVENT_HS_COMMAND 0x08 1523 1524 /** 1525 * @format 1JV 1526 * @param subevent_code 1527 * @param value_length 1528 * @param value 1529 */ 1530 #define HSP_SUBEVENT_AG_INDICATION 0x09 1531 1532 /** 1533 * @format 1 1534 * @param subevent_code 1535 */ 1536 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0a 1537 1538 /** HFP Subevent */ 1539 1540 /** 1541 * @format 1H1B 1542 * @param subevent_code 1543 * @param acl_handle 1544 * @param status 0 == OK 1545 * @param bd_addr 1546 */ 1547 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1548 1549 /** 1550 * @format 1H 1551 * @param subevent_code 1552 * @param acl_handle 1553 */ 1554 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1555 1556 /** 1557 * @format 1H1HB1 1558 * @param subevent_code 1559 * @param acl_handle 1560 * @param status 0 == OK 1561 * @param sco_handle 1562 * @param bd_addr 1563 * @param negotiated_codec 1564 */ 1565 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1566 1567 /** 1568 * @format 1HH 1569 * @param subevent_code 1570 * @param acl_handle 1571 * @param sco_handle 1572 */ 1573 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1574 1575 /** 1576 * @format 1H1 1577 * @param subevent_code 1578 * @param acl_handle 1579 * @param status 0 == OK 1580 */ 1581 #define HFP_SUBEVENT_COMPLETE 0x05 1582 1583 /** 1584 * @format 1H1111111T 1585 * @param subevent_code 1586 * @param acl_handle 1587 * @param indicator_index 1588 * @param indicator_status 1589 * @param indicator_min_range 1590 * @param indicator_max_range 1591 * @param indicator_mandatory 1592 * @param indicator_enabled 1593 * @param indicator_status_changed 1594 * @param indicator_name 1595 */ 1596 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1597 1598 /** 1599 * @format 1H11T 1600 * @param subevent_code 1601 * @param acl_handle 1602 * @param network_operator_mode 1603 * @param network_operator_format 1604 * @param network_operator_name 1605 */ 1606 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1607 1608 /** 1609 * @format 1H1 1610 * @param subevent_code 1611 * @param acl_handle 1612 * @param error 1613 */ 1614 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1615 1616 /** 1617 * @format 1H 1618 * @param subevent_code 1619 * @param acl_handle 1620 */ 1621 #define HFP_SUBEVENT_START_RINGINIG 0x0A 1622 1623 /** 1624 * @format 1H 1625 * @param subevent_code 1626 * @param acl_handle 1627 */ 1628 #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1629 1630 /** 1631 * @format 1H 1632 * @param subevent_code 1633 * @param acl_handle 1634 */ 1635 #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1636 1637 /** 1638 * @format 1HT 1639 * @param subevent_code 1640 * @param acl_handle 1641 * @param number 1642 */ 1643 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1644 1645 /** 1646 * @format 1H 1647 * @param subevent_code 1648 * @param acl_handle 1649 */ 1650 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1651 1652 /** 1653 * @format 1HT 1654 * @param subevent_code 1655 * @param acl_handle 1656 * @param number 1657 */ 1658 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1659 1660 /** 1661 * @format 1HT 1662 * @param subevent_code 1663 * @param acl_handle 1664 * @param dtmf code 1665 */ 1666 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1667 1668 /** 1669 * @format 1H 1670 * @param subevent_code 1671 * @param acl_handle 1672 */ 1673 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1674 1675 /** 1676 * @format 1H 1677 * @param subevent_code 1678 * @param acl_handle 1679 */ 1680 #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1681 1682 /** 1683 * @format 1H 1684 * @param subevent_code 1685 * @param acl_handle 1686 */ 1687 #define HFP_SUBEVENT_RING 0x13 1688 1689 /** 1690 * @format 1H1 1691 * @param subevent_code 1692 * @param acl_handle 1693 * @param gain 1694 */ 1695 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1696 1697 /** 1698 * @format 1H1 1699 * @param subevent_code 1700 * @param acl_handle 1701 * @param gain 1702 */ 1703 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1704 1705 /** 1706 * @format 1H1T 1707 * @param subevent_code 1708 * @param acl_handle 1709 * @param type 1710 * @param number 1711 */ 1712 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1713 1714 /** 1715 * @format 1H1T 1716 * @param subevent_code 1717 * @param acl_handle 1718 * @param type 1719 * @param number 1720 */ 1721 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1722 1723 /** 1724 * @format 1H111111T 1725 * @param subevent_code 1726 * @param acl_handle 1727 * @param clcc_idx 1728 * @param clcc_dir 1729 * @param clcc_status 1730 * @param clcc_mode 1731 * @param clcc_mpty 1732 * @param bnip_type 1733 * @param bnip_number 1734 */ 1735 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1736 1737 /** 1738 * @format 1H11T 1739 * @param subevent_code 1740 * @param acl_handle 1741 * @param status 1742 * @param bnip_type 1743 * @param bnip_number 1744 */ 1745 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1746 1747 /** 1748 * @format 1HT 1749 * @param subevent_code 1750 * @param acl_handle 1751 * @param value 1752 */ 1753 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1754 1755 /** 1756 * @format 1HT 1757 * @param subevent_code 1758 * @param acl_handle 1759 * @param command 1760 */ 1761 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1B 1762 1763 /** 1764 * @format 1HT 1765 * @param subevent_code 1766 * @param acl_handle 1767 * @param command 1768 */ 1769 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1C 1770 1771 /** 1772 * @format 1H1 1773 * @param subevent_code 1774 * @param acl_handle 1775 * @param status 1776 */ 1777 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1D 1778 1779 /** 1780 * @format 1H11 1781 * @param subevent_code 1782 * @param acl_handle 1783 * @param status 1784 * @param state 1785 */ 1786 #define HFP_SUBEVENT_VOICE_RECOGNITION_STATUS 0x1E 1787 1788 /** 1789 * @format 1H1 1790 * @param subevent_code 1791 * @param acl_handle 1792 * @param status 1793 */ 1794 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x1F 1795 1796 1797 /** 1798 * @format 1H1 1799 * @param subevent_code 1800 * @param acl_handle 1801 * @param status 1802 */ 1803 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x20 1804 1805 /** 1806 * @format 1H1 1807 * @param subevent_code 1808 * @param acl_handle 1809 * @param status 1810 */ 1811 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x21 1812 1813 /** 1814 * @format 1H1 1815 * @param subevent_code 1816 * @param acl_handle 1817 * @param status 1818 */ 1819 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x22 1820 1821 /** 1822 * @format 1H1 1823 * @param subevent_code 1824 * @param acl_handle 1825 * @param status 1826 */ 1827 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x23 1828 1829 1830 /** 1831 * @format 1H211LV 1832 * @param subevent_code 1833 * @param acl_handle 1834 * @param text_id 1835 * @param text_operation 1836 * @param text_type 1837 * @param text_length 1838 * @param text 1839 */ 1840 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x24 1841 1842 /** 1843 * @format 1H1 1844 * @param subevent_code 1845 * @param acl_handle 1846 * @param status 1847 */ 1848 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x25 1849 1850 /** 1851 * @format 1H21 1852 * @param subevent_code 1853 * @param acl_handle 1854 * @param uuid 1855 * @param value 1856 */ 1857 #define HFP_SUBEVENT_HF_INDICATOR 0x26 1858 1859 1860 // ANCS Client 1861 1862 /** 1863 * @format 1H 1864 * @param subevent_code 1865 * @param handle 1866 */ 1867 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1868 1869 /** 1870 * @format 1H2T 1871 * @param subevent_code 1872 * @param handle 1873 * @param attribute_id 1874 * @param text 1875 */ 1876 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1877 1878 /** 1879 * @format 1H 1880 * @param subevent_code 1881 * @param handle 1882 */ 1883 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1884 1885 1886 /** AVDTP Subevent */ 1887 1888 /** 1889 * @format 12111 1890 * @param subevent_code 1891 * @param avdtp_cid 1892 * @param local_seid 1893 * @param is_initiator 1894 * @param signal_identifier 1895 */ 1896 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1897 1898 /** 1899 * @format 12111 1900 * @param subevent_code 1901 * @param avdtp_cid 1902 * @param local_seid 1903 * @param is_initiator 1904 * @param signal_identifier 1905 */ 1906 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1907 1908 /** 1909 * @format 12111 1910 * @param subevent_code 1911 * @param avdtp_cid 1912 * @param local_seid 1913 * @param is_initiator 1914 * @param signal_identifier 1915 */ 1916 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1917 1918 /** 1919 * @format 12B21 1920 * @param subevent_code 1921 * @param avdtp_cid 1922 * @param bd_addr 1923 * @param con_handle 1924 * @param status 0 == OK 1925 */ 1926 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1927 1928 /** 1929 * @format 12 1930 * @param subevent_code 1931 * @param avdtp_cid 1932 */ 1933 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1934 1935 /** 1936 * @format 121111 1937 * @param subevent_code 1938 * @param avdtp_cid 1939 * @param remote_seid 0x01 – 0x3E 1940 * @param in_use 0-not in use, 1-in use 1941 * @param media_type 0-audio, 1-video, 2-multimedia 1942 * @param sep_type 0-source, 1-sink 1943 */ 1944 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1945 1946 /** 1947 * @format 12111111111 1948 * @param subevent_code 1949 * @param avdtp_cid 1950 * @param remote_seid 1951 * @param media_type 1952 * @param sampling_frequency_bitmap 1953 * @param channel_mode_bitmap 1954 * @param block_length_bitmap 1955 * @param subbands_bitmap 1956 * @param allocation_method_bitmap 1957 * @param min_bitpool_value 1958 * @param max_bitpool_value 1959 */ 1960 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1961 1962 /** 1963 * @format 12111111112 1964 * @param subevent_code 1965 * @param avdtp_cid 1966 * @param remote_seid 1967 * @param media_type 1968 * @param layer_bitmap 1969 * @param crc 1970 * @param channel_mode_bitmap 1971 * @param media_payload_format 1972 * @param sampling_frequency_bitmap 1973 * @param vbr 1974 * @param bit_rate_index_bitmap 1975 */ 1976 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08 1977 1978 /** 1979 * @format 121112131 1980 * @param subevent_code 1981 * @param avdtp_cid 1982 * @param remote_seid 1983 * @param media_type 1984 * @param object_type_bitmap 1985 * @param sampling_frequency_bitmap 1986 * @param channels_bitmap 1987 * @param bit_rate 1988 * @param vbr 1989 */ 1990 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09 1991 1992 /** 1993 * @format 1211111132 1994 * @param subevent_code 1995 * @param avdtp_cid 1996 * @param remote_seid 1997 * @param media_type 1998 * @param version 1999 * @param channel_mode_bitmap 2000 * @param sampling_frequency_bitmap 2001 * @param vbr 2002 * @param bit_rate_index_bitmap 2003 * @param maximum_sul 2004 */ 2005 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0A 2006 2007 /** 2008 * @format 12112LV 2009 * @param subevent_code 2010 * @param avdtp_cid 2011 * @param remote_seid 2012 * @param media_type 2013 * @param media_codec_type 2014 * @param media_codec_information_len 2015 * @param media_codec_information 2016 */ 2017 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0B 2018 2019 2020 /** 2021 * @format 121 2022 * @param subevent_code 2023 * @param avdtp_cid 2024 * @param remote_seid 2025 */ 2026 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0C 2027 2028 2029 /** 2030 * @format 121 2031 * @param subevent_code 2032 * @param avdtp_cid 2033 * @param remote_seid 2034 */ 2035 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0D 2036 2037 2038 /** 2039 * @format 121111 2040 * @param subevent_code 2041 * @param avdtp_cid 2042 * @param remote_seid 2043 * @param recovery_type 2044 * @param maximum_recovery_window_size 2045 * @param maximum_number_media_packets 2046 */ 2047 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0E 2048 2049 2050 /** 2051 * @format 1212LV 2052 * @param subevent_code 2053 * @param avdtp_cid 2054 * @param remote_seid 2055 * @param cp_type 2056 * @param cp_type_value_len 2057 * @param cp_type_value 2058 */ 2059 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0F 2060 2061 2062 /** 2063 * @format 12111111111 2064 * @param subevent_code 2065 * @param avdtp_cid 2066 * @param remote_seid 2067 * @param fragmentation 2068 * @param transport_identifiers_num 2069 * @param transport_session_identifier_1 2070 * @param transport_session_identifier_2 2071 * @param transport_session_identifier_3 2072 * @param tcid_1 2073 * @param tcid_2 2074 * @param tcid_3 2075 */ 2076 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10 2077 2078 2079 /** 2080 * @format 121 2081 * @param subevent_code 2082 * @param avdtp_cid 2083 * @param remote_seid 2084 */ 2085 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11 2086 2087 2088 /** 2089 * @format 121111 2090 * @param subevent_code 2091 * @param avdtp_cid 2092 * @param remote_seid 2093 * @param back_ch 2094 * @param media 2095 * @param recovery 2096 */ 2097 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12 2098 2099 /** 2100 * @format 121 2101 * @param subevent_code 2102 * @param avdtp_cid 2103 * @param remote_seid 2104 */ 2105 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13 2106 2107 2108 /** 2109 * @format 12111121111111 2110 * @param subevent_code 2111 * @param avdtp_cid 2112 * @param local_seid 2113 * @param remote_seid 2114 * @param reconfigure 2115 * @param media_type 2116 * @param sampling_frequency 2117 * @param channel_mode 2118 * @param num_channels 2119 * @param block_length 2120 * @param subbands 2121 * @param allocation_method 2122 * @param min_bitpool_value 2123 * @param max_bitpool_value 2124 */ 2125 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14 2126 2127 /** 2128 * @format 12111111111211 2129 * @param subevent_code 2130 * @param avdtp_cid 2131 * @param local_seid 2132 * @param remote_seid 2133 * @param reconfigure 2134 * @param media_type 2135 * @param layer 2136 * @param crc 2137 * @param channel_mode 2138 * @param num_channels 2139 * @param media_payload_format 2140 * @param sampling_frequency 2141 * @param vbr 2142 * @param bit_rate_index 2143 */ 2144 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15 2145 2146 /** 2147 * @format 12111113131 2148 * @param subevent_code 2149 * @param avdtp_cid 2150 * @param local_seid 2151 * @param remote_seid 2152 * @param reconfigure 2153 * @param media_type 2154 * @param object_type 2155 * @param sampling_frequency 2156 * @param num_channels 2157 * @param bit_rate 2158 * @param vbr 2159 */ 2160 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16 2161 2162 /** 2163 * @format 1211111112112 2164 * @param subevent_code 2165 * @param avdtp_cid 2166 * @param local_seid 2167 * @param remote_seid 2168 * @param reconfigure 2169 * @param media_type 2170 * @param version 2171 * @param channel_mode 2172 * @param num_channels 2173 * @param sampling_frequency 2174 * @param vbr 2175 * @param bit_rate_index 2176 * @param maximum_sul 2177 */ 2178 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17 2179 2180 /** 2181 * @format 1211112LV 2182 * @param subevent_code 2183 * @param avdtp_cid 2184 * @param local_seid 2185 * @param remote_seid 2186 * @param reconfigure 2187 * @param media_type 2188 * @param media_codec_type 2189 * @param media_codec_information_len 2190 * @param media_codec_information 2191 */ 2192 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18 2193 2194 /** 2195 * @format 12B111 2196 * @param subevent_code 2197 * @param avdtp_cid 2198 * @param bd_addr 2199 * @param local_seid 2200 * @param remote_seid 2201 * @param status 0 == OK 2202 */ 2203 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19 2204 2205 /** 2206 * @format 121 2207 * @param subevent_code 2208 * @param avdtp_cid 2209 * @param local_seid 2210 */ 2211 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1A 2212 2213 /** 2214 * @format 1212 2215 * @param subevent_code 2216 * @param avdtp_cid 2217 * @param local_seid 2218 * @param sequence_number 2219 */ 2220 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1B 2221 2222 2223 /** 2224 * @format 12 2225 * @param subevent_code 2226 * @param avdtp_cid 2227 */ 2228 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1C 2229 2230 /** 2231 * @format 1212 2232 * @param subevent_code 2233 * @param avdtp_cid 2234 * @param local_seid 2235 * @param delay_100us 2236 */ 2237 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1D 2238 2239 2240 /** A2DP Subevent */ 2241 /* Stream goes through following states: 2242 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2243 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2244 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2245 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2246 2247 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2248 START can come only after the stream is OPENED, and indicates that media transfer is started. 2249 SUSPEND is optional, it pauses the stream. 2250 */ 2251 2252 /** 2253 * @format 121 Sent only by A2DP source. 2254 * @param subevent_code 2255 * @param a2dp_cid 2256 * @param local_seid 2257 */ 2258 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 2259 2260 /** 2261 * @format 12111121111111 2262 * @param subevent_code 2263 * @param a2dp_cid 2264 * @param local_seid 2265 * @param remote_seid 2266 * @param reconfigure 2267 * @param media_type 2268 * @param sampling_frequency 2269 * @param channel_mode 2270 * @param num_channels 2271 * @param block_length 2272 * @param subbands 2273 * @param allocation_method 2274 * @param min_bitpool_value 2275 * @param max_bitpool_value 2276 */ 2277 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 2278 2279 /** 2280 * @format 12111111111211 2281 * @param subevent_code 2282 * @param a2dp_cid 2283 * @param local_seid 2284 * @param remote_seid 2285 * @param reconfigure 2286 * @param media_type 2287 * @param layer 2288 * @param crc 2289 * @param channel_mode 2290 * @param num_channels 2291 * @param media_payload_format 2292 * @param sampling_frequency 2293 * @param vbr 2294 * @param bit_rate_index 2295 */ 2296 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03 2297 2298 /** 2299 * @format 12111113131 2300 * @param subevent_code 2301 * @param a2dp_cid 2302 * @param local_seid 2303 * @param remote_seid 2304 * @param reconfigure 2305 * @param media_type 2306 * @param object_type 2307 * @param sampling_frequency 2308 * @param num_channels 2309 * @param bit_rate 2310 * @param vbr 2311 */ 2312 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04 2313 2314 /** 2315 * @format 1211111112112 2316 * @param subevent_code 2317 * @param a2dp_cid 2318 * @param local_seid 2319 * @param remote_seid 2320 * @param reconfigure 2321 * @param media_type 2322 * @param version 2323 * @param channel_mode 2324 * @param num_channels 2325 * @param sampling_frequency 2326 * @param vbr 2327 * @param bit_rate_index 2328 * @param maximum_sul 2329 */ 2330 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05 2331 2332 /** 2333 * @format 1211112LV 2334 * @param subevent_code 2335 * @param a2dp_cid 2336 * @param local_seid 2337 * @param remote_seid 2338 * @param reconfigure 2339 * @param media_type 2340 * @param media_codec_type 2341 * @param media_codec_information_len 2342 * @param media_codec_information 2343 */ 2344 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06 2345 2346 /** 2347 * @format 12B111 Stream is opened but not started. 2348 * @param subevent_code 2349 * @param a2dp_cid 2350 * @param bd_addr 2351 * @param local_seid 2352 * @param remote_seid 2353 * @param status 2354 */ 2355 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07 2356 2357 /** 2358 * @format 121 Indicates that media transfer is started. 2359 * @param subevent_code 2360 * @param a2dp_cid 2361 * @param local_seid 2362 */ 2363 #define A2DP_SUBEVENT_STREAM_STARTED 0x08 2364 2365 /** 2366 * @format 121 Stream is paused. 2367 * @param subevent_code 2368 * @param a2dp_cid 2369 * @param local_seid 2370 */ 2371 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x09 2372 2373 /** 2374 * @format 121 Stream is stopped or aborted. 2375 * @param subevent_code 2376 * @param a2dp_cid 2377 * @param local_seid 2378 */ 2379 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0A 2380 2381 /** 2382 * @format 121 Stream is released. 2383 * @param subevent_code 2384 * @param a2dp_cid 2385 * @param local_seid 2386 */ 2387 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0B 2388 2389 /** 2390 * @format 1211 2391 * @param subevent_code 2392 * @param a2dp_cid 2393 * @param local_seid 2394 * @param signal_identifier 2395 */ 2396 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0C 2397 2398 /** 2399 * @format 12111 2400 * @param subevent_code 2401 * @param a2dp_cid 2402 * @param local_seid 2403 * @param is_initiator 2404 * @param signal_identifier 2405 */ 2406 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0D 2407 2408 /** 2409 * @format 12B21 2410 * @param subevent_code 2411 * @param a2dp_cid 2412 * @param bd_addr 2413 * @param con_handle 2414 * @param status 0 == OK 2415 */ 2416 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0E 2417 2418 /** 2419 * @format 12 Signaling channel is released. 2420 * @param subevent_code 2421 * @param a2dp_cid 2422 */ 2423 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0F 2424 2425 /** 2426 * @format 1211 Stream was reconfigured 2427 * @param subevent_code 2428 * @param a2dp_cid 2429 * @param local_seid 2430 * @param status 2431 */ 2432 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x10 2433 2434 /** 2435 * @format 12111111111 2436 * @param subevent_code 2437 * @param a2dp_cid 2438 * @param remote_seid 2439 * @param media_type 2440 * @param sampling_frequency_bitmap 2441 * @param channel_mode_bitmap 2442 * @param block_length_bitmap 2443 * @param subbands_bitmap 2444 * @param allocation_method_bitmap 2445 * @param min_bitpool_value 2446 * @param max_bitpool_value 2447 */ 2448 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x11 2449 2450 /** 2451 * @format 12111111112 2452 * @param subevent_code 2453 * @param a2dp_cid 2454 * @param remote_seid 2455 * @param media_type 2456 * @param layer_bitmap 2457 * @param crc 2458 * @param channel_mode_bitmap 2459 * @param media_payload_format 2460 * @param sampling_frequency_bitmap 2461 * @param vbr 2462 * @param bit_rate_index_bitmap 2463 */ 2464 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x12 2465 2466 /** 2467 * @format 121112131 2468 * @param subevent_code 2469 * @param a2dp_cid 2470 * @param remote_seid 2471 * @param media_type 2472 * @param object_type_bitmap 2473 * @param sampling_frequency_bitmap 2474 * @param channels_bitmap 2475 * @param bit_rate 2476 * @param vbr 2477 */ 2478 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x13 2479 2480 /** 2481 * @format 1211111132 2482 * @param subevent_code 2483 * @param a2dp_cid 2484 * @param remote_seid 2485 * @param media_type 2486 * @param version 2487 * @param channel_mode_bitmap 2488 * @param sampling_frequency_bitmap 2489 * @param vbr 2490 * @param bit_rate_index_bitmap 2491 * @param maximum_sul 2492 */ 2493 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x14 2494 2495 /** 2496 * @format 12112LV 2497 * @param subevent_code 2498 * @param a2dp_cid 2499 * @param remote_seid 2500 * @param media_type 2501 * @param media_codec_type 2502 * @param media_codec_information_len 2503 * @param media_codec_information 2504 */ 2505 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x15 2506 2507 /** 2508 * @format 121 2509 * @param subevent_code 2510 * @param a2dp_cid 2511 * @param remote_seid 2512 */ 2513 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x16 2514 2515 2516 /** 2517 * @format 1212 2518 * @param subevent_code 2519 * @param a2dp_cid 2520 * @param local_seid 2521 * @param delay_100us 2522 */ 2523 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 2524 2525 /** 2526 * @format 121 2527 * @param subevent_code 2528 * @param a2dp_cid 2529 * @param remote_seid 2530 */ 2531 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x18 2532 2533 /** 2534 * @format 12 2535 * @param subevent_code 2536 * @param a2dp_cid 2537 */ 2538 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x19 2539 2540 2541 /** AVRCP Subevent */ 2542 2543 /** 2544 * @format 1211 2545 * @param subevent_code 2546 * @param avrcp_cid 2547 * @param command_type 2548 * @param play_status 2549 */ 2550 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01 2551 2552 /** 2553 * @format 121 2554 * @param subevent_code 2555 * @param avrcp_cid 2556 * @param command_type 2557 */ 2558 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02 2559 2560 /** 2561 * @format 121 2562 * @param subevent_code 2563 * @param avrcp_cid 2564 * @param command_type 2565 */ 2566 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03 2567 2568 /** 2569 * @format 121 2570 * @param subevent_code 2571 * @param avrcp_cid 2572 * @param command_type 2573 */ 2574 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04 2575 2576 /** 2577 * @format 1214 2578 * @param subevent_code 2579 * @param avrcp_cid 2580 * @param command_type 2581 * @param playback_position If no track currently selected, then return 0xFFFFFFFF in the INTERIM response. 2582 */ 2583 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05 2584 2585 /** 2586 * @format 1211 2587 * @param subevent_code 2588 * @param avrcp_cid 2589 * @param command_type 2590 * @param battery_status see avrcp_battery_status_t 2591 */ 2592 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06 2593 2594 /** 2595 * @format 1211 2596 * @param subevent_code 2597 * @param avrcp_cid 2598 * @param command_type 2599 * @param system_status see avrcp_system_status_t 2600 */ 2601 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07 2602 2603 2604 // 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 2605 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08 2606 2607 /** 2608 * @format 121 2609 * @param subevent_code 2610 * @param avrcp_cid 2611 * @param command_type 2612 */ 2613 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09 2614 2615 /** 2616 * @format 121 2617 * @param subevent_code 2618 * @param avrcp_cid 2619 * @param command_type 2620 */ 2621 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0A 2622 2623 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0b, -- The Addressed Player has been changed, see 6.9.2. 2624 2625 /** 2626 * @format 1212 2627 * @param subevent_code 2628 * @param avrcp_cid 2629 * @param command_type 2630 * @param uid_counter of the currently browsed player 2631 */ 2632 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0C 2633 2634 /** 2635 * @format 1211 2636 * @param subevent_code 2637 * @param avrcp_cid 2638 * @param command_type 2639 * @param absolute_volume 2640 */ 2641 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0D 2642 2643 2644 /** 2645 * @format 1211 2646 * @param subevent_code 2647 * @param avrcp_cid 2648 * @param command_type 2649 * @param absolute_volume 2650 */ 2651 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10 2652 2653 /** 2654 * @format 1211 2655 * @param subevent_code 2656 * @param avrcp_cid 2657 * @param command_type 2658 * @param notification_id 2659 */ 2660 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x11 2661 2662 /** 2663 * @format 112B2 2664 * @param subevent_code 2665 * @param status 0 == OK 2666 * @param avrcp_cid 2667 * @param bd_addr 2668 * @param con_handle 2669 */ 2670 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12 2671 2672 /** 2673 * @format 12 2674 * @param subevent_code 2675 * @param avrcp_cid 2676 */ 2677 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13 2678 2679 /** 2680 * @format 12111 2681 * @param subevent_code 2682 * @param avrcp_cid 2683 * @param command_type 2684 * @param repeat_mode 2685 * @param shuffle_mode 2686 */ 2687 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14 2688 2689 /** 2690 * @format 121441 2691 * @param subevent_code 2692 * @param avrcp_cid 2693 * @param command_type 2694 * @param song_length 2695 * @param song_position 2696 * @param play_status 2697 */ 2698 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15 2699 2700 /** 2701 * @format 1211 2702 * @param subevent_code 2703 * @param avrcp_cid 2704 * @param command_type 2705 * @param operation_id 2706 */ 2707 #define AVRCP_SUBEVENT_OPERATION_START 0x16 2708 2709 /** 2710 * @format 1211 2711 * @param subevent_code 2712 * @param avrcp_cid 2713 * @param command_type 2714 * @param operation_id 2715 */ 2716 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17 2717 2718 /** 2719 * @format 121 2720 * @param subevent_code 2721 * @param avrcp_cid 2722 * @param command_type 2723 */ 2724 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18 2725 2726 /** 2727 * @format 12 2728 * @param subevent_code 2729 * @param avrcp_cid 2730 */ 2731 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x19 2732 2733 /** 2734 * @format 12 2735 * @param subevent_code 2736 * @param avrcp_cid 2737 */ 2738 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x1A 2739 2740 /** 2741 * @format 12 2742 * @param subevent_code 2743 * @param avrcp_cid 2744 */ 2745 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x1B 2746 2747 /** 2748 * @format 121111 2749 * @param subevent_code 2750 * @param avrcp_cid 2751 * @param operation_id 2752 * @param button_pressed 2753 * @param operands_length 2754 * @param operand 2755 */ 2756 #define AVRCP_SUBEVENT_OPERATION 0x1C 2757 2758 /** 2759 * @format 1211 2760 * @param subevent_code 2761 * @param avrcp_cid 2762 * @param command_type 2763 * @param track 2764 */ 2765 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1D 2766 2767 /** 2768 * @format 1211 2769 * @param subevent_code 2770 * @param avrcp_cid 2771 * @param command_type 2772 * @param total_tracks 2773 */ 2774 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1E 2775 2776 /** 2777 * @format 1214 2778 * @param subevent_code 2779 * @param avrcp_cid 2780 * @param command_type 2781 * @param song_length in ms 2782 */ 2783 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1F 2784 2785 /** 2786 * @format 121JV 2787 * @param subevent_code 2788 * @param avrcp_cid 2789 * @param command_type 2790 * @param value_len 2791 * @param value 2792 */ 2793 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x20 2794 2795 /* 2796 * @format 121JV 2797 * @param subevent_code 2798 * @param avrcp_cid 2799 * @param command_type 2800 * @param value_len 2801 * @param value 2802 */ 2803 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x21 2804 2805 /* 2806 * @format 121JV 2807 * @param subevent_code 2808 * @param avrcp_cid 2809 * @param command_type 2810 * @param value_len 2811 * @param value 2812 */ 2813 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x22 2814 2815 /* 2816 * @format 121JV 2817 * @param subevent_code 2818 * @param avrcp_cid 2819 * @param command_type 2820 * @param value_len 2821 * @param value 2822 */ 2823 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x23 2824 2825 /* 2826 * @format 1211 2827 * @param subevent_code 2828 * @param avrcp_cid 2829 * @param command_type 2830 * @param status 2831 */ 2832 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x24 2833 2834 /** 2835 * @format 1214 2836 * @param subevent_code 2837 * @param avrcp_cid 2838 * @param command_type 2839 * @param playback_position_ms 2840 */ 2841 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x25 2842 2843 /* 2844 * @format 12111 2845 * @param subevent_code 2846 * @param avrcp_cid 2847 * @param command_type 2848 * @param status 2849 * @param event_id 2850 */ 2851 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x26 2852 /* 2853 * @format 1211 2854 * @param subevent_code 2855 * @param avrcp_cid 2856 * @param command_type 2857 * @param status 2858 */ 2859 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x27 2860 2861 /* 2862 * @format 12113 2863 * @param subevent_code 2864 * @param avrcp_cid 2865 * @param command_type 2866 * @param status 2867 * @param company_id 2868 */ 2869 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x28 2870 /* 2871 * @format 1211 2872 * @param subevent_code 2873 * @param avrcp_cid 2874 * @param command_type 2875 * @param status 2876 */ 2877 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x29 2878 2879 2880 2881 /** 2882 * @format 1B2 2883 * @param subevent_code 2884 * @param bd_addr 2885 * @param browsing_cid 2886 */ 2887 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30 2888 2889 /** 2890 * @format 11B2 2891 * @param subevent_code 2892 * @param status 0 == OK 2893 * @param bd_addr 2894 * @param browsing_cid 2895 */ 2896 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31 2897 2898 /** 2899 * @format 12 2900 * @param subevent_code 2901 * @param browsing_cid 2902 */ 2903 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32 2904 2905 /** 2906 * @format 12211 2907 * @param subevent_code 2908 * @param browsing_cid 2909 * @param uid_counter 2910 * @param browsing_status 2911 * @param bluetooth_status 2912 */ 2913 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33 2914 2915 /** 2916 * @format 1214 2917 * @param subevent_code 2918 * @param browsing_cid 2919 * @param scope 2920 * @param attr_bitmap 2921 */ 2922 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34 2923 2924 /** 2925 * @format 121 2926 * @param subevent_code 2927 * @param browsing_cid 2928 * @param scope 2929 */ 2930 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35 2931 2932 /** 2933 * @format 122 2934 * @param subevent_code 2935 * @param browsing_cid 2936 * @param player_id 2937 */ 2938 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36 2939 2940 2941 2942 /** 2943 * @format 121BH1 2944 * @param subevent_code 2945 * @param goep_cid 2946 * @param status 2947 * @param bd_addr 2948 * @param con_handle 2949 * @param incoming 2950 */ 2951 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2952 2953 /** 2954 * @format 12 2955 * @param subevent_code 2956 * @param goep_cid 2957 */ 2958 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2959 2960 /** 2961 * @format 12 2962 * @param subevent_code 2963 * @param goep_cid 2964 */ 2965 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2966 2967 /** 2968 * @format 121BH1 2969 * @param subevent_code 2970 * @param pbap_cid 2971 * @param status 2972 * @param bd_addr 2973 * @param con_handle 2974 * @param incoming 2975 */ 2976 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2977 2978 /** 2979 * @format 12 2980 * @param subevent_code 2981 * @param goep_cid 2982 */ 2983 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2984 2985 /** 2986 * @format 121 2987 * @param subevent_code 2988 * @param goep_cid 2989 * @param status 2990 */ 2991 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2992 2993 /** 2994 * @format 1212 2995 * @param subevent_code 2996 * @param goep_cid 2997 * @param status 2998 * @param phoneboook_size 2999 */ 3000 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 3001 3002 /** 3003 * @format 1211 3004 * @param subevent_code 3005 * @param goep_cid 3006 * @param user_id_required 3007 * @param full_access 3008 */ 3009 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 3010 3011 /** 3012 * @format 12JVJV 3013 * @param subevent_code 3014 * @param goep_cid 3015 * @param name_len 3016 * @param name 3017 * @param handle_len 3018 * @param handle 3019 */ 3020 #define PBAP_SUBEVENT_CARD_RESULT 0x06 3021 3022 3023 // HID Meta Event Group 3024 3025 /** 3026 * @format 12BH 3027 * @param subevent_code 3028 * @param hid_cid 3029 * @param address 3030 * @param handle 3031 */ 3032 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01 3033 3034 /** 3035 * @format 121BH1 3036 * @param subevent_code 3037 * @param hid_cid 3038 * @param status 3039 * @param bd_addr 3040 * @param con_handle 3041 * @param incoming 3042 */ 3043 #define HID_SUBEVENT_CONNECTION_OPENED 0x02 3044 3045 /** 3046 * @format 12 3047 * @param subevent_code 3048 * @param hid_cid 3049 */ 3050 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03 3051 3052 /** 3053 * @format 12 3054 * @param subevent_code 3055 * @param hid_cid 3056 */ 3057 #define HID_SUBEVENT_CAN_SEND_NOW 0x04 3058 3059 /** 3060 * @format 12 3061 * @param subevent_code 3062 * @param hid_cid 3063 */ 3064 #define HID_SUBEVENT_SUSPEND 0x05 3065 3066 /** 3067 * @format 12 3068 * @param subevent_code 3069 * @param hid_cid 3070 */ 3071 #define HID_SUBEVENT_EXIT_SUSPEND 0x06 3072 3073 /** 3074 * @format 12 3075 * @param subevent_code 3076 * @param hid_cid 3077 */ 3078 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07 3079 3080 /** 3081 * @format 121LV 3082 * @param subevent_code 3083 * @param hid_cid 3084 * @param handshake_status 3085 * @param report_len 3086 * @param report 3087 */ 3088 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08 3089 3090 /** 3091 * @format 121 3092 * @param subevent_code 3093 * @param hid_cid 3094 * @param handshake_status 3095 */ 3096 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09 3097 3098 /** 3099 * @format 1211 3100 * @param subevent_code 3101 * @param hid_cid 3102 * @param handshake_status 3103 * @param protocol_mode 3104 */ 3105 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0A 3106 3107 /** 3108 * @format 1211 3109 * @param subevent_code 3110 * @param hid_cid 3111 * @param handshake_status 3112 * @param protocol_mode 3113 */ 3114 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0B 3115 3116 /** 3117 * @format 12LV 3118 * @param subevent_code 3119 * @param hid_cid 3120 * @param report_len 3121 * @param report 3122 */ 3123 #define HID_SUBEVENT_REPORT 0x0C 3124 3125 /** 3126 * @format 121 3127 * @param subevent_code 3128 * @param hid_cid 3129 * @param status 3130 */ 3131 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0D 3132 3133 /** 3134 * @format 1222 3135 * @param subevent_code 3136 * @param hid_cid 3137 * @param host_max_latency 3138 * @param host_min_timeout 3139 */ 3140 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0E 3141 3142 // HIDS Meta Event Group 3143 3144 /** 3145 * @format 12 3146 * @param subevent_code 3147 * @param con_handle 3148 */ 3149 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 3150 3151 /** 3152 * @format 121 3153 * @param subevent_code 3154 * @param con_handle 3155 * @param protocol_mode 3156 */ 3157 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 3158 3159 /** 3160 * @format 121 3161 * @param subevent_code 3162 * @param con_handle 3163 * @param enable 3164 */ 3165 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 3166 3167 /** 3168 * @format 121 3169 * @param subevent_code 3170 * @param con_handle 3171 * @param enable 3172 */ 3173 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 3174 3175 /** 3176 * @format 121 3177 * @param subevent_code 3178 * @param con_handle 3179 * @param enable 3180 */ 3181 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 3182 3183 /** 3184 * @format 121 3185 * @param subevent_code 3186 * @param con_handle 3187 * @param enable 3188 */ 3189 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 3190 3191 /** 3192 * @format 121 3193 * @param subevent_code 3194 * @param con_handle 3195 * @param enable 3196 */ 3197 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 3198 3199 /** 3200 * @format 12 3201 * @param subevent_code 3202 * @param con_handle 3203 */ 3204 #define HIDS_SUBEVENT_SUSPEND 0x08 3205 3206 /** 3207 * @format 12 3208 * @param subevent_code 3209 * @param con_handle 3210 */ 3211 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 3212 3213 /** 3214 * @format 1211 3215 * @param subevent_code 3216 * @param con_handle 3217 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3218 * @param is_enhanced 3219 */ 3220 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 3221 3222 /** 3223 * @format 12 3224 * @param subevent_code 3225 * @param con_handle 3226 */ 3227 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 3228 3229 /** 3230 * @format 12 3231 * @param subevent_code 3232 * @param con_handle 3233 */ 3234 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 3235 3236 /** 3237 * @format 12111 3238 * @param subevent_code 3239 * @param hids_cid 3240 * @param status 3241 * @param num_instances 3242 * @param poll_bitmap 3243 */ 3244 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04 3245 3246 /** 3247 * @format 12111 3248 * @param subevent_code 3249 * @param hids_cid 3250 * @param sevice_index 3251 * @param att_status see ATT errors in bluetooth.h 3252 * @param level 3253 */ 3254 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05 3255 3256 /** 3257 * @format 1H1 3258 * @param subevent_code 3259 * @param con_handle 3260 * @param att_status 3261 */ 3262 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06 3263 3264 /** 3265 * @format 1H1T 3266 * @param subevent_code 3267 * @param con_handle 3268 * @param att_status 3269 * @param value 3270 */ 3271 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07 3272 3273 /** 3274 * @format 1H1T 3275 * @param subevent_code 3276 * @param con_handle 3277 * @param att_status 3278 * @param value 3279 */ 3280 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08 3281 3282 /** 3283 * @format 1H1T 3284 * @param subevent_code 3285 * @param con_handle 3286 * @param att_status 3287 * @param value 3288 */ 3289 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09 3290 3291 /** 3292 * @format 1H1T 3293 * @param subevent_code 3294 * @param con_handle 3295 * @param att_status 3296 * @param value 3297 */ 3298 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0A 3299 3300 /** 3301 * @format 1H1T 3302 * @param subevent_code 3303 * @param con_handle 3304 * @param att_status 3305 * @param value 3306 */ 3307 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0B 3308 3309 /** 3310 * @format 1H1T 3311 * @param subevent_code 3312 * @param con_handle 3313 * @param att_status 3314 * @param value 3315 */ 3316 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0C 3317 3318 /** 3319 * @format 1H1413 3320 * @param subevent_code 3321 * @param con_handle 3322 * @param att_status 3323 * @param manufacturer_id_low 3324 * @param manufacturer_id_high 3325 * @param organizationally_unique_id 3326 */ 3327 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0D 3328 3329 /** 3330 * @format 1H122 3331 * @param subevent_code 3332 * @param con_handle 3333 * @param att_status 3334 * @param value_a 3335 * @param value_b 3336 */ 3337 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0E 3338 3339 /** 3340 * @format 1H11222 3341 * @param subevent_code 3342 * @param con_handle 3343 * @param att_status 3344 * @param vendor_source_id 3345 * @param vendor_id 3346 * @param product_id 3347 * @param product_version 3348 */ 3349 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0F 3350 3351 /** 3352 * @format 1H1 3353 * @param subevent_code 3354 * @param con_handle 3355 * @param att_status 3356 */ 3357 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10 3358 3359 /** 3360 * @format 1H 3361 * @param subevent_code 3362 * @param con_handle 3363 */ 3364 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11 3365 3366 /** 3367 * @format 1H 3368 * @param subevent_code 3369 * @param con_handle 3370 */ 3371 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12 3372 3373 /** 3374 * @format 12111 3375 * @param subevent_code 3376 * @param hids_cid 3377 * @param status 3378 * @param protocol_mode 3379 * @param num_instances 3380 */ 3381 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13 3382 3383 /** 3384 * @format 1211LV 3385 * @param subevent_code 3386 * @param hids_cid 3387 * @param service_index 3388 * @param report_id 3389 * @param report_len 3390 * @param report 3391 */ 3392 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14 3393 3394 /** 3395 * @format 1212111 3396 * @param subevent_code 3397 * @param hids_cid 3398 * @param service_index 3399 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3400 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3401 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3402 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3403 */ 3404 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15 3405 3406 /** 3407 * @format 1211 3408 * @param subevent_code 3409 * @param hids_cid 3410 * @param service_index 3411 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3412 */ 3413 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16 3414 3415 /** 3416 * @format 121 3417 * @param subevent_code 3418 * @param hids_cid 3419 * @param configuration 3420 */ 3421 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17 3422 3423 /** 3424 * @format 1H22 3425 * @param subevent_code 3426 * @param con_handle 3427 * @param max_scan_interval 3428 * @param min_scan_window 3429 */ 3430 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18 3431 3432 3433 // MAP Meta Event Group 3434 3435 /** 3436 * @format 121BH1 3437 * @param subevent_code 3438 * @param map_cid 3439 * @param status 3440 * @param bd_addr 3441 * @param con_handle 3442 * @param incoming 3443 */ 3444 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 3445 3446 /** 3447 * @format 12 3448 * @param subevent_code 3449 * @param map_cid 3450 */ 3451 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 3452 3453 /** 3454 * @format 121 3455 * @param subevent_code 3456 * @param map_cid 3457 * @param status 3458 */ 3459 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 3460 3461 3462 /** 3463 * @format 12LV 3464 * @param subevent_code 3465 * @param map_cid 3466 * @param name_len 3467 * @param name 3468 */ 3469 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 3470 3471 /** 3472 * @format 12D 3473 * @param subevent_code 3474 * @param map_cid 3475 * @param handle 3476 3477 */ 3478 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 3479 3480 /** 3481 * @format 12 3482 * @param subevent_code 3483 * @param map_cid 3484 */ 3485 #define MAP_SUBEVENT_PARSING_DONE 0x06 3486 3487 3488 // MESH Meta Event Group 3489 3490 /** 3491 * @format 1 3492 * @param subevent_code 3493 */ 3494 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 3495 3496 /** 3497 * @format 11 3498 * @param subevent_code 3499 * @param status 3500 */ 3501 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 3502 3503 /** 3504 * @format 1121 3505 * @param subevent_code 3506 * @param status 3507 * @param pb_transport_cid 3508 * @param pb_type 3509 */ 3510 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 3511 3512 /** 3513 * @format 112 3514 * @param subevent_code 3515 * @param pb_transport_cid 3516 * @param reason 3517 */ 3518 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 3519 3520 /** 3521 * @format 121 3522 * @param subevent_code 3523 * @param pb_transport_cid 3524 * @param attention_time in seconds 3525 */ 3526 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 3527 3528 /** 3529 * Device Role 3530 * @format 12 3531 * @param subevent_code 3532 * @param pb_transport_cid 3533 */ 3534 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 3535 3536 /** 3537 * Device Role 3538 * @format 12 3539 * @param subevent_code 3540 * @param pb_transport_cid 3541 */ 3542 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 3543 3544 /** 3545 * Device Role 3546 * @format 12 3547 * @param subevent_code 3548 * @param pb_transport_cid 3549 */ 3550 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 3551 3552 /** 3553 * Device Role 3554 * @format 124 3555 * @param subevent_code 3556 * @param pb_transport_cid 3557 * @param output_oob number 3558 */ 3559 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 3560 3561 /** 3562 * Device Role 3563 * @format 12 3564 * @param subevent_code 3565 * @param pb_transport_cid 3566 */ 3567 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 3568 3569 /** 3570 * Provisioner Role 3571 * @format 12 3572 * @param subevent_code 3573 * @param pb_transport_cid 3574 */ 3575 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 3576 3577 /** 3578 * Provisioner Role 3579 * @format 12 3580 * @param subevent_code 3581 * @param pb_transport_cid 3582 */ 3583 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 3584 3585 /** 3586 * Provisioner Role 3587 * @format 12 3588 * @param subevent_code 3589 * @param pb_transport_cid 3590 */ 3591 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 3592 3593 /** 3594 * Provisioner Role 3595 * @format 124 3596 * @param subevent_code 3597 * @param pb_transport_cid 3598 * @param output_oob number 3599 */ 3600 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 3601 3602 /** 3603 * Provisioner Role 3604 * @format 12 3605 * @param subevent_code 3606 * @param pb_transport_cid 3607 */ 3608 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 3609 3610 /** 3611 * Provisioner Role 3612 * @format 1212111212 3613 * @param subevent_code 3614 * @param pb_transport_cid 3615 * @param num_elements 3616 * @param algorithms 3617 * @param public_key 3618 * @param static_oob_type 3619 * @param output_oob_size 3620 * @param output_oob_action 3621 * @param input_oob_size 3622 * @param input_oob_action 3623 */ 3624 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 3625 3626 /** 3627 * @format 12 3628 * @param subevent_code 3629 * @param pb_transport_cid 3630 */ 3631 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 3632 3633 /** 3634 * @format 11 3635 * @param subevent_code 3636 * @param attention_time in seconds 3637 */ 3638 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 3639 3640 /** 3641 * @format 1H 3642 * @param subevent_code 3643 * @param con_handle 3644 */ 3645 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 3646 3647 /** 3648 * @format 1H 3649 * @param subevent_code 3650 * @param con_handle 3651 */ 3652 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 3653 3654 /** 3655 * @format 1H 3656 * @param subevent_code 3657 * @param con_handle 3658 */ 3659 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 3660 3661 /** 3662 * @format 1H 3663 * @param subevent_code 3664 * @param con_handle 3665 */ 3666 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 3667 3668 /** 3669 * @format 114411 3670 * @param subevent_code 3671 * @param element_index 3672 * @param model_identifier 3673 * @param state_identifier 3674 * @param reason 3675 * @param value 3676 */ 3677 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 3678 3679 /** 3680 * @format 114412 3681 * @param subevent_code 3682 * @param element_index 3683 * @param model_identifier 3684 * @param state_identifier 3685 * @param reason 3686 * @param value 3687 */ 3688 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 3689 3690 // Mesh Client Events 3691 /** 3692 * @format 11442 3693 * @param subevent_code 3694 * @param element_index 3695 * @param model_identifier 3696 * @param opcode 3697 * @param dest 3698 */ 3699 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 3700 3701 /** 3702 * @format 121114 3703 * @param subevent_code 3704 * @param dest 3705 * @param status 3706 * @param present_value 3707 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3708 * @param remaining_time_ms 3709 */ 3710 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31 3711 3712 /** 3713 * @format 121224 3714 * @param subevent_code 3715 * @param dest 3716 * @param status 3717 * @param present_value 3718 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3719 * @param remaining_time_ms 3720 */ 3721 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32 3722 3723 /** 3724 * @format 1222211 3725 * @param subevent_code 3726 * @param dest 3727 * @param netkey_index 3728 * @param appkey_index 3729 * @param company_id 3730 * @param test_id 3731 * @param acknowledged 3732 */ 3733 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33 3734 3735 /** 3736 * @format 11 3737 * @param subevent_code 3738 * @param element_index 3739 */ 3740 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34 3741 3742 /** 3743 * @format 1211 3744 * @param subevent_code 3745 * @param dest 3746 * @param status 3747 * @param transition_time_gdtt 3748 */ 3749 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35 3750 3751 /** 3752 * @format 1211 3753 * @param subevent_code 3754 * @param dest 3755 * @param foundation_status 3756 * @param secure_network_beacon_state 3757 */ 3758 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36 3759 3760 // Composition Data has variable of element descriptions, with two lists of model lists 3761 // Use .. getters to access data 3762 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37 3763 3764 /** 3765 * @format 1211 3766 * @param subevent_code 3767 * @param dest 3768 * @param foundation_status 3769 * @param default_ttl 3770 */ 3771 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38 3772 3773 /** 3774 * @format 1211 3775 * @param subevent_code 3776 * @param dest 3777 * @param foundation_status 3778 * @param gatt_proxy_state 3779 */ 3780 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39 3781 3782 /** 3783 * @format 121111 3784 * @param subevent_code 3785 * @param dest 3786 * @param foundation_status 3787 * @param relay 3788 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 3789 * @param retransmit_interval_ms retransmission interval in ms 3790 */ 3791 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40 3792 3793 3794 /** 3795 * @format 12122111114 3796 * @param subevent_code 3797 * @param dest element_address 3798 * @param foundation_status 3799 * @param publish_address 3800 * @param appkey_index 3801 * @param credential_flag 3802 * @param publish_ttl 3803 * @param publish_period 3804 * @param publish_retransmit_count 3805 * @param publish_retransmit_interval_steps 3806 * @param model_identifier 3807 */ 3808 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41 3809 3810 /** 3811 * @format 12124 3812 * @param subevent_code 3813 * @param dest 3814 * @param foundation_status 3815 * @param address 3816 * @param model_identifier 3817 */ 3818 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42 3819 3820 /** 3821 * @format 1214112 3822 * @param subevent_code 3823 * @param dest 3824 * @param foundation_status 3825 * @param model_identifier 3826 * @param num_subscription_addresses 3827 * @param subscription_address_pos 3828 * @param subscription_address_item 3829 */ 3830 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43 3831 3832 3833 /** 3834 * @format 121 3835 * @param subevent_code 3836 * @param dest 3837 * @param foundation_status 3838 */ 3839 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44 3840 3841 /** 3842 * @format 121112 3843 * @param subevent_code 3844 * @param dest 3845 * @param foundation_status 3846 * @param num_netkey_indexes 3847 * @param netkey_index_pos 3848 * @param netkey_index_item 3849 */ 3850 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45 3851 3852 /** 3853 * @format 12122 3854 * @param subevent_code 3855 * @param dest 3856 * @param foundation_status 3857 * @param netkey_index_item 3858 * @param appkey_index_item 3859 */ 3860 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46 3861 3862 /** 3863 * @format 12121122 3864 * @param subevent_code 3865 * @param dest 3866 * @param foundation_status 3867 * @param netkey_index 3868 * @param num_appkey_indexes 3869 * @param appkey_index_pos 3870 * @param netkey_index_item 3871 * @param appkey_index_item 3872 */ 3873 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47 3874 3875 /** 3876 * @format 12121 3877 * @param subevent_code 3878 * @param dest 3879 * @param foundation_status 3880 * @param netkey_index_item 3881 * @param identity_status 3882 */ 3883 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48 3884 3885 /** 3886 * @format 12124 3887 * @param subevent_code 3888 * @param dest 3889 * @param foundation_status 3890 * @param appkey_index 3891 * @param model_identifier 3892 */ 3893 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49 3894 3895 /** 3896 * @format 1214112 3897 * @param subevent_code 3898 * @param dest 3899 * @param foundation_status 3900 * @param model_id 3901 * @param num_appkey_indexes 3902 * @param appkey_index_pos 3903 * @param appkey_index_item 3904 */ 3905 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50 3906 3907 /** 3908 * @format 121 3909 * @param subevent_code 3910 * @param dest 3911 * @param foundation_status 3912 */ 3913 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51 3914 3915 /** 3916 * @format 1211 3917 * @param subevent_code 3918 * @param dest 3919 * @param foundation_status 3920 * @param friend_state 3921 */ 3922 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52 3923 3924 /** 3925 * @format 12121 3926 * @param subevent_code 3927 * @param dest 3928 * @param foundation_status 3929 * @param netkey_index 3930 * @param phase 3931 */ 3932 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53 3933 3934 /** 3935 * @format 121222122 3936 * @param subevent_code 3937 * @param dest 3938 * @param foundation_status 3939 * @param heartbeat_destination 3940 * @param count_S 3941 * @param period_S 3942 * @param ttl 3943 * @param features 3944 * @param netkey_index 3945 */ 3946 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54 3947 3948 /** 3949 * @format 121222211 3950 * @param subevent_code 3951 * @param dest 3952 * @param foundation_status 3953 * @param heartbeat_destination 3954 * @param heartbeat_source 3955 * @param count_S 3956 * @param period_S 3957 * @param min_hops 3958 * @param max_hops 3959 */ 3960 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55 3961 3962 /** 3963 * @format 12123 3964 * @param subevent_code 3965 * @param dest 3966 * @param foundation_status 3967 * @param lpn_address 3968 * @param poll_timeout 3969 */ 3970 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56 3971 3972 /** 3973 * @format 12112 3974 * @param subevent_code 3975 * @param dest 3976 * @param foundation_status 3977 * @param transmit_count 3978 * @param transmit_interval_steps_ms 3979 */ 3980 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57 3981 3982 3983 #endif 3984