Zephyr Project API 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
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_BIS_INDEX_BIT(x)   (BIT((x) - 1))
 Convert BIS index to bit.
 
#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_VALID_BIS_BITFIELD(_bis_bitfield)    ((_bis_bitfield) != 0U && (_bis_bitfield) <= BIT_MASK(BT_ISO_BIS_INDEX_MAX))
 Check if ISO BIS bitfield is valid (BT_ISO_BIS_INDEX_BIT(1)|..|BT_ISO_BIS_INDEX_BIT(31))
 

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)
 Send data to ISO channel without timestamp.
 
int bt_iso_chan_send_ts (struct bt_iso_chan *chan, struct net_buf *buf, uint16_t seq_num, uint32_t ts)
 Send data to ISO channel with timestamp.
 
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.