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_CAPABILITIES_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 * @format 1212 1626 * @param subevent_code 1627 * @param avdtp_cid 1628 * @param local_seid 1629 * @param delay_100us 1630 */ 1631 #define AVDTP_SUBEVENT_SIGNALING_DELAY_REPORT 0x17 1632 1633 /** A2DP Subevent */ 1634 /* Stream goes through following states: 1635 * - OPEN - indicated with A2DP_SUBEVENT_STREAM_ESTABLISHED event 1636 * - START - indicated with A2DP_SUBEVENT_STREAM_STARTED event 1637 * - SUSPEND - indicated with A2DP_SUBEVENT_STREAM_SUSPENDED event 1638 * - ABORT/STOP - indicated with A2DP_SUBEVENT_STREAM_RELEASED event 1639 1640 OPEN state will be followed by ABORT/STOP. Stream is ready but media transfer is not started. 1641 START can come only after the stream is OPENED, and indicates that media transfer is started. 1642 SUSPEND is optional, it pauses the stream. 1643 */ 1644 1645 /** 1646 * @format 121 Sent only by A2DP source. 1647 * @param subevent_code 1648 * @param a2dp_cid 1649 * @param local_seid 1650 */ 1651 #define A2DP_SUBEVENT_STREAMING_CAN_SEND_MEDIA_PACKET_NOW 0x01 1652 1653 /** 1654 * @format 12111121111111 1655 * @param subevent_code 1656 * @param a2dp_cid 1657 * @param int_seid 1658 * @param acp_seid 1659 * @param reconfigure 1660 * @param media_type 1661 * @param sampling_frequency 1662 * @param channel_mode 1663 * @param num_channels 1664 * @param block_length 1665 * @param subbands 1666 * @param allocation_method 1667 * @param min_bitpool_value 1668 * @param max_bitpool_value 1669 */ 1670 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_SBC_CONFIGURATION 0x02 1671 1672 /** 1673 * @format 1211112LV 1674 * @param subevent_code 1675 * @param a2dp_cid 1676 * @param int_seid 1677 * @param acp_seid 1678 * @param reconfigure 1679 * @param media_type 1680 * @param media_codec_type 1681 * @param media_codec_information_len 1682 * @param media_codec_information 1683 */ 1684 #define A2DP_SUBEVENT_SIGNALING_MEDIA_CODEC_OTHER_CONFIGURATION 0x03 1685 1686 /** 1687 * @format 12B111 Stream is opened byt not started. 1688 * @param subevent_code 1689 * @param a2dp_cid 1690 * @param bd_addr 1691 * @param local_seid 1692 * @param remote_seid 1693 * @param status 1694 */ 1695 #define A2DP_SUBEVENT_STREAM_ESTABLISHED 0x04 1696 1697 /** 1698 * @format 121 Indicates that media transfer is started. 1699 * @param subevent_code 1700 * @param a2dp_cid 1701 * @param local_seid 1702 */ 1703 #define A2DP_SUBEVENT_STREAM_STARTED 0x05 1704 1705 /** 1706 * @format 121 Stream is paused. 1707 * @param subevent_code 1708 * @param a2dp_cid 1709 * @param local_seid 1710 */ 1711 #define A2DP_SUBEVENT_STREAM_SUSPENDED 0x06 1712 1713 /** 1714 * @format 121 Stream is stoped or aborted. 1715 * @param subevent_code 1716 * @param a2dp_cid 1717 * @param local_seid 1718 */ 1719 #define A2DP_SUBEVENT_STREAM_STOPPED 0x07 1720 1721 /** 1722 * @format 121 Stream is released. 1723 * @param subevent_code 1724 * @param a2dp_cid 1725 * @param local_seid 1726 */ 1727 #define A2DP_SUBEVENT_STREAM_RELEASED 0x08 1728 1729 /** 1730 * @format 1211 1731 * @param subevent_code 1732 * @param a2dp_cid 1733 * @param local_seid 1734 * @param signal_identifier 1735 */ 1736 #define A2DP_SUBEVENT_COMMAND_ACCEPTED 0x09 1737 1738 /** 1739 * @format 1211 1740 * @param subevent_code 1741 * @param a2dp_cid 1742 * @param local_seid 1743 * @param signal_identifier 1744 */ 1745 #define A2DP_SUBEVENT_COMMAND_REJECTED 0x0A 1746 1747 /** 1748 * @format 12B1 1749 * @param subevent_code 1750 * @param a2dp_cid 1751 * @param bd_addr 1752 * @param status 0 == OK 1753 */ 1754 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_ESTABLISHED 0x0B 1755 1756 /** 1757 * @format 12 Signaling channel is released. 1758 * @param subevent_code 1759 * @param a2dp_cid 1760 */ 1761 #define A2DP_SUBEVENT_SIGNALING_CONNECTION_RELEASED 0x0C 1762 1763 /** 1764 * @format 1211 Stream was reconfigured 1765 * @param subevent_code 1766 * @param a2dp_cid 1767 * @param local_seid 1768 * @param status 1769 */ 1770 #define A2DP_SUBEVENT_STREAM_RECONFIGURED 0x0D 1771 1772 /** 1773 * @format 1211 1774 * @param subevent_code 1775 * @param avdtp_cid 1776 * @param local_seid 1777 * @param remote_seid 1778 */ 1779 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORTING_CAPABILITY 0x0E 1780 1781 1782 /** 1783 * @format 1212 1784 * @param subevent_code 1785 * @param avdtp_cid 1786 * @param local_seid 1787 * @param delay_100us 1788 */ 1789 #define A2DP_SUBEVENT_SIGNALING_DELAY_REPORT 0x0F 1790 1791 /** 1792 * @format 1211 1793 * @param subevent_code 1794 * @param avdtp_cid 1795 * @param local_seid 1796 * @param remote_seid 1797 */ 1798 #define A2DP_SUBEVENT_SIGNALING_CAPABILITIES_DONE 0x10 1799 1800 /** AVRCP Subevent */ 1801 1802 /** 1803 * @format 11B2 1804 * @param subevent_code 1805 * @param status 0 == OK 1806 * @param bd_addr 1807 * @param avrcp_cid 1808 */ 1809 #define AVRCP_SUBEVENT_CONNECTION_ESTABLISHED 0x01 1810 1811 /** 1812 * @format 12 1813 * @param subevent_code 1814 * @param avrcp_cid 1815 */ 1816 #define AVRCP_SUBEVENT_CONNECTION_RELEASED 0x02 1817 1818 /** 1819 * @format 12111 1820 * @param subevent_code 1821 * @param avrcp_cid 1822 * @param command_type 1823 * @param repeat_mode 1824 * @param shuffle_mode 1825 */ 1826 #define AVRCP_SUBEVENT_SHUFFLE_AND_REPEAT_MODE 0x03 1827 1828 /** 1829 * @format 121441 1830 * @param subevent_code 1831 * @param avrcp_cid 1832 * @param command_type 1833 * @param song_length 1834 * @param song_position 1835 * @param play_status 1836 */ 1837 #define AVRCP_SUBEVENT_PLAY_STATUS 0x04 1838 1839 /** 1840 * @format 1211 1841 * @param subevent_code 1842 * @param avrcp_cid 1843 * @param command_type 1844 * @param play_status 1845 */ 1846 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_STATUS_CHANGED 0x05 1847 1848 /** 1849 * @format 121 1850 * @param subevent_code 1851 * @param avrcp_cid 1852 * @param command_type 1853 */ 1854 #define AVRCP_SUBEVENT_NOTIFICATION_TRACK_CHANGED 0x06 1855 1856 /** 1857 * @format 121 1858 * @param subevent_code 1859 * @param avrcp_cid 1860 * @param command_type 1861 */ 1862 #define AVRCP_SUBEVENT_NOTIFICATION_NOW_PLAYING_CONTENT_CHANGED 0x07 1863 1864 /** 1865 * @format 121 1866 * @param subevent_code 1867 * @param avrcp_cid 1868 * @param command_type 1869 */ 1870 #define AVRCP_SUBEVENT_NOTIFICATION_AVAILABLE_PLAYERS_CHANGED 0x08 1871 1872 /** 1873 * @format 1211 1874 * @param subevent_code 1875 * @param avrcp_cid 1876 * @param command_type 1877 * @param absolute_volume 1878 */ 1879 #define AVRCP_SUBEVENT_NOTIFICATION_VOLUME_CHANGED 0x09 1880 1881 /** 1882 * @format 1211 1883 * @param subevent_code 1884 * @param avrcp_cid 1885 * @param command_type 1886 * @param absolute_volume 1887 */ 1888 #define AVRCP_SUBEVENT_SET_ABSOLUTE_VOLUME_RESPONSE 0x0A 1889 1890 /** 1891 * @format 1211 1892 * @param subevent_code 1893 * @param avrcp_cid 1894 * @param command_type 1895 * @param notification_id 1896 */ 1897 #define AVRCP_SUBEVENT_ENABLE_NOTIFICATION_COMPLETE 0x0B 1898 1899 /** 1900 * @format 1211 1901 * @param subevent_code 1902 * @param avrcp_cid 1903 * @param command_type 1904 * @param operation_id 1905 */ 1906 #define AVRCP_SUBEVENT_OPERATION_START 0x0C 1907 1908 /** 1909 * @format 1211 1910 * @param subevent_code 1911 * @param avrcp_cid 1912 * @param command_type 1913 * @param operation_id 1914 */ 1915 #define AVRCP_SUBEVENT_OPERATION_COMPLETE 0x0D 1916 1917 /** 1918 * @format 121 1919 * @param subevent_code 1920 * @param avrcp_cid 1921 * @param command_type 1922 */ 1923 #define AVRCP_SUBEVENT_PLAYER_APPLICATION_VALUE_RESPONSE 0x0E 1924 1925 /** 1926 * @format 12 1927 * @param subevent_code 1928 * @param avrcp_cid 1929 */ 1930 #define AVRCP_SUBEVENT_COMPANY_IDS_QUERY 0x0F 1931 1932 /** 1933 * @format 12 1934 * @param subevent_code 1935 * @param avrcp_cid 1936 */ 1937 #define AVRCP_SUBEVENT_EVENT_IDS_QUERY 0x10 1938 1939 /** 1940 * @format 12 1941 * @param subevent_code 1942 * @param avrcp_cid 1943 */ 1944 #define AVRCP_SUBEVENT_PLAY_STATUS_QUERY 0x11 1945 1946 /** 1947 * @format 12111 1948 * @param subevent_code 1949 * @param avrcp_cid 1950 * @param operation_id 1951 * @param operands_length 1952 * @param operand 1953 */ 1954 #define AVRCP_SUBEVENT_OPERATION 0x12 1955 1956 /** 1957 * @format 1211 1958 * @param subevent_code 1959 * @param avrcp_cid 1960 * @param command_type 1961 * @param track 1962 */ 1963 #define AVRCP_SUBEVENT_NOW_PLAYING_TRACK_INFO 0x13 1964 1965 /** 1966 * @format 1211 1967 * @param subevent_code 1968 * @param avrcp_cid 1969 * @param command_type 1970 * @param total_tracks 1971 */ 1972 #define AVRCP_SUBEVENT_NOW_PLAYING_TOTAL_TRACKS_INFO 0x14 1973 1974 /** 1975 * @format 1214 1976 * @param subevent_code 1977 * @param avrcp_cid 1978 * @param command_type 1979 * @param song_length in ms 1980 */ 1981 #define AVRCP_SUBEVENT_NOW_PLAYING_SONG_LENGTH_MS_INFO 0x15 1982 1983 /** 1984 * @format 121JV 1985 * @param subevent_code 1986 * @param avrcp_cid 1987 * @param command_type 1988 * @param value_len 1989 * @param value 1990 */ 1991 #define AVRCP_SUBEVENT_NOW_PLAYING_TITLE_INFO 0x16 1992 1993 /* 1994 * @format 121JV 1995 * @param subevent_code 1996 * @param avrcp_cid 1997 * @param command_type 1998 * @param value_len 1999 * @param value 2000 */ 2001 #define AVRCP_SUBEVENT_NOW_PLAYING_ARTIST_INFO 0x17 2002 2003 /* 2004 * @format 121JV 2005 * @param subevent_code 2006 * @param avrcp_cid 2007 * @param command_type 2008 * @param value_len 2009 * @param value 2010 */ 2011 #define AVRCP_SUBEVENT_NOW_PLAYING_ALBUM_INFO 0x18 2012 2013 /* 2014 * @format 121JV 2015 * @param subevent_code 2016 * @param avrcp_cid 2017 * @param command_type 2018 * @param value_len 2019 * @param value 2020 */ 2021 #define AVRCP_SUBEVENT_NOW_PLAYING_GENRE_INFO 0x19 2022 2023 /* 2024 * @format 1211 2025 * @param subevent_code 2026 * @param avrcp_cid 2027 * @param command_type 2028 * @param status 2029 */ 2030 #define AVRCP_SUBEVENT_NOW_PLAYING_INFO_DONE 0x1A 2031 2032 /** 2033 * @format 1B2 2034 * @param subevent_code 2035 * @param bd_addr 2036 * @param browsing_cid 2037 */ 2038 #define AVRCP_SUBEVENT_INCOMING_BROWSING_CONNECTION 0x1B 2039 2040 /** 2041 * @format 11B2 2042 * @param subevent_code 2043 * @param status 0 == OK 2044 * @param bd_addr 2045 * @param browsing_cid 2046 */ 2047 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_ESTABLISHED 0x1C 2048 2049 /** 2050 * @format 12 2051 * @param subevent_code 2052 * @param browsing_cid 2053 */ 2054 #define AVRCP_SUBEVENT_BROWSING_CONNECTION_RELEASED 0x1D 2055 2056 /** 2057 * @format 12211 2058 * @param subevent_code 2059 * @param browsing_cid 2060 * @param uid_counter 2061 * @param browsing_status 2062 * @param bluetooth_status 2063 */ 2064 #define AVRCP_SUBEVENT_BROWSING_DONE 0x1E 2065 2066 /** 2067 * @format 1214 2068 * @param subevent_code 2069 * @param browsing_cid 2070 * @param scope 2071 * @param attr_bitmap 2072 */ 2073 #define AVRCP_SUBEVENT_BROWSING_GET_FOLDER_ITEMS 0x1F 2074 2075 /** 2076 * @format 121 2077 * @param subevent_code 2078 * @param browsing_cid 2079 * @param scope 2080 */ 2081 #define AVRCP_SUBEVENT_BROWSING_GET_TOTAL_NUM_ITEMS 0x20 2082 2083 /** 2084 * @format 1214 2085 * @param subevent_code 2086 * @param avrcp_cid 2087 * @param command_type 2088 * @param playback_position_ms 2089 */ 2090 #define AVRCP_SUBEVENT_NOTIFICATION_PLAYBACK_POS_CHANGED 0x21 2091 2092 2093 /** 2094 * @format 121BH1 2095 * @param subevent_code 2096 * @param goep_cid 2097 * @param status 2098 * @param bd_addr 2099 * @param con_handle 2100 * @param incoming 2101 */ 2102 #define GOEP_SUBEVENT_CONNECTION_OPENED 0x01 2103 2104 /** 2105 * @format 12 2106 * @param subevent_code 2107 * @param goep_cid 2108 */ 2109 #define GOEP_SUBEVENT_CONNECTION_CLOSED 0x02 2110 2111 /** 2112 * @format 12 2113 * @param subevent_code 2114 * @param goep_cid 2115 */ 2116 #define GOEP_SUBEVENT_CAN_SEND_NOW 0x03 2117 2118 /** 2119 * @format 121BH1 2120 * @param subevent_code 2121 * @param pbap_cid 2122 * @param status 2123 * @param bd_addr 2124 * @param con_handle 2125 * @param incoming 2126 */ 2127 #define PBAP_SUBEVENT_CONNECTION_OPENED 0x01 2128 2129 /** 2130 * @format 12 2131 * @param subevent_code 2132 * @param goep_cid 2133 */ 2134 #define PBAP_SUBEVENT_CONNECTION_CLOSED 0x02 2135 2136 /** 2137 * @format 121 2138 * @param subevent_code 2139 * @param goep_cid 2140 * @param status 2141 */ 2142 #define PBAP_SUBEVENT_OPERATION_COMPLETED 0x03 2143 2144 /** 2145 * @format 1212 2146 * @param subevent_code 2147 * @param goep_cid 2148 * @param status 2149 * @param phoneboook_size 2150 */ 2151 #define PBAP_SUBEVENT_PHONEBOOK_SIZE 0x04 2152 2153 /** 2154 * @format 1211 2155 * @param subevent_code 2156 * @param goep_cid 2157 * @param user_id_required 2158 * @param full_access 2159 */ 2160 #define PBAP_SUBEVENT_AUTHENTICATION_REQUEST 0x05 2161 2162 /** 2163 * @format 12JVJV 2164 * @param subevent_code 2165 * @param goep_cid 2166 * @param name_len 2167 * @param name 2168 * @param handle_len 2169 * @param handle 2170 */ 2171 #define PBAP_SUBEVENT_CARD_RESULT 0x06 2172 2173 2174 // HID Meta Event Group 2175 2176 /** 2177 * @format 121BH1 2178 * @param subevent_code 2179 * @param hid_cid 2180 * @param status 2181 * @param bd_addr 2182 * @param con_handle 2183 * @param incoming 2184 */ 2185 #define HID_SUBEVENT_CONNECTION_OPENED 0x01 2186 2187 /** 2188 * @format 12 2189 * @param subevent_code 2190 * @param hid_cid 2191 */ 2192 #define HID_SUBEVENT_CONNECTION_CLOSED 0x02 2193 2194 /** 2195 * @format 12 2196 * @param subevent_code 2197 * @param hid_cid 2198 */ 2199 #define HID_SUBEVENT_CAN_SEND_NOW 0x03 2200 2201 /** 2202 * @format 12 2203 * @param subevent_code 2204 * @param con_handle 2205 */ 2206 #define HID_SUBEVENT_SUSPEND 0x04 2207 2208 /** 2209 * @format 12 2210 * @param subevent_code 2211 * @param con_handle 2212 */ 2213 #define HID_SUBEVENT_EXIT_SUSPEND 0x05 2214 2215 2216 // HIDS Meta Event Group 2217 2218 /** 2219 * @format 12 2220 * @param subevent_code 2221 * @param con_handle 2222 */ 2223 #define HIDS_SUBEVENT_CAN_SEND_NOW 0x01 2224 2225 /** 2226 * @format 121 2227 * @param subevent_code 2228 * @param con_handle 2229 * @param protocol_mode 2230 */ 2231 #define HIDS_SUBEVENT_PROTOCOL_MODE 0x02 2232 2233 /** 2234 * @format 121 2235 * @param subevent_code 2236 * @param con_handle 2237 * @param enable 2238 */ 2239 #define HIDS_SUBEVENT_BOOT_MOUSE_INPUT_REPORT_ENABLE 0x03 2240 2241 /** 2242 * @format 121 2243 * @param subevent_code 2244 * @param con_handle 2245 * @param enable 2246 */ 2247 #define HIDS_SUBEVENT_BOOT_KEYBOARD_INPUT_REPORT_ENABLE 0x04 2248 2249 /** 2250 * @format 121 2251 * @param subevent_code 2252 * @param con_handle 2253 * @param enable 2254 */ 2255 #define HIDS_SUBEVENT_INPUT_REPORT_ENABLE 0x05 2256 2257 /** 2258 * @format 121 2259 * @param subevent_code 2260 * @param con_handle 2261 * @param enable 2262 */ 2263 #define HIDS_SUBEVENT_OUTPUT_REPORT_ENABLE 0x06 2264 2265 /** 2266 * @format 121 2267 * @param subevent_code 2268 * @param con_handle 2269 * @param enable 2270 */ 2271 #define HIDS_SUBEVENT_FEATURE_REPORT_ENABLE 0x07 2272 2273 /** 2274 * @format 12 2275 * @param subevent_code 2276 * @param con_handle 2277 */ 2278 #define HIDS_SUBEVENT_SUSPEND 0x08 2279 2280 /** 2281 * @format 12 2282 * @param subevent_code 2283 * @param con_handle 2284 */ 2285 #define HIDS_SUBEVENT_EXIT_SUSPEND 0x09 2286 2287 /** 2288 * @format 1211 2289 * @param subevent_code 2290 * @param con_handle 2291 * @param measurement_type // 0 - force magnitude, 1 - torque magnitude, see cycling_power_sensor_measurement_context_t 2292 * @param is_enhanced 2293 */ 2294 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_START_CALIBRATION 0x01 2295 2296 /** 2297 * @format 12 2298 * @param subevent_code 2299 * @param con_handle 2300 */ 2301 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_START 0x02 2302 2303 /** 2304 * @format 12 2305 * @param subevent_code 2306 * @param con_handle 2307 */ 2308 #define GATTSERVICE_SUBEVENT_CYCLING_POWER_BROADCAST_STOP 0x03 2309 2310 2311 // MAP Meta Event Group 2312 2313 /** 2314 * @format 121BH1 2315 * @param subevent_code 2316 * @param map_cid 2317 * @param status 2318 * @param bd_addr 2319 * @param con_handle 2320 * @param incoming 2321 */ 2322 #define MAP_SUBEVENT_CONNECTION_OPENED 0x01 2323 2324 /** 2325 * @format 12 2326 * @param subevent_code 2327 * @param map_cid 2328 */ 2329 #define MAP_SUBEVENT_CONNECTION_CLOSED 0x02 2330 2331 /** 2332 * @format 121 2333 * @param subevent_code 2334 * @param map_cid 2335 * @param status 2336 */ 2337 #define MAP_SUBEVENT_OPERATION_COMPLETED 0x03 2338 2339 2340 /** 2341 * @format 12LV 2342 * @param subevent_code 2343 * @param map_cid 2344 * @param name_len 2345 * @param name 2346 */ 2347 #define MAP_SUBEVENT_FOLDER_LISTING_ITEM 0x04 2348 2349 /** 2350 * @format 12D 2351 * @param subevent_code 2352 * @param map_cid 2353 * @param handle 2354 2355 */ 2356 #define MAP_SUBEVENT_MESSAGE_LISTING_ITEM 0x05 2357 2358 /** 2359 * @format 12 2360 * @param subevent_code 2361 * @param map_cid 2362 */ 2363 #define MAP_SUBEVENT_PARSING_DONE 0x06 2364 2365 2366 // MESH Meta Event Group 2367 2368 /** 2369 * @format 1 2370 * @param subevent_code 2371 */ 2372 #define MESH_SUBEVENT_CAN_SEND_NOW 0x01 2373 2374 /** 2375 * @format 11 2376 * @param subevent_code 2377 * @param status 2378 */ 2379 #define MESH_SUBEVENT_PB_TRANSPORT_PDU_SENT 0x02 2380 2381 /** 2382 * @format 1121 2383 * @param subevent_code 2384 * @param status 2385 * @param pb_transport_cid 2386 * @param pb_type 2387 */ 2388 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_OPEN 0x03 2389 2390 /** 2391 * @format 112 2392 * @param subevent_code 2393 * @param pb_transport_cid 2394 * @param reason 2395 */ 2396 #define MESH_SUBEVENT_PB_TRANSPORT_LINK_CLOSED 0x04 2397 2398 /** 2399 * @format 121 2400 * @param subevent_code 2401 * @param pb_transport_cid 2402 * @param attention_time in seconds 2403 */ 2404 #define MESH_SUBEVENT_PB_PROV_ATTENTION_TIMER 0x10 2405 2406 /** 2407 * Device Role 2408 * @format 12 2409 * @param subevent_code 2410 * @param pb_transport_cid 2411 */ 2412 #define MESH_SUBEVENT_PB_PROV_START_EMIT_PUBLIC_KEY_OOB 0x11 2413 2414 /** 2415 * Device Role 2416 * @format 12 2417 * @param subevent_code 2418 * @param pb_transport_cid 2419 */ 2420 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_PUBLIC_KEY_OOB 0x12 2421 2422 /** 2423 * Device Role 2424 * @format 12 2425 * @param subevent_code 2426 * @param pb_transport_cid 2427 */ 2428 #define MESH_SUBEVENT_PB_PROV_INPUT_OOB_REQUEST 0x13 2429 2430 /** 2431 * Device Role 2432 * @format 124 2433 * @param subevent_code 2434 * @param pb_transport_cid 2435 * @param output_oob number 2436 */ 2437 #define MESH_SUBEVENT_PB_PROV_START_EMIT_OUTPUT_OOB 0x15 2438 2439 /** 2440 * Device Role 2441 * @format 12 2442 * @param subevent_code 2443 * @param pb_transport_cid 2444 */ 2445 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_OUTPUT_OOB 0x16 2446 2447 /** 2448 * Provisioner Role 2449 * @format 12 2450 * @param subevent_code 2451 * @param pb_transport_cid 2452 */ 2453 #define MESH_SUBEVENT_PB_PROV_START_RECEIVE_PUBLIC_KEY_OOB 0x17 2454 2455 /** 2456 * Provisioner Role 2457 * @format 12 2458 * @param subevent_code 2459 * @param pb_transport_cid 2460 */ 2461 #define MESH_SUBEVENT_PB_PROV_STOP_RECEIVE_PUBLIC_KEY_OOB 0x18 2462 2463 /** 2464 * Provisioner Role 2465 * @format 12 2466 * @param subevent_code 2467 * @param pb_transport_cid 2468 */ 2469 #define MESH_SUBEVENT_PB_PROV_OUTPUT_OOB_REQUEST 0x19 2470 2471 /** 2472 * Provisioner Role 2473 * @format 124 2474 * @param subevent_code 2475 * @param pb_transport_cid 2476 * @param output_oob number 2477 */ 2478 #define MESH_SUBEVENT_PB_PROV_START_EMIT_INPUT_OOB 0x1a 2479 2480 /** 2481 * Provisioner Role 2482 * @format 12 2483 * @param subevent_code 2484 * @param pb_transport_cid 2485 */ 2486 #define MESH_SUBEVENT_PB_PROV_STOP_EMIT_INPUT_OOB 0x1b 2487 2488 /** 2489 * Provisioner Role 2490 * @format 1212111212 2491 * @param subevent_code 2492 * @param pb_transport_cid 2493 * @param num_elements 2494 * @param algorithms 2495 * @param public_key 2496 * @param static_oob_type 2497 * @param output_oob_size 2498 * @param output_oob_action 2499 * @param input_oob_size 2500 * @param input_oob_action 2501 */ 2502 #define MESH_SUBEVENT_PB_PROV_CAPABILITIES 0x1c 2503 2504 /** 2505 * @format 12 2506 * @param subevent_code 2507 * @param pb_transport_cid 2508 */ 2509 #define MESH_SUBEVENT_PB_PROV_COMPLETE 0x1d 2510 2511 /** 2512 * @format 11 2513 * @param subevent_code 2514 * @param attention_time in seconds 2515 */ 2516 #define MESH_SUBEVENT_ATTENTION_TIMER 0x1e 2517 2518 /** 2519 * @format 11H 2520 * @param subevent_code 2521 * @param status 2522 * @param con_handle 2523 */ 2524 #define MESH_SUBEVENT_PROXY_CONNECTED 0x20 2525 2526 /** 2527 * @format 1H 2528 * @param subevent_code 2529 * @param con_handle 2530 */ 2531 #define MESH_SUBEVENT_PROXY_PDU_SENT 0x21 2532 2533 /** 2534 * @format 1H 2535 * @param subevent_code 2536 * @param con_handle 2537 */ 2538 #define MESH_SUBEVENT_PROXY_DISCONNECTED 0x22 2539 2540 /** 2541 * @format 1H 2542 * @param subevent_code 2543 * @param con_handle 2544 */ 2545 #define MESH_SUBEVENT_MESSAGE_SENT 0x23 2546 2547 /** 2548 * @format 114411 2549 * @param subevent_code 2550 * @param element_index 2551 * @param model_identifier 2552 * @param state_identifier 2553 * @param reason 2554 * @param value 2555 */ 2556 #define MESH_SUBEVENT_STATE_UPDATE_BOOL 0x24 2557 2558 /** 2559 * @format 114412 2560 * @param subevent_code 2561 * @param element_index 2562 * @param model_identifier 2563 * @param state_identifier 2564 * @param reason 2565 * @param value 2566 */ 2567 #define MESH_SUBEVENT_STATE_UPDATE_INT16 0x25 2568 2569 // Mesh Client Events 2570 /** 2571 * @format 11442 2572 * @param subevent_code 2573 * @param element_index 2574 * @param model_identifier 2575 * @param opcode 2576 * @param dest 2577 */ 2578 #define MESH_SUBEVENT_MESSAGE_NOT_ACKNOWLEDGED 0x30 2579 2580 /** 2581 * @format 114114 2582 * @param subevent_code 2583 * @param element_index 2584 * @param model_identifier 2585 * @param present_value 2586 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2587 * @param remaining_time_ms 2588 */ 2589 #define MESH_SUBEVENT_GENERIC_ON_OFF_STATUS 0x31 2590 2591 /** 2592 * @format 114224 2593 * @param subevent_code 2594 * @param element_index 2595 * @param model_identifier 2596 * @param present_value 2597 * @param target_value // optinal, if value > 0, than remaining_time_ms must be read 2598 * @param remaining_time_ms 2599 */ 2600 #define MESH_SUBEVENT_GENERIC_LEVEL_STATUS 0x32 2601 2602 2603 /** 2604 * @format 112 2605 * @param subevent_code 2606 * @param element_index 2607 * @param company_id 2608 */ 2609 #define MESH_SUBEVENT_HEALTH_CLEAR_REGISTERED_FAULTS 0x33 2610 2611 /** 2612 * @format 11422221 2613 * @param subevent_code 2614 * @param element_index 2615 * @param model_identifier 2616 * @param dest 2617 * @param netkey_index 2618 * @param appkey_index 2619 * @param company_id 2620 * @param test_id 2621 */ 2622 #define MESH_SUBEVENT_HEALTH_PERFORM_TEST 0x34 2623 2624 /** 2625 * @format 111 2626 * @param subevent_code 2627 * @param element_index 2628 * @param fast_period_divisor 2629 */ 2630 #define MESH_SUBEVENT_HEALTH_FAST_PERIOD_DIVISOR_CHANGED 0x35 2631 2632 /** 2633 * @format 11 2634 * @param subevent_code 2635 * @param element_index 2636 */ 2637 #define MESH_SUBEVENT_HEALTH_ATTENTION_TIMER_CHANGED 0x36 2638 2639 #endif 2640