Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
iso.h File Reference

Bluetooth ISO handling. More...

Go to the source code of this file.

Data Structures

struct  bt_iso_chan
 ISO Channel structure. More...
 
struct  bt_iso_chan_io_qos
 ISO Channel IO QoS structure. More...
 
struct  bt_iso_chan_qos
 ISO Channel QoS structure. More...
 
struct  bt_iso_chan_path
 ISO Channel Data Path structure. More...
 
struct  bt_iso_recv_info
 ISO Meta Data structure for received ISO packets. More...
 
struct  bt_iso_tx_info
 ISO Meta Data structure for transmitted ISO packets. More...
 
struct  bt_iso_cig_param
 Connected Isochronous Group (CIG) parameters. More...
 
struct  bt_iso_connect_param
 ISO connection parameters structure. More...
 
struct  bt_iso_big_create_param
 Broadcast Isochronous Group (BIG) creation parameters. More...
 
struct  bt_iso_big_sync_param
 Broadcast Isochronous Group (BIG) Sync Parameters. More...
 
struct  bt_iso_biginfo
 Broadcast Isochronous Group (BIG) information. More...
 
struct  bt_iso_chan_ops
 ISO Channel operations structure. More...
 
struct  bt_iso_accept_info
 ISO Accept Info Structure. More...
 
struct  bt_iso_server
 ISO Server structure. More...
 
struct  bt_iso_unicast_tx_info
 ISO Unicast TX Info Structure. More...
 
struct  bt_iso_unicast_info
 ISO Unicast Info Structure. More...
 
struct  bt_iso_broadcaster_info
 ISO Broadcaster Info Structure. More...
 
struct  bt_iso_sync_receiver_info
 ISO Synchronized Receiver Info Structure. More...
 
struct  bt_iso_info
 ISO channel Info Structure. More...
 

Macros

#define BT_ISO_CHAN_SEND_RESERVE   BT_BUF_ISO_SIZE(0)
 Headroom needed for outgoing ISO SDUs.
 
#define BT_ISO_SDU_BUF_SIZE(mtu)   BT_BUF_ISO_SIZE(mtu)
 Helper to calculate needed buffer size for ISO SDUs.
 
#define BT_ISO_DATA_PATH_HCI   0x00
 Value to set the ISO data path over HCi.
 
#define BT_ISO_SDU_INTERVAL_MIN   0x0000FFU
 Minimum interval value in microseconds.
 
#define BT_ISO_SDU_INTERVAL_MAX   0x0FFFFFU
 Maximum interval value in microseconds.
 
#define BT_ISO_ISO_INTERVAL_MIN   0x0004U
 Minimum ISO interval (N * 1.25 ms)
 
#define BT_ISO_ISO_INTERVAL_MAX   0x0C80U
 Maximum ISO interval (N * 1.25 ms)
 
#define BT_ISO_LATENCY_MIN   0x0005
 Minimum latency value in milliseconds.
 
#define BT_ISO_LATENCY_MAX   0x0FA0
 Maximum latency value in milliseconds.
 
#define BT_ISO_PACKING_SEQUENTIAL   0x00
 Packets will be sent sequentially between the channels in the group.
 
#define BT_ISO_PACKING_INTERLEAVED   0x01
 Packets will be sent interleaved between the channels in the group.
 
#define BT_ISO_FRAMING_UNFRAMED   0x00
 Packets may be framed or unframed.
 
#define BT_ISO_FRAMING_FRAMED   0x01
 Packets are always framed.
 
#define BT_ISO_MAX_GROUP_ISO_COUNT   0x1F
 Maximum number of isochronous channels in a single group.
 
#define BT_ISO_MIN_SDU   0x0001
 Minimum SDU size.
 
#define BT_ISO_MAX_SDU   0x0FFF
 Maximum SDU size.
 
#define BT_ISO_CONNECTED_PDU_MIN   0x0000U
 Minimum PDU size.
 
#define BT_ISO_BROADCAST_PDU_MIN   0x0001U
 Minimum PDU size.
 
#define BT_ISO_PDU_MAX   0x00FBU
 Maximum PDU size.
 
#define BT_ISO_BN_MIN   0x01U
 Minimum burst number.
 
#define BT_ISO_BN_MAX   0x0FU
 Maximum burst number.
 
#define BT_ISO_FT_MIN   0x01U
 Minimum flush timeout.
 
#define BT_ISO_FT_MAX   0xFFU
 Maximum flush timeout.
 
#define BT_ISO_NSE_MIN   0x01U
 Minimum number of subevents.
 
#define BT_ISO_NSE_MAX   0x1FU
 Maximum number of subevents.
 
