samples: Bluetooth: df: Enable TX of mutliple CTEs in a per adv event
Since periodic advertising chains are available there is a possibility to send multiple PDUs including CTE in a periodic advertising event. This commit enables such functionality in direction finding transmitter sample. Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
parent
afe9ee9376
commit
50a2cdd75a
4 changed files with 22 additions and 10 deletions
|
@ -8,3 +8,8 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||||
CONFIG_BT_CTLR_DF=y
|
CONFIG_BT_CTLR_DF=y
|
||||||
CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=n
|
CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=n
|
||||||
CONFIG_BT_CTLR_DF_SCAN_CTE_RX=n
|
CONFIG_BT_CTLR_DF_SCAN_CTE_RX=n
|
||||||
|
|
||||||
|
# Enable chaining of multiple CTEs in periodic advertising
|
||||||
|
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||||
|
CONFIG_BT_CTLR_ADV_SYNC_PDU_BACK2BACK=y
|
||||||
|
CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX=16
|
||||||
|
|
|
@ -8,3 +8,8 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
|
||||||
CONFIG_BT_CTLR_DF=y
|
CONFIG_BT_CTLR_DF=y
|
||||||
CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=n
|
CONFIG_BT_CTLR_DF_ANT_SWITCH_RX=n
|
||||||
CONFIG_BT_CTLR_DF_SCAN_CTE_RX=n
|
CONFIG_BT_CTLR_DF_SCAN_CTE_RX=n
|
||||||
|
|
||||||
|
# Enable chaining of multiple CTEs in periodic advertising
|
||||||
|
CONFIG_BT_CTLR_ADVANCED_FEATURES=y
|
||||||
|
CONFIG_BT_CTLR_ADV_SYNC_PDU_BACK2BACK=y
|
||||||
|
CONFIG_BT_CTLR_DF_PER_ADV_CTE_NUM_MAX=16
|
||||||
|
|
|
@ -3,6 +3,7 @@ CONFIG_BT_DEVICE_NAME="DF Connectionless Beacon App"
|
||||||
|
|
||||||
CONFIG_BT_EXT_ADV=y
|
CONFIG_BT_EXT_ADV=y
|
||||||
CONFIG_BT_PER_ADV=y
|
CONFIG_BT_PER_ADV=y
|
||||||
|
CONFIG_BT_BROADCASTER=y
|
||||||
|
|
||||||
# Enable Direction Finding Feature including AoA and AoD
|
# Enable Direction Finding Feature including AoA and AoD
|
||||||
CONFIG_BT_DF=y
|
CONFIG_BT_DF=y
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
|
|
||||||
/* Length of CTE in unit of 8[us] */
|
/* Length of CTE in unit of 8[us] */
|
||||||
#define CTE_LEN (0x14U)
|
#define CTE_LEN (0x14U)
|
||||||
|
/* Number of CTE send in single periodic advertising train */
|
||||||
|
#define PER_ADV_EVENT_CTE_COUNT 5
|
||||||
|
|
||||||
static void adv_sent_cb(struct bt_le_ext_adv *adv,
|
static void adv_sent_cb(struct bt_le_ext_adv *adv,
|
||||||
struct bt_le_ext_adv_sent_info *info);
|
struct bt_le_ext_adv_sent_info *info);
|
||||||
|
@ -50,19 +52,18 @@ static struct bt_le_per_adv_param per_adv_param = {
|
||||||
static uint8_t ant_patterns[] = {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA };
|
static uint8_t ant_patterns[] = {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA };
|
||||||
#endif /* CONFIG_BT_CTLR_DF_ANT_SWITCH_TX */
|
#endif /* CONFIG_BT_CTLR_DF_ANT_SWITCH_TX */
|
||||||
|
|
||||||
struct bt_df_adv_cte_tx_param cte_params = {
|
struct bt_df_adv_cte_tx_param cte_params = { .cte_len = CTE_LEN,
|
||||||
.cte_len = CTE_LEN,
|
.cte_count = PER_ADV_EVENT_CTE_COUNT,
|
||||||
.cte_count = 1,
|
|
||||||
#if defined(CONFIG_BT_CTLR_DF_ANT_SWITCH_TX)
|
#if defined(CONFIG_BT_CTLR_DF_ANT_SWITCH_TX)
|
||||||
.cte_type = BT_HCI_LE_AOD_CTE_2US,
|
.cte_type = BT_HCI_LE_AOD_CTE_2US,
|
||||||
.num_ant_ids = ARRAY_SIZE(ant_patterns),
|
.num_ant_ids = ARRAY_SIZE(ant_patterns),
|
||||||
.ant_ids = ant_patterns
|
.ant_ids = ant_patterns
|
||||||
#else
|
#else
|
||||||
.cte_type = BT_HCI_LE_AOA_CTE,
|
.cte_type = BT_HCI_LE_AOA_CTE,
|
||||||
.num_ant_ids = 0,
|
.num_ant_ids = 0,
|
||||||
.ant_ids = NULL
|
.ant_ids = NULL
|
||||||
#endif /* CONFIG_BT_CTLR_DF_ANT_SWITCH_TX */
|
#endif /* CONFIG_BT_CTLR_DF_ANT_SWITCH_TX */
|
||||||
};
|
};
|
||||||
|
|
||||||
static void adv_sent_cb(struct bt_le_ext_adv *adv,
|
static void adv_sent_cb(struct bt_le_ext_adv *adv,
|
||||||
struct bt_le_ext_adv_sent_info *info)
|
struct bt_le_ext_adv_sent_info *info)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue