1 /* btp_ascs.h - Bluetooth tester headers */ 2 3 /* 4 * Copyright (c) 2023 Codecoup 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 #include <stdint.h> 9 10 #include <zephyr/bluetooth/addr.h> 11 12 /* ASCS commands */ 13 #define BTP_ASCS_READ_SUPPORTED_COMMANDS 0x01 14 struct btp_ascs_read_supported_commands_rp { 15 uint8_t data[0]; 16 } __packed; 17 18 #define BTP_ASCS_CONFIGURE_CODEC 0x02 19 struct btp_ascs_configure_codec_cmd { 20 bt_addr_le_t address; 21 uint8_t ase_id; 22 uint8_t coding_format; 23 uint16_t vid; 24 uint16_t cid; 25 uint8_t cc_ltvs_len; 26 uint8_t cc_ltvs[0]; 27 } __packed; 28 29 #define BTP_ASCS_CONFIGURE_QOS 0x03 30 struct btp_ascs_configure_qos_cmd { 31 bt_addr_le_t address; 32 uint8_t ase_id; 33 uint8_t cig_id; 34 uint8_t cis_id; 35 uint8_t sdu_interval[3]; 36 uint8_t framing; 37 uint16_t max_sdu; 38 uint8_t retransmission_num; 39 uint16_t max_transport_latency; 40 uint8_t presentation_delay[3]; 41 } __packed; 42 43 #define BTP_ASCS_ENABLE 0x04 44 struct btp_ascs_enable_cmd { 45 bt_addr_le_t address; 46 uint8_t ase_id; 47 } __packed; 48 49 #define BTP_ASCS_RECEIVER_START_READY 0x05 50 struct btp_ascs_receiver_start_ready_cmd { 51 bt_addr_le_t address; 52 uint8_t ase_id; 53 } __packed; 54 55 #define BTP_ASCS_RECEIVER_STOP_READY 0x06 56 struct btp_ascs_receiver_stop_ready_cmd { 57 bt_addr_le_t address; 58 uint8_t ase_id; 59 } __packed; 60 61 #define BTP_ASCS_DISABLE 0x07 62 struct btp_ascs_disable_cmd { 63 bt_addr_le_t address; 64 uint8_t ase_id; 65 } __packed; 66 67 #define BTP_ASCS_RELEASE 0x08 68 struct btp_ascs_release_cmd { 69 bt_addr_le_t address; 70 uint8_t ase_id; 71 } __packed; 72 73 #define BTP_ASCS_UPDATE_METADATA 0x09 74 struct btp_ascs_update_metadata_cmd { 75 bt_addr_le_t address; 76 uint8_t ase_id; 77 } __packed; 78 79 #define BTP_ASCS_ADD_ASE_TO_CIS 0x0a 80 struct btp_ascs_add_ase_to_cis { 81 bt_addr_le_t address; 82 uint8_t ase_id; 83 uint8_t cig_id; 84 uint8_t cis_id; 85 } __packed; 86 87 #define BTP_ASCS_PRECONFIGURE_QOS 0x0b 88 struct btp_ascs_preconfigure_qos_cmd { 89 uint8_t cig_id; 90 uint8_t cis_id; 91 uint8_t sdu_interval[3]; 92 uint8_t framing; 93 uint16_t max_sdu; 94 uint8_t retransmission_num; 95 uint16_t max_transport_latency; 96 uint8_t presentation_delay[3]; 97 } __packed; 98 99 /* ASCS events */ 100 #define BTP_ASCS_EV_OPERATION_COMPLETED 0x80 101 struct btp_ascs_operation_completed_ev { 102 bt_addr_le_t address; 103 uint8_t ase_id; 104 uint8_t opcode; 105 uint8_t status; 106 107 /* RFU */ 108 uint8_t flags; 109 } __packed; 110 111 #define BTP_ASCS_EV_CHARACTERISTIC_SUBSCRIBED 0x81 112 113 #define BTP_ASCS_EV_ASE_STATE_CHANGED 0x82 114 struct btp_ascs_ase_state_changed_ev { 115 bt_addr_le_t address; 116 uint8_t ase_id; 117 uint8_t state; 118 } __packed; 119 120 #define BTP_ASCS_STATUS_SUCCESS 0x00 121 #define BTP_ASCS_STATUS_FAILED 0x01 122