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 * @format H1 1051 * @param con_handle 1052 * @param rssi (signed integer -127..127) 1053 * @note Classic: rssi is in dB relative to Golden Receive Power Range 1054 * @note LE: rssi is absolute dBm 1055 */ 1056 #define GAP_EVENT_RSSI_MEASUREMENT 0xE5 1057 1058 // Meta Events, see below for sub events 1059 #define HCI_EVENT_HSP_META 0xE8 1060 #define HCI_EVENT_HFP_META 0xE9 1061 #define HCI_EVENT_ANCS_META 0xEA 1062 #define HCI_EVENT_AVDTP_META 0xEB 1063 #define HCI_EVENT_AVRCP_META 0xEC 1064 #define HCI_EVENT_GOEP_META 0xED 1065 #define HCI_EVENT_PBAP_META 0xEE 1066 #define HCI_EVENT_HID_META 0xEF 1067 #define HCI_EVENT_A2DP_META 0xF0 1068 #define HCI_EVENT_HIDS_META 0xF1 1069 #define HCI_EVENT_GATTSERVICE_META 0xF2 1070 #define HCI_EVENT_BIP_META 0xF3 1071 #define HCI_EVENT_MAP_META 0xF4 1072 #define HCI_EVENT_MESH_META 0xF5 1073 1074 // Potential other meta groups 1075 // #define HCI_EVENT_BNEP_META 0xxx 1076 // #define HCI_EVENT_GAP_META 0xxx 1077 // #define HCI_EVENT_GATT_META 0xxx 1078 // #define HCI_EVENT_PAN_META 0xxx 1079 // #define HCI_EVENT_SDP_META 0xxx 1080 // #define HCI_EVENT_SM_META 0xxx 1081 1082 1083 /** HSP Subevent */ 1084 1085 /** 1086 * @format 11 1087 * @param subevent_code 1088 * @param status 0 == OK 1089 */ 1090 #define HSP_SUBEVENT_RFCOMM_CONNECTION_COMPLETE 0x01 1091 1092 /** 1093 * @format 11 1094 * @param subevent_code 1095 * @param status 0 == OK 1096 */ 1097 #define HSP_SUBEVENT_RFCOMM_DISCONNECTION_COMPLETE 0x02 1098 1099 1100 /** 1101 * @format 11H 1102 * @param subevent_code 1103 * @param status 0 == OK 1104 * @param handle 1105 */ 1106 #define HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE 0x03 1107 1108 /** 1109 * @format 11 1110 * @param subevent_code 1111 * @param status 0 == OK 1112 */ 1113 #define HSP_SUBEVENT_AUDIO_DISCONNECTION_COMPLETE 0x04 1114 1115 /** 1116 * @format 1 1117 * @param subevent_code 1118 */ 1119 #define HSP_SUBEVENT_RING 0x05 1120 1121 /** 1122 * @format 11 1123 * @param subevent_code 1124 * @param gain Valid range: [0,15] 1125 */ 1126 #define HSP_SUBEVENT_MICROPHONE_GAIN_CHANGED 0x06 1127 1128 /** 1129 * @format 11 1130 * @param subevent_code 1131 * @param gain Valid range: [0,15] 1132 */ 1133 #define HSP_SUBEVENT_SPEAKER_GAIN_CHANGED 0x07 1134 1135 /** 1136 * @format 1JV 1137 * @param subevent_code 1138 * @param value_length 1139 * @param value 1140 */ 1141 #define HSP_SUBEVENT_HS_COMMAND 0x08 1142 1143 /** 1144 * @format 1JV 1145 * @param subevent_code 1146 * @param value_length 1147 * @param value 1148 */ 1149 #define HSP_SUBEVENT_AG_INDICATION 0x09 1150 1151 1152 /** HFP Subevent */ 1153 1154 /** 1155 * @format 11HB 1156 * @param subevent_code 1157 * @param status 0 == OK 1158 * @param con_handle 1159 * @param bd_addr 1160 */ 1161 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_ESTABLISHED 0x01 1162 1163 /** 1164 * @format 1 1165 * @param subevent_code 1166 */ 1167 #define HFP_SUBEVENT_SERVICE_LEVEL_CONNECTION_RELEASED 0x02 1168 1169 /** 1170 * @format 11HB1 1171 * @param subevent_code 1172 * @param status 0 == OK 1173 * @param handle 1174 * @param bd_addr 1175 * @param negotiated_codec 1176 */ 1177 #define HFP_SUBEVENT_AUDIO_CONNECTION_ESTABLISHED 0x03 1178 1179 /** 1180 * @format 1 1181 * @param subevent_code 1182 */ 1183 #define HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED 0x04 1184 1185 /** 1186 * @format 11 1187 * @param subevent_code 1188 * @param status 0 == OK 1189 */ 1190 #define HFP_SUBEVENT_COMPLETE 0x05 1191 1192 /** 1193 * @format 11111111T 1194 * @param subevent_code 1195 * @param indicator_index 1196 * @param indicator_status 1197 * @param indicator_min_range 1198 * @param indicator_max_range 1199 * @param indicator_mandatory 1200 * @param indicator_enabled 1201 * @param indicator_status_changed 1202 * @param indicator_name 1203 */ 1204 #define HFP_SUBEVENT_AG_INDICATOR_STATUS_CHANGED 0x06 1205 1206 /** 1207 * @format 111T 1208 * @param subevent_code 1209 * @param network_operator_mode 1210 * @param network_operator_format 1211 * @param network_operator_name 1212 */ 1213 #define HFP_SUBEVENT_NETWORK_OPERATOR_CHANGED 0x07 1214 1215 /** 1216 * @format 11 1217 * @param subevent_code 1218 * @param error 1219 */ 1220 #define HFP_SUBEVENT_EXTENDED_AUDIO_GATEWAY_ERROR 0x08 1221 1222 /** 1223 * @format 1 1224 * @param subevent_code 1225 */ 1226 #define HFP_SUBEVENT_START_RINGINIG 0x0A 1227 1228 /** 1229 * @format 1 1230 * @param subevent_code 1231 */ 1232 #define HFP_SUBEVENT_STOP_RINGINIG 0x0B 1233 1234 /** 1235 * @format 1 1236 * @param subevent_code 1237 */ 1238 #define HFP_SUBEVENT_CALL_TERMINATED 0x0C 1239 1240 /** 1241 * @format 1T 1242 * @param subevent_code 1243 * @param number 1244 */ 1245 #define HFP_SUBEVENT_PLACE_CALL_WITH_NUMBER 0x0D 1246 1247 /** 1248 * @format 1 1249 * @param subevent_code 1250 */ 1251 #define HFP_SUBEVENT_ATTACH_NUMBER_TO_VOICE_TAG 0x0E 1252 1253 /** 1254 * @format 1T 1255 * @param subevent_code 1256 * @param number 1257 */ 1258 #define HFP_SUBEVENT_NUMBER_FOR_VOICE_TAG 0x0F 1259 1260 /** 1261 * @format 1T 1262 * @param subevent_code 1263 * @param dtmf code 1264 */ 1265 #define HFP_SUBEVENT_TRANSMIT_DTMF_CODES 0x10 1266 1267 /** 1268 * @format 1 1269 * @param subevent_code 1270 */ 1271 #define HFP_SUBEVENT_CALL_ANSWERED 0x11 1272 1273 /** 1274 * @format 1 1275 * @param subevent_code 1276 */ 1277 #define HFP_SUBEVENT_CONFERENCE_CALL 0x12 1278 1279 /** 1280 * @format 1 1281 * @param subevent_code 1282 */ 1283 #define HFP_SUBEVENT_RING 0x13 1284 1285 /** 1286 * @format 111 1287 * @param subevent_code 1288 * @param status 1289 * @param gain 1290 */ 1291 #define HFP_SUBEVENT_SPEAKER_VOLUME 0x14 1292 1293 /** 1294 * @format 111 1295 * @param subevent_code 1296 * @param status 1297 * @param gain 1298 */ 1299 #define HFP_SUBEVENT_MICROPHONE_VOLUME 0x15 1300 1301 /** 1302 * @format 11T 1303 * @param subevent_code 1304 * @param type 1305 * @param number 1306 */ 1307 #define HFP_SUBEVENT_CALL_WAITING_NOTIFICATION 0x16 1308 1309 /** 1310 * @format 11T 1311 * @param subevent_code 1312 * @param type 1313 * @param number 1314 */ 1315 #define HFP_SUBEVENT_CALLING_LINE_IDENTIFICATION_NOTIFICATION 0x17 1316 1317 /** 1318 * @format 1111111T 1319 * @param subevent_code 1320 * @param clcc_idx 1321 * @param clcc_dir 1322 * @param clcc_status 1323 * @param clcc_mode 1324 * @param clcc_mpty 1325 * @param bnip_type 1326 * @param bnip_number 1327 */ 1328 #define HFP_SUBEVENT_ENHANCED_CALL_STATUS 0x18 1329 1330 /** 1331 * @format 111T 1332 * @param subevent_code 1333 * @param status 1334 * @param bnip_type 1335 * @param bnip_number 1336 */ 1337 #define HFP_SUBEVENT_SUBSCRIBER_NUMBER_INFORMATION 0x19 1338 1339 /** 1340 * @format 1T 1341 * @param subevent_code 1342 * @param value 1343 */ 1344 #define HFP_SUBEVENT_RESPONSE_AND_HOLD_STATUS 0x1A 1345 1346 // ANCS Client 1347 1348 /** 1349 * @format 1H 1350 * @param subevent_code 1351 * @param handle 1352 */ 1353 #define ANCS_SUBEVENT_CLIENT_CONNECTED 0xF0 1354 1355 /** 1356 * @format 1H2T 1357 * @param subevent_code 1358 * @param handle 1359 * @param attribute_id 1360 * @param text 1361 */ 1362 #define ANCS_SUBEVENT_CLIENT_NOTIFICATION 0xF1 1363 1364 /** 1365 * @format 1H 1366 * @param subevent_code 1367 * @param handle 1368 */ 1369 #define ANCS_SUBEVENT_CLIENT_DISCONNECTED 0xF2 1370 1371 1372 /** AVDTP Subevent */ 1373 1374 /** 1375 * @format 1211 1376 * @param subevent_code 1377 * @param avdtp_cid 1378 * @param local_seid 1379 * @param signal_identifier 1380 */ 1381 #define AVDTP_SUBEVENT_SIGNALING_ACCEPT 0x01 1382 1383 /** 1384 * @format 1211 1385 * @param subevent_code 1386 * @param avdtp_cid 1387 * @param local_seid 1388 * @param signal_identifier 1389 */ 1390 #define AVDTP_SUBEVENT_SIGNALING_REJECT 0x02 1391 1392 /** 1393 * @format 1211 1394 * @param subevent_code 1395 * @param avdtp_cid 1396 * @param local_seid 1397 * @param signal_identifier 1398 */ 1399 #define AVDTP_SUBEVENT_SIGNALING_GENERAL_REJECT 0x03 1400 1401 /** 1402 * @format 12B1 1403 * @param subevent_code 1404 * @param avdtp_cid 1405 * @param bd_addr 1406 * @param status 0 == OK 1407 */ 1408 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x04 1409 1410 /** 1411 * @format 12 1412 * @param subevent_code 1413 * @param avdtp_cid 1414 */ 1415 #define AVDTP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x05 1416 1417 /** 1418 * @format 121111 1419 * @param subevent_code 1420 * @param avdtp_cid 1421 * @param remote_seid 0x01 – 0x3E 1422 * @param in_use 0-not in use, 1-in use 1423 * @param media_type 0-audio, 1-video, 2-multimedia 1424 * @param sep_type 0-source, 1-sink 1425 */ 1426 #define AVDTP_SUBEVENT_SIGNALING_SEP_FOUND 0x06 1427 1428 /** 1429 * @format 121111111111 1430 * @param subevent_code 1431 * @param avdtp_cid 1432 * @param local_seid 1433 * @param remote_seid 1434 * @param media_type 1435 * @param sampling_frequency_bitmap 1436 * @param channel_mode_bitmap 1437 * @param block_length_bitmap 1438 * @param subbands_bitmap 1439 * @param allocation_method_bitmap 1440 * @param min_bitpool_value 1441 * @param max_bitpool_value 1442 */ 1443 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CAPABILITY 0x07 1444 1445 /** 1446 * @format 121112LV 1447 * @param subevent_code 1448 * @param avdtp_cid 1449 * @param local_seid 1450 * @param remote_seid 1451 * @param media_type 1452 * @param media_codec_type 1453 * @param media_codec_information_len 1454 * @param media_codec_information 1455 */ 1456 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CAPABILITY 0x08 1457 1458 1459 /** 1460 * @format 1211 1461 * @param subevent_code 1462 * @param avdtp_cid 1463 * @param local_seid 1464 * @param remote_seid 1465 */ 1466 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_TRANSPORT_CAPABILITY 0x09 1467 1468 1469 /** 1470 * @format 1211 1471 * @param subevent_code 1472 * @param avdtp_cid 1473 * @param local_seid 1474 * @param remote_seid 1475 */ 1476 #define AVDTP_SUBEVENT_SIGNALING_REPORTING_CAPABILITY 0x0A 1477 1478 1479 /** 1480 * @format 1211111 1481 * @param subevent_code 1482 * @param avdtp_cid 1483 * @param local_seid 1484 * @param remote_seid 1485 * @param recovery_type 1486 * @param maximum_recovery_window_size 1487 * @param maximum_number_media_packets 1488 */ 1489 #define AVDTP_SUBEVENT_SIGNALING_RECOVERY_CAPABILITY 0x0B 1490 1491 1492 /** 1493 * @format 12112LV 1494 * @param subevent_code 1495 * @param avdtp_cid 1496 * @param local_seid 1497 * @param remote_seid 1498 * @param cp_type 1499 * @param cp_type_value_len 1500 * @param cp_type_value 1501 */ 1502 #define AVDTP_SUBEVENT_SIGNALING_CONTENT_PROTECTION_CAPABILITY 0x0C 1503 1504 1505 /** 1506 * @format 121111111111 1507 * @param subevent_code 1508 * @param avdtp_cid 1509 * @param local_seid 1510 * @param remote_seid 1511 * @param fragmentation 1512 * @param transport_identifiers_num 1513 * @param transport_session_identifier_1 1514 * @param transport_session_identifier_2 1515 * @param transport_session_identifier_3 1516 * @param tcid_1 1517 * @param tcid_2 1518 * @param tcid_3 1519 */ 1520 #define AVDTP_SUBEVENT_SIGNALING_MULTIPLEXING_CAPABILITY 0x0D 1521 1522 1523 /** 1524 * @format 1211 1525 * @param subevent_code 1526 * @param avdtp_cid 1527 * @param local_seid 1528 * @param remote_seid 1529 */ 1530 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 1531 1532 1533 /** 1534 * @format 1211111 1535 * @param subevent_code 1536 * @param avdtp_cid 1537 * @param local_seid 1538 * @param remote_seid 1539 * @param back_ch 1540 * @param media 1541 * @param recovery 1542 */ 1543 #define AVDTP_SUBEVENT_SIGNALING_HEADER_COMPRESSION_CAPABILITY 0x0F 1544 1545 1546 /** 1547 * @format 12111121111111 1548 * @param subevent_code 1549 * @param avdtp_cid 1550 * @param local_seid 1551 * @param remote_seid 1552 * @param reconfigure 1553 * @param media_type 1554 * @param sampling_frequency 1555 * @param channel_mode 1556 * @param num_channels 1557 * @param block_length 1558 * @param subbands 1559 * @param allocation_method 1560 * @param min_bitpool_value 1561 * @param max_bitpool_value 1562 */ 1563 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x10 1564 1565 /** 1566 * @format 1211112LV 1567 * @param subevent_code 1568 * @param avdtp_cid 1569 * @param local_seid 1570 * @param remote_seid 1571 * @param reconfigure 1572 * @param media_type 1573 * @param media_codec_type 1574 * @param media_codec_information_len 1575 * @param media_codec_information 1576 */ 1577 #define AVDTP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x11 1578 1579 /** 1580 * @format 12B111 1581 * @param subevent_code 1582 * @param avdtp_cid 1583 * @param bd_addr 1584 * @param local_seid 1585 * @param remote_seid 1586 * @param status 0 == OK 1587 */ 1588 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_ESTABLISHED 0x12 1589 1590 /** 1591 * @format 121 1592 * @param subevent_code 1593 * @param avdtp_cid 1594 * @param local_seid 1595 */ 1596 #define AVDTP_SUBEVENT_STREAMING_CONNECTION_RELEASED 0x13 1597 1598 /** 1599 * @format 1212 1600 * @param subevent_code 1601 * @param avdtp_cid 1602 * @param local_seid 1603 * @param sequence_number 1604 */ 1605 #define AVDTP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x14 1606 1607 /** 1608 * @format 1211 1609 * @param subevent_code 1610 * @param avdtp_cid 1611 * @param local_seid 1612 * @param remote_seid 1613 */ 1614 #define AVDTP_SUBEVENT_SIGNALING_CAPABILITY_DONE 0x15 1615 1616 1617 /** 1618 * @format 12 1619 * @param subevent_code 1620 * @param avdtp_cid 1621 */ 1622 #define AVDTP_SUBEVENT_SIGNALING_SEP_DICOVERY_DONE 0x16 1623 1624 1625 /** A2DP Subevent */ 1626 /* Stream goes through following states: 1627 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 1628 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 1629 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 1630 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 1631 1632 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 1633 START can come only after the stream is OPENED, and indicates that media transfer is started. 1634 SUSPEND is optional, it pauses the stream. 1635 */ 1636 1637 /** 1638 * @format 121 Sent only by A2DP source. 1639 * @param subevent_code 1640 * @param a2dp_cid 1641 * @param local_seid 1642 */ 1643 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 1644 1645 /** 1646 * @format 12111121111111 1647 * @param subevent_code 1648 * @param a2dp_cid 1649 * @param int_seid 1650 * @param acp_seid 1651 * @param reconfigure 1652 * @param media_type 1653 * @param sampling_frequency 1654 * @param channel_mode 1655 * @param num_channels 1656 * @param block_length 1657 * @param subbands 1658 * @param allocation_method 1659 * @param min_bitpool_value 1660 * @param max_bitpool_value 1661 */ 1662 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 1663 1664 /** 1665 * @format 1211112LV 1666 * @param subevent_code 1667 * @param a2dp_cid 1668 * @param int_seid 1669 * @param acp_seid 1670 * @param reconfigure 1671 * @param media_type 1672 * @param media_codec_type 1673 * @param media_codec_information_len 1674 * @param media_codec_information 1675 */ 1676 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 1677 1678 /** 1679 * @format 12B111 Stream is opened byt not started. 1680 * @param subevent_code 1681 * @param a2dp_cid 1682 * @param bd_addr 1683 * @param local_seid 1684 * @param remote_seid 1685 * @param status 1686 */ 1687 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 1688 1689 /** 1690 * @format 121 Indicates that media transfer is started. 1691 * @param subevent_code 1692 * @param a2dp_cid 1693 * @param local_seid 1694 */ 1695 #define A2DP_SUBEVENT_STREAM_STARTED 0x05 1696 1697 /** 1698 * @format 121 Stream is paused. 1699 * @param subevent_code 1700 * @param a2dp_cid 1701 * @param local_seid 1702 */ 1703 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 1704 1705 /** 1706 * @format 121 Stream is stoped or aborted. 1707 * @param subevent_code 1708 * @param a2dp_cid 1709 * @param local_seid 1710 */ 1711 #define A2DP_SUBEVENT_STREAM_STOPPED 0x07 1712 1713 /** 1714 * @format 121 Stream is released. 1715 * @param subevent_code 1716 * @param a2dp_cid 1717 * @param local_seid 1718 */ 1719 #define A2DP_SUBEVENT_STREAM_RELEASED 0x08 1720 1721 /** 1722 * @format 1211 1723 * @param subevent_code 1724 * @param a2dp_cid 1725 * @param local_seid 1726 * @param signal_identifier 1727 */ 1728 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 1729 1730 /** 1731 * @format 1211 1732 * @param subevent_code 1733 * @param a2dp_cid 1734 * @param local_seid 1735 * @param signal_identifier 1736 */ 1737 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A 1738 1739 /** 1740 * @format 12B1 1741 * @param subevent_code 1742 * @param a2dp_cid 1743 * @param bd_addr 1744 * @param status 0 == OK 1745 */ 1746 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B 1747 1748 /** 1749 * @format 12 Signaling channel is released. 1750 * @param subevent_code 1751 * @param a2dp_cid 1752 */ 1753 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C 1754 1755 /** 1756 * @format 1211 Stream was reconfigured 1757 * @param subevent_code 1758 * @param a2dp_cid 1759 * @param local_seid 1760 * @param status 1761 */ 1762 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D 1763 1764 /** AVRCP Subevent */ 1765 1766 /** 1767 * @format 11B2 1768 * @param subevent_code 1769 * @param status 0 == OK 1770 * @param bd_addr 1771 * @param avrcp_cid 1772 */ 1773 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 1774 1775 /** 1776 * @format 12 1777 * @param subevent_code 1778 * @param avrcp_cid 1779 */ 1780 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 1781 1782 /** 1783 * @format 12111 1784 * @param subevent_code 1785 * @param avrcp_cid 1786 * @param command_type 1787 * @param repeat_mode 1788 * @param shuffle_mode 1789 */ 1790 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x03 1791 1792 /** 1793 * @format 121441 1794 * @param subevent_code 1795 * @param avrcp_cid 1796 * @param command_type 1797 * @param song_length 1798 * @param song_position 1799 * @param play_status 1800 */ 1801 #define AVRCP_SUBEVENT_PLAY_STATUS 0x04 1802 1803 /** 1804 * @format 1211 1805 * @param subevent_code 1806 * @param avrcp_cid 1807 * @param command_type 1808 * @param play_status 1809 */ 1810 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x05 1811 1812 /** 1813 * @format 121 1814 * @param subevent_code 1815 * @param avrcp_cid 1816 * @param command_type 1817 */ 1818 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x06 1819 1820 /** 1821 * @format 121 1822 * @param subevent_code 1823 * @param avrcp_cid 1824 * @param command_type 1825 */ 1826 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x07 1827 1828 /** 1829 * @format 121 1830 * @param subevent_code 1831 * @param avrcp_cid 1832 * @param command_type 1833 */ 1834 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x08 1835 1836 /** 1837 * @format 1211 1838 * @param subevent_code 1839 * @param avrcp_cid 1840 * @param command_type 1841 * @param absolute_volume 1842 */ 1843 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x09 1844 1845 /** 1846 * @format 1211 1847 * @param subevent_code 1848 * @param avrcp_cid 1849 * @param command_type 1850 * @param absolute_volume 1851 */ 1852 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0A 1853 1854 /** 1855 * @format 1211 1856 * @param subevent_code 1857 * @param avrcp_cid 1858 * @param command_type 1859 * @param notification_id 1860 */ 1861 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0B 1862 1863 /** 1864 * @format 1211 1865 * @param subevent_code 1866 * @param avrcp_cid 1867 * @param command_type 1868 * @param operation_id 1869 */ 1870 #define AVRCP_SUBEVENT_OPERATION_START 0x0C 1871 1872 /** 1873 * @format 1211 1874 * @param subevent_code 1875 * @param avrcp_cid 1876 * @param command_type 1877 * @param operation_id 1878 */ 1879 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0D 1880 1881 /** 1882 * @format 121 1883 * @param subevent_code 1884 * @param avrcp_cid 1885 * @param command_type 1886 */ 1887 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0E 1888 1889 /** 1890 * @format 12 1891 * @param subevent_code 1892 * @param avrcp_cid 1893 */ 1894 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x0F 1895 1896 /** 1897 * @format 12 1898 * @param subevent_code 1899 * @param avrcp_cid 1900 */ 1901 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x10 1902 1903 /** 1904 * @format 12 1905 * @param subevent_code 1906 * @param avrcp_cid 1907 */ 1908 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x11 1909 1910 /** 1911 * @format 12111 1912 * @param subevent_code 1913 * @param avrcp_cid 1914 * @param operation_id 1915 * @param operands_length 1916 * @param operand 1917 */ 1918 #define AVRCP_SUBEVENT_OPERATION 0x12 1919 1920 /** 1921 * @format 1211 1922 * @param subevent_code 1923 * @param avrcp_cid 1924 * @param command_type 1925 * @param track 1926 */ 1927 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x13 1928 1929 /** 1930 * @format 1211 1931 * @param subevent_code 1932 * @param avrcp_cid 1933 * @param command_type 1934 * @param total_tracks 1935 */ 1936 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x14 1937 1938 /** 1939 * @format 1214 1940 * @param subevent_code 1941 * @param avrcp_cid 1942 * @param command_type 1943 * @param song_length in ms 1944 */ 1945 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x15 1946 1947 /** 1948 * @format 121JV 1949 * @param subevent_code 1950 * @param avrcp_cid 1951 * @param command_type 1952 * @param value_len 1953 * @param value 1954 */ 1955 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x16 1956 1957 /* 1958 * @format 121JV 1959 * @param subevent_code 1960 * @param avrcp_cid 1961 * @param command_type 1962 * @param value_len 1963 * @param value 1964 */ 1965 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x17 1966 1967 /* 1968 * @format 121JV 1969 * @param subevent_code 1970 * @param avrcp_cid 1971 * @param command_type 1972 * @param value_len 1973 * @param value 1974 */ 1975 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x18 1976 1977 /* 1978 * @format 121JV 1979 * @param subevent_code 1980 * @param avrcp_cid 1981 * @param command_type 1982 * @param value_len 1983 * @param value 1984 */ 1985 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x19 1986 1987 /* 1988 * @format 1211 1989 * @param subevent_code 1990 * @param avrcp_cid 1991 * @param command_type 1992 * @param status 1993 */ 1994 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x1A 1995 1996 /** 1997 * @format 1B2 1998 * @param subevent_code 1999 * @param bd_addr 2000 * @param browsing_cid 2001 */ 2002 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x1B 2003 2004 /** 2005 * @format 11B2 2006 * @param subevent_code 2007 * @param status 0 == OK 2008 * @param bd_addr 2009 * @param browsing_cid 2010 */ 2011 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x1C 2012 2013 /** 2014 * @format 12 2015 * @param subevent_code 2016 * @param browsing_cid 2017 */ 2018 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x1D 2019 2020 /** 2021 * @format 12211 2022 * @param subevent_code 2023 * @param browsing_cid 2024 * @param uid_counter 2025 * @param browsing_status 2026 * @param bluetooth_status 2027 */ 2028 #define AVRCP_SUBEVENT_BROWSING_DONE 0x1E 2029 2030 /** 2031 * @format 1214 2032 * @param subevent_code 2033 * @param browsing_cid 2034 * @param scope 2035 * @param attr_bitmap 2036 */ 2037 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x1F 2038 2039 /** 2040 * @format 121 2041 * @param subevent_code 2042 * @param browsing_cid 2043 * @param scope 2044 */ 2045 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x20 2046 2047 /** 2048 * @format 1214 2049 * @param subevent_code 2050 * @param avrcp_cid 2051 * @param command_type 2052 * @param playback_position_ms 2053 */ 2054 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x21 2055 2056 2057 /** 2058 * @format 121BH1 2059 * @param subevent_code 2060 * @param goep_cid 2061 * @param status 2062 * @param bd_addr 2063 * @param con_handle 2064 * @param incoming 2065 */ 2066 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2067 2068 /** 2069 * @format 12 2070 * @param subevent_code 2071 * @param goep_cid 2072 */ 2073 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2074 2075 /** 2076 * @format 12 2077 * @param subevent_code 2078 * @param goep_cid 2079 */ 2080 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2081 2082 /** 2083 * @format 121BH1 2084 * @param subevent_code 2085 * @param pbap_cid 2086 * @param status 2087 * @param bd_addr 2088 * @param con_handle 2089 * @param incoming 2090 */ 2091 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2092 2093 /** 2094 * @format 12 2095 * @param subevent_code 2096 * @param goep_cid 2097 */ 2098 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2099 2100 /** 2101 * @format 121 2102 * @param subevent_code 2103 * @param goep_cid 2104 * @param status 2105 */ 2106 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2107 2108 /** 2109 * @format 1212 2110 * @param subevent_code 2111 * @param goep_cid 2112 * @param status 2113 * @param phoneboook_size 2114 */ 2115 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 2116 2117 /** 2118 * @format 1211 2119 * @param subevent_code 2120 * @param goep_cid 2121 * @param user_id_required 2122 * @param full_access 2123 */ 2124 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 2125 2126 /** 2127 * @format 12JVJV 2128 * @param subevent_code 2129 * @param goep_cid 2130 * @param name_len 2131 * @param name 2132 * @param handle_len 2133 * @param handle 2134 */ 2135 #define PBAP_SUBEVENT_CARD_RESULT 0x06 2136 2137 2138 // HID Meta Event Group 2139 2140 /** 2141 * @format 121BH1 2142 * @param subevent_code 2143 * @param hid_cid 2144 * @param status 2145 * @param bd_addr 2146 * @param con_handle 2147 * @param incoming 2148 */ 2149 #define HID_SUBEVENT_CONNECTION_OPENED 0x01 2150 2151 /** 2152 * @format 12 2153 * @param subevent_code 2154 * @param hid_cid 2155 */ 2156 #define HID_SUBEVENT_CONNECTION_CLOSED 0x02 2157 2158 /** 2159 * @format 12 2160 * @param subevent_code 2161 * @param hid_cid 2162 */ 2163 #define HID_SUBEVENT_CAN_SEND_NOW 0x03 2164 2165 /** 2166 * @format 12 2167 * @param subevent_code 2168 * @param con_handle 2169 */ 2170 #define HID_SUBEVENT_SUSPEND 0x04 2171 2172 /** 2173 * @format 12 2174 * @param subevent_code 2175 * @param con_handle 2176 */ 2177 #define HID_SUBEVENT_EXIT_SUSPEND 0x05 2178 2179 2180 // HIDS Meta Event Group 2181 2182 /** 2183 * @format 12 2184 * @param subevent_code 2185 * @param con_handle 2186 */ 2187 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 2188 2189 /** 2190 * @format 121 2191 * @param subevent_code 2192 * @param con_handle 2193 * @param protocol_mode 2194 */ 2195 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 2196 2197 /** 2198 * @format 121 2199 * @param subevent_code 2200 * @param con_handle 2201 * @param enable 2202 */ 2203 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 2204 2205 /** 2206 * @format 121 2207 * @param subevent_code 2208 * @param con_handle 2209 * @param enable 2210 */ 2211 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 2212 2213 /** 2214 * @format 121 2215 * @param subevent_code 2216 * @param con_handle 2217 * @param enable 2218 */ 2219 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 2220 2221 /** 2222 * @format 121 2223 * @param subevent_code 2224 * @param con_handle 2225 * @param enable 2226 */ 2227 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 2228 2229 /** 2230 * @format 121 2231 * @param subevent_code 2232 * @param con_handle 2233 * @param enable 2234 */ 2235 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 2236 2237 /** 2238 * @format 12 2239 * @param subevent_code 2240 * @param con_handle 2241 */ 2242 #define HIDS_SUBEVENT_SUSPEND 0x08 2243 2244 /** 2245 * @format 12 2246 * @param subevent_code 2247 * @param con_handle 2248 */ 2249 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 2250 2251 /** 2252 * @format 1211 2253 * @param subevent_code 2254 * @param con_handle 2255 * @param measurement_type // 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 2256 * @param is_enhanced 2257 */ 2258 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 2259 2260 /** 2261 * @format 12 2262 * @param subevent_code 2263 * @param con_handle 2264 */ 2265 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 2266 2267 /** 2268 * @format 12 2269 * @param subevent_code 2270 * @param con_handle 2271 */ 2272 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 2273 2274 2275 // MAP Meta Event Group 2276 2277 /** 2278 * @format 121BH1 2279 * @param subevent_code 2280 * @param map_cid 2281 * @param status 2282 * @param bd_addr 2283 * @param con_handle 2284 * @param incoming 2285 */ 2286 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 2287 2288 /** 2289 * @format 12 2290 * @param subevent_code 2291 * @param map_cid 2292 */ 2293 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 2294 2295 /** 2296 * @format 121 2297 * @param subevent_code 2298 * @param map_cid 2299 * @param status 2300 */ 2301 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 2302 2303 2304 /** 2305 * @format 12LV 2306 * @param subevent_code 2307 * @param map_cid 2308 * @param name_len 2309 * @param name 2310 */ 2311 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 2312 2313 /** 2314 * @format 12D 2315 * @param subevent_code 2316 * @param map_cid 2317 * @param handle 2318 2319 */ 2320 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 2321 2322 /** 2323 * @format 12 2324 * @param subevent_code 2325 * @param map_cid 2326 */ 2327 #define MAP_SUBEVENT_PARSING_DONE 0x06 2328 2329 2330 // MESH Meta Event Group 2331 2332 /** 2333 * @format 1 2334 * @param subevent_code 2335 */ 2336 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 2337 2338 /** 2339 * @format 11 2340 * @param subevent_code 2341 * @param status 2342 */ 2343 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 2344 2345 /** 2346 * @format 1121 2347 * @param subevent_code 2348 * @param status 2349 * @param pb_transport_cid 2350 * @param pb_type 2351 */ 2352 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 2353 2354 /** 2355 * @format 112 2356 * @param subevent_code 2357 * @param pb_transport_cid 2358 * @param reason 2359 */ 2360 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 2361 2362 /** 2363 * @format 121 2364 * @param subevent_code 2365 * @param pb_transport_cid 2366 * @param attention_time in seconds 2367 */ 2368 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 2369 2370 /** 2371 * Device Role 2372 * @format 12 2373 * @param subevent_code 2374 * @param pb_transport_cid 2375 */ 2376 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 2377 2378 /** 2379 * Device Role 2380 * @format 12 2381 * @param subevent_code 2382 * @param pb_transport_cid 2383 */ 2384 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 2385 2386 /** 2387 * Device Role 2388 * @format 12 2389 * @param subevent_code 2390 * @param pb_transport_cid 2391 */ 2392 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 2393 2394 /** 2395 * Device Role 2396 * @format 124 2397 * @param subevent_code 2398 * @param pb_transport_cid 2399 * @param output_oob number 2400 */ 2401 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 2402 2403 /** 2404 * Device Role 2405 * @format 12 2406 * @param subevent_code 2407 * @param pb_transport_cid 2408 */ 2409 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 2410 2411 /** 2412 * Provisioner Role 2413 * @format 12 2414 * @param subevent_code 2415 * @param pb_transport_cid 2416 */ 2417 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 2418 2419 /** 2420 * Provisioner Role 2421 * @format 12 2422 * @param subevent_code 2423 * @param pb_transport_cid 2424 */ 2425 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 2426 2427 /** 2428 * Provisioner Role 2429 * @format 12 2430 * @param subevent_code 2431 * @param pb_transport_cid 2432 */ 2433 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 2434 2435 /** 2436 * Provisioner Role 2437 * @format 124 2438 * @param subevent_code 2439 * @param pb_transport_cid 2440 * @param output_oob number 2441 */ 2442 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 2443 2444 /** 2445 * Provisioner Role 2446 * @format 12 2447 * @param subevent_code 2448 * @param pb_transport_cid 2449 */ 2450 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 2451 2452 /** 2453 * Provisioner Role 2454 * @format 1212111212 2455 * @param subevent_code 2456 * @param pb_transport_cid 2457 * @param num_elements 2458 * @param algorithms 2459 * @param public_key 2460 * @param static_oob_type 2461 * @param output_oob_size 2462 * @param output_oob_action 2463 * @param input_oob_size 2464 * @param input_oob_action 2465 */ 2466 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 2467 2468 /** 2469 * @format 12 2470 * @param subevent_code 2471 * @param pb_transport_cid 2472 */ 2473 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 2474 2475 /** 2476 * @format 11 2477 * @param subevent_code 2478 * @param attention_time in seconds 2479 */ 2480 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 2481 2482 /** 2483 * @format 11H 2484 * @param subevent_code 2485 * @param status 2486 * @param con_handle 2487 */ 2488 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 2489 2490 /** 2491 * @format 1H 2492 * @param subevent_code 2493 * @param con_handle 2494 */ 2495 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 2496 2497 /** 2498 * @format 1H 2499 * @param subevent_code 2500 * @param con_handle 2501 */ 2502 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 2503 2504 /** 2505 * @format 1H 2506 * @param subevent_code 2507 * @param con_handle 2508 */ 2509 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 2510 2511 /** 2512 * @format 114411 2513 * @param subevent_code 2514 * @param element_index 2515 * @param model_identifier 2516 * @param state_identifier 2517 * @param reason 2518 * @param value 2519 */ 2520 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 2521 2522 /** 2523 * @format 114412 2524 * @param subevent_code 2525 * @param element_index 2526 * @param model_identifier 2527 * @param state_identifier 2528 * @param reason 2529 * @param value 2530 */ 2531 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 2532 2533 // Mesh Client Events 2534 /** 2535 * @format 11442 2536 * @param subevent_code 2537 * @param element_index 2538 * @param model_identifier 2539 * @param opcode 2540 * @param dest 2541 */ 2542 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 2543 2544 /** 2545 * @format 114114 2546 * @param subevent_code 2547 * @param element_index 2548 * @param model_identifier 2549 * @param present_value 2550 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2551 * @param remaining_time_ms 2552 */ 2553 #define MESH_SUBEVENT_GENERIC_ON_OFF_STATUS 0x31 2554 2555 /** 2556 * @format 114224 2557 * @param subevent_code 2558 * @param element_index 2559 * @param model_identifier 2560 * @param present_value 2561 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2562 * @param remaining_time_ms 2563 */ 2564 #define MESH_SUBEVENT_GENERIC_LEVEL_STATUS 0x32 2565 2566 2567 /** 2568 * @format 112 2569 * @param subevent_code 2570 * @param element_index 2571 * @param company_id 2572 */ 2573 #define MESH_SUBEVENT_HEALTH_CLEAR_REGISTERED_FAULTS 0x33 2574 2575 /** 2576 * @format 11422221 2577 * @param subevent_code 2578 * @param element_index 2579 * @param model_identifier 2580 * @param dest 2581 * @param netkey_index 2582 * @param appkey_index 2583 * @param company_id 2584 * @param test_id 2585 */ 2586 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x34 2587 2588 /** 2589 * @format 111 2590 * @param subevent_code 2591 * @param element_index 2592 * @param fast_period_divisor 2593 */ 2594 #define MESH_SUBEVENT_HEALTH_FAST_PERIOD_DIVISOR_CHANGED 0x35 2595 2596 /** 2597 * @format 11 2598 * @param subevent_code 2599 * @param element_index 2600 */ 2601 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x36 2602 2603 #endif 2604