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