blob: 87075e5d55acd2e37306c5410dfea7daafcdf017 [file] [log] [blame]
/*
* Copyright (c) 2020 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_BLUETOOTH_DF_H_
#define ZEPHYR_INCLUDE_BLUETOOTH_DF_H_
/** @brief Constant Tone Extension parameters for connectionless
* transmission.
*
* The structure holds information required to setup CTE transmission
* in periodic advertising.
*/
struct bt_df_adv_cte_tx_param {
/** Length of CTE in 8us units */
uint8_t cte_len;
/** CTE Type: AoA, AoD 1us slots, AoD 2us slots */
uint8_t cte_type;
/** Number of CTE to transmit in each periodic adv interval */
uint8_t cte_count;
/** Number of Antenna IDs in the switch pattern */
uint8_t num_ant_ids;
/** List of antenna IDs in the pattern */
uint8_t *ant_ids;
};
/** @brief Set or update the Constant Tone Extension parameters for periodic
* advertising set.
*
* @param[in] adv Advertising set object.
* @param[in] params Constant Tone Extension parameters.
*
* @return Zero on success or (negative) error code otherwise.
*/
int bt_df_set_adv_cte_tx_param(struct bt_le_ext_adv *adv,
const struct bt_df_adv_cte_tx_param *params);
/** @brief Enable transmission of Constant Tone Extension for the given
* advertising set.
*
* Transmission of Constant Tone Extension may be enabled only after setting
* periodic advertising parameters (@ref bt_le_per_adv_set_param) and Constant
* Tone Extension parameters (@ref bt_df_set_adv_cte_tx_param).
*
* @param[in] adv Advertising set object.
*
* @return Zero on success or (negative) error code otherwise.
*/
int bt_df_adv_cte_tx_enable(struct bt_le_ext_adv *adv);
/** @brief Disable transmission of Constant Tone Extension for the given
* advertising set.
*
* @param[in] adv Advertising set object.
*
* @return Zero on success or (negative) error code otherwise.
*/
int bt_df_adv_cte_tx_disable(struct bt_le_ext_adv *adv);
#endif /* ZEPHYR_INCLUDE_BLUETOOTH_DF_H_ */