1 /* 2 * Copyright (C) 2015 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the copyright holders nor the names of 14 * contributors may be used to endorse or promote products derived 15 * from this software without specific prior written permission. 16 * 4. Any redistribution, use, or modification is done solely for 17 * personal benefit and not for any commercial purpose or for 18 * monetary gain. 19 * 20 * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24 * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30 * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * Please inquire about commercial licensing options at 34 * [email protected] 35 * 36 */ 37 38 /* 39 * btstack-defines.h 40 * 41 * BTstack definitions, events, and error codes */ 42 43 #ifndef BTSTACK_DEFINES_H 44 #define BTSTACK_DEFINES_H 45 46 #include <stdint.h> 47 #include "btstack_linked_list.h" 48 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 // ERRORS 137 // last error code in 2.1 is 0x38 - we start with 0x50 for BTstack errors 138 139 /* ENUM_START: BTSTACK_ERROR_CODE */ 140 #define BTSTACK_CONNECTION_TO_BTDAEMON_FAILED 0x50 141 #define BTSTACK_ACTIVATION_FAILED_SYSTEM_BLUETOOTH 0x51 142 #define BTSTACK_ACTIVATION_POWERON_FAILED 0x52 143 #define BTSTACK_ACTIVATION_FAILED_UNKNOWN 0x53 144 #define BTSTACK_NOT_ACTIVATED 0x54 145 #define BTSTACK_BUSY 0x55 146 #define BTSTACK_MEMORY_ALLOC_FAILED 0x56 147 #define BTSTACK_ACL_BUFFERS_FULL 0x57 148 149 // l2cap errors - enumeration by the command that created them 150 #define L2CAP_COMMAND_REJECT_REASON_COMMAND_NOT_UNDERSTOOD 0x60 151 #define L2CAP_COMMAND_REJECT_REASON_SIGNALING_MTU_EXCEEDED 0x61 152 #define L2CAP_COMMAND_REJECT_REASON_INVALID_CID_IN_REQUEST 0x62 153 154 #define L2CAP_CONNECTION_RESPONSE_RESULT_SUCCESSFUL 0x63 155 #define L2CAP_CONNECTION_RESPONSE_RESULT_PENDING 0x64 156 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_PSM 0x65 157 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_SECURITY 0x66 158 #define L2CAP_CONNECTION_RESPONSE_RESULT_REFUSED_RESOURCES 0x67 159 #define L2CAP_CONNECTION_RESPONSE_RESULT_ERTM_NOT_SUPPORTED 0x68 160 // should be L2CAP_CONNECTION_RTX_TIMEOUT 161 #define L2CAP_CONNECTION_RESPONSE_RESULT_RTX_TIMEOUT 0x69 162 #define L2CAP_CONNECTION_BASEBAND_DISCONNECT 0x6A 163 #define L2CAP_SERVICE_ALREADY_REGISTERED 0x6B 164 #define L2CAP_DATA_LEN_EXCEEDS_REMOTE_MTU 0x6C 165 #define L2CAP_SERVICE_DOES_NOT_EXIST 0x6D 166 #define L2CAP_LOCAL_CID_DOES_NOT_EXIST 0x6E 167 168 #define RFCOMM_MULTIPLEXER_STOPPED 0x70 169 #define RFCOMM_CHANNEL_ALREADY_REGISTERED 0x71 170 #define RFCOMM_NO_OUTGOING_CREDITS 0x72 171 #define RFCOMM_AGGREGATE_FLOW_OFF 0x73 172 #define RFCOMM_DATA_LEN_EXCEEDS_MTU 0x74 173 174 #define SDP_HANDLE_ALREADY_REGISTERED 0x80 175 #define SDP_QUERY_INCOMPLETE 0x81 176 #define SDP_SERVICE_NOT_FOUND 0x82 177 #define SDP_HANDLE_INVALID 0x83 178 #define SDP_QUERY_BUSY 0x84 179 180 #define ATT_HANDLE_VALUE_INDICATION_IN_PROGRESS 0x90 181 #define ATT_HANDLE_VALUE_INDICATION_TIMEOUT 0x91 182 #define ATT_HANDLE_VALUE_INDICATION_DISCONNECT 0x92 183 184 #define GATT_CLIENT_NOT_CONNECTED 0x93 185 #define GATT_CLIENT_BUSY 0x94 186 #define GATT_CLIENT_IN_WRONG_STATE 0x95 187 #define GATT_CLIENT_DIFFERENT_CONTEXT_FOR_ADDRESS_ALREADY_EXISTS 0x96 188 #define GATT_CLIENT_VALUE_TOO_LONG 0x97 189 #define GATT_CLIENT_CHARACTERISTIC_NOTIFICATION_NOT_SUPPORTED 0x98 190 #define GATT_CLIENT_CHARACTERISTIC_INDICATION_NOT_SUPPORTED 0x99 191 192 #define BNEP_SERVICE_ALREADY_REGISTERED 0xA0 193 #define BNEP_CHANNEL_NOT_CONNECTED 0xA1 194 #define BNEP_DATA_LEN_EXCEEDS_MTU 0xA2 195 196 // OBEX ERRORS 197 #define OBEX_UNKNOWN_ERROR 0xB0 198 #define OBEX_CONNECT_FAILED 0xB1 199 #define OBEX_DISCONNECTED 0xB2 200 #define OBEX_NOT_FOUND 0xB3 201 #define OBEX_NOT_ACCEPTABLE 0xB4 202 203 #define AVDTP_SEID_DOES_NOT_EXIST 0xC0 204 #define AVDTP_CONNECTION_DOES_NOT_EXIST 0xC1 205 #define AVDTP_CONNECTION_IN_WRONG_STATE 0xC2 206 #define AVDTP_STREAM_ENDPOINT_IN_WRONG_STATE 0xC3 207 #define AVDTP_STREAM_ENDPOINT_DOES_NOT_EXIST 0xC4 208 #define AVDTP_MEDIA_CONNECTION_DOES_NOT_EXIST 0xC5 209 210 #define MESH_ERROR_APPKEY_INDEX_INVALID 0xD0 211 /* ENUM_END */ 212 213 // DAEMON COMMANDS 214 215 #define OGF_BTSTACK 0x3d 216 217 // cmds for BTstack 218 // get state: @returns HCI_STATE 219 #define BTSTACK_GET_STATE 0x01 220 221 // set power mode: param HCI_POWER_MODE 222 #define BTSTACK_SET_POWER_MODE 0x02 223 224 // set capture mode: param on 225 #define BTSTACK_SET_ACL_CAPTURE_MODE 0x03 226 227 // get BTstack version 228 #define BTSTACK_GET_VERSION 0x04 229 230 // get system Bluetooth state 231 #define BTSTACK_GET_SYSTEM_BLUETOOTH_ENABLED 0x05 232 233 // set system Bluetooth state 234 #define BTSTACK_SET_SYSTEM_BLUETOOTH_ENABLED 0x06 235 236 // enable inquiry scan for this client 237 #define BTSTACK_SET_DISCOVERABLE 0x07 238 239 // set global Bluetooth state 240 #define BTSTACK_SET_BLUETOOTH_ENABLED 0x08 241 242 // create l2cap channel: param bd_addr(48), psm (16) 243 #define L2CAP_CREATE_CHANNEL 0x20 244 245 // disconnect l2cap disconnect, param channel(16), reason(8) 246 #define L2CAP_DISCONNECT 0x21 247 248 // register l2cap service: param psm(16), mtu (16) 249 #define L2CAP_REGISTER_SERVICE 0x22 250 251 // unregister l2cap disconnect, param psm(16) 252 #define L2CAP_UNREGISTER_SERVICE 0x23 253 254 // accept connection param bd_addr(48), dest cid (16) 255 #define L2CAP_ACCEPT_CONNECTION 0x24 256 257 // decline l2cap disconnect,param bd_addr(48), dest cid (16), reason(8) 258 #define L2CAP_DECLINE_CONNECTION 0x25 259 260 // create l2cap channel: param bd_addr(48), psm (16), mtu (16) 261 #define L2CAP_CREATE_CHANNEL_MTU 0x26 262 263 // register SDP Service Record: service record (size) 264 #define SDP_REGISTER_SERVICE_RECORD 0x30 265 266 // unregister SDP Service Record 267 #define SDP_UNREGISTER_SERVICE_RECORD 0x31 268 269 // Get remote RFCOMM services 270 #define SDP_CLIENT_QUERY_RFCOMM_SERVICES 0x32 271 272 // Get remote SDP services 273 #define SDP_CLIENT_QUERY_SERVICES 0x33 274 275 // RFCOMM "HCI" Commands 276 #define RFCOMM_CREATE_CHANNEL 0x40 277 #define RFCOMM_DISCONNECT 0x41 278 #define RFCOMM_REGISTER_SERVICE 0x42 279 #define RFCOMM_UNREGISTER_SERVICE 0x43 280 #define RFCOMM_ACCEPT_CONNECTION 0x44 281 #define RFCOMM_DECLINE_CONNECTION 0x45 282 #define RFCOMM_PERSISTENT_CHANNEL 0x46 283 #define RFCOMM_CREATE_CHANNEL_WITH_CREDITS 0x47 284 #define RFCOMM_REGISTER_SERVICE_WITH_CREDITS 0x48 285 #define RFCOMM_GRANT_CREDITS 0x49 286 287 // GAP Classic 0x50 288 #define GAP_DISCONNECT 0x50 289 290 // GAP LE 0x60 291 #define GAP_LE_SCAN_START 0x60 292 #define GAP_LE_SCAN_STOP 0x61 293 #define GAP_LE_CONNECT 0x62 294 #define GAP_LE_CONNECT_CANCEL 0x63 295 #define GAP_LE_SET_SCAN_PARAMETERS 0x64 296 297 // GATT (Client) 0x70 298 #define GATT_DISCOVER_ALL_PRIMARY_SERVICES 0x70 299 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID16 0x71 300 #define GATT_DISCOVER_PRIMARY_SERVICES_BY_UUID128 0x72 301 #define GATT_FIND_INCLUDED_SERVICES_FOR_SERVICE 0x73 302 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE 0x74 303 #define GATT_DISCOVER_CHARACTERISTICS_FOR_SERVICE_BY_UUID128 0x75 304 #define GATT_DISCOVER_CHARACTERISTIC_DESCRIPTORS 0x76 305 #define GATT_READ_VALUE_OF_CHARACTERISTIC 0x77 306 #define GATT_READ_LONG_VALUE_OF_CHARACTERISTIC 0x78 307 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC_WITHOUT_RESPONSE 0x79 308 #define GATT_WRITE_VALUE_OF_CHARACTERISTIC 0x7A 309 #define GATT_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7B 310 #define GATT_RELIABLE_WRITE_LONG_VALUE_OF_CHARACTERISTIC 0x7C 311 #define GATT_READ_CHARACTERISTIC_DESCRIPTOR 0X7D 312 #define GATT_READ_LONG_CHARACTERISTIC_DESCRIPTOR 0X7E 313 #define GATT_WRITE_CHARACTERISTIC_DESCRIPTOR 0X7F 314 #define GATT_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR 0X80 315 #define GATT_WRITE_CLIENT_CHARACTERISTIC_CONFIGURATION 0X81 316 #define GATT_GET_MTU 0x82 317 318 // SM 0x90 319 #define SM_SET_AUTHENTICATION_REQUIREMENTS 0x90 320 #define SM_SET_IO_CAPABILITIES 0x92 321 #define SM_BONDING_DECLINE 0x93 322 #define SM_JUST_WORKS_CONFIRM 0x94 323 #define SM_NUMERIC_COMPARISON_CONFIRM 0x95 324 #define SM_PASSKEY_INPUT 0x96 325 326 // ATT 327 328 // .. 329 // Internal properties reuse some GATT Characteristic Properties fields 330 #define ATT_DB_VERSION 0x01 331 332 // EVENTS 333 334 /** 335 * @format 1 336 * @param state 337 */ 338 #define BTSTACK_EVENT_STATE 0x60 339 340 /** 341 * @format 1 342 * @param number_connections 343 */ 344 #define BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0x61 345 346 /** 347 * @format 348 */ 349 #define BTSTACK_EVENT_POWERON_FAILED 0x62 350 351 /** 352 * @format 1 353 * @param discoverable 354 */ 355 #define BTSTACK_EVENT_DISCOVERABLE_ENABLED 0x66 356 357 // Daemon Events 358 359 /** 360 * @format 112 361 * @param major 362 * @param minor 363 @ @param revision 364 */ 365 #define DAEMON_EVENT_VERSION 0x63 366 367 // data: system bluetooth on/off (bool) 368 /** 369 * @format 1 370 * param system_bluetooth_enabled 371 */ 372 #define DAEMON_EVENT_SYSTEM_BLUETOOTH_ENABLED 0x64 373 374 // data: event (8), len(8), status (8) == 0, address (48), name (1984 bits = 248 bytes) 375 376 /* 377 * @format 1BT 378 * @param status == 0 to match read_remote_name_request 379 * @param address 380 * @param name 381 */ 382 #define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65 383 384 // internal - data: event(8) 385 #define DAEMON_EVENT_CONNECTION_OPENED 0x67 386 387 // internal - data: event(8) 388 #define DAEMON_EVENT_CONNECTION_CLOSED 0x68 389 390 // data: event(8), len(8), local_cid(16), credits(8) 391 #define DAEMON_EVENT_L2CAP_CREDITS 0x74 392 393 /** 394 * @format 12 395 * @param status 396 * @param psm 397 */ 398 #define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75 399 400 /** 401 * @format 21 402 * @param rfcomm_cid 403 * @param credits 404 */ 405 #define DAEMON_EVENT_RFCOMM_CREDITS 0x84 406 407 /** 408 * @format 11 409 * @param status 410 * @param channel_id 411 */ 412 #define DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85 413 414 /** 415 * @format 11 416 * @param status 417 * @param server_channel_id 418 */ 419 #define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86 420 421 /** 422 * @format 14 423 * @param status 424 * @param service_record_handle 425 */ 426 #define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90 427 428 429 430 // additional HCI events 431 432 /** 433 * @brief Indicates HCI transport enters/exits Sleep mode 434 * @format 1 435 * @param active 436 */ 437 #define HCI_EVENT_TRANSPORT_SLEEP_MODE 0x69 438 439 /** 440 * @brief Outgoing packet 441 */ 442 #define HCI_EVENT_TRANSPORT_PACKET_SENT 0x6E 443 444 /** 445 * @format B 446 * @param handle 447 */ 448 #define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F 449 450 451 // L2CAP EVENTS 452 453 /** 454 * @format 1BH222222111 455 * @param status 456 * @param address 457 * @param handle 458 * @param psm 459 * @param local_cid 460 * @param remote_cid 461 * @param local_mtu 462 * @param remote_mtu 463 * @param flush_timeout 464 * @param incoming 465 * @param mode 466 * @param fcs 467 */ 468 #define L2CAP_EVENT_CHANNEL_OPENED 0x70 469 470 /* 471 * @format 2 472 * @param local_cid 473 */ 474 #define L2CAP_EVENT_CHANNEL_CLOSED 0x71 475 476 /** 477 * @format BH222 478 * @param address 479 * @param handle 480 * @param psm 481 * @param local_cid 482 * @param remote_cid 483 */ 484 #define L2CAP_EVENT_INCOMING_CONNECTION 0x72 485 486 // ?? 487 // data: event(8), len(8), handle(16) 488 #define L2CAP_EVENT_TIMEOUT_CHECK 0x73 489 490 /** 491 * @format H2222 492 * @param handle 493 * @param interval_min 494 * @param interval_max 495 * @param latencey 496 * @param timeout_multiplier 497 */ 498 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_REQUEST 0x76 499 500 // data: event(8), len(8), handle(16), result (16) (0 == ok, 1 == fail) 501 /** 502 * @format H2 503 * @param handle 504 * @param result 505 */ 506 #define L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE 0x77 507 508 /** 509 * @format 2 510 * @param local_cid 511 */ 512 #define L2CAP_EVENT_CAN_SEND_NOW 0x78 513 514 // LE Data Channels 515 516 /** 517 * @format 1BH2222 518 * @param address_type 519 * @param address 520 * @param handle 521 * @param psm 522 * @param local_cid 523 * @param remote_cid 524 * @param remote_mtu 525 */ 526 #define L2CAP_EVENT_LE_INCOMING_CONNECTION 0x79 527 528 /** 529 * @format 11BH122222 530 * @param status 531 * @param address_type 532 * @param address 533 * @param handle 534 * @param incoming 535 * @param psm 536 * @param local_cid 537 * @param remote_cid 538 * @param local_mtu 539 * @param remote_mtu 540 */ 541 #define L2CAP_EVENT_LE_CHANNEL_OPENED 0x7a 542 543 /* 544 * @format 2 545 * @param local_cid 546 */ 547 #define L2CAP_EVENT_LE_CHANNEL_CLOSED 0x7b 548 549 /* 550 * @format 2 551 * @param local_cid 552 */ 553 #define L2CAP_EVENT_LE_CAN_SEND_NOW 0x7c 554 555 /* 556 * @format 2 557 * @param local_cid 558 */ 559 #define L2CAP_EVENT_LE_PACKET_SENT 0x7d 560 561 /* 562 * @format 2 563 * @param local_cid 564 */ 565 #define L2CAP_EVENT_ERTM_BUFFER_RELEASED 0x7e 566 567 568 // RFCOMM EVENTS 569 570 /** 571 * @format 1B21221 572 * @param status 573 * @param bd_addr 574 * @param con_handle 575 * @param server_channel 576 * @param rfcomm_cid 577 * @param max_frame_size 578 * @param incoming 579 */ 580 #define RFCOMM_EVENT_CHANNEL_OPENED 0x80 581 582 /** 583 * @format 2 584 * @param rfcomm_cid 585 */ 586 #define RFCOMM_EVENT_CHANNEL_CLOSED 0x81 587 588 /** 589 * @format B12 590 * @param bd_addr 591 * @param server_channel 592 * @param rfcomm_cid 593 */ 594 #define RFCOMM_EVENT_INCOMING_CONNECTION 0x82 595 596 /** 597 * @format 21 598 * @param rfcomm_cid 599 * @param line_status 600 */ 601 #define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83 602 603 /** 604 * @format 21 605 * @param rfcomm_cid 606 * @param modem_status 607 */ 608 #define RFCOMM_EVENT_REMOTE_MODEM_STATUS 0x87 609 610 /** 611 * TODO: format for variable data 2? 612 * param rfcomm_cid 613 * param rpn_data 614 */ 615 #define RFCOMM_EVENT_PORT_CONFIGURATION 0x88 616 617 /** 618 * @format 2 619 * @param rfcomm_cid 620 */ 621 #define RFCOMM_EVENT_CAN_SEND_NOW 0x89 622 623 624 /** 625 * @format 1 626 * @param status 627 */ 628 #define SDP_EVENT_QUERY_COMPLETE 0x91 629 630 /** 631 * @format 1T 632 * @param rfcomm_channel 633 * @param name 634 */ 635 #define SDP_EVENT_QUERY_RFCOMM_SERVICE 0x92 636 637 /** 638 * @format 22221 639 * @param record_id 640 * @param attribute_id 641 * @param attribute_length 642 * @param data_offset 643 * @param data 644 */ 645 #define SDP_EVENT_QUERY_ATTRIBUTE_BYTE 0x93 646 647 /** 648 * @format 22LV 649 * @param record_id 650 * @param attribute_id 651 * @param attribute_length 652 * @param attribute_value 653 */ 654 #define SDP_EVENT_QUERY_ATTRIBUTE_VALUE 0x94 655 656 /** 657 * @format 224 658 * @param total_count 659 * @param record_index 660 * @param record_handle 661 * @note Not provided by daemon, only used for internal testing 662 */ 663 #define SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE 0x95 664 665 /** 666 * @format H1 667 * @param handle 668 * @param status 669 */ 670 #define GATT_EVENT_QUERY_COMPLETE 0xA0 671 672 /** 673 * @format HX 674 * @param handle 675 * @param service 676 */ 677 #define GATT_EVENT_SERVICE_QUERY_RESULT 0xA1 678 679 /** 680 * @format HY 681 * @param handle 682 * @param characteristic 683 */ 684 #define GATT_EVENT_CHARACTERISTIC_QUERY_RESULT 0xA2 685 686 /** 687 * @format H2X 688 * @param handle 689 * @param include_handle 690 * @param service 691 */ 692 #define GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT 0xA3 693 694 /** 695 * @format HZ 696 * @param handle 697 * @param characteristic_descriptor 698 */ 699 #define GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT 0xA4 700 701 /** 702 * @format H2LV 703 * @param handle 704 * @param value_handle 705 * @param value_length 706 * @param value 707 */ 708 #define GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA5 709 710 /** 711 * @format H22LV 712 * @param handle 713 * @param value_handle 714 * @param value_offset 715 * @param value_length 716 * @param value 717 */ 718 #define GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT 0xA6 719 720 /** 721 * @format H2LV 722 * @param handle 723 * @param value_handle 724 * @param value_length 725 * @param value 726 */ 727 #define GATT_EVENT_NOTIFICATION 0xA7 728 729 /** 730 * @format H2LV 731 * @param handle 732 * @param value_handle 733 * @param value_length 734 * @param value 735 */ 736 #define GATT_EVENT_INDICATION 0xA8 737 738 /** 739 * @format H2LV 740 * @param handle 741 * @param descriptor_handle 742 * @param descriptor_length 743 * @param descriptor 744 */ 745 #define GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xA9 746 747 /** 748 * @format H2LV 749 * @param handle 750 * @param descriptor_offset 751 * @param descriptor_length 752 * @param descriptor 753 */ 754 #define GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT 0xAA 755 756 /** 757 * @format H2 758 * @param handle 759 * @param MTU 760 */ 761 #define GATT_EVENT_MTU 0xAB 762 763 /** 764 * @format H 765 * @param handle 766 */ 767 #define GATT_EVENT_CAN_WRITE_WITHOUT_RESPONSE 0xAC 768 769 /** 770 * @format 1BH 771 * @param address_type 772 * @param address 773 * @param handle 774 */ 775 #define ATT_EVENT_CONNECTED 0xB3 776 777 /** 778 * @format H 779 * @param handle 780 */ 781 #define ATT_EVENT_DISCONNECTED 0xB4 782 783 /** 784 * @format H2 785 * @param handle 786 * @param MTU 787 */ 788 #define ATT_EVENT_MTU_EXCHANGE_COMPLETE 0xB5 789 790 /** 791 * @format 1H2 792 * @param status 793 * @param conn_handle 794 * @param attribute_handle 795 */ 796 #define ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE 0xB6 797 798 /** 799 * @format 800 */ 801 #define ATT_EVENT_CAN_SEND_NOW 0xB7 802 803 // TODO: daemon only event 804 805 /** 806 * @format 12 807 * @param status 808 * @param service_uuid 809 */ 810 #define BNEP_EVENT_SERVICE_REGISTERED 0xC0 811 812 /** 813 * @format 12222BH 814 * @param status 815 * @param bnep_cid 816 * @param source_uuid 817 * @param destination_uuid 818 * @param mtu 819 * @param remote_address 820 * @param con_handle 821 */ 822 #define BNEP_EVENT_CHANNEL_OPENED 0xC1 823 824 /** 825 * @format 222B 826 * @param bnep_cid 827 * @param source_uuid 828 * @param destination_uuid 829 * @param remote_address 830 */ 831 #define BNEP_EVENT_CHANNEL_CLOSED 0xC2 832 833 /** 834 * @format 222B1 835 * @param bnep_cid 836 * @param source_uuid 837 * @param destination_uuid 838 * @param remote_address 839 * @param channel_state 840 */ 841 #define BNEP_EVENT_CHANNEL_TIMEOUT 0xC3 842 843 /** 844 * @format 222B 845 * @param bnep_cid 846 * @param source_uuid 847 * @param destination_uuid 848 * @param remote_address 849 */ 850 #define BNEP_EVENT_CAN_SEND_NOW 0xC4 851 852 /** 853 * @format H1B 854 * @param handle 855 * @param addr_type 856 * @param address 857 */ 858 #define SM_EVENT_JUST_WORKS_REQUEST 0xD0 859 860 /** 861 * @format H1B 862 * @param handle 863 * @param addr_type 864 * @param address 865 */ 866 #define SM_EVENT_JUST_WORKS_CANCEL 0xD1 867 868 /** 869 * @format H1B4 870 * @param handle 871 * @param addr_type 872 * @param address 873 * @param passkey 874 */ 875 #define SM_EVENT_PASSKEY_DISPLAY_NUMBER 0xD2 876 877 /** 878 * @format H1B 879 * @param handle 880 * @param addr_type 881 * @param address 882 */ 883 #define SM_EVENT_PASSKEY_DISPLAY_CANCEL 0xD3 884 885 /** 886 * @format H1B 887 * @param handle 888 * @param addr_type 889 * @param address 890 */ 891 #define SM_EVENT_PASSKEY_INPUT_NUMBER 0xD4 892 893 /** 894 * @format H1B 895 * @param handle 896 * @param addr_type 897 * @param address 898 */ 899 #define SM_EVENT_PASSKEY_INPUT_CANCEL 0xD5 900 901 /** 902 * @format H1B4 903 * @param handle 904 * @param addr_type 905 * @param address 906 * @param passkey 907 */ 908 #define SM_EVENT_NUMERIC_COMPARISON_REQUEST 0xD6 909 910 /** 911 * @format H1B 912 * @param handle 913 * @param addr_type 914 * @param address 915 */ 916 #define SM_EVENT_NUMERIC_COMPARISON_CANCEL 0xD7 917 918 /** 919 * @format H1B 920 * @param handle 921 * @param addr_type 922 * @param address 923 */ 924 #define SM_EVENT_IDENTITY_RESOLVING_STARTED 0xD8 925 926 /** 927 * @format H1B 928 * @param handle 929 * @param addr_type 930 * @param address 931 */ 932 #define SM_EVENT_IDENTITY_RESOLVING_FAILED 0xD9 933 934 /** 935 * @brief Identify resolving succeeded 936 * 937 * @format H1B1B2 938 * @param handle 939 * @param addr_type 940 * @param address 941 * @param identity_addr_type 942 * @param identity_address 943 * @param index 944 * 945 */ 946 #define SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED 0xDA 947 948 /** 949 * @format H1B 950 * @param handle 951 * @param addr_type 952 * @param address 953 */ 954 #define SM_EVENT_AUTHORIZATION_REQUEST 0xDB 955 956 /** 957 * @format H1B1 958 * @param handle 959 * @param addr_type 960 * @param address 961 * @param authorization_result 962 */ 963 #define SM_EVENT_AUTHORIZATION_RESULT 0xDC 964 965 /** 966 * @format H1 967 * @param handle 968 * @param action see SM_KEYPRESS_* 969 */ 970 #define SM_EVENT_KEYPRESS_NOTIFICATION 0xDD 971 972 /** 973 * @brief Emitted during pairing to inform app about address used as identity 974 * 975 * @format H1B1B2 976 * @param handle 977 * @param addr_type 978 * @param address 979 * @param identity_addr_type 980 * @param identity_address 981 * @param index 982 */ 983 #define SM_EVENT_IDENTITY_CREATED 0xDE 984 985 /** 986 * @brief Emitted to inform app that pairing is complete. Possible status values: 987 * ERROR_CODE_SUCCESS -> pairing success 988 * ERROR_CODE_CONNECTION_TIMEOUT -> timeout 989 * ERROR_CODE_REMOTE_USER_TERMINATED_CONNECTION -> disconnect 990 * ERROR_CODE_AUTHENTICATION_FAILURE -> SM protocol error, see reason field with SM_REASON_* from bluetooth.h 991 * 992 * @format H1B11 993 * @param handle 994 * @param addr_type 995 * @param address 996 * @param status 997 * @param reason if status == ERROR_CODE_AUTHENTICATION_FAILURE 998 */ 999 #define SM_EVENT_PAIRING_COMPLETE 0xDF 1000 1001 1002 // GAP 1003 1004 /** 1005 * @format H1 1006 * @param handle 1007 * @param security_level 1008 */ 1009 #define GAP_EVENT_SECURITY_LEVEL 0xE0 1010 1011 /** 1012 * @format 1B 1013 * @param status 1014 * @param address 1015 */ 1016 #define GAP_EVENT_DEDICATED_BONDING_COMPLETED 0xE1 1017 1018 /** 1019 * @format 11B1JV 1020 * @param advertising_event_type 1021 * @param address_type 1022 * @param address 1023 * @param rssi 1024 * @param data_length 1025 * @param data 1026 */ 1027 #define GAP_EVENT_ADVERTISING_REPORT 0xE2 1028 1029 /** 1030 * @format B132111JV 1031 * @param bd_addr 1032 * @param page_scan_repetition_mode 1033 * @param class_of_device 1034 * @param clock_offset 1035 * @param rssi_available 1036 * @param rssi 1037 * @param name_available 1038 * @param name_len 1039 * @param name 1040 */ 1041 #define GAP_EVENT_INQUIRY_RESULT 0xE3 1042 1043 /** 1044 * @format 1 1045 * @param status 1046 */ 1047 #define GAP_EVENT_INQUIRY_COMPLETE 0xE4 1048 1049 1050 // Meta Events, see below for sub events 1051 #define HCI_EVENT_HSP_META 0xE8 1052 #define HCI_EVENT_HFP_META 0xE9 1053 #define HCI_EVENT_ANCS_META 0xEA 1054 #define HCI_EVENT_AVDTP_META 0xEB 1055 #define HCI_EVENT_AVRCP_META 0xEC 1056 #define HCI_EVENT_GOEP_META 0xED 1057 #define HCI_EVENT_PBAP_META 0xEE 1058 #define HCI_EVENT_HID_META 0xEF 1059 #define HCI_EVENT_A2DP_META 0xF0 1060 #define HCI_EVENT_HIDS_META 0xF1 1061 #define HCI_EVENT_GATTSERVICE_META 0xF2 1062 #define HCI_EVENT_BIP_META 0xF3 1063 #define HCI_EVENT_MAP_META 0xF4 1064 #define HCI_EVENT_MESH_META 0xF5 1065 1066 // Potential other meta groups 1067 // #define HCI_EVENT_BNEP_META 0xxx 1068 // #define HCI_EVENT_GAP_META 0xxx 1069 // #define HCI_EVENT_GATT_META 0xxx 1070 // #define HCI_EVENT_PAN_META 0xxx 1071 // #define HCI_EVENT_SDP_META 0xxx 1072 // #define HCI_EVENT_SM_META 0xxx 1073 1074 1075 /** HSP Subevent */ 1076 1077 /** 1078 * @format 11 1079 * @param subevent_code 1080 * @param status 0 == OK 1081 */ 1082 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1083 1084 /** 1085 * @format 11 1086 * @param subevent_code 1087 * @param status 0 == OK 1088 */ 1089 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1090 1091 1092 /** 1093 * @format 11H 1094 * @param subevent_code 1095 * @param status 0 == OK 1096 * @param handle 1097 */ 1098 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1099 1100 /** 1101 * @format 11 1102 * @param subevent_code 1103 * @param status 0 == OK 1104 */ 1105 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1106 1107 /** 1108 * @format 1 1109 * @param subevent_code 1110 */ 1111 #define HSP_SUBEVENT_RING 0x05 1112 1113 /** 1114 * @format 11 1115 * @param subevent_code 1116 * @param gain Valid range: [0,15] 1117 */ 1118 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1119 1120 /** 1121 * @format 11 1122 * @param subevent_code 1123 * @param gain Valid range: [0,15] 1124 */ 1125 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1126 1127 /** 1128 * @format 1JV 1129 * @param subevent_code 1130 * @param value_length 1131 * @param value 1132 */ 1133 #define HSP_SUBEVENT_HS_COMMAND 0x08 1134 1135 /** 1136 * @format 1JV 1137 * @param subevent_code 1138 * @param value_length 1139 * @param value 1140 */ 1141 #define HSP_SUBEVENT_AG_INDICATION 0x09 1142 1143 1144 /** HFP Subevent */ 1145 1146 /** 1147 * @format 11HB 1148 * @param subevent_code 1149 * @param status 0 == OK 1150 * @param con_handle 1151 * @param bd_addr 1152 */ 1153 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1154 1155 /** 1156 * @format 1 1157 * @param subevent_code 1158 */ 1159 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1160 1161 /** 1162 * @format 11HB1 1163 * @param subevent_code 1164 * @param status 0 == OK 1165 * @param handle 1166 * @param bd_addr 1167 * @param negotiated_codec 1168 */ 1169 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1170 1171 /** 1172 * @format 1 1173 * @param subevent_code 1174 */ 1175 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1176 1177 /** 1178 * @format 11 1179 * @param subevent_code 1180 * @param status 0 == OK 1181 */ 1182 #define HFP_SUBEVENT_COMPLETE 0x05 1183 1184 /** 1185 * @format 11111111T 1186 * @param subevent_code 1187 * @param indicator_index 1188 * @param indicator_status 1189 * @param indicator_min_range 1190 * @param indicator_max_range 1191 * @param indicator_mandatory 1192 * @param indicator_enabled 1193 * @param indicator_status_changed 1194 * @param indicator_name 1195 */ 1196 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1197 1198 /** 1199 * @format 111T 1200 * @param subevent_code 1201 * @param network_operator_mode 1202 * @param network_operator_format 1203 * @param network_operator_name 1204 */ 1205 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1206 1207 /** 1208 * @format 11 1209 * @param subevent_code 1210 * @param error 1211 */ 1212 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1213 1214 /** 1215 * @format 1 1216 * @param subevent_code 1217 */ 1218 #define HFP_SUBEVENT_START_RINGINIG 0x0A 1219 1220 /** 1221 * @format 1 1222 * @param subevent_code 1223 */ 1224 #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1225 1226 /** 1227 * @format 1 1228 * @param subevent_code 1229 */ 1230 #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1231 1232 /** 1233 * @format 1T 1234 * @param subevent_code 1235 * @param number 1236 */ 1237 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1238 1239 /** 1240 * @format 1 1241 * @param subevent_code 1242 */ 1243 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1244 1245 /** 1246 * @format 1T 1247 * @param subevent_code 1248 * @param number 1249 */ 1250 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1251 1252 /** 1253 * @format 1T 1254 * @param subevent_code 1255 * @param dtmf code 1256 */ 1257 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1258 1259 /** 1260 * @format 1 1261 * @param subevent_code 1262 */ 1263 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1264 1265 /** 1266 * @format 1 1267 * @param subevent_code 1268 */ 1269 #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1270 1271 /** 1272 * @format 1 1273 * @param subevent_code 1274 */ 1275 #define HFP_SUBEVENT_RING 0x13 1276 1277 /** 1278 * @format 111 1279 * @param subevent_code 1280 * @param status 1281 * @param gain 1282 */ 1283 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1284 1285 /** 1286 * @format 111 1287 * @param subevent_code 1288 * @param status 1289 * @param gain 1290 */ 1291 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1292 1293 /** 1294 * @format 11T 1295 * @param subevent_code 1296 * @param type 1297 * @param number 1298 */ 1299 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1300 1301 /** 1302 * @format 11T 1303 * @param subevent_code 1304 * @param type 1305 * @param number 1306 */ 1307 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1308 1309 /** 1310 * @format 1111111T 1311 * @param subevent_code 1312 * @param clcc_idx 1313 * @param clcc_dir 1314 * @param clcc_status 1315 * @param clcc_mode 1316 * @param clcc_mpty 1317 * @param bnip_type 1318 * @param bnip_number 1319 */ 1320 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1321 1322 /** 1323 * @format 111T 1324 * @param subevent_code 1325 * @param status 1326 * @param bnip_type 1327 * @param bnip_number 1328 */ 1329 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1330 1331 /** 1332 * @format 1T 1333 * @param subevent_code 1334 * @param value 1335 */ 1336 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1337 1338 // ANCS Client 1339 1340 /** 1341 * @format 1H 1342 * @param subevent_code 1343 * @param handle 1344 */ 1345 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1346 1347 /** 1348 * @format 1H2T 1349 * @param subevent_code 1350 * @param handle 1351 * @param attribute_id 1352 * @param text 1353 */ 1354 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1355 1356 /** 1357 * @format 1H 1358 * @param subevent_code 1359 * @param handle 1360 */ 1361 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1362 1363 1364 /** AVDTP Subevent */ 1365 1366 /** 1367 * @format 1211 1368 * @param subevent_code 1369 * @param avdtp_cid 1370 * @param local_seid 1371 * @param signal_identifier 1372 */ 1373 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1374 1375 /** 1376 * @format 1211 1377 * @param subevent_code 1378 * @param avdtp_cid 1379 * @param local_seid 1380 * @param signal_identifier 1381 */ 1382 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1383 1384 /** 1385 * @format 1211 1386 * @param subevent_code 1387 * @param avdtp_cid 1388 * @param local_seid 1389 * @param signal_identifier 1390 */ 1391 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1392 1393 /** 1394 * @format 12B1 1395 * @param subevent_code 1396 * @param avdtp_cid 1397 * @param bd_addr 1398 * @param status 0 == OK 1399 */ 1400 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1401 1402 /** 1403 * @format 12 1404 * @param subevent_code 1405 * @param avdtp_cid 1406 */ 1407 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1408 1409 /** 1410 * @format 121111 1411 * @param subevent_code 1412 * @param avdtp_cid 1413 * @param remote_seid 0x01 – 0x3E 1414 * @param in_use 0-not in use, 1-in use 1415 * @param media_type 0-audio, 1-video, 2-multimedia 1416 * @param sep_type 0-source, 1-sink 1417 */ 1418 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1419 1420 /** 1421 * @format 121111111111 1422 * @param subevent_code 1423 * @param avdtp_cid 1424 * @param local_seid 1425 * @param remote_seid 1426 * @param media_type 1427 * @param sampling_frequency_bitmap 1428 * @param channel_mode_bitmap 1429 * @param block_length_bitmap 1430 * @param subbands_bitmap 1431 * @param allocation_method_bitmap 1432 * @param min_bitpool_value 1433 * @param max_bitpool_value 1434 */ 1435 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1436 1437 /** 1438 * @format 121112LV 1439 * @param subevent_code 1440 * @param avdtp_cid 1441 * @param local_seid 1442 * @param remote_seid 1443 * @param media_type 1444 * @param media_codec_type 1445 * @param media_codec_information_len 1446 * @param media_codec_information 1447 */ 1448 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 1449 1450 1451 /** 1452 * @format 1211 1453 * @param subevent_code 1454 * @param avdtp_cid 1455 * @param local_seid 1456 * @param remote_seid 1457 */ 1458 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x09 1459 1460 1461 /** 1462 * @format 1211 1463 * @param subevent_code 1464 * @param avdtp_cid 1465 * @param local_seid 1466 * @param remote_seid 1467 */ 1468 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0A 1469 1470 1471 /** 1472 * @format 1211111 1473 * @param subevent_code 1474 * @param avdtp_cid 1475 * @param local_seid 1476 * @param remote_seid 1477 * @param recovery_type 1478 * @param maximum_recovery_window_size 1479 * @param maximum_number_media_packets 1480 */ 1481 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0B 1482 1483 1484 /** 1485 * @format 12112LV 1486 * @param subevent_code 1487 * @param avdtp_cid 1488 * @param local_seid 1489 * @param remote_seid 1490 * @param cp_type 1491 * @param cp_type_value_len 1492 * @param cp_type_value 1493 */ 1494 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0C 1495 1496 1497 /** 1498 * @format 121111111111 1499 * @param subevent_code 1500 * @param avdtp_cid 1501 * @param local_seid 1502 * @param remote_seid 1503 * @param fragmentation 1504 * @param transport_identifiers_num 1505 * @param transport_session_identifier_1 1506 * @param transport_session_identifier_2 1507 * @param transport_session_identifier_3 1508 * @param tcid_1 1509 * @param tcid_2 1510 * @param tcid_3 1511 */ 1512 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x0D 1513 1514 1515 /** 1516 * @format 1211 1517 * @param subevent_code 1518 * @param avdtp_cid 1519 * @param local_seid 1520 * @param remote_seid 1521 */ 1522 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 1523 1524 1525 /** 1526 * @format 1211111 1527 * @param subevent_code 1528 * @param avdtp_cid 1529 * @param local_seid 1530 * @param remote_seid 1531 * @param back_ch 1532 * @param media 1533 * @param recovery 1534 */ 1535 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x0F 1536 1537 1538 /** 1539 * @format 12111121111111 1540 * @param subevent_code 1541 * @param avdtp_cid 1542 * @param local_seid 1543 * @param remote_seid 1544 * @param reconfigure 1545 * @param media_type 1546 * @param sampling_frequency 1547 * @param channel_mode 1548 * @param num_channels 1549 * @param block_length 1550 * @param subbands 1551 * @param allocation_method 1552 * @param min_bitpool_value 1553 * @param max_bitpool_value 1554 */ 1555 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x10 1556 1557 /** 1558 * @format 1211112LV 1559 * @param subevent_code 1560 * @param avdtp_cid 1561 * @param local_seid 1562 * @param remote_seid 1563 * @param reconfigure 1564 * @param media_type 1565 * @param media_codec_type 1566 * @param media_codec_information_len 1567 * @param media_codec_information 1568 */ 1569 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x11 1570 1571 /** 1572 * @format 12B111 1573 * @param subevent_code 1574 * @param avdtp_cid 1575 * @param bd_addr 1576 * @param local_seid 1577 * @param remote_seid 1578 * @param status 0 == OK 1579 */ 1580 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x12 1581 1582 /** 1583 * @format 121 1584 * @param subevent_code 1585 * @param avdtp_cid 1586 * @param local_seid 1587 */ 1588 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x13 1589 1590 /** 1591 * @format 1212 1592 * @param subevent_code 1593 * @param avdtp_cid 1594 * @param local_seid 1595 * @param sequence_number 1596 */ 1597 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x14 1598 1599 /** 1600 * @format 1211 1601 * @param subevent_code 1602 * @param avdtp_cid 1603 * @param local_seid 1604 * @param remote_seid 1605 */ 1606 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 0x15 1607 1608 1609 /** 1610 * @format 12 1611 * @param subevent_code 1612 * @param avdtp_cid 1613 */ 1614 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x16 1615 1616 1617 /** A2DP Subevent */ 1618 /* Stream goes through following states: 1619 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 1620 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 1621 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 1622 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 1623 1624 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 1625 START can come only after the stream is OPENED, and indicates that media transfer is started. 1626 SUSPEND is optional, it pauses the stream. 1627 */ 1628 1629 /** 1630 * @format 121 Sent only by A2DP source. 1631 * @param subevent_code 1632 * @param a2dp_cid 1633 * @param local_seid 1634 */ 1635 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 1636 1637 /** 1638 * @format 12111121111111 1639 * @param subevent_code 1640 * @param a2dp_cid 1641 * @param int_seid 1642 * @param acp_seid 1643 * @param reconfigure 1644 * @param media_type 1645 * @param sampling_frequency 1646 * @param channel_mode 1647 * @param num_channels 1648 * @param block_length 1649 * @param subbands 1650 * @param allocation_method 1651 * @param min_bitpool_value 1652 * @param max_bitpool_value 1653 */ 1654 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 1655 1656 /** 1657 * @format 1211112LV 1658 * @param subevent_code 1659 * @param a2dp_cid 1660 * @param int_seid 1661 * @param acp_seid 1662 * @param reconfigure 1663 * @param media_type 1664 * @param media_codec_type 1665 * @param media_codec_information_len 1666 * @param media_codec_information 1667 */ 1668 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 1669 1670 /** 1671 * @format 12B111 Stream is opened byt not started. 1672 * @param subevent_code 1673 * @param a2dp_cid 1674 * @param bd_addr 1675 * @param local_seid 1676 * @param remote_seid 1677 * @param status 1678 */ 1679 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 1680 1681 /** 1682 * @format 121 Indicates that media transfer is started. 1683 * @param subevent_code 1684 * @param a2dp_cid 1685 * @param local_seid 1686 */ 1687 #define A2DP_SUBEVENT_STREAM_STARTED 0x05 1688 1689 /** 1690 * @format 121 Stream is paused. 1691 * @param subevent_code 1692 * @param a2dp_cid 1693 * @param local_seid 1694 */ 1695 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 1696 1697 /** 1698 * @format 121 Stream is stoped or aborted. 1699 * @param subevent_code 1700 * @param a2dp_cid 1701 * @param local_seid 1702 */ 1703 #define A2DP_SUBEVENT_STREAM_STOPPED 0x07 1704 1705 /** 1706 * @format 121 Stream is released. 1707 * @param subevent_code 1708 * @param a2dp_cid 1709 * @param local_seid 1710 */ 1711 #define A2DP_SUBEVENT_STREAM_RELEASED 0x08 1712 1713 /** 1714 * @format 1211 1715 * @param subevent_code 1716 * @param a2dp_cid 1717 * @param local_seid 1718 * @param signal_identifier 1719 */ 1720 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 1721 1722 /** 1723 * @format 1211 1724 * @param subevent_code 1725 * @param a2dp_cid 1726 * @param local_seid 1727 * @param signal_identifier 1728 */ 1729 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A 1730 1731 /** 1732 * @format 12B1 1733 * @param subevent_code 1734 * @param a2dp_cid 1735 * @param bd_addr 1736 * @param status 0 == OK 1737 */ 1738 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B 1739 1740 /** 1741 * @format 12 Signaling channel is released. 1742 * @param subevent_code 1743 * @param a2dp_cid 1744 */ 1745 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C 1746 1747 /** 1748 * @format 1211 Stream was reconfigured 1749 * @param subevent_code 1750 * @param a2dp_cid 1751 * @param local_seid 1752 * @param status 1753 */ 1754 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D 1755 1756 /** AVRCP Subevent */ 1757 1758 /** 1759 * @format 11B2 1760 * @param subevent_code 1761 * @param status 0 == OK 1762 * @param bd_addr 1763 * @param avrcp_cid 1764 */ 1765 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 1766 1767 /** 1768 * @format 12 1769 * @param subevent_code 1770 * @param avrcp_cid 1771 */ 1772 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 1773 1774 /** 1775 * @format 12111 1776 * @param subevent_code 1777 * @param avrcp_cid 1778 * @param command_type 1779 * @param repeat_mode 1780 * @param shuffle_mode 1781 */ 1782 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x03 1783 1784 /** 1785 * @format 121441 1786 * @param subevent_code 1787 * @param avrcp_cid 1788 * @param command_type 1789 * @param song_length 1790 * @param song_position 1791 * @param play_status 1792 */ 1793 #define AVRCP_SUBEVENT_PLAY_STATUS 0x04 1794 1795 /** 1796 * @format 1211 1797 * @param subevent_code 1798 * @param avrcp_cid 1799 * @param command_type 1800 * @param play_status 1801 */ 1802 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x05 1803 1804 /** 1805 * @format 121 1806 * @param subevent_code 1807 * @param avrcp_cid 1808 * @param command_type 1809 */ 1810 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x06 1811 1812 /** 1813 * @format 121 1814 * @param subevent_code 1815 * @param avrcp_cid 1816 * @param command_type 1817 */ 1818 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x07 1819 1820 /** 1821 * @format 121 1822 * @param subevent_code 1823 * @param avrcp_cid 1824 * @param command_type 1825 */ 1826 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x08 1827 1828 /** 1829 * @format 1211 1830 * @param subevent_code 1831 * @param avrcp_cid 1832 * @param command_type 1833 * @param absolute_volume 1834 */ 1835 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x09 1836 1837 /** 1838 * @format 1211 1839 * @param subevent_code 1840 * @param avrcp_cid 1841 * @param command_type 1842 * @param absolute_volume 1843 */ 1844 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0A 1845 1846 /** 1847 * @format 1211 1848 * @param subevent_code 1849 * @param avrcp_cid 1850 * @param command_type 1851 * @param notification_id 1852 */ 1853 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0B 1854 1855 /** 1856 * @format 1211 1857 * @param subevent_code 1858 * @param avrcp_cid 1859 * @param command_type 1860 * @param operation_id 1861 */ 1862 #define AVRCP_SUBEVENT_OPERATION_START 0x0C 1863 1864 /** 1865 * @format 1211 1866 * @param subevent_code 1867 * @param avrcp_cid 1868 * @param command_type 1869 * @param operation_id 1870 */ 1871 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0D 1872 1873 /** 1874 * @format 121 1875 * @param subevent_code 1876 * @param avrcp_cid 1877 * @param command_type 1878 */ 1879 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0E 1880 1881 /** 1882 * @format 12 1883 * @param subevent_code 1884 * @param avrcp_cid 1885 */ 1886 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x0F 1887 1888 /** 1889 * @format 12 1890 * @param subevent_code 1891 * @param avrcp_cid 1892 */ 1893 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x10 1894 1895 /** 1896 * @format 12 1897 * @param subevent_code 1898 * @param avrcp_cid 1899 */ 1900 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x11 1901 1902 /** 1903 * @format 12111 1904 * @param subevent_code 1905 * @param avrcp_cid 1906 * @param operation_id 1907 * @param operands_length 1908 * @param operand 1909 */ 1910 #define AVRCP_SUBEVENT_OPERATION 0x12 1911 1912 /** 1913 * @format 1211 1914 * @param subevent_code 1915 * @param avrcp_cid 1916 * @param command_type 1917 * @param track 1918 */ 1919 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x13 1920 1921 /** 1922 * @format 1211 1923 * @param subevent_code 1924 * @param avrcp_cid 1925 * @param command_type 1926 * @param total_tracks 1927 */ 1928 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x14 1929 1930 /** 1931 * @format 1214 1932 * @param subevent_code 1933 * @param avrcp_cid 1934 * @param command_type 1935 * @param song_length in ms 1936 */ 1937 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x15 1938 1939 /** 1940 * @format 121JV 1941 * @param subevent_code 1942 * @param avrcp_cid 1943 * @param command_type 1944 * @param value_len 1945 * @param value 1946 */ 1947 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x16 1948 1949 /* 1950 * @format 121JV 1951 * @param subevent_code 1952 * @param avrcp_cid 1953 * @param command_type 1954 * @param value_len 1955 * @param value 1956 */ 1957 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x17 1958 1959 /* 1960 * @format 121JV 1961 * @param subevent_code 1962 * @param avrcp_cid 1963 * @param command_type 1964 * @param value_len 1965 * @param value 1966 */ 1967 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x18 1968 1969 /* 1970 * @format 121JV 1971 * @param subevent_code 1972 * @param avrcp_cid 1973 * @param command_type 1974 * @param value_len 1975 * @param value 1976 */ 1977 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x19 1978 1979 /* 1980 * @format 1211 1981 * @param subevent_code 1982 * @param avrcp_cid 1983 * @param command_type 1984 * @param status 1985 */ 1986 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x1A 1987 1988 /** 1989 * @format 1B2 1990 * @param subevent_code 1991 * @param bd_addr 1992 * @param browsing_cid 1993 */ 1994 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x1B 1995 1996 /** 1997 * @format 11B2 1998 * @param subevent_code 1999 * @param status 0 == OK 2000 * @param bd_addr 2001 * @param browsing_cid 2002 */ 2003 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x1C 2004 2005 /** 2006 * @format 12 2007 * @param subevent_code 2008 * @param browsing_cid 2009 */ 2010 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x1D 2011 2012 /** 2013 * @format 12211 2014 * @param subevent_code 2015 * @param browsing_cid 2016 * @param uid_counter 2017 * @param browsing_status 2018 * @param bluetooth_status 2019 */ 2020 #define AVRCP_SUBEVENT_BROWSING_DONE 0x1E 2021 2022 /** 2023 * @format 1214 2024 * @param subevent_code 2025 * @param browsing_cid 2026 * @param scope 2027 * @param attr_bitmap 2028 */ 2029 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x1F 2030 2031 /** 2032 * @format 121 2033 * @param subevent_code 2034 * @param browsing_cid 2035 * @param scope 2036 */ 2037 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x20 2038 2039 /** 2040 * @format 1214 2041 * @param subevent_code 2042 * @param avrcp_cid 2043 * @param command_type 2044 * @param playback_position_ms 2045 */ 2046 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x21 2047 2048 2049 /** 2050 * @format 121BH1 2051 * @param subevent_code 2052 * @param goep_cid 2053 * @param status 2054 * @param bd_addr 2055 * @param con_handle 2056 * @param incoming 2057 */ 2058 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2059 2060 /** 2061 * @format 12 2062 * @param subevent_code 2063 * @param goep_cid 2064 */ 2065 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2066 2067 /** 2068 * @format 12 2069 * @param subevent_code 2070 * @param goep_cid 2071 */ 2072 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2073 2074 /** 2075 * @format 121BH1 2076 * @param subevent_code 2077 * @param pbap_cid 2078 * @param status 2079 * @param bd_addr 2080 * @param con_handle 2081 * @param incoming 2082 */ 2083 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2084 2085 /** 2086 * @format 12 2087 * @param subevent_code 2088 * @param goep_cid 2089 */ 2090 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2091 2092 /** 2093 * @format 121 2094 * @param subevent_code 2095 * @param goep_cid 2096 * @param status 2097 */ 2098 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2099 2100 /** 2101 * @format 1212 2102 * @param subevent_code 2103 * @param goep_cid 2104 * @param status 2105 * @param phoneboook_size 2106 */ 2107 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 2108 2109 /** 2110 * @format 1211 2111 * @param subevent_code 2112 * @param goep_cid 2113 * @param user_id_required 2114 * @param full_access 2115 */ 2116 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 2117 2118 /** 2119 * @format 12JVJV 2120 * @param subevent_code 2121 * @param goep_cid 2122 * @param name_len 2123 * @param name 2124 * @param handle_len 2125 * @param handle 2126 */ 2127 #define PBAP_SUBEVENT_CARD_RESULT 0x06 2128 2129 2130 // HID Meta Event Group 2131 2132 /** 2133 * @format 121BH1 2134 * @param subevent_code 2135 * @param hid_cid 2136 * @param status 2137 * @param bd_addr 2138 * @param con_handle 2139 * @param incoming 2140 */ 2141 #define HID_SUBEVENT_CONNECTION_OPENED 0x01 2142 2143 /** 2144 * @format 12 2145 * @param subevent_code 2146 * @param hid_cid 2147 */ 2148 #define HID_SUBEVENT_CONNECTION_CLOSED 0x02 2149 2150 /** 2151 * @format 12 2152 * @param subevent_code 2153 * @param hid_cid 2154 */ 2155 #define HID_SUBEVENT_CAN_SEND_NOW 0x03 2156 2157 /** 2158 * @format 12 2159 * @param subevent_code 2160 * @param con_handle 2161 */ 2162 #define HID_SUBEVENT_SUSPEND 0x04 2163 2164 /** 2165 * @format 12 2166 * @param subevent_code 2167 * @param con_handle 2168 */ 2169 #define HID_SUBEVENT_EXIT_SUSPEND 0x05 2170 2171 2172 // HIDS Meta Event Group 2173 2174 /** 2175 * @format 12 2176 * @param subevent_code 2177 * @param con_handle 2178 */ 2179 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 2180 2181 /** 2182 * @format 121 2183 * @param subevent_code 2184 * @param con_handle 2185 * @param protocol_mode 2186 */ 2187 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 2188 2189 /** 2190 * @format 121 2191 * @param subevent_code 2192 * @param con_handle 2193 * @param enable 2194 */ 2195 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 2196 2197 /** 2198 * @format 121 2199 * @param subevent_code 2200 * @param con_handle 2201 * @param enable 2202 */ 2203 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 2204 2205 /** 2206 * @format 121 2207 * @param subevent_code 2208 * @param con_handle 2209 * @param enable 2210 */ 2211 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 2212 2213 /** 2214 * @format 121 2215 * @param subevent_code 2216 * @param con_handle 2217 * @param enable 2218 */ 2219 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 2220 2221 /** 2222 * @format 121 2223 * @param subevent_code 2224 * @param con_handle 2225 * @param enable 2226 */ 2227 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 2228 2229 /** 2230 * @format 12 2231 * @param subevent_code 2232 * @param con_handle 2233 */ 2234 #define HIDS_SUBEVENT_SUSPEND 0x08 2235 2236 /** 2237 * @format 12 2238 * @param subevent_code 2239 * @param con_handle 2240 */ 2241 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 2242 2243 /** 2244 * @format 1211 2245 * @param subevent_code 2246 * @param con_handle 2247 * @param measurement_type // 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 2248 * @param is_enhanced 2249 */ 2250 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 2251 2252 /** 2253 * @format 12 2254 * @param subevent_code 2255 * @param con_handle 2256 */ 2257 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 2258 2259 /** 2260 * @format 12 2261 * @param subevent_code 2262 * @param con_handle 2263 */ 2264 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 2265 2266 2267 // MAP Meta Event Group 2268 2269 /** 2270 * @format 121BH1 2271 * @param subevent_code 2272 * @param map_cid 2273 * @param status 2274 * @param bd_addr 2275 * @param con_handle 2276 * @param incoming 2277 */ 2278 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 2279 2280 /** 2281 * @format 12 2282 * @param subevent_code 2283 * @param map_cid 2284 */ 2285 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 2286 2287 /** 2288 * @format 121 2289 * @param subevent_code 2290 * @param map_cid 2291 * @param status 2292 */ 2293 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 2294 2295 2296 /** 2297 * @format 12LV 2298 * @param subevent_code 2299 * @param map_cid 2300 * @param name_len 2301 * @param name 2302 */ 2303 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 2304 2305 /** 2306 * @format 12D 2307 * @param subevent_code 2308 * @param map_cid 2309 * @param handle 2310 2311 */ 2312 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 2313 2314 /** 2315 * @format 12 2316 * @param subevent_code 2317 * @param map_cid 2318 */ 2319 #define MAP_SUBEVENT_PARSING_DONE 0x06 2320 2321 2322 // MESH Meta Event Group 2323 2324 /** 2325 * @format 1 2326 * @param subevent_code 2327 */ 2328 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 2329 2330 /** 2331 * @format 11 2332 * @param subevent_code 2333 * @param status 2334 */ 2335 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 2336 2337 /** 2338 * @format 1121 2339 * @param subevent_code 2340 * @param status 2341 * @param pb_transport_cid 2342 * @param pb_type 2343 */ 2344 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 2345 2346 /** 2347 * @format 112 2348 * @param subevent_code 2349 * @param pb_transport_cid 2350 * @param reason 2351 */ 2352 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 2353 2354 /** 2355 * @format 121 2356 * @param subevent_code 2357 * @param pb_transport_cid 2358 * @param attention_time in seconds 2359 */ 2360 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 2361 2362 /** 2363 * Device Role 2364 * @format 12 2365 * @param subevent_code 2366 * @param pb_transport_cid 2367 */ 2368 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 2369 2370 /** 2371 * Device Role 2372 * @format 12 2373 * @param subevent_code 2374 * @param pb_transport_cid 2375 */ 2376 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 2377 2378 /** 2379 * Device Role 2380 * @format 12 2381 * @param subevent_code 2382 * @param pb_transport_cid 2383 */ 2384 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 2385 2386 /** 2387 * Device Role 2388 * @format 124 2389 * @param subevent_code 2390 * @param pb_transport_cid 2391 * @param output_oob number 2392 */ 2393 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 2394 2395 /** 2396 * Device Role 2397 * @format 12 2398 * @param subevent_code 2399 * @param pb_transport_cid 2400 */ 2401 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 2402 2403 /** 2404 * Provisioner Role 2405 * @format 12 2406 * @param subevent_code 2407 * @param pb_transport_cid 2408 */ 2409 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 2410 2411 /** 2412 * Provisioner Role 2413 * @format 12 2414 * @param subevent_code 2415 * @param pb_transport_cid 2416 */ 2417 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 2418 2419 /** 2420 * Provisioner Role 2421 * @format 12 2422 * @param subevent_code 2423 * @param pb_transport_cid 2424 */ 2425 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 2426 2427 /** 2428 * Provisioner Role 2429 * @format 124 2430 * @param subevent_code 2431 * @param pb_transport_cid 2432 * @param output_oob number 2433 */ 2434 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 2435 2436 /** 2437 * Provisioner Role 2438 * @format 12 2439 * @param subevent_code 2440 * @param pb_transport_cid 2441 */ 2442 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 2443 2444 /** 2445 * Provisioner Role 2446 * @format 1212111212 2447 * @param subevent_code 2448 * @param pb_transport_cid 2449 * @param num_elements 2450 * @param algorithms 2451 * @param public_key 2452 * @param static_oob_type 2453 * @param output_oob_size 2454 * @param output_oob_action 2455 * @param input_oob_size 2456 * @param input_oob_action 2457 */ 2458 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 2459 2460 /** 2461 * @format 12 2462 * @param subevent_code 2463 * @param pb_transport_cid 2464 */ 2465 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 2466 2467 /** 2468 * @format 11 2469 * @param subevent_code 2470 * @param attention_time in seconds 2471 */ 2472 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 2473 2474 /** 2475 * @format 11H 2476 * @param subevent_code 2477 * @param status 2478 * @param con_handle 2479 */ 2480 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 2481 2482 /** 2483 * @format 1H 2484 * @param subevent_code 2485 * @param con_handle 2486 */ 2487 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 2488 2489 /** 2490 * @format 1H 2491 * @param subevent_code 2492 * @param con_handle 2493 */ 2494 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 2495 2496 /** 2497 * @format 1H 2498 * @param subevent_code 2499 * @param con_handle 2500 */ 2501 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 2502 2503 /** 2504 * @format 114411 2505 * @param subevent_code 2506 * @param element_index 2507 * @param model_identifier 2508 * @param state_identifier 2509 * @param reason 2510 * @param value 2511 */ 2512 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 2513 2514 /** 2515 * @format 114412 2516 * @param subevent_code 2517 * @param element_index 2518 * @param model_identifier 2519 * @param state_identifier 2520 * @param reason 2521 * @param value 2522 */ 2523 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 2524 2525 // Mesh Client Events 2526 /** 2527 * @format 11442 2528 * @param subevent_code 2529 * @param element_index 2530 * @param model_identifier 2531 * @param opcode 2532 * @param dest 2533 */ 2534 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 2535 2536 /** 2537 * @format 114114 2538 * @param subevent_code 2539 * @param element_index 2540 * @param model_identifier 2541 * @param present_value 2542 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2543 * @param remaining_time_ms 2544 */ 2545 #define MESH_SUBEVENT_GENERIC_ON_OFF_STATUS 0x31 2546 2547 /** 2548 * @format 114224 2549 * @param subevent_code 2550 * @param element_index 2551 * @param model_identifier 2552 * @param present_value 2553 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2554 * @param remaining_time_ms 2555 */ 2556 #define MESH_SUBEVENT_GENERIC_LEVEL_STATUS 0x32 2557 2558 2559 /** 2560 * @format 112 2561 * @param subevent_code 2562 * @param element_index 2563 * @param company_id 2564 */ 2565 #define MESH_SUBEVENT_HEALTH_CLEAR_REGISTERED_FAULTS 0x33 2566 2567 /** 2568 * @format 11422221 2569 * @param subevent_code 2570 * @param element_index 2571 * @param model_identifier 2572 * @param dest 2573 * @param netkey_index 2574 * @param appkey_index 2575 * @param company_id 2576 * @param test_id 2577 */ 2578 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x34 2579 2580 /** 2581 * @format 111 2582 * @param subevent_code 2583 * @param element_index 2584 * @param fast_period_divisor 2585 */ 2586 #define MESH_SUBEVENT_HEALTH_FAST_PERIOD_DIVISOR_CHANGED 0x35 2587 2588 /** 2589 * @format 11 2590 * @param subevent_code 2591 * @param element_index 2592 */ 2593 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x36 2594 2595 #endif 2596