ble_iso.h
Go to the documentation of this file.
1 /**
2 ****************************************************************************************
3 *
4 * @file ble_iso.h
5 *
6 * @brief BLE ISO API
7 *
8 ****************************************************************************************
9 * @attention
10 #####Copyright (c) 2019 GOODIX
11 All rights reserved.
12
13 Redistribution and use in source and binary forms, with or without
14 modification, are permitted provided that the following conditions are met:
15 * Redistributions of source code must retain the above copyright
16 notice, this list of conditions and the following disclaimer.
17 * Redistributions in binary form must reproduce the above copyright
18 notice, this list of conditions and the following disclaimer in the
19 documentation and/or other materials provided with the distribution.
20 * Neither the name of GOODIX nor the names of its contributors may be used
21 to endorse or promote products derived from this software without
22 specific prior written permission.
23
24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 POSSIBILITY OF SUCH DAMAGE.
35 *****************************************************************************************
36 */
37
38 /**
39 * @addtogroup BLE
40 * @{
41 */
42
43 /**
44 @addtogroup BLE_ISO Core Isochronous Channels
45 @{
46 @brief Definitions and prototypes for the ISO interfaces.
47 */
48
49 #ifndef __BLE_ISO_H__
50 #define __BLE_ISO_H__
51
52 #include "ble_error.h"
53 #include "ble_gapc.h"
54 #include <stdint.h>
55 #include <stdbool.h>
56
57 /** @addtogroup BLE_ISO_DEFINES Defines
58 * @{ */
59
60 #define ISO_ADDR_LEN 6 /**< Length for address. */
61 #define ENC_CODE_LEN 16 /**< Length for encryption code. */
62
63 #define ISO_SYNC0_PULSE (0x1 << 0) /**< ISO sync0 pulse. */
64 #define ISO_SYNC1_PULSE (0x1 << 1) /**< ISO sync1 pulse. */
65 /** @} */
66
67
68 /**@addtogroup BLE_ISO_ENUMERATIONS Enumerations
69 * @{ */
70
71 /**@brief Operation ID. */
72 typedef enum
73 {
74 ISO_READ_ISO_TX_SYNC,
75 ISO_SET_CIG_PARAM,
76 ISO_REMOVE_CIG,
77 ISO_REJECT_CIS_REQ,
78 ISO_SET_DATA_PATH,
79 ISO_REMOVE_DATA_PATH,
80 ISO_PER_ADV_SYNC_TRAN,
81 ISO_SET_PER_ADV_SET_INFO_TRAN,
82 ISO_SET_PER_ADV_SYNC_TRAN_PARAM,
83 ISO_SET_DEFAULT_PER_ADV_SYNC_TRAN_PARAM,
84 } iso_op_id_t;
85
86 /**@brief Adv type for announcement. */
87 typedef enum
88 {
89 ISO_ADV_UNDIRECT, /**< undirect adv. */
90 ISO_ADV_DIRECT, /**< direct adv (Low duty). */
91 } iso_adv_type_t;
92
93 /**@brief Address type. */
94 typedef enum
95 {
96 PUBLIC = 0, /**< public type. */
97 RANDOM, /**< random type. */
98 } iso_add_type_t;
99
100 /**@brief Data path type. */
101 typedef enum
102 {
103 DATA_PATH_DISABLE = 0xFF, /**< Data path for disabled. */
104 DATA_PATH_HCI = 0x00, /**< Data path for hci. */
105 DATA_PATH_GEN = 0xF2, /**< Data path for gen. */
106 DATA_PATH_GDX = 0xF6, /**< Data path for gdx. */
107 } iso_data_path_type_t;
108
109 /**@brief Data path direction type. */
110 typedef enum
111 {
112 HOST_TO_CONTROLLER = 0x00, /**< Host to controller. */
113 CONTROLLER_TO_HOST = 0x01, /**< Controller to host. */
114 DIRECTION_BOTH = 0x02, /**< Host to controller and controller to host, just use for remove data path. */
115 } iso_data_path_direction_t;
116
117 /**@brief SCA type. */
118 typedef enum
119 {
120 SCA0 = 0x00, /**< 251 ppm to 500 ppm. */
121 SCA1 = 0x01, /**< 151 ppm to 250 ppm. */
122 SCA2 = 0x02, /**< 101 ppm to 150 ppm. */
123 SCA3 = 0x03, /**< 76 ppm to 100 ppm. */
124 SCA4 = 0x04, /**< 51 ppm to 75 ppm. */
125 SCA5 = 0x05, /**< 31 ppm to 50 ppm. */
126 SCA6 = 0x06, /**< 21 ppm to 30 ppm. */
127 SCA7 = 0x07, /**< 0 ppm to 20 ppm. */
128 } iso_sca_type_t;
129
130 /**@brief Packing type. */
131 typedef enum
132 {
133 PACK_SEQ = 0x00, /**< Sequential. */
134 PACK_INT = 0x01 /**< Interleaved. */
135 } iso_packing_type_t;
136
137 /**@brief Framing type. */
138 typedef enum
139 {
140 UNFRAMED = 0x00, /**< Unframed. */
141 FRAMED = 0x01 /**< Framed. */
142 } iso_framing_type_t;
143
144 /**@brief Encryption type. */
145 typedef enum
146 {
147 UNENCRYPTED = 0x00, /**< Unencrypted. */
148 ENCRYPTED = 0x01 /**< Encrypted. */
149 } iso_encryption_type_t;
150
151 /**@brief Sync mode type. */
152 typedef enum
153 {
154 NO_EVT_NO_REPORT = 0x00, /**< No attempt is made to synchronize to the periodic advertising and no
155 HCI_LE_Periodic_Advertising_Sync_Transfer_Received event is sent to the Host */
156 WITH_EVT_NO_REPORT = 0x01, /**< An HCI_LE_Periodic_Advertising_Sync_Transfer_Received event is sent to the Host.
157 HCI_LE_Periodic_Advertising_Report events will be disabled. */
158 WITH_EVT_WITH_REPORT = 0x02, /**< An HCI_LE_Periodic_Advertising_Sync_Transfer_Received event is sent to the Host.
159 HCI_LE_Periodic_Advertising_Report events will be enabled. */
160 } iso_sync_mode_t;
161
162 /**@brief Cte type. */
163 typedef enum
164 {
165 NOT_SYNC_WITH_AOA = 0x01, /**< Do not sync to packets with an AoA Constant Tone Extension. */
166 NOT_SYNC_WITH_AOD_1US = 0x02, /**< Do not sync to packets with an AoD Constant Tone Extension with 1 us slots. */
167 NOT_SYNC_WITH_AOD_2US = 0x04, /**< Do not sync to packets with an AoD Constant Tone Extension with 2 us slots. */
168 NOT_SYNC_WITHOUT_CTE = 0x10, /**< Do not sync to packets without a Constant Tone Extension. */
169 } iso_cte_type_t;
170
171 /**@brief Phy type. */
172 typedef enum
173 {
174 ISO_PHY_1M = 0x01 << 0, /**< The transmitter PHY of packets is LE 1M. */
175 ISO_PHY_2M = 0x01 << 1, /**< The transmitter PHY of packets is LE 2M. */
176 ISO_PHY_CODED = 0x01 << 2 /**< The transmitter PHY of packets is LE Coded. */
177 } iso_phy_type_t;
178
179 /**@brief Terminate big/big sync reason. */
180 typedef enum
181 {
182 TERMINATE_BY_REMOTE = 0x13, /**< Remote user terminate. */
183 TERMINATE_BY_LOCAL = 0x16, /**< Local user terminate. */
184 } iso_termi_big_reason_t;
185
186 enum
187 {
188 ISO_GPIO_MASK_0 = 0x1,
189 ISO_GPIO_MASK_1 = 0x2,
190 ISO_GPIO_MASK_2 = 0x4,
191 ISO_GPIO_MASK_3 = 0x8,
192 ISO_GPIO_MASK_4 = 0x10,
193 ISO_GPIO_MASK_5 = 0x20,
194 ISO_GPIO_MASK_6 = 0x40,
195 ISO_GPIO_MASK_7 = 0x80
196 };
197 /** @} */
198
199 /** @addtogroup BLE_L2CAP_STRUCTURES Structures
200 * @{ */
201
202 /**
203 @brief The parameter for starting broadcast announcement.
204 */
205 typedef struct
206 {
207 uint8_t adv_idx; /**< Adv index, (Range: 0 to 4). */
208 uint8_t sid; /**< Adv set ID, (Range: 0x00 to 0xFF). */
209 uint16_t interval; /**< Adv interval, (Range: 0x0006 to 0xFFFF), Time = N * 1.25 ms,Time Range: 7.5ms to 81.91875 s. */
210 uint16_t data_len; /**< Broadcast audio announcement data length. */
211 uint8_t *data; /**< Broadcast audio announcement data. */
212 } iso_start_bd_ann_t;
213
214 /**
215 @brief The parameter for starting genneral announcement.
216 */
217 typedef struct
218 {
219 uint8_t adv_idx; /**< Adv index. */
220 uint32_t interval; /**< Adv interval, (Range: 0x000020 to 0xFFFFFF), Time = N * 0.625. */
221 uint16_t data_len; /**< General audio announcement data length. */
222 uint8_t *data; /**< General audio announcement data. */
223 } iso_start_gen_ann_t;
224
225 /**
226 @brief The parameter for starting target announcement.
227 */
228 typedef struct
229 {
230 uint8_t adv_idx; /**< Adv index. */
231 uint32_t interval; /**< Adv interval, (Range: 0x000020 to 0xFFFFFF), Time = N * 0.625. */
232 uint8_t adv_type; /**< Adv type, see iso_adv_type_t , the peer addr_type and addr
233 is invalid for undirect type, and should ignore them. */
234 uint8_t peer_add_type; /**< Peer address type, see iso_add_type_t */
235 uint8_t peer_addr[ISO_ADDR_LEN]; /**< Peer address. */
236 uint16_t data_len; /**< Target audio announcement data length. */
237 uint8_t *data; /**< Target audio announcement data. */
238 } iso_start_target_ann_t;
239
240 /**
241 @brief The parameter for discovery announcement.
242 */
243 typedef struct
244 {
245 uint16_t interval; /**< Scan interval between 0x0004 and 0x4000 in 0.625 ms units(range: 2.5 ms to 10.24 s). */
246 uint16_t window; /**< Scan window between 0x0004 and 0x4000 in 0.625 ms units(range: 2.5 ms to 10.24 s). */
247 uint16_t timeout; /**< Scan timeout should be a value between 0x0001 and 0xFFFF(unit: 10 ms).
248 0x0000 indicates that the timeout have no effect. */
249 } iso_disc_ann_t;
250
251 /**
252 @brief The parameter for sync announcement.
253 */
254 typedef struct
255 {
256 uint8_t sid; /**< public type. */
257 uint8_t peer_addr_type; /**< Peer address type, see iso_add_type_t */
258 uint8_t peer_addr[ISO_ADDR_LEN]; /**< Peer address. */
259 uint16_t sync_timeout; /**< Synchronization timeout for the periodic advertising(in unit of 10ms between 100ms and 163.84s). */
260 } iso_sync_ann_t;
261
262 /**
263 @brief The parameter for creating big.
264 */
265 typedef struct
266 {
267 uint8_t big_hdl; /**< Used to identify the BIG (0x00 to 0xEF). */
268 uint8_t per_adv_idx; /**< Used to identify the periodic advertising set (0 to 4). */
269 uint8_t num_bis; /**< Total number of BISs in the BIG(0x01 to 0x1F). */
270 uint32_t sdu_interval; /**< Time duration between SDUs in microseconds(0x000100 to 0x0FFFFF). */
271 uint16_t max_sdu_size; /**< Maximum size of a SDU (0x001 to 0xFFF). */
272 uint16_t tran_latency; /**< Maximum time (in milliseconds) between transmission and reception of a BIS Data PDU (0x0000 to 0x0FA0). */
273 uint8_t rtn; /**< Number of times every BIS Data PDU should be retransmitted(0x00 to 0x0F). */
274 uint8_t phy; /**< Indicates the PHY used for transmission of PDUs of BISs in the BIG.see iso_phy_type_t */
275 uint8_t packing; /**< Sequential or Interleaved, see iso_packing_type_t. */
276 uint8_t framing; /**< Unframed or Framed, see iso_framing_type_t. */
277 uint8_t encryption; /**< Unencrypted or Encrypted, see iso_encryption_type_t. */
278 uint8_t encryption_code[ENC_CODE_LEN]; /**< The code used for encrypting or decrypting payloads of an encrypted BIS. */
279 } iso_create_big_t;
280
281 /**
282 @brief The parameter for creating big sync.
283 */
284 typedef struct
285 {
286 uint8_t big_hdl; /**< Used to identify the BIG (0x00 to 0xEF). */
287 uint16_t per_sync_idx; /**< Used to identify the periodic advertising set (0 to 4). */
288 uint8_t encryption; /**< Unencrypted or Encrypted, see iso_encryption_type_t. */
289 uint8_t enc_code [ENC_CODE_LEN]; /**< The code used for encrypting or decrypting payloads of an encrypted BIS. */
290 uint8_t mse; /**< Maximum number of subevents that are used to receive data payloads in each isochronous interval (0x01 to 0xFF). */
291 uint16_t big_sync_timeout; /**< Synchronization timeout for the BIS, Range: 0x000A to 0x4000. Time = N*10 ms, Time Range: 100 ms to 163.84 s */
292 uint8_t num_bis; /**< Total number of BISs to synchronize (0x01 to 0x1F). */
293 uint8_t *bis; /**< List of BISs in the BIG (0x01 to 0x1F). */
294 } iso_create_big_sync_t;
295
296 /**
297 @brief The parameter for setting data path.
298 */
299 typedef struct
300 {
301 uint16_t conn_hdl; /**< Connection handle of a CIS or BIS. */
302 uint8_t direction; /**< Direction for data path, see iso_data_path_direction_t. */
303 uint8_t data_path_type; /**< Type for data path, see iso_data_path_type_t. */
304 uint8_t codec_id[5]; /**< Codec ID (octet 0:coding format; octet 1 to 2:company ID; octets 3 to 4:vendor-defined codec ID) */
305 uint32_t ctrl_delay; /**< Controller delay in microseconds (Range: 0x000000 to 0x3D0900). */
306 uint8_t codec_cfg_len; /**< Codec configuration length. */
307 uint8_t *codec_cfg; /**< Codec configuration. */
308 } iso_set_data_path_t;
309
310 /**
311 @brief The parameter for removing data path.
312 */
313 typedef struct
314 {
315 uint16_t conn_hdl; /**< Connection handle of a CIS or BIS. */
316 uint8_t direction; /**< Specifies the input data transport path, see iso_data_path_direction_t. */
317 } iso_rm_data_path_t;
318
319 /**
320 @brief The parameter for setting cis.
321 */
322 typedef struct
323 {
324 uint8_t cis_id; /**< Used to identify a CIS (0x00 to 0xEF). */
325 uint16_t sdu_size_m2s; /**< Maximum size of a SDU in octets from the master Host (0x000 to 0xFFF). */
326 uint16_t sdu_size_s2m; /**< Maximum size of a SDU in octets from the slave Host (0x000 to 0xFFF). */
327 uint8_t phy_m2s; /**< Master to slave PHY, see iso_phy_type_t. */
328 uint8_t phy_s2m; /**< Slave to master PHY, see iso_phy_type_t. */
329 uint8_t rtn_m2s; /**< Number of times every CIS Data PDU should be retransmitted from the master to slave (0x00 to 0x0F). */
330 uint8_t rtn_s2m; /**< Number of times every CIS Data PDU should be retransmitted from the slave to master (0x00 to 0x0F). */
331 } iso_cis_param_t;
332
333 /**
334 @brief The parameter for setting cig.
335 */
336 typedef struct
337 {
338 uint8_t cig_id; /**< Used to identify a CIG (0x00 to 0xEF). */
339 uint32_t sdu_int_m2s; /**< The interval, in microseconds, of periodic SDUs.(0x0000FF to 0xFFFFF). */
340 uint32_t sdu_int_s2m; /**< The interval, in microseconds, of periodic SDUs. (0x0000FF to 0xFFFFF). */
341 uint8_t sca; /**< The worst-case sleep clock accuracy of all the slaves, see iso_sca_type_t. */
342 uint8_t packing; /**< Sequential or Interleaved, see iso_packing_type_t. */
343 uint8_t framing; /**< Unframed or Framed, see iso_framing_type_t. */
344 uint16_t trans_latency_m2s; /**< Maximum time, in milliseconds, for an SDU to be transported from the master Controller to slave Controller(0x0005 to 0x0FA0). */
345 uint16_t trans_latency_s2m; /**< Maximum time, in milliseconds, for an SDU to be transported from the slave Controller to master Controller(0x0005 to 0x0FA0). */
346 uint8_t cis_cnt; /**< Total number of CISs (0x00 to 0x1F). */
347 iso_cis_param_t *cis_param; /**< CIS parameter, see iso_cis_param_t. */
348 } iso_set_cig_param_t;
349
350 /**
351 @brief The parameter for creating per cis.
352 */
353 typedef struct
354 {
355 uint16_t cis_hdl; /**< List of connection handles of CISes (Range 0x0000-0x0EFF). */
356 uint16_t conn_idx; /**< Connection index of ACL Link. */
357 } iso_create_cis_param_t;
358
359 /**
360 @brief The parameter for creating multi cis.
361 */
362 typedef struct
363 {
364 uint8_t num_cis; /**< Total number of CISs to be established (0x01 to 0x1F). */
365 iso_create_cis_param_t *params; /**< Create cis param, see iso_create_cis_param_t. */
366 } iso_create_cis_t;
367
368 /**
369 @brief The parameter for setting adv sync transport parameter.
370 */
371 typedef struct
372 {
373 uint16_t conn_hdl; /**< Connection handle of the ACL, (Range: 0x0000 to 0x0EFF). */
374 uint8_t mode; /**< the action to be taken when periodic advertising synchronization information is received, see iso_sync_mode_t. */
375 uint16_t skip; /**< The number of periodic advertising packets that can be skipped after a successful receive, (Range: 0x0000 to 0x01F3). */
376 uint16_t sync_timeout; /**< Synchronization timeout for the periodic advertising,(Range: 0x000A to 0x4000). Time = N*10 ms, Time Range: 100 ms to 163.84 s */
377 uint8_t cte_type; /**< specifies whether to only synchronize to periodic advertising with certain types of Constant Tone Extension, see iso_cte_type_t. */
378 } iso_set_per_adv_sync_tran_param_t;
379
380 /**
381 @brief The parameter for setting default periodic advertising synchronization transport.
382 */
383 typedef struct
384 {
385 uint8_t mode; /**< the action to be taken when periodic advertising synchronization information is received, see iso_sync_mode_t. */
386 uint16_t skip; /**< The number of periodic advertising packets that can be skipped after a successful receive, (Range: 0x0000 to 0x01F3). */
387 uint16_t sync_timeout; /**< Synchronization timeout for the periodic advertising,(Range: 0x000A to 0x4000). Time = N*10 ms, Time Range: 100 ms to 163.84 s */
388 uint8_t cte_type; /**< specifies whether to only synchronize to periodic advertising with certain types of Constant Tone Extension, see iso_cte_type_t. */
389 } iso_set_default_per_adv_sync_tran_param_t;
390
391 /**
392 @brief The parameter for setting periodic advertising set information.
393 */
394 typedef struct
395 {
396 uint16_t adv_hdl; /**< Used to identify an advertising set,(Range: 0x00-0xEF). */
397 uint16_t service_data; /**< The Service_Data parameter is a value provided by the Host to identify
398 the periodic advertisement to the peer device. It is not used by the Controller.*/
399 uint16_t conn_hdl; /**< Connection_Handle, (Range: 0x0000 to 0x0EFF)*/
400 } iso_set_per_adv_set_info_tran_t;
401
402 /**
403 @brief The parameter for periodic advertising synchronization transport.
404 */
405 typedef struct
406 {
407 uint16_t sync_hdl; /**< identifying the periodic advertising, (Range: 0x0000 to 0x0EFF). */
408 uint16_t service_data; /**< The Service_Data parameter is a value provided by the Host to identify
409 the periodic advertisement to the peer device. It is not used by the Controller.*/
410 uint16_t conn_hdl; /**< Connection_Handle, (Range: 0x0000 to 0x0EFF)*/
411 } iso_per_adv_sync_tran_t;
412
413 /**
414 @brief The parameter for setting periodic advertising reciving enable.
415 */
416 typedef struct
417 {
418 uint16_t sync_hdl; /**< identifying the periodic advertising, (Range: 0x0000 to 0x0EFF). */
419 uint8_t enable; /**< 0x00: Reporting disabled, 0x01: Reporting enabled. */
420 } iso_set_per_adv_rcv_enable_t;
421
422 /**
423 @brief The parameter for set iso data path trigger.
424 */
425 typedef struct
426 {
427 uint16_t conn_hdl; /**< Connection handle of CIS/BIS. */
428 uint8_t direction; /**< Specifies the data transport path, see iso_data_path_direction_t. */
429 uint8_t enable_flag; /**< 0x00: disable, 0x01: enable. */
430 int32_t trigger_offset; /**< Trigger offset in microseconds. */
431 } iso_set_data_path_trigger_t;
432
433 /**
434 @brief The parameter for cis establish event.
435 */
436 typedef struct
437 {
438 uint8_t status; /**< 0x00: The CIS has been established, 0x01 to 0xFF: The CIS failed to be established. */
439 uint16_t cis_hdl; /**< Connection handle of CIS (Range 0x0000-0x0EFF). */
440 uint32_t cig_sync_delay; /**< The CIG synchronization delay time in microseconds(Range 0x0000EA to 0x7FFFFF). */
441 uint32_t cis_sync_delay; /**< The CIS synchronization delay time in microseconds(Range 0x0000EA to 0x7FFFFF). */
442 uint32_t tran_latency_m2s; /**< The maximum time, in microseconds, for transmission of SDUs of all CISes from master to slave(Range 0x0000EA to 0x7FFFFF). */
443 uint32_t tran_latency_s2m; /**< The maximum time, in microseconds, for transmission of SDUs of all CISes from slave to master(Range 0x0000EA to 0x7FFFFF). */
444 uint8_t phy_m2s; /**< indicates the PHY selected for packets from the master to slave. see iso_phy_type_t*/
445 uint8_t phy_s2m; /**< indicates the PHY selected for packets from the slave to master. see iso_phy_type_t */
446 uint8_t nse; /**< Maximum number of subevents in each isochronous event (Range 0x01 to 0x1E). */
447 uint8_t bn_m2s; /**< The burst number for master to slave transmission (Range 0x00 to 0x0F). 0x00: no isochronous data from the master to the slave. */
448 uint8_t bn_s2m; /**< The burst number for slave to master transmission (Range 0x00 to 0x0F). 0x00: no isochronous data from the slave to the master. */
449 uint8_t ft_m2s; /**< The flush timeout, in multiples of the ISO_Interval for the CIS, for each payload sent from the master to the slave (Range: 0x01 to 0xFF). */
450 uint8_t ft_s2m; /**< The flush timeout, in multiples of the ISO_Interval for the CIS, for each payload sent from the slave to the master (Range: 0x01 to 0xFF). */
451 uint16_t max_pdu_m2s; /**< Maximum size, in octets, of the payload from master to slave (Range: 0x0000 to 0x00FB). */
452 uint16_t max_pdu_s2m; /**< Maximum size, in octets, of the payload from slave to master (Range: 0x0000 to 0x00FB). */
453 uint16_t iso_interval; /**< The time between two consecutive CIS anchor points (unit:1.25ms, Range:0x0004 to 0x0C80, Time Range:5ms to 4s). */
454 } iso_cis_est_evt_t;
455
456 /**
457 @brief The parameter for cis request event.
458 */
459 typedef struct
460 {
461 uint16_t conn_idx; /**< Connection index of the ACL. */
462 uint16_t cis_hdl; /**< Connection handle of CIS (Range 0x0000-0x0EFF). */
463 uint8_t cig_id; /**< Identifier of the CIG (Range 0x00-0xEF). */
464 uint8_t cis_id; /**< Identifier of the CIS (Range 0x00-0xEF). */
465 } iso_cis_req_evt_t;
466
467 /**
468 @brief The parameter for cis disconnect event.
469 */
470 typedef struct
471 {
472 uint16_t cis_hdl; /**< Connection handle of CIS (Range 0x0000-0x0EFF). */
473 uint8_t reason; /**< Reason for disconnect CIS. */
474 } iso_cis_disc_evt_t;
475
476 /**
477 @brief The parameter for creating big complete event.
478 */
479 typedef struct
480 {
481 uint8_t status; /**< 0x00: Establishment of the BIG has been completed. 0x01 to 0xFF: Establishment of the BIG failed to be completed */
482 uint8_t big_hdl; /**< Used as the identifier of the BIG, (Range: 0x00 to 0xEF) */
483 uint32_t big_sync_delay; /**< Transmission delay time in microseconds of all BISs in the BIG,(Range: 0x0000EA to 0x7FFFFF). */
484 uint32_t big_trans_latency; /**< The maximum delay time, in microseconds, for transmission of SDUs of all BISes,(Range: 0x0000EA to 0x7FFFFF). */
485 uint8_t phy; /**< PHY used, bit 0: 1Mbps, bit 1: 2Mbps, bit 2: LE-Coded. */
486 uint8_t nse; /**< The number of subevents in each BIS event in the BIG, range 0x01-0x1E. */
487 uint8_t bn; /**< TThe number of new payloads in each BIS event, range 0x01-0x07. */
488 uint8_t pto; /**< Offset used for pre-transmissions, range 0x00-0x0F. */
489 uint8_t irc; /**< The number of times a payload is transmitted in a BIS event, range 0x01-0x0F. */
490 uint16_t max_pdu; /**< Maximum size of the payload in octets, range 0x00-0xFB. */
491 uint16_t iso_interval; /**< ISO interval (1.25ms unit, range: 5ms to 4s). */
492 uint8_t num_bis; /**< Total number of BISs in the BIG,(Range: 0x01 to 0x1F). */
493 uint16_t *bis_hdl; /**< The connection handles of the BISs, (Range: 0x0000 to 0x0EFF). */
494 } iso_create_big_cmpl_evt_t;
495
496 /**
497 @brief The parameter for terminating big complete event.
498 */
499 typedef struct
500 {
501 uint8_t reason; /**< indicate the reason why the BIG was terminated. */
502 uint8_t big_hdl; /**< Used as the identifier of the BIG (Range 0x00 to 0xEF). */
503 } iso_termi_big_cmpl_evt_t;
504
505 /**
506 @brief The parameter for creating big sync complete event.
507 */
508 typedef struct
509 {
510 uint8_t status; /**< 0x00: Synchronization to BIG has been completed.0x01 to 0xFF: Synchronization to BIG failed to be completed. */
511 uint8_t big_hdl; /**< Used as the identifier of the BIG (Range 0x00 to 0xEF). */
512 uint32_t big_trans_latency; /**< The maximum delay time, in microseconds, for transmission of SDUs of all BISes(Range 0x0000EA to 0x7FFFFF). */
513 uint8_t nse; /**< The number of subevents in each BIS event in the BIG, range 0x01-0x1E. */
514 uint8_t bn; /**< The number of new payloads in each BIS event, range 0x01-0x07. */
515 uint8_t pto; /**< Offset used for pre-transmissions, range 0x00-0x0F. */
516 uint8_t irc; /**< The number of times a payload is transmitted in a BIS event, range 0x01-0x0F. */
517 uint16_t max_pdu; /**< Maximum size of the payload in octets, range 0x00-0xFB. */
518 uint16_t iso_interval; /**< ISO interval (1.25ms unit, range: 5ms to 4s). */
519 uint8_t num_bis; /**< Total number of BISs in the BIG.(Range 0x01 to 0x1F). */
520 uint16_t *bis_hdl; /**< The connection handles of the BISs, (Range: 0x0000 to 0x0EFF). */
521 } iso_big_create_sync_est_evt_t;
522
523 /**
524 @brief The parameter for big lost event.
525 */
526 typedef struct
527 {
528 uint16_t big_hdl; /**< Used as the identifier the big, (Range: 0x0000 to 0x0EFF). */
529 uint8_t reason; /**< indicate the reason why the synchronization was terminated. */
530 } iso_big_sync_lost_evt_t;
531
532 /**
533 @brief The parameter for big info report event.
534 */
535 typedef struct
536 {
537 uint8_t per_sync_idx; /**< Per sync index, (Range: 0x00 to 0x05). */
538 uint8_t num_bis; /**< Number of BIS (Range 0x01-0x1F). */
539 uint8_t nse; /**< Value of the NSE (Range 0x01-0x1F). */
540 uint16_t iso_interval; /**< Value of the ISO interval. */
541 uint8_t bn; /**< Value of the BN (Range 0x00-0x07). */
542 uint8_t pto; /**< Value of the PTO (Range 0x00-0x0F). */
543 uint8_t irc; /**< Value of the IRC (Range 0x01-0x0F). */
544 uint16_t max_pdu; /**< Value of the Max_PDU (Range 0x0000-0x00FB). */
545 uint32_t sdu_interval; /**< Value of the SDU_Interval (Range Range 0x0000FF-0x0FFFFF). */
546 uint16_t max_sdu; /**< Value of the Max_SDU (Range 0x0000-0x0FFF). */
547 uint8_t phy; /**< Value of the PHY (0x01: 1M, 0x02: 2M, 0x03: Coded, All other values: RFU). */
548 uint8_t framing; /**< Value of the Framing (0x00: Unframed, 0x01: Framed, All other values: RFU). */
549 uint8_t encryption; /**< Value of the Encryption (0x00: Unencrypted, 0x01: Encrypted, All other values: RFU)). */
550 } iso_big_info_report_evt_t;
551
552 /**
553 @brief The parameter for request peer sca complete event.
554 */
555 typedef struct
556 {
557 uint8_t status; /**< 0x00: The SCA parameter received successfully.0x01-0xFF: The reception of SCA parameter failed */
558 uint16_t acl_hdl; /**< Connection handle of the ACL, (Range: 0x0000 to 0x0EFF). */
559 uint8_t sca; /**< See iso_sca_type_t. */
560 } iso_req_peer_sca_cmpl_evt_t;
561
562 /**
563 @brief The parameter for receiving periodic advertising Synchronization transport event.
564 */
565 typedef struct
566 {
567 uint8_t status; /**< 0x00: Synchronization to the periodic advertising succeeded, 0x01 to 0xFF: Synchronization to the periodic advertising failed */
568 uint16_t conn_hdl; /**< Connection_Handle, (Range: 0x0000 to 0x0EFF). */
569 uint16_t service_data; /**< A value provided by the peer device. */
570 uint8_t adv_sid; /**< Value of the Advertising SID used to advertise the periodic advertising. */
571 uint16_t sync_hdl; /**< Sync_Handle identifying the periodic advertising, (Range: 0x0000 to 0x0EFF). */
572 } iso_per_adv_sync_tran_rcv_evt_t;
573
574 /**
575 @brief The parameter for read iso tx sync complete event.
576 */
577 typedef struct
578 {
579 uint8_t status; /**< 0x00: succeeded. 0x01-0xFF: failed */
580 uint16_t con_hdl; /**< Connection handle of the bis or cis, (Range: 0x0000 to 0x0EFF). */
581 uint16_t pkt_seq_num; /**< The packet sequence number of the ISO_SDU. */
582 uint32_t time_stap; /**< The timestamp of an SDU identified by the seq_num, (Range: 0x00000000 to 0xFFFFFFFF) */
583 uint32_t time_offset; /**< The time offset associated with the ISO_SDU identified by the seq_num, (Range: 0x000000 to 0xFFFFFF)*/
584 } iso_read_iso_tx_sync_cmpl_evt_t;
585
586 /**
587 @brief The parameter for set cig parameter complete event.
588 */
589 typedef struct
590 {
591 uint8_t status; /**< 0x00: succeeded. 0x01-0xFF: failed */
592 uint8_t cig_id; /**< Used to identify a CIG, (Range: 0x00 to 0xEF). */
593 uint8_t cis_count; /**< Total number of CISs, (Range: 0x00 to 0x10). */
594 uint16_t *cis_hdl; /**< List of connection handles of CISs in the CIG, (Range: 0x0000 to 0x0EFF). */
595 } iso_set_cig_param_cmpl_evt_t;
596
597 /**
598 @brief The structure for iso hci data.
599 */
600 typedef struct
601 {
602 uint16_t conn_hdl; /**< Used to identify a cis or bis. */
603 uint32_t time_stamp; /**< The Bluetooth_TimeStamp (BTS). */
604 uint16_t seq_num; /**< Packet sequence number. */
605 uint16_t sdu_len; /**< Sdu length. */
606 uint8_t *sdu; /**< Sdu data buffer. */
607 } iso_hci_data_t;
608
609 /**
610 @brief The parameter for set cig parameter complete event.
611 */
612
613 /**
614 @brief The callback for iso.
615 */
616 typedef struct
617 {
618 void (*iso_sdu_rcv_cb)(iso_hci_data_t *data_info); /**< The callback for receving iso sdu. */
619
620 void (*iso_sdu_send_cb)(iso_hci_data_t *data_info); /**< The callback for sending iso sdu. */
621
622 void (*iso_cis_est_evt_cb)(iso_cis_est_evt_t *evt); /**< The callback for receving cis established event. */
623
624 void (*iso_cis_req_evt_cb)(iso_cis_req_evt_t *evt); /**< The callback for receving a request to establish a CIS from the master. */
625
626 void (*iso_cis_disc_ind_cb)(iso_cis_disc_evt_t *evt); /**< The callback for cis disconnect. */
627
628 void (*iso_create_big_cmpl_evt_cb)(iso_create_big_cmpl_evt_t *evt); /**< The callback for receving create big complete event. */
629
630 void (*iso_termi_big_cmpl_evt_cb)(iso_termi_big_cmpl_evt_t *evt); /**< The callback for receving terminate big complete event. */
631
632 void (*iso_big_create_sync_est_evt_cb)(iso_big_create_sync_est_evt_t *evt); /**< The callback for receving big create sync established event. */
633
634 void (*iso_big_sync_lost_evt_cb)(iso_big_sync_lost_evt_t *evt); /**< The callback for receving big lost event. */
635
636 void (*iso_big_info_report_evt_cb)(iso_big_info_report_evt_t *evt); /**< The callback for receving big info report event. */
637
638 void (*iso_req_peer_sca_cmpl_evt_cb)(iso_req_peer_sca_cmpl_evt_t *evt); /**< The callback for receving request peer sca complete event. */
639
640 void (*iso_read_iso_tx_sync_cmpl_evt_cb)(iso_read_iso_tx_sync_cmpl_evt_t *evt); /**< The callback for read iso tx sync complete event. */
641
642 void (*iso_set_cig_param_cmpl_evt_cb)(iso_set_cig_param_cmpl_evt_t *evt); /**< The callback for set cig parameter complete event. */
643
644 void (*iso_rm_cig_cmpl_evt_cb)(uint8_t status, uint8_t cig_id); /**< The callback for remove cig complete event. */
645
646 void (*iso_reject_cis_req_cmpl_evt_cb)(uint8_t status, uint16_t cis_hdl); /**< The callback for reject cis request complete event. */
647
648 void (*iso_set_data_path_cmpl_evt_cb)(uint8_t status, uint16_t con_hdl); /**< The callback for set data path complete event. */
649
650 void (*iso_rm_data_path_cmpl_evt_cb)(uint8_t status, uint16_t con_hdl); /**< The callback for remove data path complete event. */
651
652 void (*iso_temi_big_sync_cmpl_evt_cb)(uint8_t status); /**< The callback for teminate big sync complete event. */
653
654 void (*iso_set_data_path_trigger_cmpl_evt_cb)(uint8_t status); /**< The callback for teminate big sync complete event. */
655
656 void (*iso_cmd_status_evt_cb)(uint16_t op_code, uint8_t status); /**< The callback for cmd status. */
657 } iso_cb_fun_t;
658
659 /**
660 @brief The callback for gap event which need to be handled by ascp.
661 */
662 typedef struct
663 {
664 void (*gap_adv_report_ind_cb)(const gap_ext_adv_report_ind_t *p_adv_report); /**< The callback for receving adv report event. */
665
666 void (*gap_sync_established_cb)(uint8_t inst_idx, uint8_t status, const gap_sync_established_ind_t *p_sync_est_evt); /**< The callback for receving sync periodic adv success event. */
667
668 } ascp_gap_cb_fun_t;
669
670 /** @} */
671
672
673 /** @addtogroup BLE_ISO_FUNCTIONS Functions
674 * @{ */
675
676 /**
677 ****************************************************************************************
678 * @brief Register callback for iso.
679 * @param[in] cb: Pointer to the callback function structure.
680 *
681 * @retval SDK_SUCCESS: The callback is successfully to register.
682 * @retval BLE_SDK_ERR_BAD_PARAM: The parameter is invalid, such as the cb is NULL.
683 ****************************************************************************************
684 */
685 uint16_t ble_iso_register_callback(iso_cb_fun_t *cb);
686
687 /**
688 ****************************************************************************************
689 * @brief Register the gap evetn callback for ascp.
690 * @param[in] cb: Pointer to the callback function structure.
691 ****************************************************************************************
692 */
693 void ble_iso_register_ascp_gap_callback(ascp_gap_cb_fun_t *cb);
694
695 /**
696 ****************************************************************************************
697 * @brief Start broadcast audio announcement by using periodic adv.
698 * @param[in] param: Pointer to the start broadcast announcement structure.
699 * @param[in] ext_adv_data: Pointer to the ext adv data.
700 * @param[in] ext_adv_data_len: The length of ext adv data.
701 *
702 * @retval SDK_SUCCESS The parameter is valid.
703 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
704 ****************************************************************************************
705 */
706 uint16_t ble_iso_start_bd_ann(iso_start_bd_ann_t *param, uint8_t *ext_adv_data, uint16_t ext_adv_data_len);
707
708 /**
709 ****************************************************************************************
710 * @brief Start general audio announcement by using extended adv.
711 * @param[in] param: Pointer to the start general announcement structure.
712 *
713 * @retval SDK_SUCCESS The parameter is valid.
714 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
715 ****************************************************************************************
716 */
717 uint16_t ble_iso_start_gen_ann(iso_start_gen_ann_t *param);
718
719 /**
720 ****************************************************************************************
721 * @brief Start target audio announcement by using extended adv.
722 * @param[in] param: Pointer to the start target announcement structure.
723 *
724 * @retval SDK_SUCCESS The parameter is valid.
725 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
726 ****************************************************************************************
727 */
728 uint16_t ble_iso_start_target_ann(iso_start_target_ann_t *param);
729
730 /**
731 ****************************************************************************************
732 * @brief Stop the audio announcement by using stop adv.
733 * @param[in] adv_idx: Advertising Index.
734 *
735 * @retval SDK_SUCCESS The parameter is valid.
736 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
737 ****************************************************************************************
738 */
739 uint16_t ble_iso_stop_ann(uint8_t adv_idx);
740
741 /**
742 ****************************************************************************************
743 * @brief Discovery the audio announcement by using extended scan.
744 * @param[in] param: Pointer to the Discovery announcement structure.
745 *
746 * @retval SDK_SUCCESS The parameter is valid.
747 * @retval SDK_ERR_POINTER_NULL: Invalid pointer supplied.
748 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
749 ****************************************************************************************
750 */
751 uint16_t ble_iso_discover_ann(iso_disc_ann_t *param);
752
753 /**
754 ****************************************************************************************
755 * @brief Stop discovery the audio announcement by stop extended scan.
756 *
757 * @retval SDK_SUCCESS.
758 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
759 ****************************************************************************************
760 */
761 uint16_t ble_iso_stop_discover_ann(void);
762
763 /**
764 ****************************************************************************************
765 * @brief Sync the broadcast audio announcement by sync the period adv.
766 * @param[in] index: Periodic synchronization index.
767 * @param[in] param: Pointer to the sync audio announcement structure.
768 *
769 * @retval SDK_SUCCESS The parameter is valid.
770 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
771 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
772 * @retval SDK_ERR_NO_RESOURCES: Not enough resources.
773 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
774 ****************************************************************************************
775 */
776 uint16_t ble_iso_sync_bd_ann(uint8_t index, iso_sync_ann_t *param);
777
778 /**
779 ****************************************************************************************
780 * @brief Stop sync the broadcast audio announcement.
781 * @param[in] index: Periodic synchronization index.
782 *
783 * @retval SDK_SUCCESS: Operation is successful.
784 * @retval SDK_ERR_INVALID_PER_SYNC_IDX: Invalid periodic syncronization index supplied.
785 * @retval SDK_ERR_DISALLOWED: Operation is disallowed.
786 ****************************************************************************************
787 */
788 uint16_t ble_iso_stop_sync_bd_ann(uint8_t index);
789
790 /**
791 ****************************************************************************************
792 * @brief Create the BIG.
793 * @param[in] param: Pointer to the create big structure.
794 *
795 * @retval SDK_SUCCESS The parameter is valid.
796 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
797 ****************************************************************************************
798 */
799 uint16_t ble_iso_create_big(iso_create_big_t *param);
800
801 /**
802 ****************************************************************************************
803 * @brief Terminate the BIG.
804 * @param[in] big_hdl: Used to identify the BIG (0x00 to 0xEF).
805 * @param[in] reason: The reason for teminate the big.
806 *
807 * @retval SDK_SUCCESS The parameter is valid.
808 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
809 ****************************************************************************************
810 */
811 uint16_t ble_iso_terminate_big(uint8_t big_hdl, uint8_t reason);
812
813 /**
814 ****************************************************************************************
815 * @brief Create the BIG sync.
816 * @param[in] param: Pointer to the create big sync structure.
817 *
818 * @retval SDK_SUCCESS The parameter is valid.
819 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
820 ****************************************************************************************
821 */
822 uint16_t ble_iso_create_big_sync(iso_create_big_sync_t *param);
823
824 /**
825 ****************************************************************************************
826 * @brief Terminate the BIG sync.
827 * @param[in] big_hdl: Used to identify the BIG (0x00 to 0xEF).
828 *
829 * @retval SDK_SUCCESS The parameter is valid.
830 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
831 ****************************************************************************************
832 */
833 uint16_t ble_iso_terminate_big_sync(uint8_t big_hdl);
834
835 /**
836 ****************************************************************************************
837 * @brief Set CIG paramter.
838 * @param[in] param: Pointer to the cig parameter structure.
839 *
840 * @retval SDK_SUCCESS The parameter is valid.
841 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
842 ****************************************************************************************
843 */
844 uint16_t ble_iso_set_cig_param(iso_set_cig_param_t *param);
845
846 /**
847 ****************************************************************************************
848 * @brief Create CIS.
849 * @param[in] param: Pointer to the create cis parameter structure.
850 *
851 * @retval SDK_SUCCESS The parameter is valid.
852 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
853 ****************************************************************************************
854 */
855 uint16_t ble_iso_create_cis(iso_create_cis_t *param);
856
857 /**
858 ****************************************************************************************
859 * @brief Remove the cig indicated by the cig_id.
860 * @param[in] cig_id: Used to identify a CIG (Range: 0x00 to 0xEF).
861 *
862 * @retval SDK_SUCCESS The parameter is valid.
863 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
864 ****************************************************************************************
865 */
866 uint16_t ble_iso_rm_cig(uint8_t cig_id);
867
868 /**
869 ****************************************************************************************
870 * @brief Slave Host to inform the Controller to accept the request for the CIS that is
871 * identified by the cis_hdl.
872 * @param[in] cis_hdl: Connection handle of the CIS. (Range: 0x0000 to 0x0EFF).
873 *
874 * @retval SDK_SUCCESS The parameter is valid.
875 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
876 ****************************************************************************************
877 */
878 uint16_t ble_iso_accept_cis_req(uint16_t cis_hdl);
879
880 /**
881 ****************************************************************************************
882 * @brief slave Host to reject the request for the CIS that is identified by the cis_hdl.
883 * @param[in] cis_hdl: Connection handle of the CIS. (Range: 0x0000 to 0x0EFF).
884 * @param[in] reason: Reason the CIS request was rejected.
885 * @retval SDK_SUCCESS The parameter is valid.
886 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
887 ****************************************************************************************
888 */
889 uint16_t ble_iso_reject_cis_req(uint16_t cis_hdl, uint8_t reason);
890
891 /**
892 ****************************************************************************************
893 * @brief disconnect the CIS that is identified by the cis_hdl.
894 * @param[in] cis_hdl: Connection handle of the CIS. (Range: 0x0000 to 0x0EFF).
895 *
896 * @retval SDK_SUCCESS The parameter is valid.
897 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
898 ****************************************************************************************
899 */
900 uint16_t ble_iso_disc_cis(uint16_t cis_hdl);
901
902 /**
903 ****************************************************************************************
904 * @brief Set the ISO data path.
905 * @param[in] param: Pointer to set data path parameter structure.
906 * @retval SDK_SUCCESS The parameter is valid.
907 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
908 ****************************************************************************************
909 */
910 uint16_t ble_iso_set_data_path(iso_set_data_path_t *param);
911
912 /**
913 ****************************************************************************************
914 * @brief Remove the ISO data path.
915 * @param[in] param: Pointer to remove data path parameter structure.
916 * @retval SDK_SUCCESS The parameter is valid.
917 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
918 ****************************************************************************************
919 */
920 uint16_t ble_iso_rm_data_path(iso_rm_data_path_t *param);
921
922 /**
923 ****************************************************************************************
924 * @brief Read the Sleep Clock Accuracy of the peer device.
925 * @param[in] conn_idx: Connection of the acl connection.
926 * @retval SDK_SUCCESS The parameter is valid.
927 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
928 ****************************************************************************************
929 */
930 uint16_t ble_iso_req_peer_sca(uint16_t conn_idx);
931
932 /**
933 ****************************************************************************************
934 * @brief read the Bluetooth_TimeStamp (BTS) of a packet identified by the Packet_Sequence_Number
935 * on a CIS or BIS identified by the Connection_Handle.
936 * @param[in] conn_hdl: Connection handle of a CIS or BIS, (Range: 0x0000 to 0x0EFF).
937 * @retval SDK_SUCCESS The parameter is valid.
938 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
939 ****************************************************************************************
940 */
941 uint16_t ble_iso_read_tx_sync(uint16_t conn_hdl);
942
943 /**
944 ****************************************************************************************
945 * @brief Set iso data path trigger
946 * @param[in] param: Pointer to the set data path trigger parameter structure.
947 * @retval SDK_SUCCESS The parameter is valid.
948 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
949 ****************************************************************************************
950 */
951 uint16_t ble_iso_set_data_path_trigger(iso_set_data_path_trigger_t *param);
952
953 /**
954 ****************************************************************************************
955 * @brief Un-mask the ISO GPIO
956 * @param[in] gpio_sel: Bits to un-mask iso_gpio.see enum iso_gpio_mask_t.
957 * @retval SDK_SUCCESS The parameter is valid.
958 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
959 ****************************************************************************************
960 */
961 uint16_t ble_iso_gpio_enable(uint8_t gpio_sel);
962
963 /**
964 ****************************************************************************************
965 * @brief Set iso sync pulse GPIO trigger
966 * @param[in] iso_sync_p_sel: select iso sync0 pulse(ISO_SYNC0_PULSE) or/and iso sync1 pulse(ISO_SYNC1_PULSE).
967 * @param[in] sync0_gpio_sel: Bits to select which iso_gpio signals cause an iso sync0 pulse. GPIO_0 is default for iso sync pulse gpio.see enum iso_gpio_mask_t.
968 * @param[in] sync1_gpio_sel: Bits to select which iso_gpio signals cause an iso sync1 pulse. GPIO_0 is default for iso sync pulse gpio.see enum iso_gpio_mask_t.
969 * @retval SDK_SUCCESS The parameter is valid.
970 * @retval BLE_SDK_ERR_BAD_PARAM The parameter is invalid.
971 ****************************************************************************************
972 */
973 uint16_t ble_iso_set_iso_sync_pulse(uint8_t iso_sync_p_sel, uint8_t sync0_gpio_sel, uint8_t sync1_gpio_sel);
974
975 /** @} */
976
977 #endif
978
979 /**
980 @}
981 */
982 /** @} */
983
iso_big_info_report_evt_t::nse
uint8_t nse
Definition: ble_iso.h:539
iso_big_create_sync_est_evt_t::irc
uint8_t irc
Definition: ble_iso.h:516
iso_hci_data_t::time_stamp
uint32_t time_stamp
Definition: ble_iso.h:603
iso_hci_data_t::seq_num
uint16_t seq_num
Definition: ble_iso.h:604
iso_req_peer_sca_cmpl_evt_t::sca
uint8_t sca
Definition: ble_iso.h:559
iso_big_info_report_evt_t::bn
uint8_t bn
Definition: ble_iso.h:541
iso_per_adv_sync_tran_rcv_evt_t::adv_sid
uint8_t adv_sid
Definition: ble_iso.h:570
SCA6
@ SCA6
Definition: ble_iso.h:126
iso_create_cis_param_t::cis_hdl
uint16_t cis_hdl
Definition: ble_iso.h:355
iso_start_gen_ann_t::data_len
uint16_t data_len
Definition: ble_iso.h:221
ISO_ADV_UNDIRECT
@ ISO_ADV_UNDIRECT
Definition: ble_iso.h:89
ISO_REMOVE_DATA_PATH
@ ISO_REMOVE_DATA_PATH
Definition: ble_iso.h:79
iso_create_big_cmpl_evt_t::big_sync_delay
uint32_t big_sync_delay
Definition: ble_iso.h:483
iso_set_cig_param_t::sdu_int_m2s
uint32_t sdu_int_m2s
Definition: ble_iso.h:339
ISO_SET_DEFAULT_PER_ADV_SYNC_TRAN_PARAM
@ ISO_SET_DEFAULT_PER_ADV_SYNC_TRAN_PARAM
Definition: ble_iso.h:83
iso_cis_est_evt_t::phy_m2s
uint8_t phy_m2s
Definition: ble_iso.h:444
iso_set_data_path_t::data_path_type
uint8_t data_path_type
Definition: ble_iso.h:303
iso_cis_param_t::cis_id
uint8_t cis_id
Definition: ble_iso.h:324
ble_iso_discover_ann
uint16_t ble_iso_discover_ann(iso_disc_ann_t *param)
Discovery the audio announcement by using extended scan.
iso_big_info_report_evt_t::phy
uint8_t phy
Definition: ble_iso.h:547
SCA3
@ SCA3
Definition: ble_iso.h:123
ble_iso_set_iso_sync_pulse
uint16_t ble_iso_set_iso_sync_pulse(uint8_t iso_sync_p_sel, uint8_t sync0_gpio_sel, uint8_t sync1_gpio_sel)
Set iso sync pulse GPIO trigger.
SCA1
@ SCA1
Definition: ble_iso.h:121
ble_iso_register_ascp_gap_callback
void ble_iso_register_ascp_gap_callback(ascp_gap_cb_fun_t *cb)
Register the gap evetn callback for ascp.
ISO_PHY_2M
@ ISO_PHY_2M
Definition: ble_iso.h:175
iso_set_data_path_t::ctrl_delay
uint32_t ctrl_delay
Definition: ble_iso.h:305
WITH_EVT_WITH_REPORT
@ WITH_EVT_WITH_REPORT
Definition: ble_iso.h:158
SCA2
@ SCA2
Definition: ble_iso.h:122
iso_set_per_adv_set_info_tran_t::service_data
uint16_t service_data
Definition: ble_iso.h:397
iso_termi_big_cmpl_evt_t
The parameter for terminating big complete event.
Definition: ble_iso.h:500
iso_op_id_t
iso_op_id_t
Operation ID.
Definition: ble_iso.h:73
iso_cis_disc_evt_t::cis_hdl
uint16_t cis_hdl
Definition: ble_iso.h:472
iso_create_big_t::sdu_interval
uint32_t sdu_interval
Definition: ble_iso.h:270
ble_iso_rm_cig
uint16_t ble_iso_rm_cig(uint8_t cig_id)
Remove the cig indicated by the cig_id.
iso_big_info_report_evt_t::max_sdu
uint16_t max_sdu
Definition: ble_iso.h:546
iso_set_default_per_adv_sync_tran_param_t::skip
uint16_t skip
Definition: ble_iso.h:386
iso_create_big_t::big_hdl
uint8_t big_hdl
Definition: ble_iso.h:267
iso_cis_req_evt_t::cig_id
uint8_t cig_id
Definition: ble_iso.h:463
iso_create_big_t
The parameter for creating big.
Definition: ble_iso.h:266
iso_set_cig_param_cmpl_evt_t::cis_hdl
uint16_t * cis_hdl
Definition: ble_iso.h:594
iso_set_cig_param_t::trans_latency_s2m
uint16_t trans_latency_s2m
Definition: ble_iso.h:345
ble_iso_start_target_ann
uint16_t ble_iso_start_target_ann(iso_start_target_ann_t *param)
Start target audio announcement by using extended adv.
iso_cis_est_evt_t::max_pdu_m2s
uint16_t max_pdu_m2s
Definition: ble_iso.h:451
iso_big_sync_lost_evt_t
The parameter for big lost event.
Definition: ble_iso.h:527
iso_disc_ann_t::timeout
uint16_t timeout
Definition: ble_iso.h:247
iso_sync_ann_t::sync_timeout
uint16_t sync_timeout
Definition: ble_iso.h:259
iso_create_big_t::framing
uint8_t framing
Definition: ble_iso.h:276
iso_cb_fun_t
The parameter for set cig parameter complete event.
Definition: ble_iso.h:617
iso_hci_data_t::sdu
uint8_t * sdu
Definition: ble_iso.h:606
ble_iso_start_bd_ann
uint16_t ble_iso_start_bd_ann(iso_start_bd_ann_t *param, uint8_t *ext_adv_data, uint16_t ext_adv_data_len)
Start broadcast audio announcement by using periodic adv.
iso_cis_disc_evt_t::reason
uint8_t reason
Definition: ble_iso.h:473
ble_iso_stop_sync_bd_ann
uint16_t ble_iso_stop_sync_bd_ann(uint8_t index)
Stop sync the broadcast audio announcement.
iso_start_bd_ann_t::data_len
uint16_t data_len
Definition: ble_iso.h:210
iso_create_big_sync_t::big_hdl
uint8_t big_hdl
Definition: ble_iso.h:286
iso_cis_est_evt_t::max_pdu_s2m
uint16_t max_pdu_s2m
Definition: ble_iso.h:452
ISO_GPIO_MASK_1
@ ISO_GPIO_MASK_1
Definition: ble_iso.h:189
iso_set_cig_param_t::cig_id
uint8_t cig_id
Definition: ble_iso.h:338
iso_create_big_t::phy
uint8_t phy
Definition: ble_iso.h:274
iso_cis_req_evt_t::cis_hdl
uint16_t cis_hdl
Definition: ble_iso.h:462
iso_create_big_sync_t::per_sync_idx
uint16_t per_sync_idx
Definition: ble_iso.h:287
iso_create_big_sync_t::mse
uint8_t mse
Definition: ble_iso.h:290
iso_create_big_cmpl_evt_t::nse
uint8_t nse
Definition: ble_iso.h:486
iso_hci_data_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:602
iso_big_info_report_evt_t::encryption
uint8_t encryption
Definition: ble_iso.h:549
iso_set_default_per_adv_sync_tran_param_t::sync_timeout
uint16_t sync_timeout
Definition: ble_iso.h:387
DATA_PATH_GEN
@ DATA_PATH_GEN
Definition: ble_iso.h:105
iso_create_big_cmpl_evt_t::num_bis
uint8_t num_bis
Definition: ble_iso.h:492
iso_start_bd_ann_t::adv_idx
uint8_t adv_idx
Definition: ble_iso.h:207
iso_create_big_t::rtn
uint8_t rtn
Definition: ble_iso.h:273
NOT_SYNC_WITHOUT_CTE
@ NOT_SYNC_WITHOUT_CTE
Definition: ble_iso.h:168
iso_start_bd_ann_t::data
uint8_t * data
Definition: ble_iso.h:211
ble_iso_stop_ann
uint16_t ble_iso_stop_ann(uint8_t adv_idx)
Stop the audio announcement by using stop adv.
ble_iso_set_cig_param
uint16_t ble_iso_set_cig_param(iso_set_cig_param_t *param)
Set CIG paramter.
iso_set_data_path_trigger_t::enable_flag
uint8_t enable_flag
Definition: ble_iso.h:429
iso_create_big_sync_t::bis
uint8_t * bis
Definition: ble_iso.h:293
NOT_SYNC_WITH_AOD_1US
@ NOT_SYNC_WITH_AOD_1US
Definition: ble_iso.h:166
iso_create_big_sync_t::num_bis
uint8_t num_bis
Definition: ble_iso.h:292
iso_create_cis_param_t::conn_idx
uint16_t conn_idx
Definition: ble_iso.h:356
iso_cis_param_t::sdu_size_s2m
uint16_t sdu_size_s2m
Definition: ble_iso.h:326
iso_set_per_adv_sync_tran_param_t
The parameter for setting adv sync transport parameter.
Definition: ble_iso.h:372
iso_create_big_sync_t::big_sync_timeout
uint16_t big_sync_timeout
Definition: ble_iso.h:291
iso_set_per_adv_sync_tran_param_t::sync_timeout
uint16_t sync_timeout
Definition: ble_iso.h:376
iso_big_sync_lost_evt_t::reason
uint8_t reason
Definition: ble_iso.h:529
iso_big_create_sync_est_evt_t::big_trans_latency
uint32_t big_trans_latency
Definition: ble_iso.h:512
iso_create_big_t::encryption
uint8_t encryption
Definition: ble_iso.h:277
iso_big_create_sync_est_evt_t::max_pdu
uint16_t max_pdu
Definition: ble_iso.h:517
iso_start_gen_ann_t
The parameter for starting genneral announcement.
Definition: ble_iso.h:218
iso_packing_type_t
iso_packing_type_t
Packing type.
Definition: ble_iso.h:132
DATA_PATH_GDX
@ DATA_PATH_GDX
Definition: ble_iso.h:106
iso_start_target_ann_t::data_len
uint16_t data_len
Definition: ble_iso.h:236
iso_rm_data_path_t::direction
uint8_t direction
Definition: ble_iso.h:316
iso_set_cig_param_t::cis_param
iso_cis_param_t * cis_param
Definition: ble_iso.h:347
iso_req_peer_sca_cmpl_evt_t::acl_hdl
uint16_t acl_hdl
Definition: ble_iso.h:558
NOT_SYNC_WITH_AOD_2US
@ NOT_SYNC_WITH_AOD_2US
Definition: ble_iso.h:167
TERMINATE_BY_REMOTE
@ TERMINATE_BY_REMOTE
Definition: ble_iso.h:182
iso_cis_est_evt_t::ft_s2m
uint8_t ft_s2m
Definition: ble_iso.h:450
iso_big_create_sync_est_evt_t::nse
uint8_t nse
Definition: ble_iso.h:513
ISO_READ_ISO_TX_SYNC
@ ISO_READ_ISO_TX_SYNC
Definition: ble_iso.h:74
ISO_SET_PER_ADV_SYNC_TRAN_PARAM
@ ISO_SET_PER_ADV_SYNC_TRAN_PARAM
Definition: ble_iso.h:82
iso_big_info_report_evt_t
The parameter for big info report event.
Definition: ble_iso.h:536
iso_cis_req_evt_t::cis_id
uint8_t cis_id
Definition: ble_iso.h:464
iso_set_per_adv_rcv_enable_t::sync_hdl
uint16_t sync_hdl
Definition: ble_iso.h:418
iso_cis_est_evt_t::ft_m2s
uint8_t ft_m2s
Definition: ble_iso.h:449
iso_cis_param_t::phy_m2s
uint8_t phy_m2s
Definition: ble_iso.h:327
iso_create_big_cmpl_evt_t::bn
uint8_t bn
Definition: ble_iso.h:487
iso_big_info_report_evt_t::sdu_interval
uint32_t sdu_interval
Definition: ble_iso.h:545
iso_cis_est_evt_t::bn_m2s
uint8_t bn_m2s
Definition: ble_iso.h:447
DATA_PATH_HCI
@ DATA_PATH_HCI
Definition: ble_iso.h:104
iso_start_target_ann_t::adv_idx
uint8_t adv_idx
Definition: ble_iso.h:230
iso_req_peer_sca_cmpl_evt_t::status
uint8_t status
Definition: ble_iso.h:557
iso_start_gen_ann_t::interval
uint32_t interval
Definition: ble_iso.h:220
iso_set_cig_param_t::cis_cnt
uint8_t cis_cnt
Definition: ble_iso.h:346
iso_framing_type_t
iso_framing_type_t
Framing type.
Definition: ble_iso.h:139
iso_set_data_path_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:301
iso_cis_est_evt_t::tran_latency_m2s
uint32_t tran_latency_m2s
Definition: ble_iso.h:442
iso_set_cig_param_cmpl_evt_t
The parameter for set cig parameter complete event.
Definition: ble_iso.h:590
HOST_TO_CONTROLLER
@ HOST_TO_CONTROLLER
Definition: ble_iso.h:112
iso_disc_ann_t::window
uint16_t window
Definition: ble_iso.h:246
iso_rm_data_path_t
The parameter for removing data path.
Definition: ble_iso.h:314
iso_read_iso_tx_sync_cmpl_evt_t::pkt_seq_num
uint16_t pkt_seq_num
Definition: ble_iso.h:581
iso_set_default_per_adv_sync_tran_param_t::mode
uint8_t mode
Definition: ble_iso.h:385
ble_iso_create_cis
uint16_t ble_iso_create_cis(iso_create_cis_t *param)
Create CIS.
ble_iso_stop_discover_ann
uint16_t ble_iso_stop_discover_ann(void)
Stop discovery the audio announcement by stop extended scan.
iso_create_big_cmpl_evt_t
The parameter for creating big complete event.
Definition: ble_iso.h:480
iso_per_adv_sync_tran_t::sync_hdl
uint16_t sync_hdl
Definition: ble_iso.h:407
iso_big_sync_lost_evt_t::big_hdl
uint16_t big_hdl
Definition: ble_iso.h:528
ble_iso_rm_data_path
uint16_t ble_iso_rm_data_path(iso_rm_data_path_t *param)
Remove the ISO data path.
ISO_GPIO_MASK_0
@ ISO_GPIO_MASK_0
Definition: ble_iso.h:188
iso_start_gen_ann_t::adv_idx
uint8_t adv_idx
Definition: ble_iso.h:219
iso_set_per_adv_sync_tran_param_t::cte_type
uint8_t cte_type
Definition: ble_iso.h:377
iso_per_adv_sync_tran_rcv_evt_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:568
iso_per_adv_sync_tran_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:410
PACK_INT
@ PACK_INT
Definition: ble_iso.h:134
iso_encryption_type_t
iso_encryption_type_t
Encryption type.
Definition: ble_iso.h:146
ble_iso_set_data_path
uint16_t ble_iso_set_data_path(iso_set_data_path_t *param)
Set the ISO data path.
iso_create_big_cmpl_evt_t::status
uint8_t status
Definition: ble_iso.h:481
iso_sca_type_t
iso_sca_type_t
SCA type.
Definition: ble_iso.h:119
iso_big_create_sync_est_evt_t::status
uint8_t status
Definition: ble_iso.h:510
iso_cis_est_evt_t::nse
uint8_t nse
Definition: ble_iso.h:446
iso_disc_ann_t
The parameter for discovery announcement.
Definition: ble_iso.h:244
DATA_PATH_DISABLE
@ DATA_PATH_DISABLE
Definition: ble_iso.h:103
iso_cis_est_evt_t::status
uint8_t status
Definition: ble_iso.h:438
iso_big_info_report_evt_t::pto
uint8_t pto
Definition: ble_iso.h:542
iso_create_big_t::max_sdu_size
uint16_t max_sdu_size
Definition: ble_iso.h:271
iso_set_data_path_trigger_t::direction
uint8_t direction
Definition: ble_iso.h:428
iso_create_big_t::num_bis
uint8_t num_bis
Definition: ble_iso.h:269
ble_iso_sync_bd_ann
uint16_t ble_iso_sync_bd_ann(uint8_t index, iso_sync_ann_t *param)
Sync the broadcast audio announcement by sync the period adv.
iso_start_bd_ann_t
The parameter for starting broadcast announcement.
Definition: ble_iso.h:206
iso_per_adv_sync_tran_rcv_evt_t::sync_hdl
uint16_t sync_hdl
Definition: ble_iso.h:571
iso_start_target_ann_t::interval
uint32_t interval
Definition: ble_iso.h:231
ble_error.h
File that contains error codes.
ble_iso_set_data_path_trigger
uint16_t ble_iso_set_data_path_trigger(iso_set_data_path_trigger_t *param)
Set iso data path trigger.
iso_set_data_path_t::codec_cfg_len
uint8_t codec_cfg_len
Definition: ble_iso.h:306
ble_gapc.h
BLE GAPC API.
iso_cis_est_evt_t::cis_sync_delay
uint32_t cis_sync_delay
Definition: ble_iso.h:441
iso_per_adv_sync_tran_t::service_data
uint16_t service_data
Definition: ble_iso.h:408
iso_big_info_report_evt_t::max_pdu
uint16_t max_pdu
Definition: ble_iso.h:544
iso_set_data_path_t::codec_cfg
uint8_t * codec_cfg
Definition: ble_iso.h:307
iso_create_big_t::per_adv_idx
uint8_t per_adv_idx
Definition: ble_iso.h:268
iso_create_big_sync_t::encryption
uint8_t encryption
Definition: ble_iso.h:288
iso_set_per_adv_sync_tran_param_t::mode
uint8_t mode
Definition: ble_iso.h:374
iso_create_big_cmpl_evt_t::pto
uint8_t pto
Definition: ble_iso.h:488
iso_set_default_per_adv_sync_tran_param_t
The parameter for setting default periodic advertising synchronization transport.
Definition: ble_iso.h:384
iso_create_big_cmpl_evt_t::iso_interval
uint16_t iso_interval
Definition: ble_iso.h:491
ble_iso_accept_cis_req
uint16_t ble_iso_accept_cis_req(uint16_t cis_hdl)
Slave Host to inform the Controller to accept the request for the CIS that is identified by the cis_h...
UNFRAMED
@ UNFRAMED
Definition: ble_iso.h:140
iso_create_cis_t
The parameter for creating multi cis.
Definition: ble_iso.h:363
ISO_ADV_DIRECT
@ ISO_ADV_DIRECT
Definition: ble_iso.h:90
iso_per_adv_sync_tran_rcv_evt_t::service_data
uint16_t service_data
Definition: ble_iso.h:569
ISO_PER_ADV_SYNC_TRAN
@ ISO_PER_ADV_SYNC_TRAN
Definition: ble_iso.h:80
iso_big_info_report_evt_t::irc
uint8_t irc
Definition: ble_iso.h:543
iso_start_target_ann_t
The parameter for starting target announcement.
Definition: ble_iso.h:229
iso_big_info_report_evt_t::iso_interval
uint16_t iso_interval
Definition: ble_iso.h:540
iso_set_per_adv_rcv_enable_t
The parameter for setting periodic advertising reciving enable.
Definition: ble_iso.h:417
ascp_gap_cb_fun_t
The callback for gap event which need to be handled by ascp.
Definition: ble_iso.h:663
iso_create_cis_t::params
iso_create_cis_param_t * params
Definition: ble_iso.h:365
iso_create_big_t::packing
uint8_t packing
Definition: ble_iso.h:275
SCA4
@ SCA4
Definition: ble_iso.h:124
ble_iso_create_big_sync
uint16_t ble_iso_create_big_sync(iso_create_big_sync_t *param)
Create the BIG sync.
iso_cis_est_evt_t
The parameter for cis establish event.
Definition: ble_iso.h:437
iso_set_data_path_trigger_t::trigger_offset
int32_t trigger_offset
Definition: ble_iso.h:430
iso_set_per_adv_sync_tran_param_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:373
iso_req_peer_sca_cmpl_evt_t
The parameter for request peer sca complete event.
Definition: ble_iso.h:556
iso_big_create_sync_est_evt_t::big_hdl
uint8_t big_hdl
Definition: ble_iso.h:511
ISO_REMOVE_CIG
@ ISO_REMOVE_CIG
Definition: ble_iso.h:76
ISO_SET_DATA_PATH
@ ISO_SET_DATA_PATH
Definition: ble_iso.h:78
iso_big_info_report_evt_t::framing
uint8_t framing
Definition: ble_iso.h:548
iso_cis_est_evt_t::tran_latency_s2m
uint32_t tran_latency_s2m
Definition: ble_iso.h:443
ISO_SET_CIG_PARAM
@ ISO_SET_CIG_PARAM
Definition: ble_iso.h:75
SCA0
@ SCA0
Definition: ble_iso.h:120
iso_adv_type_t
iso_adv_type_t
Adv type for announcement.
Definition: ble_iso.h:88
iso_set_data_path_t
The parameter for setting data path.
Definition: ble_iso.h:300
ble_iso_terminate_big
uint16_t ble_iso_terminate_big(uint8_t big_hdl, uint8_t reason)
Terminate the BIG.
ISO_ADDR_LEN
#define ISO_ADDR_LEN
Definition: ble_iso.h:60
ENC_CODE_LEN
#define ENC_CODE_LEN
Definition: ble_iso.h:61
iso_start_bd_ann_t::sid
uint8_t sid
Definition: ble_iso.h:208
ISO_SET_PER_ADV_SET_INFO_TRAN
@ ISO_SET_PER_ADV_SET_INFO_TRAN
Definition: ble_iso.h:81
iso_cis_est_evt_t::cig_sync_delay
uint32_t cig_sync_delay
Definition: ble_iso.h:440
iso_sync_ann_t::sid
uint8_t sid
Definition: ble_iso.h:256
iso_cis_req_evt_t
The parameter for cis request event.
Definition: ble_iso.h:460
iso_cte_type_t
iso_cte_type_t
Cte type.
Definition: ble_iso.h:164
iso_cis_param_t::sdu_size_m2s
uint16_t sdu_size_m2s
Definition: ble_iso.h:325
TERMINATE_BY_LOCAL
@ TERMINATE_BY_LOCAL
Definition: ble_iso.h:183
ble_iso_create_big
uint16_t ble_iso_create_big(iso_create_big_t *param)
Create the BIG.
ISO_REJECT_CIS_REQ
@ ISO_REJECT_CIS_REQ
Definition: ble_iso.h:77
SCA5
@ SCA5
Definition: ble_iso.h:125
iso_cis_est_evt_t::bn_s2m
uint8_t bn_s2m
Definition: ble_iso.h:448
iso_start_bd_ann_t::interval
uint16_t interval
Definition: ble_iso.h:209
CONTROLLER_TO_HOST
@ CONTROLLER_TO_HOST
Definition: ble_iso.h:113
iso_start_target_ann_t::data
uint8_t * data
Definition: ble_iso.h:237
iso_create_cis_t::num_cis
uint8_t num_cis
Definition: ble_iso.h:364
iso_create_big_cmpl_evt_t::irc
uint8_t irc
Definition: ble_iso.h:489
iso_add_type_t
iso_add_type_t
Address type.
Definition: ble_iso.h:95
WITH_EVT_NO_REPORT
@ WITH_EVT_NO_REPORT
Definition: ble_iso.h:156
ble_iso_gpio_enable
uint16_t ble_iso_gpio_enable(uint8_t gpio_sel)
Un-mask the ISO GPIO.
PUBLIC
@ PUBLIC
Definition: ble_iso.h:96
iso_cis_param_t::rtn_s2m
uint8_t rtn_s2m
Definition: ble_iso.h:330
iso_big_create_sync_est_evt_t::pto
uint8_t pto
Definition: ble_iso.h:515
iso_set_cig_param_t::sdu_int_s2m
uint32_t sdu_int_s2m
Definition: ble_iso.h:340
iso_set_cig_param_t::framing
uint8_t framing
Definition: ble_iso.h:343
iso_set_per_adv_sync_tran_param_t::skip
uint16_t skip
Definition: ble_iso.h:375
ble_iso_start_gen_ann
uint16_t ble_iso_start_gen_ann(iso_start_gen_ann_t *param)
Start general audio announcement by using extended adv.
iso_start_target_ann_t::adv_type
uint8_t adv_type
Definition: ble_iso.h:232
iso_per_adv_sync_tran_rcv_evt_t
The parameter for receiving periodic advertising Synchronization transport event.
Definition: ble_iso.h:566
iso_set_per_adv_rcv_enable_t::enable
uint8_t enable
Definition: ble_iso.h:419
NO_EVT_NO_REPORT
@ NO_EVT_NO_REPORT
Definition: ble_iso.h:154
ISO_GPIO_MASK_5
@ ISO_GPIO_MASK_5
Definition: ble_iso.h:193
iso_big_info_report_evt_t::num_bis
uint8_t num_bis
Definition: ble_iso.h:538
iso_big_create_sync_est_evt_t::bis_hdl
uint16_t * bis_hdl
Definition: ble_iso.h:520
ble_iso_disc_cis
uint16_t ble_iso_disc_cis(uint16_t cis_hdl)
disconnect the CIS that is identified by the cis_hdl.
NOT_SYNC_WITH_AOA
@ NOT_SYNC_WITH_AOA
Definition: ble_iso.h:165
iso_cis_param_t::rtn_m2s
uint8_t rtn_m2s
Definition: ble_iso.h:329
iso_create_big_cmpl_evt_t::bis_hdl
uint16_t * bis_hdl
Definition: ble_iso.h:493
iso_cis_param_t::phy_s2m
uint8_t phy_s2m
Definition: ble_iso.h:328
iso_create_big_cmpl_evt_t::big_hdl
uint8_t big_hdl
Definition: ble_iso.h:482
iso_termi_big_cmpl_evt_t::big_hdl
uint8_t big_hdl
Definition: ble_iso.h:502
iso_cis_est_evt_t::phy_s2m
uint8_t phy_s2m
Definition: ble_iso.h:445
PACK_SEQ
@ PACK_SEQ
Definition: ble_iso.h:133
iso_hci_data_t::sdu_len
uint16_t sdu_len
Definition: ble_iso.h:605
iso_data_path_type_t
iso_data_path_type_t
Data path type.
Definition: ble_iso.h:102
iso_sync_mode_t
iso_sync_mode_t
Sync mode type.
Definition: ble_iso.h:153
FRAMED
@ FRAMED
Definition: ble_iso.h:141
iso_read_iso_tx_sync_cmpl_evt_t
The parameter for read iso tx sync complete event.
Definition: ble_iso.h:578
iso_big_create_sync_est_evt_t::iso_interval
uint16_t iso_interval
Definition: ble_iso.h:518
ble_iso_register_callback
uint16_t ble_iso_register_callback(iso_cb_fun_t *cb)
Register callback for iso.
iso_cis_param_t
The parameter for setting cis.
Definition: ble_iso.h:323
iso_data_path_direction_t
iso_data_path_direction_t
Data path direction type.
Definition: ble_iso.h:111
iso_start_gen_ann_t::data
uint8_t * data
Definition: ble_iso.h:222
iso_big_create_sync_est_evt_t
The parameter for creating big sync complete event.
Definition: ble_iso.h:509
iso_rm_data_path_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:315
ISO_GPIO_MASK_6
@ ISO_GPIO_MASK_6
Definition: ble_iso.h:194
iso_sync_ann_t::peer_addr_type
uint8_t peer_addr_type
Definition: ble_iso.h:257
iso_create_big_sync_t
The parameter for creating big sync.
Definition: ble_iso.h:285
iso_create_big_cmpl_evt_t::big_trans_latency
uint32_t big_trans_latency
Definition: ble_iso.h:484
iso_set_per_adv_set_info_tran_t::adv_hdl
uint16_t adv_hdl
Definition: ble_iso.h:396
ISO_GPIO_MASK_3
@ ISO_GPIO_MASK_3
Definition: ble_iso.h:191
iso_termi_big_reason_t
iso_termi_big_reason_t
Terminate big/big sync reason.
Definition: ble_iso.h:181
ble_iso_terminate_big_sync
uint16_t ble_iso_terminate_big_sync(uint8_t big_hdl)
Terminate the BIG sync.
iso_big_info_report_evt_t::per_sync_idx
uint8_t per_sync_idx
Definition: ble_iso.h:537
iso_disc_ann_t::interval
uint16_t interval
Definition: ble_iso.h:245
iso_set_data_path_trigger_t
The parameter for set iso data path trigger.
Definition: ble_iso.h:426
iso_read_iso_tx_sync_cmpl_evt_t::time_stap
uint32_t time_stap
Definition: ble_iso.h:582
iso_set_data_path_trigger_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:427
ble_iso_req_peer_sca
uint16_t ble_iso_req_peer_sca(uint16_t conn_idx)
Read the Sleep Clock Accuracy of the peer device.
iso_set_data_path_t::direction
uint8_t direction
Definition: ble_iso.h:302
iso_hci_data_t
The structure for iso hci data.
Definition: ble_iso.h:601
iso_set_cig_param_cmpl_evt_t::cig_id
uint8_t cig_id
Definition: ble_iso.h:592
iso_set_cig_param_t::packing
uint8_t packing
Definition: ble_iso.h:342
iso_termi_big_cmpl_evt_t::reason
uint8_t reason
Definition: ble_iso.h:501
ble_iso_reject_cis_req
uint16_t ble_iso_reject_cis_req(uint16_t cis_hdl, uint8_t reason)
slave Host to reject the request for the CIS that is identified by the cis_hdl.
iso_set_cig_param_t::sca
uint8_t sca
Definition: ble_iso.h:341
iso_start_target_ann_t::peer_add_type
uint8_t peer_add_type
Definition: ble_iso.h:234
SCA7
@ SCA7
Definition: ble_iso.h:127
iso_set_cig_param_cmpl_evt_t::cis_count
uint8_t cis_count
Definition: ble_iso.h:593
iso_phy_type_t
iso_phy_type_t
Phy type.
Definition: ble_iso.h:173
RANDOM
@ RANDOM
Definition: ble_iso.h:97
iso_set_per_adv_set_info_tran_t::conn_hdl
uint16_t conn_hdl
Definition: ble_iso.h:399
iso_set_cig_param_cmpl_evt_t::status
uint8_t status
Definition: ble_iso.h:591
iso_cis_est_evt_t::cis_hdl
uint16_t cis_hdl
Definition: ble_iso.h:439
ISO_GPIO_MASK_7
@ ISO_GPIO_MASK_7
Definition: ble_iso.h:195
iso_create_big_t::tran_latency
uint16_t tran_latency
Definition: ble_iso.h:272
ISO_GPIO_MASK_2
@ ISO_GPIO_MASK_2
Definition: ble_iso.h:190
iso_big_create_sync_est_evt_t::num_bis
uint8_t num_bis
Definition: ble_iso.h:519
iso_create_big_cmpl_evt_t::phy
uint8_t phy
Definition: ble_iso.h:485
iso_read_iso_tx_sync_cmpl_evt_t::status
uint8_t status
Definition: ble_iso.h:579
iso_read_iso_tx_sync_cmpl_evt_t::con_hdl
uint16_t con_hdl
Definition: ble_iso.h:580
ISO_PHY_CODED
@ ISO_PHY_CODED
Definition: ble_iso.h:176
iso_big_create_sync_est_evt_t::bn
uint8_t bn
Definition: ble_iso.h:514
iso_cis_req_evt_t::conn_idx
uint16_t conn_idx
Definition: ble_iso.h:461
iso_cis_disc_evt_t
The parameter for cis disconnect event.
Definition: ble_iso.h:471
ble_iso_read_tx_sync
uint16_t ble_iso_read_tx_sync(uint16_t conn_hdl)
read the Bluetooth_TimeStamp (BTS) of a packet identified by the Packet_Sequence_Number on a CIS or B...
ENCRYPTED
@ ENCRYPTED
Definition: ble_iso.h:148
iso_per_adv_sync_tran_rcv_evt_t::status
uint8_t status
Definition: ble_iso.h:567
iso_create_cis_param_t
The parameter for creating per cis.
Definition: ble_iso.h:354
iso_sync_ann_t
The parameter for sync announcement.
Definition: ble_iso.h:255
iso_set_per_adv_set_info_tran_t
The parameter for setting periodic advertising set information.
Definition: ble_iso.h:395
DIRECTION_BOTH
@ DIRECTION_BOTH
Definition: ble_iso.h:114
iso_cis_est_evt_t::iso_interval
uint16_t iso_interval
Definition: ble_iso.h:453
iso_per_adv_sync_tran_t
The parameter for periodic advertising synchronization transport.
Definition: ble_iso.h:406
iso_set_default_per_adv_sync_tran_param_t::cte_type
uint8_t cte_type
Definition: ble_iso.h:388
iso_read_iso_tx_sync_cmpl_evt_t::time_offset
uint32_t time_offset
Definition: ble_iso.h:583
iso_set_cig_param_t::trans_latency_m2s
uint16_t trans_latency_m2s
Definition: ble_iso.h:344
iso_set_cig_param_t
The parameter for setting cig.
Definition: ble_iso.h:337
UNENCRYPTED
@ UNENCRYPTED
Definition: ble_iso.h:147
ISO_PHY_1M
@ ISO_PHY_1M
Definition: ble_iso.h:174
iso_create_big_cmpl_evt_t::max_pdu
uint16_t max_pdu
Definition: ble_iso.h:490
ISO_GPIO_MASK_4
@ ISO_GPIO_MASK_4
Definition: ble_iso.h:192