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