#define BT_ISO_SYNC_TIMEOUT_MIN   0x000A
 Minimum BIG sync timeout value (N * 10 ms)
 
#define BT_ISO_SYNC_TIMEOUT_MAX   0x4000
 Maximum BIG sync timeout value (N * 10 ms)
 
#define BT_ISO_SYNC_MSE_ANY   0x00
 Controller controlled maximum subevent count value.
 
#define BT_ISO_SYNC_MSE_MIN   0x01
 Minimum BIG sync maximum subevent count value.
 
#define BT_ISO_SYNC_MSE_MAX   0x1F
 Maximum BIG sync maximum subevent count value.
 
#define BT_ISO_CONNECTED_RTN_MAX   0xFF
 Maximum connected ISO retransmission value.
 
#define BT_ISO_BROADCAST_RTN_MAX   0x1E
 Maximum broadcast ISO retransmission value.
 
#define BT_ISO_BROADCAST_CODE_SIZE   16
 Broadcast code size.
 
#define BT_ISO_BIS_INDEX_MIN   0x01
 Lowest BIS index.
 
#define BT_ISO_BIS_INDEX_MAX   0x1F
 Highest BIS index.
 
#define BT_ISO_IRC_MIN   0x01U
 Minimum Immediate Repetition Count.
 
#define BT_ISO_IRC_MAX   0x0FU
 Maximum Immediate Repetition Count.
 
#define BT_ISO_PTO_MIN   0x00U
 Minimum pre-transmission offset.
 
#define BT_ISO_PTO_MAX   0x0FU
 Maximum pre-transmission offset.
 
#define BT_ISO_TIMESTAMP_NONE   0U
 Omit time stamp when sending to controller.
 

Enumerations

enum  bt_iso_state {
  BT_ISO_STATE_DISCONNECTED , BT_ISO_STATE_ENCRYPT_PENDING , BT_ISO_STATE_CONNECTING , BT_ISO_STATE_CONNECTED ,
  BT_ISO_STATE_DISCONNECTING
}
 Life-span states of ISO channel. More...
 
enum  bt_iso_chan_type { BT_ISO_CHAN_TYPE_NONE , BT_ISO_CHAN_TYPE_CONNECTED , BT_ISO_CHAN_TYPE_BROADCASTER , BT_ISO_CHAN_TYPE_SYNC_RECEIVER }
 ISO Channel Type. More...
 
enum  { BT_ISO_FLAGS_VALID = BIT(0) , BT_ISO_FLAGS_ERROR = BIT(1) , BT_ISO_FLAGS_LOST = BIT(2) , BT_ISO_FLAGS_TS = BIT(3) }
 ISO packet status flag bits. More...
 

Functions

int bt_iso_server_register (struct bt_iso_server *server)
 Register ISO server.
 
int bt_iso_server_unregister (struct bt_iso_server *server)
 Unregister ISO server.
 
int bt_iso_cig_create (const struct bt_iso_cig_param *param, struct bt_iso_cig **out_cig)
 Creates a CIG as a central.
 
int bt_iso_cig_reconfigure (struct bt_iso_cig *cig, const struct bt_iso_cig_param *param)
 Reconfigure a CIG as a central.
 
int bt_iso_cig_terminate (struct bt_iso_cig *cig)
 Terminates a CIG as a central.
 
int bt_iso_chan_connect (const struct bt_iso_connect_param *param, size_t count)
 Connect ISO channels on ACL connections.
 
int bt_iso_chan_disconnect (struct bt_iso_chan *chan)
 Disconnect connected ISO channel.
 
int bt_iso_chan_send (struct bt_iso_chan *chan, struct net_buf *buf, uint16_t seq_num, uint32_t ts)
 Send data to ISO channel.
 
int bt_iso_chan_get_info (const struct bt_iso_chan *chan, struct bt_iso_info *info)
 Get ISO channel info.
 
int bt_iso_chan_get_tx_sync (const struct bt_iso_chan *chan, struct bt_iso_tx_info *info)
 Get ISO transmission timing info.
 
int bt_iso_big_create (struct bt_le_ext_adv *padv, struct bt_iso_big_create_param *param, struct bt_iso_big **out_big)
 Creates a BIG as a broadcaster.
 
int bt_iso_big_terminate (struct bt_iso_big *big)
 Terminates a BIG as a broadcaster or receiver.
 
int bt_iso_big_sync (struct bt_le_per_adv_sync *sync, struct bt_iso_big_sync_param *param, struct bt_iso_big **out_big)
 Creates a BIG as a receiver.
 

Detailed Description

Bluetooth ISO handling.