1 /* 2 * Copyright (C) 2015 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the copyright holders nor the names of 14 * contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 4. Any redistribution, use, or modification is done solely for 17 * personal benefit and not for any commercial purpose or for 18 * monetary gain. 19 * 20 * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24 * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * Please inquire about commercial licensing options at 34 * [email protected] 35 * 36 */ 37 38 /** 39 * 40 * BTstack definitions, events, and error codes 41 * 42 */ 43 44 #ifndef BTSTACK_DEFINES_H 45 #define BTSTACK_DEFINES_H 46 #include <stdint.h> 47 48 #include "btstack_linked_list.h" 49 50 // UNUSED macro 51 #ifndef UNUSED 52 #define UNUSED(x) (void)(sizeof(x)) 53 #endif 54 55 // TYPES 56 57 // packet handler 58 typedef void (*btstack_packet_handler_t) (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size); 59 60 // packet callback supporting multiple registrations 61 typedef struct { 62 btstack_linked_item_t item; 63 btstack_packet_handler_t callback; 64 } btstack_packet_callback_registration_t; 65 66 // context callback supporting multiple registrations 67 typedef struct { 68 btstack_linked_item_t * item; 69 void (*callback)(void * context); 70 void * context; 71 } btstack_context_callback_registration_t; 72 73 /** 74 * @brief 128 bit key used with AES128 in Security Manager 75 */ 76 typedef uint8_t sm_key_t[16]; 77 78 // DEFINES 79 80 // hci con handles (12 bit): 0x0000..0x0fff 81 #define HCI_CON_HANDLE_INVALID 0xffff 82 83 84 #define DAEMON_EVENT_PACKET 0x05 85 86 // L2CAP data 87 #define L2CAP_DATA_PACKET 0x06 88 89 // RFCOMM data 90 #define RFCOMM_DATA_PACKET 0x07 91 92 // Attribute protocol data 93 #define ATT_DATA_PACKET 0x08 94 95 // Security Manager protocol data 96 #define SM_DATA_PACKET 0x09 97 98 // SDP query result - only used by daemon 99 // format: type (8), record_id (16), attribute_id (16), attribute_length (16), attribute_value (max 1k) 100 #define SDP_CLIENT_PACKET 0x0a 101 102 // BNEP data 103 #define BNEP_DATA_PACKET 0x0b 104 105 // Unicast Connectionless Data 106 #define UCD_DATA_PACKET 0x0c 107 108 // GOEP data 109 #define GOEP_DATA_PACKET 0x0d 110 111 // PBAP data 112 #define PBAP_DATA_PACKET 0x0e 113 114 // AVRCP browsing data 115 #define AVRCP_BROWSING_DATA_PACKET 0x0f 116 117 // MAP data 118 #define MAP_DATA_PACKET 0x10 119 120 // Mesh Provisioning PDU 121 #define PROVISIONING_DATA_PACKET 0x11 122 123 // Mesh Proxy PDU 124 #define MESH_PROXY_DATA_PACKET 0x11 125 126 // Mesh Network PDU 127 #define MESH_NETWORK_PACKET 0x12 128 129 // Mesh Network PDU 130 #define MESH_BEACON_PACKET 0x13 131 132 // debug log messages 133 #define LOG_MESSAGE_PACKET 0xfc 134 135 136 // DAEMON COMMANDS 137 138 #define OGF_BTSTACK 0x3d 139 140 // cmds for BTstack 141 // get state: @returns HCI_STATE 142 #define BTSTACK_GET_STATE 0x01 143 144 // set power mode: param HCI_POWER_MODE 145 #define BTSTACK_SET_POWER_MODE 0x02 146 147 // set capture mode: param on 148 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 149 150 // get BTstack version 151 #define BTSTACK_GET_VERSION 0x04 152 153 // get system Bluetooth state 154 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 155 156 // set system Bluetooth state 157 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 158 159 // enable inquiry scan for this client 160 #define BTSTACK_SET_DISCOVERABLE 0x07 161 162 // set global Bluetooth state 163 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 164 165 // create l2cap channel: param bd_addr(48), psm (16) 166 #define L2CAP_CREATE_CHANNEL 0x20 167 168 // disconnect l2cap disconnect, param channel(16), reason(8) 169 #define L2CAP_DISCONNECT 0x21 170 171 // register l2cap service: param psm(16), mtu (16) 172 #define L2CAP_REGISTER_SERVICE 0x22 173 174 // unregister l2cap disconnect, param psm(16) 175 #define L2CAP_UNREGISTER_SERVICE 0x23 176 177 // accept connection param bd_addr(48), dest cid (16) 178 #define L2CAP_ACCEPT_CONNECTION 0x24 179 180 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 181 #define L2CAP_DECLINE_CONNECTION 0x25 182 183 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 184 #define L2CAP_CREATE_CHANNEL_MTU 0x26 185 186 // register SDP Service Record: service record (size) 187 #define SDP_REGISTER_SERVICE_RECORD 0x30 188 189 // unregister SDP Service Record 190 #define SDP_UNREGISTER_SERVICE_RECORD 0x31 191 192 // Get remote RFCOMM services 193 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 194 195 // Get remote SDP services 196 #define SDP_CLIENT_QUERY_SERVICES 0x33 197 198 // RFCOMM "HCI" Commands 199 #define RFCOMM_CREATE_CHANNEL 0x40 200 #define RFCOMM_DISCONNECT 0x41 201 #define RFCOMM_REGISTER_SERVICE 0x42 202 #define RFCOMM_UNREGISTER_SERVICE 0x43 203 #define RFCOMM_ACCEPT_CONNECTION 0x44 204 #define RFCOMM_DECLINE_CONNECTION 0x45 205 #define RFCOMM_PERSISTENT_CHANNEL 0x46 206 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 207 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 208 #define RFCOMM_GRANT_CREDITS 0x49 209 210 // GAP Classic 0x50 211 #define GAP_DISCONNECT 0x50 212 #define GAP_INQUIRY_START 0x51 213 #define GAP_INQUIRY_STOP 0x52 214 #define GAP_REMOTE_NAME_REQUEST 0x53 215 #define GAP_DROP_LINK_KEY_FOR_BD_ADDR 0x54 216 #define GAP_DELETE_ALL_LINK_KEYS 0x55 217 #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 2 847 * @param local_cid 848 */ 849 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 850 851 // LE Data Channels 852 853 /** 854 * @format 1BH2222 855 * @param address_type 856 * @param address 857 * @param handle 858 * @param psm 859 * @param local_cid 860 * @param remote_cid 861 * @param remote_mtu 862 */ 863 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 864 865 /** 866 * @format 11BH122222 867 * @param status 868 * @param address_type 869 * @param address 870 * @param handle 871 * @param incoming 872 * @param psm 873 * @param local_cid 874 * @param remote_cid 875 * @param local_mtu 876 * @param remote_mtu 877 */ 878 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 879 880 /* 881 * @format 2 882 * @param local_cid 883 */ 884 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 885 886 /* 887 * @format 2 888 * @param local_cid 889 */ 890 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 891 892 /* 893 * @format 2 894 * @param local_cid 895 */ 896 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 897 898 /* 899 * @format 2 900 * @param local_cid 901 */ 902 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 903 904 /* 905 * @format 906 */ 907 #define L2CAP_EVENT_TRIGGER_RUN 0x7f 908 909 910 // RFCOMM EVENTS 911 912 /** 913 * @format 1B21221 914 * @param status 915 * @param bd_addr 916 * @param con_handle 917 * @param server_channel 918 * @param rfcomm_cid 919 * @param max_frame_size 920 * @param incoming 921 */ 922 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 923 924 /** 925 * @format 2 926 * @param rfcomm_cid 927 */ 928 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 929 930 /** 931 * @format B12 932 * @param bd_addr 933 * @param server_channel 934 * @param rfcomm_cid 935 */ 936 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 937 938 /** 939 * @format 21 940 * @param rfcomm_cid 941 * @param line_status 942 */ 943 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 944 945 /** 946 * @format 21 947 * @param rfcomm_cid 948 * @param modem_status 949 */ 950 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 951 952 /** 953 * TODO: format for variable data 2? 954 * param rfcomm_cid 955 * param rpn_data 956 */ 957 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 958 959 /** 960 * @format 2 961 * @param rfcomm_cid 962 */ 963 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 964 965 966 /** 967 * @format 1 968 * @param status 969 */ 970 #define SDP_EVENT_QUERY_COMPLETE 0x91 971 972 /** 973 * @format 1T 974 * @param rfcomm_channel 975 * @param name 976 */ 977 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 978 979 /** 980 * @format 22221 981 * @param record_id 982 * @param attribute_id 983 * @param attribute_length 984 * @param data_offset 985 * @param data 986 */ 987 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 988 989 /** 990 * @format 22LV 991 * @param record_id 992 * @param attribute_id 993 * @param attribute_length 994 * @param attribute_value 995 */ 996 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 997 998 /** 999 * @format 224 1000 * @param total_count 1001 * @param record_index 1002 * @param record_handle 1003 * @note Not provided by daemon, only used for internal testing 1004 */ 1005 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 1006 1007 /** 1008 * @format H1 1009 * @param handle 1010 * @param att_status see ATT errors in bluetooth.h 1011 */ 1012 #define GATT_EVENT_QUERY_COMPLETE 0xA0 1013 1014 /** 1015 * @format HX 1016 * @param handle 1017 * @param service 1018 */ 1019 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 1020 1021 /** 1022 * @format HY 1023 * @param handle 1024 * @param characteristic 1025 */ 1026 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 1027 1028 /** 1029 * @format H2X 1030 * @param handle 1031 * @param include_handle 1032 * @param service 1033 */ 1034 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 1035 1036 /** 1037 * @format HZ 1038 * @param handle 1039 * @param characteristic_descriptor 1040 */ 1041 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 1042 1043 /** 1044 * @format H2LV 1045 * @param handle 1046 * @param value_handle 1047 * @param value_length 1048 * @param value 1049 */ 1050 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 1051 1052 /** 1053 * @format H22LV 1054 * @param handle 1055 * @param value_handle 1056 * @param value_offset 1057 * @param value_length 1058 * @param value 1059 */ 1060 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 1061 1062 /** 1063 * @format H2LV 1064 * @param handle 1065 * @param value_handle 1066 * @param value_length 1067 * @param value 1068 */ 1069 #define GATT_EVENT_NOTIFICATION 0xA7 1070 1071 /** 1072 * @format H2LV 1073 * @param handle 1074 * @param value_handle 1075 * @param value_length 1076 * @param value 1077 */ 1078 #define GATT_EVENT_INDICATION 0xA8 1079 1080 /** 1081 * @format H2LV 1082 * @param handle 1083 * @param descriptor_handle 1084 * @param descriptor_length 1085 * @param descriptor 1086 */ 1087 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 1088 1089 /** 1090 * @format H2LV 1091 * @param handle 1092 * @param descriptor_offset 1093 * @param descriptor_length 1094 * @param descriptor 1095 */ 1096 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 1097 1098 /** 1099 * @format H2 1100 * @param handle 1101 * @param MTU 1102 */ 1103 #define GATT_EVENT_MTU 0xAB 1104 1105 /** 1106 * @format H 1107 * @param handle 1108 */ 1109 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 1110 1111 1112 /** 1113 * @format 1BH 1114 * @param address_type 1115 * @param address 1116 * @param handle 1117 */ 1118 #define ATT_EVENT_CONNECTED 0xB3 1119 1120 /** 1121 * @format H 1122 * @param handle 1123 */ 1124 #define ATT_EVENT_DISCONNECTED 0xB4 1125 1126 /** 1127 * @format H2 1128 * @param handle 1129 * @param MTU 1130 */ 1131 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 1132 1133 /** 1134 * @format 1H2 1135 * @param status 1136 * @param conn_handle 1137 * @param attribute_handle 1138 */ 1139 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 1140 1141 /** 1142 * @format 1143 */ 1144 #define ATT_EVENT_CAN_SEND_NOW 0xB7 1145 1146 // TODO: daemon only event 1147 1148 /** 1149 * @format 12 1150 * @param status 1151 * @param service_uuid 1152 */ 1153 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 1154 1155 /** 1156 * @format 12222BH 1157 * @param status 1158 * @param bnep_cid 1159 * @param source_uuid 1160 * @param destination_uuid 1161 * @param mtu 1162 * @param remote_address 1163 * @param con_handle 1164 */ 1165 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 1166 1167 /** 1168 * @format 222B 1169 * @param bnep_cid 1170 * @param source_uuid 1171 * @param destination_uuid 1172 * @param remote_address 1173 */ 1174 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 1175 1176 /** 1177 * @format 222B1 1178 * @param bnep_cid 1179 * @param source_uuid 1180 * @param destination_uuid 1181 * @param remote_address 1182 * @param channel_state 1183 */ 1184 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 1185 1186 /** 1187 * @format 222B 1188 * @param bnep_cid 1189 * @param source_uuid 1190 * @param destination_uuid 1191 * @param remote_address 1192 */ 1193 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 1194 1195 /** 1196 * @format H1B 1197 * @param handle 1198 * @param addr_type 1199 * @param address 1200 */ 1201 #define SM_EVENT_JUST_WORKS_REQUEST 0xC8 1202 1203 /** 1204 * @format H1B4 1205 * @param handle 1206 * @param addr_type 1207 * @param address 1208 * @param passkey 1209 */ 1210 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xC9 1211 1212 /** 1213 * @format H1B 1214 * @param handle 1215 * @param addr_type 1216 * @param address 1217 */ 1218 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xCA 1219 1220 /** 1221 * @format H1B 1222 * @param handle 1223 * @param addr_type 1224 * @param address 1225 */ 1226 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xCB 1227 1228 /** 1229 * @format H1B4 1230 * @param handle 1231 * @param addr_type 1232 * @param address 1233 * @param passkey 1234 */ 1235 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xCC 1236 1237 /** 1238 * @format H1B 1239 * @param handle 1240 * @param addr_type 1241 * @param address 1242 */ 1243 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xCD 1244 1245 /** 1246 * @format H1B 1247 * @param handle 1248 * @param addr_type 1249 * @param address 1250 */ 1251 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xCE 1252 1253 /** 1254 * @brief Identify resolving succeeded 1255 * 1256 * @format H1B1B2 1257 * @param handle 1258 * @param addr_type 1259 * @param address 1260 * @param identity_addr_type 1261 * @param identity_address 1262 * @param index 1263 * 1264 */ 1265 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xCF 1266 1267 /** 1268 * @format H1B 1269 * @param handle 1270 * @param addr_type 1271 * @param address 1272 */ 1273 #define SM_EVENT_AUTHORIZATION_REQUEST 0xD0 1274 1275 /** 1276 * @format H1B1 1277 * @param handle 1278 * @param addr_type 1279 * @param address 1280 * @param authorization_result 1281 */ 1282 #define SM_EVENT_AUTHORIZATION_RESULT 0xD1 1283 1284 /** 1285 * @format H1 1286 * @param handle 1287 * @param action see SM_KEYPRESS_* 1288 */ 1289 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xD2 1290 1291 /** 1292 * @brief Emitted during pairing to inform app about address used as identity 1293 * 1294 * @format H1B1B2 1295 * @param handle 1296 * @param addr_type 1297 * @param address 1298 * @param identity_addr_type 1299 * @param identity_address 1300 * @param index 1301 */ 1302 #define SM_EVENT_IDENTITY_CREATED 0xD3 1303 1304 /** 1305 * @brief Emitted to inform app that pairing has started. 1306 * @format H1B 1307 * @param handle 1308 * @param addr_type 1309 * @param address 1310 */ 1311 #define SM_EVENT_PAIRING_STARTED 0xD4 1312 1313 /** 1314 * @brief Emitted to inform app that pairing is complete. Possible status values: 1315 * ERROR_CODE_SUCCESS -> pairing success 1316 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1317 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 1318 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 1319 * 1320 * @format H1B11 1321 * @param handle 1322 * @param addr_type 1323 * @param address 1324 * @param status 1325 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 1326 */ 1327 #define SM_EVENT_PAIRING_COMPLETE 0xD5 1328 1329 1330 /** 1331 * @brief Proactive Authentication for bonded devices started. 1332 * @format H1B 1333 * @param handle 1334 * @param addr_type 1335 * @param address 1336 */ 1337 #define SM_EVENT_REENCRYPTION_STARTED 0xD6 1338 1339 /** 1340 * @brief Proactive Authentication for bonded devices complete. Possible status values: 1341 * ERROR_CODE_SUCCESS -> connection secure 1342 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 1343 * ERROR_CODE_PIN_OR_KEY_MISSING -> remote did not provide (as Peripheral) or use LTK (as Central) 1344 * @format H1B1 1345 * @param handle 1346 * @param addr_type 1347 * @param address 1348 * @param status 1349 */ 1350 #define SM_EVENT_REENCRYPTION_COMPLETE 0xD7 1351 1352 // GAP 1353 1354 /** 1355 * @format H1 1356 * @param handle 1357 * @param security_level 1358 */ 1359 #define GAP_EVENT_SECURITY_LEVEL 0xD8 1360 1361 /** 1362 * @format 1B 1363 * @param status 1364 * @param address 1365 */ 1366 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xD9 1367 1368 /** 1369 * @format 11B1JV 1370 * @param advertising_event_type 1371 * @param address_type 1372 * @param address 1373 * @param rssi 1374 * @param data_length 1375 * @param data 1376 */ 1377 #define GAP_EVENT_ADVERTISING_REPORT 0xDA 1378 1379 /** 1380 * @format B13211122221JV 1381 * @param bd_addr 1382 * @param page_scan_repetition_mode 1383 * @param class_of_device 1384 * @param clock_offset 1385 * @param rssi_available 1386 * @param rssi 1387 * @param device_id_available 1388 * @param device_id_vendor_id_source 1389 * @param device_id_vendor_id 1390 * @param device_id_product_id 1391 * @param device_id_version 1392 * @param name_available 1393 * @param name_len 1394 * @param name 1395 */ 1396 #define GAP_EVENT_INQUIRY_RESULT 0xDB 1397 1398 /** 1399 * @format 1 1400 * @param status 1401 */ 1402 #define GAP_EVENT_INQUIRY_COMPLETE 0xDC 1403 1404 /** 1405 * @format H1 1406 * @param con_handle 1407 * @param rssi (signed integer -127..127) 1408 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1409 * @note LE: rssi is absolute dBm 1410 */ 1411 #define GAP_EVENT_RSSI_MEASUREMENT 0xDD 1412 1413 /** 1414 * @format 1KKKK 1415 * @param oob_data_present 0 = none, 1 = p_192, 2 = p_256, 3 = both 1416 * @param c_192 Simple Pairing Hash C derived from P-192 public key 1417 * @param r_192 Simple Pairing Randomizer derived from P-192 public key 1418 * @param c_256 Simple Pairing Hash C derived from P-256 public key 1419 * @param r_256 Simple Pairing Randomizer derived from P-256 public key 1420 */ 1421 #define GAP_EVENT_LOCAL_OOB_DATA 0xDE 1422 1423 1424 /** 1425 * @format HB11 1426 * @param con_handle 1427 * @param bd_addr 1428 * @param ssp 1429 * @param initiator 1430 */ 1431 #define GAP_EVENT_PAIRING_STARTED 0xDF 1432 1433 /** 1434 * @format HB1 1435 * @param con_handle 1436 * @param bd_addr 1437 * @param status 1438 */ 1439 #define GAP_EVENT_PAIRING_COMPLETE 0xE0 1440 1441 // Meta Events, see below for sub events 1442 #define HCI_EVENT_HSP_META 0xE8 1443 #define HCI_EVENT_HFP_META 0xE9 1444 #define HCI_EVENT_ANCS_META 0xEA 1445 #define HCI_EVENT_AVDTP_META 0xEB 1446 #define HCI_EVENT_AVRCP_META 0xEC 1447 #define HCI_EVENT_GOEP_META 0xED 1448 #define HCI_EVENT_PBAP_META 0xEE 1449 #define HCI_EVENT_HID_META 0xEF 1450 #define HCI_EVENT_A2DP_META 0xF0 1451 #define HCI_EVENT_HIDS_META 0xF1 1452 #define HCI_EVENT_GATTSERVICE_META 0xF2 1453 #define HCI_EVENT_BIP_META 0xF3 1454 #define HCI_EVENT_MAP_META 0xF4 1455 #define HCI_EVENT_MESH_META 0xF5 1456 1457 // Potential other meta groups 1458 // #define HCI_EVENT_BNEP_META 0xxx 1459 // #define HCI_EVENT_GAP_META 0xxx 1460 // #define HCI_EVENT_GATT_META 0xxx 1461 // #define HCI_EVENT_PAN_META 0xxx 1462 // #define HCI_EVENT_SDP_META 0xxx 1463 // #define HCI_EVENT_SM_META 0xxx 1464 1465 1466 /** HSP Subevent */ 1467 1468 /** 1469 * @format 11 1470 * @param subevent_code 1471 * @param status 0 == OK 1472 */ 1473 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1474 1475 /** 1476 * @format 11 1477 * @param subevent_code 1478 * @param status 0 == OK 1479 */ 1480 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1481 1482 1483 /** 1484 * @format 11H 1485 * @param subevent_code 1486 * @param status 0 == OK 1487 * @param handle 1488 */ 1489 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1490 1491 /** 1492 * @format 11 1493 * @param subevent_code 1494 * @param status 0 == OK 1495 */ 1496 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1497 1498 /** 1499 * @format 1 1500 * @param subevent_code 1501 */ 1502 #define HSP_SUBEVENT_RING 0x05 1503 1504 /** 1505 * @format 11 1506 * @param subevent_code 1507 * @param gain Valid range: [0,15] 1508 */ 1509 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1510 1511 /** 1512 * @format 11 1513 * @param subevent_code 1514 * @param gain Valid range: [0,15] 1515 */ 1516 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1517 1518 /** 1519 * @format 1JV 1520 * @param subevent_code 1521 * @param value_length 1522 * @param value 1523 */ 1524 #define HSP_SUBEVENT_HS_COMMAND 0x08 1525 1526 /** 1527 * @format 1JV 1528 * @param subevent_code 1529 * @param value_length 1530 * @param value 1531 */ 1532 #define HSP_SUBEVENT_AG_INDICATION 0x09 1533 1534 /** 1535 * @format 1 1536 * @param subevent_code 1537 */ 1538 #define HSP_SUBEVENT_BUTTON_PRESSED 0x0a 1539 1540 /** HFP Subevent */ 1541 1542 /** 1543 * @format 1H1B 1544 * @param subevent_code 1545 * @param acl_handle 1546 * @param status 0 == OK 1547 * @param bd_addr 1548 */ 1549 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1550 1551 /** 1552 * @format 1H 1553 * @param subevent_code 1554 * @param acl_handle 1555 */ 1556 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1557 1558 /** 1559 * @format 1H1HB1 1560 * @param subevent_code 1561 * @param acl_handle 1562 * @param status 0 == OK 1563 * @param sco_handle 1564 * @param bd_addr 1565 * @param negotiated_codec 1566 */ 1567 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1568 1569 /** 1570 * @format 1HH 1571 * @param subevent_code 1572 * @param acl_handle 1573 * @param sco_handle 1574 */ 1575 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1576 1577 /** 1578 * @format 1H1 1579 * @param subevent_code 1580 * @param acl_handle 1581 * @param status 0 == OK 1582 */ 1583 #define HFP_SUBEVENT_COMPLETE 0x05 1584 1585 /** 1586 * @format 1H111T 1587 * @param subevent_code 1588 * @param acl_handle 1589 * @param indicator_index 1590 * @param indicator_min_range 1591 * @param indicator_max_range 1592 * @param indicator_name 1593 */ 1594 #define HFP_SUBEVENT_AG_INDICATOR_MAPPING 0x06 1595 1596 /** 1597 * @format 1H1111111T 1598 * @param subevent_code 1599 * @param acl_handle 1600 * @param indicator_index 1601 * @param indicator_status 1602 * @param indicator_min_range 1603 * @param indicator_max_range 1604 * @param indicator_mandatory 1605 * @param indicator_enabled 1606 * @param indicator_status_changed 1607 * @param indicator_name 1608 */ 1609 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x07 1610 1611 /** 1612 * @format 1H11T 1613 * @param subevent_code 1614 * @param acl_handle 1615 * @param network_operator_mode 1616 * @param network_operator_format 1617 * @param network_operator_name 1618 */ 1619 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x08 1620 1621 /** 1622 * @format 1H1 1623 * @param subevent_code 1624 * @param acl_handle 1625 * @param error 1626 */ 1627 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x09 1628 1629 /** 1630 * @format 1H 1631 * @param subevent_code 1632 * @param acl_handle 1633 */ 1634 #define HFP_SUBEVENT_START_RINGING 0x0A 1635 1636 /** 1637 * @format 1H 1638 * @param subevent_code 1639 * @param acl_handle 1640 */ 1641 #define HFP_SUBEVENT_RING 0x0B 1642 1643 /** 1644 * @format 1H 1645 * @param subevent_code 1646 * @param acl_handle 1647 */ 1648 #define HFP_SUBEVENT_STOP_RINGING 0x0C 1649 1650 /** 1651 * @format 1HT 1652 * @param subevent_code 1653 * @param acl_handle 1654 * @param number 1655 */ 1656 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1657 1658 /** 1659 * @format 1H 1660 * @param subevent_code 1661 * @param acl_handle 1662 */ 1663 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1664 1665 /** 1666 * @format 1HT 1667 * @param subevent_code 1668 * @param acl_handle 1669 * @param number 1670 */ 1671 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1672 1673 /** 1674 * @format 1HT 1675 * @param subevent_code 1676 * @param acl_handle 1677 * @param dtmf code 1678 */ 1679 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1680 1681 /** 1682 * @format 1H 1683 * @param subevent_code 1684 * @param acl_handle 1685 */ 1686 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1687 1688 /** 1689 * @format 1H 1690 * @param subevent_code 1691 * @param acl_handle 1692 */ 1693 #define HFP_SUBEVENT_CALL_TERMINATED 0x12 1694 1695 /** 1696 * @format 1H 1697 * @param subevent_code 1698 * @param acl_handle 1699 */ 1700 #define HFP_SUBEVENT_CONFERENCE_CALL 0x13 1701 1702 1703 /** 1704 * @format 1H1 1705 * @param subevent_code 1706 * @param acl_handle 1707 * @param gain 1708 */ 1709 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1710 1711 /** 1712 * @format 1H1 1713 * @param subevent_code 1714 * @param acl_handle 1715 * @param gain 1716 */ 1717 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1718 1719 /** 1720 * @format 1H1T 1721 * @param subevent_code 1722 * @param acl_handle 1723 * @param type 1724 * @param number 1725 */ 1726 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1727 1728 /** 1729 * @format 1H1T 1730 * @param subevent_code 1731 * @param acl_handle 1732 * @param type 1733 * @param number 1734 */ 1735 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1736 1737 /** 1738 * @format 1H111111T 1739 * @param subevent_code 1740 * @param acl_handle 1741 * @param clcc_idx 1742 * @param clcc_dir 1743 * @param clcc_status 1744 * @param clcc_mode 1745 * @param clcc_mpty 1746 * @param bnip_type 1747 * @param bnip_number 1748 */ 1749 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1750 1751 /** 1752 * @format 1H11T 1753 * @param subevent_code 1754 * @param acl_handle 1755 * @param status 1756 * @param bnip_type 1757 * @param bnip_number 1758 */ 1759 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1760 1761 /** 1762 * @format 1HT 1763 * @param subevent_code 1764 * @param acl_handle 1765 * @param value 1766 */ 1767 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1768 1769 /** 1770 * @format 1HT 1771 * @param subevent_code 1772 * @param acl_handle 1773 * @param command 1774 */ 1775 #define HFP_SUBEVENT_AT_MESSAGE_SENT 0x1B 1776 1777 /** 1778 * @format 1HT 1779 * @param subevent_code 1780 * @param acl_handle 1781 * @param command 1782 */ 1783 #define HFP_SUBEVENT_AT_MESSAGE_RECEIVED 0x1C 1784 1785 /** 1786 * @format 1H1 1787 * @param subevent_code 1788 * @param acl_handle 1789 * @param status 1790 */ 1791 #define HFP_SUBEVENT_IN_BAND_RING_TONE 0x1D 1792 1793 /** 1794 * @format 1H11 1795 * @param subevent_code 1796 * @param acl_handle 1797 * @param status // 0-success 1798 * @param enhanced // 0-legacy, 1-enhanced 1799 */ 1800 #define HFP_SUBEVENT_VOICE_RECOGNITION_ACTIVATED 0x1E 1801 1802 /** 1803 * @format 1H1 1804 * @param subevent_code 1805 * @param acl_handle 1806 * @param status // 0-success 1807 */ 1808 #define HFP_SUBEVENT_VOICE_RECOGNITION_DEACTIVATED 0x1F 1809 1810 /** 1811 * @format 1H1 1812 * @param subevent_code 1813 * @param acl_handle 1814 * @param status 1815 */ 1816 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_HF_READY_FOR_AUDIO 0x20 1817 1818 1819 /** 1820 * @format 1H1 1821 * @param subevent_code 1822 * @param acl_handle 1823 * @param status 1824 */ 1825 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_READY_TO_ACCEPT_AUDIO_INPUT 0x21 1826 1827 /** 1828 * @format 1H1 1829 * @param subevent_code 1830 * @param acl_handle 1831 * @param status 1832 */ 1833 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_STARTING_SOUND 0x22 1834 1835 /** 1836 * @format 1H1 1837 * @param subevent_code 1838 * @param acl_handle 1839 * @param status 1840 */ 1841 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_IS_PROCESSING_AUDIO_INPUT 0x23 1842 1843 /** 1844 * @format 1H1 1845 * @param subevent_code 1846 * @param acl_handle 1847 * @param status 1848 */ 1849 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE_SENT 0x24 1850 1851 1852 /** 1853 * @format 1H211LV 1854 * @param subevent_code 1855 * @param acl_handle 1856 * @param text_id 1857 * @param text_type 1858 * @param text_operation 1859 * @param text_length 1860 * @param text 1861 */ 1862 #define HFP_SUBEVENT_ENHANCED_VOICE_RECOGNITION_AG_MESSAGE 0x25 1863 1864 /** 1865 * @format 1H1 1866 * @param subevent_code 1867 * @param acl_handle 1868 * @param status 1869 */ 1870 #define HFP_SUBEVENT_ECHO_CANCELING_AND_NOISE_REDUCTION_DEACTIVATE 0x26 1871 1872 /** 1873 * @format 1H21 1874 * @param subevent_code 1875 * @param acl_handle 1876 * @param uuid 1877 * @param value 1878 */ 1879 #define HFP_SUBEVENT_HF_INDICATOR 0x27 1880 1881 1882 // ANCS Client 1883 1884 /** 1885 * @format 1H 1886 * @param subevent_code 1887 * @param handle 1888 */ 1889 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1890 1891 /** 1892 * @format 1H2T 1893 * @param subevent_code 1894 * @param handle 1895 * @param attribute_id 1896 * @param text 1897 */ 1898 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1899 1900 /** 1901 * @format 1H 1902 * @param subevent_code 1903 * @param handle 1904 */ 1905 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1906 1907 1908 /** AVDTP Subevent */ 1909 1910 /** 1911 * @format 12111 1912 * @param subevent_code 1913 * @param avdtp_cid 1914 * @param local_seid 1915 * @param is_initiator 1916 * @param signal_identifier 1917 */ 1918 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1919 1920 /** 1921 * @format 12111 1922 * @param subevent_code 1923 * @param avdtp_cid 1924 * @param local_seid 1925 * @param is_initiator 1926 * @param signal_identifier 1927 */ 1928 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1929 1930 /** 1931 * @format 12111 1932 * @param subevent_code 1933 * @param avdtp_cid 1934 * @param local_seid 1935 * @param is_initiator 1936 * @param signal_identifier 1937 */ 1938 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1939 1940 /** 1941 * @format 12B21 1942 * @param subevent_code 1943 * @param avdtp_cid 1944 * @param bd_addr 1945 * @param con_handle 1946 * @param status 0 == OK 1947 */ 1948 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1949 1950 /** 1951 * @format 12 1952 * @param subevent_code 1953 * @param avdtp_cid 1954 */ 1955 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1956 1957 /** 1958 * @format 121111 1959 * @param subevent_code 1960 * @param avdtp_cid 1961 * @param remote_seid 0x01 – 0x3E 1962 * @param in_use 0-not in use, 1-in use 1963 * @param media_type 0-audio, 1-video, 2-multimedia 1964 * @param sep_type 0-source, 1-sink 1965 */ 1966 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1967 1968 /** 1969 * @format 12111111111 1970 * @param subevent_code 1971 * @param avdtp_cid 1972 * @param remote_seid 1973 * @param media_type 1974 * @param sampling_frequency_bitmap 1975 * @param channel_mode_bitmap 1976 * @param block_length_bitmap 1977 * @param subbands_bitmap 1978 * @param allocation_method_bitmap 1979 * @param min_bitpool_value 1980 * @param max_bitpool_value 1981 */ 1982 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1983 1984 /** 1985 * @format 12111111112 1986 * @param subevent_code 1987 * @param avdtp_cid 1988 * @param remote_seid 1989 * @param media_type 1990 * @param layer_bitmap 1991 * @param crc 1992 * @param channel_mode_bitmap 1993 * @param media_payload_format 1994 * @param sampling_frequency_bitmap 1995 * @param vbr 1996 * @param bit_rate_index_bitmap 1997 */ 1998 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x08 1999 2000 /** 2001 * @format 121112131 2002 * @param subevent_code 2003 * @param avdtp_cid 2004 * @param remote_seid 2005 * @param media_type 2006 * @param object_type_bitmap 2007 * @param sampling_frequency_bitmap 2008 * @param channels_bitmap 2009 * @param bit_rate 2010 * @param vbr 2011 */ 2012 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x09 2013 2014 /** 2015 * @format 1211111132 2016 * @param subevent_code 2017 * @param avdtp_cid 2018 * @param remote_seid 2019 * @param media_type 2020 * @param version 2021 * @param channel_mode_bitmap 2022 * @param sampling_frequency_bitmap 2023 * @param vbr 2024 * @param bit_rate_index_bitmap 2025 * @param maximum_sul 2026 */ 2027 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x0A 2028 2029 /** 2030 * @format 12112LV 2031 * @param subevent_code 2032 * @param avdtp_cid 2033 * @param remote_seid 2034 * @param media_type 2035 * @param media_codec_type 2036 * @param media_codec_information_len 2037 * @param media_codec_information 2038 */ 2039 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x0B 2040 2041 2042 /** 2043 * @format 121 2044 * @param subevent_code 2045 * @param avdtp_cid 2046 * @param remote_seid 2047 */ 2048 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x0C 2049 2050 2051 /** 2052 * @format 121 2053 * @param subevent_code 2054 * @param avdtp_cid 2055 * @param remote_seid 2056 */ 2057 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0D 2058 2059 2060 /** 2061 * @format 121111 2062 * @param subevent_code 2063 * @param avdtp_cid 2064 * @param remote_seid 2065 * @param recovery_type 2066 * @param maximum_recovery_window_size 2067 * @param maximum_number_media_packets 2068 */ 2069 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0E 2070 2071 2072 /** 2073 * @format 1212LV 2074 * @param subevent_code 2075 * @param avdtp_cid 2076 * @param remote_seid 2077 * @param cp_type 2078 * @param cp_type_value_len 2079 * @param cp_type_value 2080 */ 2081 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0F 2082 2083 2084 /** 2085 * @format 12111111111 2086 * @param subevent_code 2087 * @param avdtp_cid 2088 * @param remote_seid 2089 * @param fragmentation 2090 * @param transport_identifiers_num 2091 * @param transport_session_identifier_1 2092 * @param transport_session_identifier_2 2093 * @param transport_session_identifier_3 2094 * @param tcid_1 2095 * @param tcid_2 2096 * @param tcid_3 2097 */ 2098 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x10 2099 2100 2101 /** 2102 * @format 121 2103 * @param subevent_code 2104 * @param avdtp_cid 2105 * @param remote_seid 2106 */ 2107 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x11 2108 2109 2110 /** 2111 * @format 121111 2112 * @param subevent_code 2113 * @param avdtp_cid 2114 * @param remote_seid 2115 * @param back_ch 2116 * @param media 2117 * @param recovery 2118 */ 2119 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x12 2120 2121 /** 2122 * @format 121 2123 * @param subevent_code 2124 * @param avdtp_cid 2125 * @param remote_seid 2126 */ 2127 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x13 2128 2129 2130 /** 2131 * @format 12111121111111 2132 * @param subevent_code 2133 * @param avdtp_cid 2134 * @param local_seid 2135 * @param remote_seid 2136 * @param reconfigure 2137 * @param media_type 2138 * @param sampling_frequency 2139 * @param channel_mode 2140 * @param num_channels 2141 * @param block_length 2142 * @param subbands 2143 * @param allocation_method 2144 * @param min_bitpool_value 2145 * @param max_bitpool_value 2146 */ 2147 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x14 2148 2149 /** 2150 * @format 12111111111211 2151 * @param subevent_code 2152 * @param avdtp_cid 2153 * @param local_seid 2154 * @param remote_seid 2155 * @param reconfigure 2156 * @param media_type 2157 * @param layer 2158 * @param crc 2159 * @param channel_mode 2160 * @param num_channels 2161 * @param media_payload_format 2162 * @param sampling_frequency 2163 * @param vbr 2164 * @param bit_rate_index 2165 */ 2166 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x15 2167 2168 /** 2169 * @format 12111113131 2170 * @param subevent_code 2171 * @param avdtp_cid 2172 * @param local_seid 2173 * @param remote_seid 2174 * @param reconfigure 2175 * @param media_type 2176 * @param object_type 2177 * @param sampling_frequency 2178 * @param num_channels 2179 * @param bit_rate 2180 * @param vbr 2181 */ 2182 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x16 2183 2184 /** 2185 * @format 1211111112112 2186 * @param subevent_code 2187 * @param avdtp_cid 2188 * @param local_seid 2189 * @param remote_seid 2190 * @param reconfigure 2191 * @param media_type 2192 * @param version 2193 * @param channel_mode 2194 * @param num_channels 2195 * @param sampling_frequency 2196 * @param vbr 2197 * @param bit_rate_index 2198 * @param maximum_sul 2199 */ 2200 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x17 2201 2202 /** 2203 * @format 1211112LV 2204 * @param subevent_code 2205 * @param avdtp_cid 2206 * @param local_seid 2207 * @param remote_seid 2208 * @param reconfigure 2209 * @param media_type 2210 * @param media_codec_type 2211 * @param media_codec_information_len 2212 * @param media_codec_information 2213 */ 2214 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x18 2215 2216 /** 2217 * @format 12B111 2218 * @param subevent_code 2219 * @param avdtp_cid 2220 * @param bd_addr 2221 * @param local_seid 2222 * @param remote_seid 2223 * @param status 0 == OK 2224 */ 2225 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x19 2226 2227 /** 2228 * @format 121 2229 * @param subevent_code 2230 * @param avdtp_cid 2231 * @param local_seid 2232 */ 2233 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x1A 2234 2235 /** 2236 * @format 1212 2237 * @param subevent_code 2238 * @param avdtp_cid 2239 * @param local_seid 2240 * @param sequence_number 2241 */ 2242 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x1B 2243 2244 2245 /** 2246 * @format 12 2247 * @param subevent_code 2248 * @param avdtp_cid 2249 */ 2250 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x1C 2251 2252 /** 2253 * @format 1212 2254 * @param subevent_code 2255 * @param avdtp_cid 2256 * @param local_seid 2257 * @param delay_100us 2258 */ 2259 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x1D 2260 2261 2262 /** A2DP Subevent */ 2263 /* Stream goes through following states: 2264 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 2265 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 2266 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 2267 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 2268 2269 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 2270 START can come only after the stream is OPENED, and indicates that media transfer is started. 2271 SUSPEND is optional, it pauses the stream. 2272 */ 2273 2274 /** 2275 * @format 121 Sent only by A2DP source. 2276 * @param subevent_code 2277 * @param a2dp_cid 2278 * @param local_seid 2279 */ 2280 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 2281 2282 /** 2283 * @format 12111121111111 2284 * @param subevent_code 2285 * @param a2dp_cid 2286 * @param local_seid 2287 * @param remote_seid 2288 * @param reconfigure 2289 * @param media_type 2290 * @param sampling_frequency 2291 * @param channel_mode 2292 * @param num_channels 2293 * @param block_length 2294 * @param subbands 2295 * @param allocation_method 2296 * @param min_bitpool_value 2297 * @param max_bitpool_value 2298 */ 2299 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 2300 2301 /** 2302 * @format 12111111111211 2303 * @param subevent_code 2304 * @param a2dp_cid 2305 * @param local_seid 2306 * @param remote_seid 2307 * @param reconfigure 2308 * @param media_type 2309 * @param layer 2310 * @param crc 2311 * @param channel_mode 2312 * @param num_channels 2313 * @param media_payload_format 2314 * @param sampling_frequency 2315 * @param vbr 2316 * @param bit_rate_index 2317 */ 2318 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CONFIGURATION 0x03 2319 2320 /** 2321 * @format 12111113131 2322 * @param subevent_code 2323 * @param a2dp_cid 2324 * @param local_seid 2325 * @param remote_seid 2326 * @param reconfigure 2327 * @param media_type 2328 * @param object_type 2329 * @param sampling_frequency 2330 * @param num_channels 2331 * @param bit_rate 2332 * @param vbr 2333 */ 2334 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CONFIGURATION 0x04 2335 2336 /** 2337 * @format 1211111112112 2338 * @param subevent_code 2339 * @param a2dp_cid 2340 * @param local_seid 2341 * @param remote_seid 2342 * @param reconfigure 2343 * @param media_type 2344 * @param version 2345 * @param channel_mode 2346 * @param num_channels 2347 * @param sampling_frequency 2348 * @param vbr 2349 * @param bit_rate_index 2350 * @param maximum_sul 2351 */ 2352 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CONFIGURATION 0x05 2353 2354 /** 2355 * @format 1211112LV 2356 * @param subevent_code 2357 * @param a2dp_cid 2358 * @param local_seid 2359 * @param remote_seid 2360 * @param reconfigure 2361 * @param media_type 2362 * @param media_codec_type 2363 * @param media_codec_information_len 2364 * @param media_codec_information 2365 */ 2366 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x06 2367 2368 /** 2369 * @format 12B111 Stream is opened but not started. 2370 * @param subevent_code 2371 * @param a2dp_cid 2372 * @param bd_addr 2373 * @param local_seid 2374 * @param remote_seid 2375 * @param status 2376 */ 2377 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x07 2378 2379 /** 2380 * @format 121 Indicates that media transfer is started. 2381 * @param subevent_code 2382 * @param a2dp_cid 2383 * @param local_seid 2384 */ 2385 #define A2DP_SUBEVENT_STREAM_STARTED 0x08 2386 2387 /** 2388 * @format 121 Stream is paused. 2389 * @param subevent_code 2390 * @param a2dp_cid 2391 * @param local_seid 2392 */ 2393 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x09 2394 2395 /** 2396 * @format 121 Stream is stopped or aborted. 2397 * @param subevent_code 2398 * @param a2dp_cid 2399 * @param local_seid 2400 */ 2401 #define A2DP_SUBEVENT_STREAM_STOPPED 0x0A 2402 2403 /** 2404 * @format 121 Stream is released. 2405 * @param subevent_code 2406 * @param a2dp_cid 2407 * @param local_seid 2408 */ 2409 #define A2DP_SUBEVENT_STREAM_RELEASED 0x0B 2410 2411 /** 2412 * @format 1211 2413 * @param subevent_code 2414 * @param a2dp_cid 2415 * @param local_seid 2416 * @param signal_identifier 2417 */ 2418 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x0C 2419 2420 /** 2421 * @format 12111 2422 * @param subevent_code 2423 * @param a2dp_cid 2424 * @param local_seid 2425 * @param is_initiator 2426 * @param signal_identifier 2427 */ 2428 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0D 2429 2430 /** 2431 * @format 12B21 2432 * @param subevent_code 2433 * @param a2dp_cid 2434 * @param bd_addr 2435 * @param con_handle 2436 * @param status 0 == OK 2437 */ 2438 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0E 2439 2440 /** 2441 * @format 12 Signaling channel is released. 2442 * @param subevent_code 2443 * @param a2dp_cid 2444 */ 2445 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0F 2446 2447 /** 2448 * @format 1211 Stream was reconfigured 2449 * @param subevent_code 2450 * @param a2dp_cid 2451 * @param local_seid 2452 * @param status 2453 */ 2454 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x10 2455 2456 /** 2457 * @format 12111111111 2458 * @param subevent_code 2459 * @param a2dp_cid 2460 * @param remote_seid 2461 * @param media_type 2462 * @param sampling_frequency_bitmap 2463 * @param channel_mode_bitmap 2464 * @param block_length_bitmap 2465 * @param subbands_bitmap 2466 * @param allocation_method_bitmap 2467 * @param min_bitpool_value 2468 * @param max_bitpool_value 2469 */ 2470 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x11 2471 2472 /** 2473 * @format 12111111112 2474 * @param subevent_code 2475 * @param a2dp_cid 2476 * @param remote_seid 2477 * @param media_type 2478 * @param layer_bitmap 2479 * @param crc 2480 * @param channel_mode_bitmap 2481 * @param media_payload_format 2482 * @param sampling_frequency_bitmap 2483 * @param vbr 2484 * @param bit_rate_index_bitmap 2485 */ 2486 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AUDIO_CAPABILITY 0x12 2487 2488 /** 2489 * @format 121112131 2490 * @param subevent_code 2491 * @param a2dp_cid 2492 * @param remote_seid 2493 * @param media_type 2494 * @param object_type_bitmap 2495 * @param sampling_frequency_bitmap 2496 * @param channels_bitmap 2497 * @param bit_rate 2498 * @param vbr 2499 */ 2500 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_MPEG_AAC_CAPABILITY 0x13 2501 2502 /** 2503 * @format 1211111132 2504 * @param subevent_code 2505 * @param a2dp_cid 2506 * @param remote_seid 2507 * @param media_type 2508 * @param version 2509 * @param channel_mode_bitmap 2510 * @param sampling_frequency_bitmap 2511 * @param vbr 2512 * @param bit_rate_index_bitmap 2513 * @param maximum_sul 2514 */ 2515 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_ATRAC_CAPABILITY 0x14 2516 2517 /** 2518 * @format 12112LV 2519 * @param subevent_code 2520 * @param a2dp_cid 2521 * @param remote_seid 2522 * @param media_type 2523 * @param media_codec_type 2524 * @param media_codec_information_len 2525 * @param media_codec_information 2526 */ 2527 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x15 2528 2529 /** 2530 * @format 121 2531 * @param subevent_code 2532 * @param a2dp_cid 2533 * @param remote_seid 2534 */ 2535 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x16 2536 2537 2538 /** 2539 * @format 1212 2540 * @param subevent_code 2541 * @param a2dp_cid 2542 * @param local_seid 2543 * @param delay_100us 2544 */ 2545 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 2546 2547 /** 2548 * @format 121 2549 * @param subevent_code 2550 * @param a2dp_cid 2551 * @param remote_seid 2552 */ 2553 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x18 2554 2555 /** 2556 * @format 12 2557 * @param subevent_code 2558 * @param a2dp_cid 2559 */ 2560 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_COMPLETE 0x19 2561 2562 2563 /** AVRCP Subevent */ 2564 2565 /** 2566 * @format 1211 2567 * @param subevent_code 2568 * @param avrcp_cid 2569 * @param command_type 2570 * @param play_status 2571 */ 2572 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x01 2573 2574 /** 2575 * @format 121 2576 * @param subevent_code 2577 * @param avrcp_cid 2578 * @param command_type 2579 */ 2580 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x02 2581 2582 /** 2583 * @format 121 2584 * @param subevent_code 2585 * @param avrcp_cid 2586 * @param command_type 2587 */ 2588 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_END 0x03 2589 2590 /** 2591 * @format 121 2592 * @param subevent_code 2593 * @param avrcp_cid 2594 * @param command_type 2595 */ 2596 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_TRACK_REACHED_START 0x04 2597 2598 /** 2599 * @format 1214 2600 * @param subevent_code 2601 * @param avrcp_cid 2602 * @param command_type 2603 * @param playback_position If no track currently selected, then return 0xFFFFFFFF in the INTERIM response. 2604 */ 2605 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYBACK_POS_CHANGED 0x05 2606 2607 /** 2608 * @format 1211 2609 * @param subevent_code 2610 * @param avrcp_cid 2611 * @param command_type 2612 * @param battery_status see avrcp_battery_status_t 2613 */ 2614 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_BATT_STATUS_CHANGED 0x06 2615 2616 /** 2617 * @format 1211 2618 * @param subevent_code 2619 * @param avrcp_cid 2620 * @param command_type 2621 * @param system_status see avrcp_system_status_t 2622 */ 2623 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_SYSTEM_STATUS_CHANGED 0x07 2624 2625 2626 // 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 2627 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_PLAYER_APPLICATION_SETTING_CHANGED 0x08 2628 2629 /** 2630 * @format 121 2631 * @param subevent_code 2632 * @param avrcp_cid 2633 * @param command_type 2634 */ 2635 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x09 2636 2637 /** 2638 * @format 121 2639 * @param subevent_code 2640 * @param avrcp_cid 2641 * @param command_type 2642 */ 2643 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x0A 2644 2645 // AVRCP_SUBEVENT_NOTIFICATION_EVENT_ADDRESSED_PLAYER_CHANGED = 0x0b, -- The Addressed Player has been changed, see 6.9.2. 2646 2647 /** 2648 * @format 1212 2649 * @param subevent_code 2650 * @param avrcp_cid 2651 * @param command_type 2652 * @param uid_counter of the currently browsed player 2653 */ 2654 #define AVRCP_SUBEVENT_NOTIFICATION_EVENT_UIDS_CHANGED 0x0C 2655 2656 /** 2657 * @format 1211 2658 * @param subevent_code 2659 * @param avrcp_cid 2660 * @param command_type 2661 * @param absolute_volume 2662 */ 2663 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x0D 2664 2665 2666 /** 2667 * @format 1211 2668 * @param subevent_code 2669 * @param avrcp_cid 2670 * @param command_type 2671 * @param absolute_volume 2672 */ 2673 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x10 2674 2675 /** 2676 * @format 1211 2677 * @param subevent_code 2678 * @param avrcp_cid 2679 * @param command_type 2680 * @param notification_id 2681 */ 2682 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x11 2683 2684 /** 2685 * @format 112B2 2686 * @param subevent_code 2687 * @param status 0 == OK 2688 * @param avrcp_cid 2689 * @param bd_addr 2690 * @param con_handle 2691 */ 2692 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x12 2693 2694 /** 2695 * @format 12 2696 * @param subevent_code 2697 * @param avrcp_cid 2698 */ 2699 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x13 2700 2701 /** 2702 * @format 12111 2703 * @param subevent_code 2704 * @param avrcp_cid 2705 * @param command_type 2706 * @param repeat_mode 2707 * @param shuffle_mode 2708 */ 2709 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x14 2710 2711 /** 2712 * @format 121441 2713 * @param subevent_code 2714 * @param avrcp_cid 2715 * @param command_type 2716 * @param song_length 2717 * @param song_position 2718 * @param play_status 2719 */ 2720 #define AVRCP_SUBEVENT_PLAY_STATUS 0x15 2721 2722 /** 2723 * @format 1211 2724 * @param subevent_code 2725 * @param avrcp_cid 2726 * @param command_type 2727 * @param operation_id 2728 */ 2729 #define AVRCP_SUBEVENT_OPERATION_START 0x16 2730 2731 /** 2732 * @format 1211 2733 * @param subevent_code 2734 * @param avrcp_cid 2735 * @param command_type 2736 * @param operation_id 2737 */ 2738 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x17 2739 2740 /** 2741 * @format 121 2742 * @param subevent_code 2743 * @param avrcp_cid 2744 * @param command_type 2745 */ 2746 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x18 2747 2748 /** 2749 * @format 12 2750 * @param subevent_code 2751 * @param avrcp_cid 2752 */ 2753 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x19 2754 2755 /** 2756 * @format 12 2757 * @param subevent_code 2758 * @param avrcp_cid 2759 */ 2760 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x1A 2761 2762 /** 2763 * @format 12 2764 * @param subevent_code 2765 * @param avrcp_cid 2766 */ 2767 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x1B 2768 2769 /** 2770 * @format 121111 2771 * @param subevent_code 2772 * @param avrcp_cid 2773 * @param operation_id 2774 * @param button_pressed 2775 * @param operands_length 2776 * @param operand 2777 */ 2778 #define AVRCP_SUBEVENT_OPERATION 0x1C 2779 2780 /** 2781 * @format 1211 2782 * @param subevent_code 2783 * @param avrcp_cid 2784 * @param command_type 2785 * @param track 2786 */ 2787 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x1D 2788 2789 /** 2790 * @format 1211 2791 * @param subevent_code 2792 * @param avrcp_cid 2793 * @param command_type 2794 * @param total_tracks 2795 */ 2796 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x1E 2797 2798 /** 2799 * @format 1214 2800 * @param subevent_code 2801 * @param avrcp_cid 2802 * @param command_type 2803 * @param song_length in ms 2804 */ 2805 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x1F 2806 2807 /** 2808 * @format 121JV 2809 * @param subevent_code 2810 * @param avrcp_cid 2811 * @param command_type 2812 * @param value_len 2813 * @param value 2814 */ 2815 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x20 2816 2817 /* 2818 * @format 121JV 2819 * @param subevent_code 2820 * @param avrcp_cid 2821 * @param command_type 2822 * @param value_len 2823 * @param value 2824 */ 2825 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x21 2826 2827 /* 2828 * @format 121JV 2829 * @param subevent_code 2830 * @param avrcp_cid 2831 * @param command_type 2832 * @param value_len 2833 * @param value 2834 */ 2835 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x22 2836 2837 /* 2838 * @format 121JV 2839 * @param subevent_code 2840 * @param avrcp_cid 2841 * @param command_type 2842 * @param value_len 2843 * @param value 2844 */ 2845 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x23 2846 2847 /* 2848 * @format 1211 2849 * @param subevent_code 2850 * @param avrcp_cid 2851 * @param command_type 2852 * @param status 2853 */ 2854 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x24 2855 2856 /** 2857 * @format 1214 2858 * @param subevent_code 2859 * @param avrcp_cid 2860 * @param command_type 2861 * @param playback_position_ms 2862 */ 2863 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x25 2864 2865 /* 2866 * @format 12111 2867 * @param subevent_code 2868 * @param avrcp_cid 2869 * @param command_type 2870 * @param status 2871 * @param event_id 2872 */ 2873 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID 0x26 2874 /* 2875 * @format 1211 2876 * @param subevent_code 2877 * @param avrcp_cid 2878 * @param command_type 2879 * @param status 2880 */ 2881 #define AVRCP_SUBEVENT_GET_CAPABILITY_EVENT_ID_DONE 0x27 2882 2883 /* 2884 * @format 12113 2885 * @param subevent_code 2886 * @param avrcp_cid 2887 * @param command_type 2888 * @param status 2889 * @param company_id 2890 */ 2891 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID 0x28 2892 /* 2893 * @format 1211 2894 * @param subevent_code 2895 * @param avrcp_cid 2896 * @param command_type 2897 * @param status 2898 */ 2899 #define AVRCP_SUBEVENT_GET_CAPABILITY_COMPANY_ID_DONE 0x29 2900 2901 2902 2903 /** 2904 * @format 1B2 2905 * @param subevent_code 2906 * @param bd_addr 2907 * @param browsing_cid 2908 */ 2909 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x30 2910 2911 /** 2912 * @format 11B2 2913 * @param subevent_code 2914 * @param status 0 == OK 2915 * @param bd_addr 2916 * @param browsing_cid 2917 */ 2918 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x31 2919 2920 /** 2921 * @format 12 2922 * @param subevent_code 2923 * @param browsing_cid 2924 */ 2925 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x32 2926 2927 /** 2928 * @format 12211 2929 * @param subevent_code 2930 * @param browsing_cid 2931 * @param uid_counter 2932 * @param browsing_status 2933 * @param bluetooth_status 2934 */ 2935 #define AVRCP_SUBEVENT_BROWSING_DONE 0x33 2936 2937 /** 2938 * @format 1214 2939 * @param subevent_code 2940 * @param browsing_cid 2941 * @param scope 2942 * @param attr_bitmap 2943 */ 2944 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x34 2945 2946 /** 2947 * @format 121 2948 * @param subevent_code 2949 * @param browsing_cid 2950 * @param scope 2951 */ 2952 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x35 2953 2954 /** 2955 * @format 122 2956 * @param subevent_code 2957 * @param browsing_cid 2958 * @param player_id 2959 */ 2960 #define AVRCP_SUBEVENT_BROWSING_SET_BROWSED_PLAYER 0x36 2961 2962 2963 2964 /** 2965 * @format 121BH1 2966 * @param subevent_code 2967 * @param goep_cid 2968 * @param status 2969 * @param bd_addr 2970 * @param con_handle 2971 * @param incoming 2972 */ 2973 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2974 2975 /** 2976 * @format 12 2977 * @param subevent_code 2978 * @param goep_cid 2979 */ 2980 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2981 2982 /** 2983 * @format 12 2984 * @param subevent_code 2985 * @param goep_cid 2986 */ 2987 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2988 2989 /** 2990 * @format 121BH1 2991 * @param subevent_code 2992 * @param pbap_cid 2993 * @param status 2994 * @param bd_addr 2995 * @param con_handle 2996 * @param incoming 2997 */ 2998 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2999 3000 /** 3001 * @format 12 3002 * @param subevent_code 3003 * @param goep_cid 3004 */ 3005 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 3006 3007 /** 3008 * @format 121 3009 * @param subevent_code 3010 * @param goep_cid 3011 * @param status 3012 */ 3013 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 3014 3015 /** 3016 * @format 1212 3017 * @param subevent_code 3018 * @param goep_cid 3019 * @param status 3020 * @param phoneboook_size 3021 */ 3022 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 3023 3024 /** 3025 * @format 1211 3026 * @param subevent_code 3027 * @param goep_cid 3028 * @param user_id_required 3029 * @param full_access 3030 */ 3031 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 3032 3033 /** 3034 * @format 12JVJV 3035 * @param subevent_code 3036 * @param goep_cid 3037 * @param name_len 3038 * @param name 3039 * @param handle_len 3040 * @param handle 3041 */ 3042 #define PBAP_SUBEVENT_CARD_RESULT 0x06 3043 3044 3045 // HID Meta Event Group 3046 3047 /** 3048 * @format 12BH 3049 * @param subevent_code 3050 * @param hid_cid 3051 * @param address 3052 * @param handle 3053 */ 3054 #define HID_SUBEVENT_INCOMING_CONNECTION 0x01 3055 3056 /** 3057 * @format 121BH1 3058 * @param subevent_code 3059 * @param hid_cid 3060 * @param status 3061 * @param bd_addr 3062 * @param con_handle 3063 * @param incoming 3064 */ 3065 #define HID_SUBEVENT_CONNECTION_OPENED 0x02 3066 3067 /** 3068 * @format 12 3069 * @param subevent_code 3070 * @param hid_cid 3071 */ 3072 #define HID_SUBEVENT_CONNECTION_CLOSED 0x03 3073 3074 /** 3075 * @format 12 3076 * @param subevent_code 3077 * @param hid_cid 3078 */ 3079 #define HID_SUBEVENT_CAN_SEND_NOW 0x04 3080 3081 /** 3082 * @format 12 3083 * @param subevent_code 3084 * @param hid_cid 3085 */ 3086 #define HID_SUBEVENT_SUSPEND 0x05 3087 3088 /** 3089 * @format 12 3090 * @param subevent_code 3091 * @param hid_cid 3092 */ 3093 #define HID_SUBEVENT_EXIT_SUSPEND 0x06 3094 3095 /** 3096 * @format 12 3097 * @param subevent_code 3098 * @param hid_cid 3099 */ 3100 #define HID_SUBEVENT_VIRTUAL_CABLE_UNPLUG 0x07 3101 3102 /** 3103 * @format 121LV 3104 * @param subevent_code 3105 * @param hid_cid 3106 * @param handshake_status 3107 * @param report_len 3108 * @param report 3109 */ 3110 #define HID_SUBEVENT_GET_REPORT_RESPONSE 0x08 3111 3112 /** 3113 * @format 121 3114 * @param subevent_code 3115 * @param hid_cid 3116 * @param handshake_status 3117 */ 3118 #define HID_SUBEVENT_SET_REPORT_RESPONSE 0x09 3119 3120 /** 3121 * @format 1211 3122 * @param subevent_code 3123 * @param hid_cid 3124 * @param handshake_status 3125 * @param protocol_mode 3126 */ 3127 #define HID_SUBEVENT_GET_PROTOCOL_RESPONSE 0x0A 3128 3129 /** 3130 * @format 1211 3131 * @param subevent_code 3132 * @param hid_cid 3133 * @param handshake_status 3134 * @param protocol_mode 3135 */ 3136 #define HID_SUBEVENT_SET_PROTOCOL_RESPONSE 0x0B 3137 3138 /** 3139 * @format 12LV 3140 * @param subevent_code 3141 * @param hid_cid 3142 * @param report_len 3143 * @param report 3144 */ 3145 #define HID_SUBEVENT_REPORT 0x0C 3146 3147 /** 3148 * @format 121 3149 * @param subevent_code 3150 * @param hid_cid 3151 * @param status 3152 */ 3153 #define HID_SUBEVENT_DESCRIPTOR_AVAILABLE 0x0D 3154 3155 /** 3156 * @format 1222 3157 * @param subevent_code 3158 * @param hid_cid 3159 * @param host_max_latency 3160 * @param host_min_timeout 3161 */ 3162 #define HID_SUBEVENT_SNIFF_SUBRATING_PARAMS 0x0E 3163 3164 // HIDS Meta Event Group 3165 3166 /** 3167 * @format 12 3168 * @param subevent_code 3169 * @param con_handle 3170 */ 3171 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 3172 3173 /** 3174 * @format 121 3175 * @param subevent_code 3176 * @param con_handle 3177 * @param protocol_mode 3178 */ 3179 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 3180 3181 /** 3182 * @format 121 3183 * @param subevent_code 3184 * @param con_handle 3185 * @param enable 3186 */ 3187 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 3188 3189 /** 3190 * @format 121 3191 * @param subevent_code 3192 * @param con_handle 3193 * @param enable 3194 */ 3195 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 3196 3197 /** 3198 * @format 121 3199 * @param subevent_code 3200 * @param con_handle 3201 * @param enable 3202 */ 3203 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 3204 3205 /** 3206 * @format 121 3207 * @param subevent_code 3208 * @param con_handle 3209 * @param enable 3210 */ 3211 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 3212 3213 /** 3214 * @format 121 3215 * @param subevent_code 3216 * @param con_handle 3217 * @param enable 3218 */ 3219 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 3220 3221 /** 3222 * @format 12 3223 * @param subevent_code 3224 * @param con_handle 3225 */ 3226 #define HIDS_SUBEVENT_SUSPEND 0x08 3227 3228 /** 3229 * @format 12 3230 * @param subevent_code 3231 * @param con_handle 3232 */ 3233 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 3234 3235 /** 3236 * @format 1211 3237 * @param subevent_code 3238 * @param con_handle 3239 * @param measurement_type 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 3240 * @param is_enhanced 3241 */ 3242 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 3243 3244 /** 3245 * @format 12 3246 * @param subevent_code 3247 * @param con_handle 3248 */ 3249 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 3250 3251 /** 3252 * @format 12 3253 * @param subevent_code 3254 * @param con_handle 3255 */ 3256 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 3257 3258 /** 3259 * @format 12111 3260 * @param subevent_code 3261 * @param hids_cid 3262 * @param status 3263 * @param num_instances 3264 * @param poll_bitmap 3265 */ 3266 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_CONNECTED 0x04 3267 3268 /** 3269 * @format 12111 3270 * @param subevent_code 3271 * @param hids_cid 3272 * @param sevice_index 3273 * @param att_status see ATT errors in bluetooth.h 3274 * @param level 3275 */ 3276 #define GATTSERVICE_SUBEVENT_BATTERY_SERVICE_LEVEL 0x05 3277 3278 /** 3279 * @format 1H1 3280 * @param subevent_code 3281 * @param con_handle 3282 * @param att_status 3283 */ 3284 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_DONE 0x06 3285 3286 /** 3287 * @format 1H1T 3288 * @param subevent_code 3289 * @param con_handle 3290 * @param att_status 3291 * @param value 3292 */ 3293 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MANUFACTURER_NAME 0x07 3294 3295 /** 3296 * @format 1H1T 3297 * @param subevent_code 3298 * @param con_handle 3299 * @param att_status 3300 * @param value 3301 */ 3302 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_MODEL_NUMBER 0x08 3303 3304 /** 3305 * @format 1H1T 3306 * @param subevent_code 3307 * @param con_handle 3308 * @param att_status 3309 * @param value 3310 */ 3311 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SERIAL_NUMBER 0x09 3312 3313 /** 3314 * @format 1H1T 3315 * @param subevent_code 3316 * @param con_handle 3317 * @param att_status 3318 * @param value 3319 */ 3320 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_HARDWARE_REVISION 0x0A 3321 3322 /** 3323 * @format 1H1T 3324 * @param subevent_code 3325 * @param con_handle 3326 * @param att_status 3327 * @param value 3328 */ 3329 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_FIRMWARE_REVISION 0x0B 3330 3331 /** 3332 * @format 1H1T 3333 * @param subevent_code 3334 * @param con_handle 3335 * @param att_status 3336 * @param value 3337 */ 3338 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SOFTWARE_REVISION 0x0C 3339 3340 /** 3341 * @format 1H1413 3342 * @param subevent_code 3343 * @param con_handle 3344 * @param att_status 3345 * @param manufacturer_id_low 3346 * @param manufacturer_id_high 3347 * @param organizationally_unique_id 3348 */ 3349 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_SYSTEM_ID 0x0D 3350 3351 /** 3352 * @format 1H122 3353 * @param subevent_code 3354 * @param con_handle 3355 * @param att_status 3356 * @param value_a 3357 * @param value_b 3358 */ 3359 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_IEEE_REGULATORY_CERTIFICATION 0x0E 3360 3361 /** 3362 * @format 1H11222 3363 * @param subevent_code 3364 * @param con_handle 3365 * @param att_status 3366 * @param vendor_source_id 3367 * @param vendor_id 3368 * @param product_id 3369 * @param product_version 3370 */ 3371 #define GATTSERVICE_SUBEVENT_DEVICE_INFORMATION_PNP_ID 0x0F 3372 3373 /** 3374 * @format 1H1 3375 * @param subevent_code 3376 * @param con_handle 3377 * @param att_status 3378 */ 3379 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_CONNECTED 0x10 3380 3381 /** 3382 * @format 1H 3383 * @param subevent_code 3384 * @param con_handle 3385 */ 3386 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED 0x11 3387 3388 /** 3389 * @format 1H 3390 * @param subevent_code 3391 * @param con_handle 3392 */ 3393 #define GATTSERVICE_SUBEVENT_SPP_SERVICE_DISCONNECTED 0x12 3394 3395 /** 3396 * @format 12111 3397 * @param subevent_code 3398 * @param hids_cid 3399 * @param status 3400 * @param protocol_mode 3401 * @param num_instances 3402 */ 3403 #define GATTSERVICE_SUBEVENT_HID_SERVICE_CONNECTED 0x13 3404 3405 /** 3406 * @format 1211LV 3407 * @param subevent_code 3408 * @param hids_cid 3409 * @param service_index 3410 * @param report_id 3411 * @param report_len 3412 * @param report 3413 */ 3414 #define GATTSERVICE_SUBEVENT_HID_REPORT 0x14 3415 3416 /** 3417 * @format 1212111 3418 * @param subevent_code 3419 * @param hids_cid 3420 * @param service_index 3421 * @param base_usb_hid_version Version number of base USB HID Specification implemented by HID Device 3422 * @param country_code Country HID Device hardware is localized for (not localized: 0x00) 3423 * @param remote_wake Indicates whether HID Device is capable of sending a wake-signal to a HID Host 3424 * @param normally_connectable Indicates whether HID Device will be advertising when bonded but not connected. 3425 */ 3426 #define GATTSERVICE_SUBEVENT_HID_INFORMATION 0x15 3427 3428 /** 3429 * @format 1211 3430 * @param subevent_code 3431 * @param hids_cid 3432 * @param service_index 3433 * @param protocol_mode see hid_protocol_mode_t in btstack_hid.h 3434 */ 3435 #define GATTSERVICE_SUBEVENT_HID_PROTOCOL_MODE 0x16 3436 3437 /** 3438 * @format 121 3439 * @param subevent_code 3440 * @param hids_cid 3441 * @param configuration 3442 */ 3443 #define GATTSERVICE_SUBEVENT_HID_SERVICE_REPORTS_NOTIFICATION 0x17 3444 3445 /** 3446 * @format 1H22 3447 * @param subevent_code 3448 * @param con_handle 3449 * @param max_scan_interval 3450 * @param min_scan_window 3451 */ 3452 #define GATTSERVICE_SUBEVENT_SCAN_PARAMETERS_SERVICE_SCAN_INTERVAL_UPDATE 0x18 3453 3454 3455 // MAP Meta Event Group 3456 3457 /** 3458 * @format 121BH1 3459 * @param subevent_code 3460 * @param map_cid 3461 * @param status 3462 * @param bd_addr 3463 * @param con_handle 3464 * @param incoming 3465 */ 3466 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 3467 3468 /** 3469 * @format 12 3470 * @param subevent_code 3471 * @param map_cid 3472 */ 3473 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 3474 3475 /** 3476 * @format 121 3477 * @param subevent_code 3478 * @param map_cid 3479 * @param status 3480 */ 3481 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 3482 3483 3484 /** 3485 * @format 12LV 3486 * @param subevent_code 3487 * @param map_cid 3488 * @param name_len 3489 * @param name 3490 */ 3491 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 3492 3493 /** 3494 * @format 12D 3495 * @param subevent_code 3496 * @param map_cid 3497 * @param handle 3498 3499 */ 3500 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 3501 3502 /** 3503 * @format 12 3504 * @param subevent_code 3505 * @param map_cid 3506 */ 3507 #define MAP_SUBEVENT_PARSING_DONE 0x06 3508 3509 3510 // MESH Meta Event Group 3511 3512 /** 3513 * @format 1 3514 * @param subevent_code 3515 */ 3516 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 3517 3518 /** 3519 * @format 11 3520 * @param subevent_code 3521 * @param status 3522 */ 3523 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 3524 3525 /** 3526 * @format 1121 3527 * @param subevent_code 3528 * @param status 3529 * @param pb_transport_cid 3530 * @param pb_type 3531 */ 3532 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 3533 3534 /** 3535 * @format 112 3536 * @param subevent_code 3537 * @param pb_transport_cid 3538 * @param reason 3539 */ 3540 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 3541 3542 /** 3543 * @format 121 3544 * @param subevent_code 3545 * @param pb_transport_cid 3546 * @param attention_time in seconds 3547 */ 3548 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 3549 3550 /** 3551 * Device Role 3552 * @format 12 3553 * @param subevent_code 3554 * @param pb_transport_cid 3555 */ 3556 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 3557 3558 /** 3559 * Device Role 3560 * @format 12 3561 * @param subevent_code 3562 * @param pb_transport_cid 3563 */ 3564 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 3565 3566 /** 3567 * Device Role 3568 * @format 12 3569 * @param subevent_code 3570 * @param pb_transport_cid 3571 */ 3572 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 3573 3574 /** 3575 * Device Role 3576 * @format 124 3577 * @param subevent_code 3578 * @param pb_transport_cid 3579 * @param output_oob number 3580 */ 3581 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 3582 3583 /** 3584 * Device Role 3585 * @format 12 3586 * @param subevent_code 3587 * @param pb_transport_cid 3588 */ 3589 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 3590 3591 /** 3592 * Provisioner Role 3593 * @format 12 3594 * @param subevent_code 3595 * @param pb_transport_cid 3596 */ 3597 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 3598 3599 /** 3600 * Provisioner Role 3601 * @format 12 3602 * @param subevent_code 3603 * @param pb_transport_cid 3604 */ 3605 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 3606 3607 /** 3608 * Provisioner Role 3609 * @format 12 3610 * @param subevent_code 3611 * @param pb_transport_cid 3612 */ 3613 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 3614 3615 /** 3616 * Provisioner Role 3617 * @format 124 3618 * @param subevent_code 3619 * @param pb_transport_cid 3620 * @param output_oob number 3621 */ 3622 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 3623 3624 /** 3625 * Provisioner Role 3626 * @format 12 3627 * @param subevent_code 3628 * @param pb_transport_cid 3629 */ 3630 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 3631 3632 /** 3633 * Provisioner Role 3634 * @format 1212111212 3635 * @param subevent_code 3636 * @param pb_transport_cid 3637 * @param num_elements 3638 * @param algorithms 3639 * @param public_key 3640 * @param static_oob_type 3641 * @param output_oob_size 3642 * @param output_oob_action 3643 * @param input_oob_size 3644 * @param input_oob_action 3645 */ 3646 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 3647 3648 /** 3649 * @format 12 3650 * @param subevent_code 3651 * @param pb_transport_cid 3652 */ 3653 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 3654 3655 /** 3656 * @format 11 3657 * @param subevent_code 3658 * @param attention_time in seconds 3659 */ 3660 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 3661 3662 /** 3663 * @format 1H 3664 * @param subevent_code 3665 * @param con_handle 3666 */ 3667 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 3668 3669 /** 3670 * @format 1H 3671 * @param subevent_code 3672 * @param con_handle 3673 */ 3674 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 3675 3676 /** 3677 * @format 1H 3678 * @param subevent_code 3679 * @param con_handle 3680 */ 3681 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 3682 3683 /** 3684 * @format 1H 3685 * @param subevent_code 3686 * @param con_handle 3687 */ 3688 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 3689 3690 /** 3691 * @format 114411 3692 * @param subevent_code 3693 * @param element_index 3694 * @param model_identifier 3695 * @param state_identifier 3696 * @param reason 3697 * @param value 3698 */ 3699 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 3700 3701 /** 3702 * @format 114412 3703 * @param subevent_code 3704 * @param element_index 3705 * @param model_identifier 3706 * @param state_identifier 3707 * @param reason 3708 * @param value 3709 */ 3710 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 3711 3712 // Mesh Client Events 3713 /** 3714 * @format 11442 3715 * @param subevent_code 3716 * @param element_index 3717 * @param model_identifier 3718 * @param opcode 3719 * @param dest 3720 */ 3721 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 3722 3723 /** 3724 * @format 121114 3725 * @param subevent_code 3726 * @param dest 3727 * @param status 3728 * @param present_value 3729 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3730 * @param remaining_time_ms 3731 */ 3732 #define MESH_SUBEVENT_GENERIC_ON_OFF 0x31 3733 3734 /** 3735 * @format 121224 3736 * @param subevent_code 3737 * @param dest 3738 * @param status 3739 * @param present_value 3740 * @param target_value optional, if value > 0, than remaining_time_ms must be read 3741 * @param remaining_time_ms 3742 */ 3743 #define MESH_SUBEVENT_GENERIC_LEVEL 0x32 3744 3745 /** 3746 * @format 1222211 3747 * @param subevent_code 3748 * @param dest 3749 * @param netkey_index 3750 * @param appkey_index 3751 * @param company_id 3752 * @param test_id 3753 * @param acknowledged 3754 */ 3755 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x33 3756 3757 /** 3758 * @format 11 3759 * @param subevent_code 3760 * @param element_index 3761 */ 3762 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x34 3763 3764 /** 3765 * @format 1211 3766 * @param subevent_code 3767 * @param dest 3768 * @param status 3769 * @param transition_time_gdtt 3770 */ 3771 #define MESH_SUBEVENT_GENERIC_DEFAULT_TRANSITION_TIME 0x35 3772 3773 /** 3774 * @format 1211 3775 * @param subevent_code 3776 * @param dest 3777 * @param foundation_status 3778 * @param secure_network_beacon_state 3779 */ 3780 #define MESH_SUBEVENT_CONFIGURATION_BEACON 0x36 3781 3782 // Composition Data has variable of element descriptions, with two lists of model lists 3783 // Use .. getters to access data 3784 #define MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 0x37 3785 3786 /** 3787 * @format 1211 3788 * @param subevent_code 3789 * @param dest 3790 * @param foundation_status 3791 * @param default_ttl 3792 */ 3793 #define MESH_SUBEVENT_CONFIGURATION_DEFAULT_TTL 0x38 3794 3795 /** 3796 * @format 1211 3797 * @param subevent_code 3798 * @param dest 3799 * @param foundation_status 3800 * @param gatt_proxy_state 3801 */ 3802 #define MESH_SUBEVENT_CONFIGURATION_GATT_PROXY 0x39 3803 3804 /** 3805 * @format 121111 3806 * @param subevent_code 3807 * @param dest 3808 * @param foundation_status 3809 * @param relay 3810 * @param retransmit_count the number of times that packet is transmitted for each packet that is relayed. 3811 * @param retransmit_interval_ms retransmission interval in ms 3812 */ 3813 #define MESH_SUBEVENT_CONFIGURATION_RELAY 0x40 3814 3815 3816 /** 3817 * @format 12122111114 3818 * @param subevent_code 3819 * @param dest element_address 3820 * @param foundation_status 3821 * @param publish_address 3822 * @param appkey_index 3823 * @param credential_flag 3824 * @param publish_ttl 3825 * @param publish_period 3826 * @param publish_retransmit_count 3827 * @param publish_retransmit_interval_steps 3828 * @param model_identifier 3829 */ 3830 #define MESH_SUBEVENT_CONFIGURATION_MODEL_PUBLICATION 0x41 3831 3832 /** 3833 * @format 12124 3834 * @param subevent_code 3835 * @param dest 3836 * @param foundation_status 3837 * @param address 3838 * @param model_identifier 3839 */ 3840 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION 0x42 3841 3842 /** 3843 * @format 1214112 3844 * @param subevent_code 3845 * @param dest 3846 * @param foundation_status 3847 * @param model_identifier 3848 * @param num_subscription_addresses 3849 * @param subscription_address_pos 3850 * @param subscription_address_item 3851 */ 3852 #define MESH_SUBEVENT_CONFIGURATION_MODEL_SUBSCRIPTION_LIST_ITEM 0x43 3853 3854 3855 /** 3856 * @format 121 3857 * @param subevent_code 3858 * @param dest 3859 * @param foundation_status 3860 */ 3861 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX 0x44 3862 3863 /** 3864 * @format 121112 3865 * @param subevent_code 3866 * @param dest 3867 * @param foundation_status 3868 * @param num_netkey_indexes 3869 * @param netkey_index_pos 3870 * @param netkey_index_item 3871 */ 3872 #define MESH_SUBEVENT_CONFIGURATION_NETKEY_INDEX_LIST_ITEM 0x45 3873 3874 /** 3875 * @format 12122 3876 * @param subevent_code 3877 * @param dest 3878 * @param foundation_status 3879 * @param netkey_index_item 3880 * @param appkey_index_item 3881 */ 3882 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX 0x46 3883 3884 /** 3885 * @format 12121122 3886 * @param subevent_code 3887 * @param dest 3888 * @param foundation_status 3889 * @param netkey_index 3890 * @param num_appkey_indexes 3891 * @param appkey_index_pos 3892 * @param netkey_index_item 3893 * @param appkey_index_item 3894 */ 3895 #define MESH_SUBEVENT_CONFIGURATION_APPKEY_INDEX_LIST_ITEM 0x47 3896 3897 /** 3898 * @format 12121 3899 * @param subevent_code 3900 * @param dest 3901 * @param foundation_status 3902 * @param netkey_index_item 3903 * @param identity_status 3904 */ 3905 #define MESH_SUBEVENT_CONFIGURATION_NODE_IDENTITY 0x48 3906 3907 /** 3908 * @format 12124 3909 * @param subevent_code 3910 * @param dest 3911 * @param foundation_status 3912 * @param appkey_index 3913 * @param model_identifier 3914 */ 3915 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP 0x49 3916 3917 /** 3918 * @format 1214112 3919 * @param subevent_code 3920 * @param dest 3921 * @param foundation_status 3922 * @param model_id 3923 * @param num_appkey_indexes 3924 * @param appkey_index_pos 3925 * @param appkey_index_item 3926 */ 3927 #define MESH_SUBEVENT_CONFIGURATION_MODEL_APP_LIST_ITEM 0x50 3928 3929 /** 3930 * @format 121 3931 * @param subevent_code 3932 * @param dest 3933 * @param foundation_status 3934 */ 3935 #define MESH_SUBEVENT_CONFIGURATION_NODE_RESET 0x51 3936 3937 /** 3938 * @format 1211 3939 * @param subevent_code 3940 * @param dest 3941 * @param foundation_status 3942 * @param friend_state 3943 */ 3944 #define MESH_SUBEVENT_CONFIGURATION_FRIEND 0x52 3945 3946 /** 3947 * @format 12121 3948 * @param subevent_code 3949 * @param dest 3950 * @param foundation_status 3951 * @param netkey_index 3952 * @param phase 3953 */ 3954 #define MESH_SUBEVENT_CONFIGURATION_KEY_REFRESH_PHASE 0x53 3955 3956 /** 3957 * @format 121222122 3958 * @param subevent_code 3959 * @param dest 3960 * @param foundation_status 3961 * @param heartbeat_destination 3962 * @param count_S 3963 * @param period_S 3964 * @param ttl 3965 * @param features 3966 * @param netkey_index 3967 */ 3968 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_PUBLICATION 0x54 3969 3970 /** 3971 * @format 121222211 3972 * @param subevent_code 3973 * @param dest 3974 * @param foundation_status 3975 * @param heartbeat_destination 3976 * @param heartbeat_source 3977 * @param count_S 3978 * @param period_S 3979 * @param min_hops 3980 * @param max_hops 3981 */ 3982 #define MESH_SUBEVENT_CONFIGURATION_HEARTBEAT_SUBSCRIPTION 0x55 3983 3984 /** 3985 * @format 12123 3986 * @param subevent_code 3987 * @param dest 3988 * @param foundation_status 3989 * @param lpn_address 3990 * @param poll_timeout 3991 */ 3992 #define MESH_SUBEVENT_CONFIGURATION_LOW_POWER_NODE_POLL_TIMEOUT 0x56 3993 3994 /** 3995 * @format 12112 3996 * @param subevent_code 3997 * @param dest 3998 * @param foundation_status 3999 * @param transmit_count 4000 * @param transmit_interval_steps_ms 4001 */ 4002 #define MESH_SUBEVENT_CONFIGURATION_NETWORK_TRANSMIT 0x57 4003 4004 4005 #endif 4006