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