mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-09-17 22:49:55 +00:00
host/iso: Add doxygen comments in the header file
Adds missing structures and functions documentation.
This commit is contained in:
committed by
Szymon Janc
parent
a3cef58817
commit
ebe1e7804d
@@ -19,11 +19,25 @@
|
|||||||
|
|
||||||
#ifndef H_BLE_ISO_
|
#ifndef H_BLE_ISO_
|
||||||
#define H_BLE_ISO_
|
#define H_BLE_ISO_
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file ble_iso.h
|
||||||
|
*
|
||||||
|
* @brief Bluetooth ISO
|
||||||
|
* @defgroup bt_iso Bluetooth ISO
|
||||||
|
* @ingroup bt_host
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <inttypes.h>
|
||||||
#include "nimble/hci_common.h"
|
#include "nimble/hci_common.h"
|
||||||
#include "syscfg/syscfg.h"
|
#include "syscfg/syscfg.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup ble_iso_events ISO Events
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
/** ISO event: BIG Create Completed */
|
/** ISO event: BIG Create Completed */
|
||||||
#define BLE_ISO_EVENT_BIG_CREATE_COMPLETE 0
|
#define BLE_ISO_EVENT_BIG_CREATE_COMPLETE 0
|
||||||
|
|
||||||
@@ -39,18 +53,62 @@
|
|||||||
/** ISO event: ISO Data received */
|
/** ISO event: ISO Data received */
|
||||||
#define BLE_ISO_EVENT_ISO_RX 4
|
#define BLE_ISO_EVENT_ISO_RX 4
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
/** @brief Broadcast Isochronous Group (BIG) description */
|
/** @brief Broadcast Isochronous Group (BIG) description */
|
||||||
struct ble_iso_big_desc {
|
struct ble_iso_big_desc {
|
||||||
|
/**
|
||||||
|
* The identifier of the BIG. Assigned by the Host when a new BIG is
|
||||||
|
* created.
|
||||||
|
*/
|
||||||
uint8_t big_handle;
|
uint8_t big_handle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum time in microseconds for transmission of PDUs of all BISes in
|
||||||
|
* a BIG event.
|
||||||
|
*/
|
||||||
uint32_t big_sync_delay;
|
uint32_t big_sync_delay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The actual transport latency of transmitting payloads of all BISes in the
|
||||||
|
* BIG in microseconds.
|
||||||
|
*/
|
||||||
uint32_t transport_latency_big;
|
uint32_t transport_latency_big;
|
||||||
|
|
||||||
|
/** The number of subevents per BIS in each BIG event. */
|
||||||
uint8_t nse;
|
uint8_t nse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Burst Number (BN) specifies the number of new payloads in each BIS
|
||||||
|
* event.
|
||||||
|
*/
|
||||||
uint8_t bn;
|
uint8_t bn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Pre-Transmission Offset (PTO) specifies the offset of groups that
|
||||||
|
* carry data associated with the future BIS events.
|
||||||
|
*/
|
||||||
uint8_t pto;
|
uint8_t pto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Immediate Repetition Count (IRC) specifies the number of groups that
|
||||||
|
* carry the data associated with the current BIS event.
|
||||||
|
*/
|
||||||
uint8_t irc;
|
uint8_t irc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum number of data octets (excluding the MIC, if any) that can be
|
||||||
|
* carried in each BIS Data PDU in the BIG.
|
||||||
|
*/
|
||||||
uint16_t max_pdu;
|
uint16_t max_pdu;
|
||||||
|
|
||||||
|
/** The time between two adjacent BIG anchor points in units of 1.25 ms. */
|
||||||
uint16_t iso_interval;
|
uint16_t iso_interval;
|
||||||
|
|
||||||
|
/** The total number of BISes in the BIG. */
|
||||||
uint8_t num_bis;
|
uint8_t num_bis;
|
||||||
|
|
||||||
|
/** The connection handles of all the BIS in the BIG. */
|
||||||
uint16_t conn_handle[MYNEWT_VAL(BLE_MAX_BIS)];
|
uint16_t conn_handle[MYNEWT_VAL(BLE_MAX_BIS)];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -68,7 +126,7 @@ enum ble_iso_rx_data_status {
|
|||||||
|
|
||||||
/** @brief Received ISO data info structure */
|
/** @brief Received ISO data info structure */
|
||||||
struct ble_iso_rx_data_info {
|
struct ble_iso_rx_data_info {
|
||||||
/** ISO Data timestamp. Valid if @ref ble_iso_data_info.ts_valid is set */
|
/** ISO Data timestamp. Valid if @ref ble_iso_rx_data_info.ts_valid is set */
|
||||||
uint32_t ts;
|
uint32_t ts;
|
||||||
|
|
||||||
/** Packet sequence number */
|
/** Packet sequence number */
|
||||||
@@ -77,7 +135,7 @@ struct ble_iso_rx_data_info {
|
|||||||
/** SDU length */
|
/** SDU length */
|
||||||
uint16_t sdu_len : 12;
|
uint16_t sdu_len : 12;
|
||||||
|
|
||||||
/** ISO Data status. See @ref ble_iso_data_status */
|
/** ISO Data status. See @ref ble_iso_rx_data_status */
|
||||||
uint16_t status : 2;
|
uint16_t status : 2;
|
||||||
|
|
||||||
/** Timestamp is valid */
|
/** Timestamp is valid */
|
||||||
@@ -146,30 +204,127 @@ struct ble_iso_event {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Function prototype for isochronous event callback. */
|
||||||
typedef int ble_iso_event_fn(struct ble_iso_event *event, void *arg);
|
typedef int ble_iso_event_fn(struct ble_iso_event *event, void *arg);
|
||||||
|
|
||||||
|
/** Broadcast Isochronous Group (BIG) parameters */
|
||||||
struct ble_iso_big_params {
|
struct ble_iso_big_params {
|
||||||
|
/**
|
||||||
|
* The time interval of the periodic SDUs in microseconds. The value shall
|
||||||
|
* be between 0x0000FF and 0x0FFFFF.
|
||||||
|
*/
|
||||||
uint32_t sdu_interval;
|
uint32_t sdu_interval;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum size of an SDU in octets. The value shall be between 0x0001
|
||||||
|
* and 0x0FFF.
|
||||||
|
*/
|
||||||
uint16_t max_sdu;
|
uint16_t max_sdu;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum transport latency in milliseconds. The value shall be between
|
||||||
|
* 0x0005 and 0x0FA0.
|
||||||
|
*/
|
||||||
uint16_t max_transport_latency;
|
uint16_t max_transport_latency;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Retransmission Number (RTN) parameter contains the number of times
|
||||||
|
* every PDU should be retransmitted, irrespective of which BIG events the
|
||||||
|
* retransmissions occur in. The value shall be between 0x00 and 0x1E.
|
||||||
|
*/
|
||||||
uint8_t rtn;
|
uint8_t rtn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The PHY parameter is a bit field that indicates the PHY used for
|
||||||
|
* transmission of PDUs of BISes in the BIG. The value shall be one of the
|
||||||
|
* following:
|
||||||
|
* o BLE_HCI_LE_PHY_1M_PREF_MASK
|
||||||
|
* o BLE_HCI_LE_PHY_2M_PREF_MASK
|
||||||
|
* o BLE_HCI_LE_PHY_CODED_PREF_MASK
|
||||||
|
*/
|
||||||
uint8_t phy;
|
uint8_t phy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates the preferred method of arranging subevents of multiple BISes.
|
||||||
|
* The value shall be one of the following:
|
||||||
|
* o 0x00 - Sequential
|
||||||
|
* o 0x01 - Interleaved
|
||||||
|
*/
|
||||||
uint8_t packing;
|
uint8_t packing;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether the BIG carries framed or unframed data. The value
|
||||||
|
* shall be one of the following:
|
||||||
|
* o 0x00 - Unframed
|
||||||
|
* o 0x01 - Framed
|
||||||
|
*/
|
||||||
uint8_t framing;
|
uint8_t framing;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether the BIG is encrypted or not. The value shall be one of
|
||||||
|
* the following:
|
||||||
|
* o 0x00 - Unencrypted
|
||||||
|
* o 0x01 - Encrypted
|
||||||
|
*/
|
||||||
uint8_t encryption;
|
uint8_t encryption;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The 128-bit code used to derive the session key that is used to encrypt
|
||||||
|
* and decrypt BIS payloads.
|
||||||
|
*/
|
||||||
const char *broadcast_code;
|
const char *broadcast_code;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Create BIG parameters */
|
||||||
struct ble_iso_create_big_params {
|
struct ble_iso_create_big_params {
|
||||||
|
/** The associated periodic advertising train of the BIG. */
|
||||||
uint8_t adv_handle;
|
uint8_t adv_handle;
|
||||||
|
|
||||||
|
/** The total number of BISes in the BIG. */
|
||||||
uint8_t bis_cnt;
|
uint8_t bis_cnt;
|
||||||
|
|
||||||
|
/** Callback function for reporting the status of the procedure. */
|
||||||
ble_iso_event_fn *cb;
|
ble_iso_event_fn *cb;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An optional user-defined argument to be passed to the callback function.
|
||||||
|
*/
|
||||||
void *cb_arg;
|
void *cb_arg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiates the creation of Broadcast Isochronous Group (BIG). It configures
|
||||||
|
* the BIG parameters based on the provided input and triggers the corresponding
|
||||||
|
* HCI command.
|
||||||
|
*
|
||||||
|
* @param create_params A pointer to the structure holding the
|
||||||
|
* parameters specific to creating the BIG.
|
||||||
|
* These parameters define the general settings
|
||||||
|
* and include a callback function for handling
|
||||||
|
* creation events.
|
||||||
|
* @param big_params A pointer to the structure holding detailed
|
||||||
|
* parameters specific to the configuration of
|
||||||
|
* the BIG. These parameters include settings
|
||||||
|
* such as SDU interval, maximum SDU size,
|
||||||
|
* transport latency, etc.
|
||||||
|
*
|
||||||
|
* @return 0 on success;
|
||||||
|
* an error code on failure.
|
||||||
|
*
|
||||||
|
* @note The actual BIG creation result will be reported through the callback
|
||||||
|
* function specified in @p create_params.
|
||||||
|
*/
|
||||||
int ble_iso_create_big(const struct ble_iso_create_big_params *create_params,
|
int ble_iso_create_big(const struct ble_iso_create_big_params *create_params,
|
||||||
const struct ble_iso_big_params *big_params);
|
const struct ble_iso_big_params *big_params);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terminates an existing Broadcast Isochronous Group (BIG).
|
||||||
|
*
|
||||||
|
* @param big_handle The identifier of the BIG to be terminated.
|
||||||
|
*
|
||||||
|
* @return 0 on success;
|
||||||
|
* an error code on failure.
|
||||||
|
*/
|
||||||
int ble_iso_terminate_big(uint8_t big_handle);
|
int ble_iso_terminate_big(uint8_t big_handle);
|
||||||
|
|
||||||
/** @brief BIS parameters for @ref ble_iso_big_sync_create */
|
/** @brief BIS parameters for @ref ble_iso_big_sync_create */
|
||||||
@@ -295,7 +450,7 @@ struct ble_iso_data_path_setup_params {
|
|||||||
* between the Host and the Controller for a CIS, CIS configuration, or BIS
|
* between the Host and the Controller for a CIS, CIS configuration, or BIS
|
||||||
* identified by the @p param->conn_handle parameter.
|
* identified by the @p param->conn_handle parameter.
|
||||||
*
|
*
|
||||||
* @param[in] params BIG synchronization parameters
|
* @param[in] param BIG synchronization parameters
|
||||||
*
|
*
|
||||||
* @return 0 on success;
|
* @return 0 on success;
|
||||||
* A non-zero value on failure.
|
* A non-zero value on failure.
|
||||||
@@ -318,15 +473,34 @@ struct ble_iso_data_path_remove_params {
|
|||||||
* associated with a CIS, CIS configuration, or BIS identified by the
|
* associated with a CIS, CIS configuration, or BIS identified by the
|
||||||
* @p param->conn_handle parameter.
|
* @p param->conn_handle parameter.
|
||||||
*
|
*
|
||||||
* @param[in] params BIG synchronization parameters
|
* @param[in] param BIG synchronization parameters
|
||||||
*
|
*
|
||||||
* @return 0 on success;
|
* @return 0 on success;
|
||||||
* A non-zero value on failure.
|
* A non-zero value on failure.
|
||||||
*/
|
*/
|
||||||
int ble_iso_data_path_remove(const struct ble_iso_data_path_remove_params *param);
|
int ble_iso_data_path_remove(const struct ble_iso_data_path_remove_params *param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initiates the transmission of isochronous data.
|
||||||
|
*
|
||||||
|
* @param conn_handle The connection over which to execute the procedure.
|
||||||
|
* @param data A pointer to the data to be transmitted.
|
||||||
|
* @param data_len Number of the data octets to be transmitted.
|
||||||
|
*
|
||||||
|
* @return 0 on success;
|
||||||
|
* an error code on failure.
|
||||||
|
*/
|
||||||
int ble_iso_tx(uint16_t conn_handle, void *data, uint16_t data_len);
|
int ble_iso_tx(uint16_t conn_handle, void *data, uint16_t data_len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes memory for ISO.
|
||||||
|
*
|
||||||
|
* @return 0 on success
|
||||||
|
*/
|
||||||
int ble_iso_init(void);
|
int ble_iso_init(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
#endif /* H_BLE_ISO_ */
|
#endif /* H_BLE_ISO_ */
|
||||||
|
|||||||
Reference in New Issue
Block a user