|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Bluetooth ISO handling. More...
#include <stdint.h>#include <zephyr/bluetooth/addr.h>#include <zephyr/bluetooth/bluetooth.h>#include <zephyr/bluetooth/buf.h>#include <zephyr/bluetooth/conn.h>#include <zephyr/bluetooth/hci.h>#include <zephyr/net_buf.h>#include <zephyr/sys/atomic.h>#include <zephyr/sys/slist.h>#include <zephyr/sys/util_macro.h>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. | |
Bluetooth ISO handling.